// ******************************************************************
// Macromedia image swap management
// ******************************************************************

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// ******************************************************************
// Méthodes diverses sur les formulaires
// ******************************************************************

function toggleCheckAll(field)
{
	currentChecked = true;
	if (field.length>0)
		currentChecked = !field[0].checked;
	for (i = 0; i < field.length; i++)
	{
		field[i].checked = currentChecked;
	}
}

// ******************************************************************
// Rollover sur les tableaux
// ******************************************************************

function rollover(elemTr, color)
{
	tdElems = elemTr.getElementsByTagName("td");
	for (var i = 0; i < tdElems.length; i++) {
		tdElems[i].style.backgroundColor = color;
	}
}

// ******************************************************************
// Impression d'une zone DOM: IE5+ Mozilla NN6 Win
// ******************************************************************

function js_print(zeId, height, width) 
{
	var print_w = null;
	if (print_w) {
	if(!print_w.closed) 
		print_w.close();
	}
	
	var content=document.getElementById(zeId).innerHTML;
	var title = document.getElementsByTagName("title")[0];
	var head = document.getElementsByTagName("head")[0];
	
	var metas=head.getElementsByTagName("meta");
	var stylesheets=head.getElementsByTagName("style");
	var links=head.getElementsByTagName("link");
	
	print_w = window.open ("","print_w", "height="+height+",width="+width+",menubar=no,scrollbars=no,resizable=yes,,left=10,top=10");
	print_w.document.open();
	print_w.document.write("<html><head>");
	
	print_w.document.write("<title>" + title.innerHTML + "</title>");
	
	print_w.document.write(getOuterHTML(metas));
	print_w.document.write(getOuterHTML(stylesheets));
	print_w.document.write(getOuterHTML(links));
	
	print_w.document.write("</head><body style='text-align:left;background-color:#ffffff;' >"+content+"</body></html>");
	print_w.document.close();
	
	print_w.focus();
	print_w.print();
	print_w.close();
 }

// ******************************************************************
// Récupérer le code externe y compris HTML d'un élément
// ******************************************************************

function getOuterHTML(elements)
{
	
	var outerHTML = "";
	
	for (i=0;i<elements.length;i++)
	{
		try
		{
			var elem = elements[i];
			
			if (!elem.outerHTML)
			{
				outerHTML += "<"+elem.tagName;
				
				for (j=0; j<elem.attributes.length; j++)
				{
					outerHTML += " "+elem.attributes.item(j).name + "=\"" + elem.attributes.item(j).value+"\"";
				}
				
				if ((elem.innerHTML)&&(elem.innerHTML.length>0))
				{
					outerHTML += " >" + elem.innerHTML + "</"+elem.tagName+">";
				}
				else
				{
					outerHTML += "/>";
				}
				
			} 
			else
			{
				outerHTML += elem.outerHTML;
			}
			
		} 
		catch (e)
		{
			alert(e.message);
		}
		
	}
	
	return outerHTML;
}

function setHtmlAttributes(elem, attrs)
{
	for (var i=0; i<attrs.length; i++)
	{
		attrName = attrs[i][0];
		attrValue = attrs[i][1];
		elem.setAttribute(attrName, attrValue);
		// IE Hack
		if (attrName=="class")
				elem.setAttribute("className", attrValue);
		if (attrName=="for")
				elem.setAttribute("htmlFor", attrValue);
	}
}

function addEvent(obj, evType, fn)
{
	  if (obj.addEventListener)
	  {
		obj.addEventListener(evType, fn, false);
		return true;
	  }
	  else if (obj.attachEvent)
	  {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	  }
	  else
	  {
		return false;
	  }
}

function validFormWarning(elem, ok)
{
	if (ok)
	{
		elem.style.color = "";
		elem.style.fontWeight = "";
	}
	else
	{
		elem.style.color = "#FF0000";
		elem.style.fontWeight = "bold";
	}
}

function submitForm(formid)
{
	document.getElementById(formid).submit();
}

function verifMail(email){
	var arobase = email.indexOf("@");
	var point = email.lastIndexOf(".");
	if((arobase < 3)||(point + 2 > email.length)||(point < arobase+3))
		return false;
	return true;
}
	
function toggleElem(elemid)
{
	if ((document.getElementById(elemid).style.display == "none")
		||(document.getElementById(elemid).style.display == ""))
		showElem(elemid);
	else
		hideElem(elemid);	
}

function showElem(elemid)
{
	document.getElementById(elemid).style.display = "block";	
}

function hideElem(elemid)
{
	document.getElementById(elemid).style.display = "none";	
}


function sortie_clic(urlext) {
	//urchinTracker('/outgoing/'+urlext);
}

// ******************************************************************
// Méthodes de gestion AJAX ;-)
// ******************************************************************
	
	var req;
	var callback;

	function loadXMLDoc(url, func) 
	{
		req = false;
	    	// branch for native XMLHttpRequest object
	    	if(window.XMLHttpRequest) 
		{
	    		try 
			{
				req = new XMLHttpRequest();
	        	} catch(e) {
				req = false;
	       	 	}
	    	// branch for IE/Windows ActiveX version
	    	} 
		else if(window.ActiveXObject) 
		{
	       		try 
			{
	        		req = new ActiveXObject("Msxml2.XMLHTTP");
	      		} 
			catch(e) 
			{
	        		try 
				{
	          			req = new ActiveXObject("Microsoft.XMLHTTP");
	        		} catch(e) {
	          			req = false;
	        		}
			}
	    	}
		if(req) 
		{
			callback = func;
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.send("");
		}
	}
	
	function processReqChange() 
	{
    		// only if req shows "loaded"
    		if (req.readyState == 4) 
		{
        		// only if "OK"
        		if (req.status == 200) 
			{
					 callback(req.responseXML);
        		} 
			else 
			{
           			alert("There was a problem retrieving the XML data:\n" + req.statusText);
        		}
    		}
	}
	
	// retrieve text of an XML document element, including
	// elements using namespaces
	function getElementTextNS(prefix, local, parentElem, index) {
    		var result = "";

		
    		if (prefix && window.ActiveXObject) 
		{
        		// IE/Windows way of handling namespaces
	        	result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
	    	} 
		else 
		{
		        // the namespace versions of this method 
		        // (getElementsByTagNameNS()) operate
		        // differently in Safari and Mozilla, but both
		        // return value with just local name, provided 
		        // there aren't conflicts with non-namespace element
		        // names
        		result = parentElem.getElementsByTagName(local)[index];
    		}
   		 if (result) 
		 {
        		// get text, accounting for possible
        		// whitespace (carriage return) text nodes 
        		if (result.childNodes.length > 1) 
			{
            			return result.childNodes[1].nodeValue;
        		} 
			else 
			{
            			return result.firstChild.nodeValue;    		
        		}
    		} 
		else 
		{
        		return "n/a";
    		}
	}

// ******************************************************************
// Méthodes d'affichage d'une barre de progression
// ******************************************************************

	function startProgBar(elemid, timerId)
	{
		document.getElementById(elemid).innerHTML = "&nbsp;";
		return window.setInterval("advanceProgBar('"+elemid+"')", 100);
	}
	
	function advanceProgBar(elemid)
	{
		cnt = document.getElementById(elemid).innerHTML;
		if (cnt.length<20)
			document.getElementById(elemid).innerHTML = cnt+".";
		else
			document.getElementById(elemid).innerHTML = ".";	
	}
	
	function stopProgBar(elemid, timerId)
	{
		window.clearInterval(timerId);
		document.getElementById(elemid).innerHTML = "";
	}



// ******************************************************************
// Jour/Nuit 
// ******************************************************************

function montre(object) {
	if (document.layers && document.layers[object]) {
		document.layers[object].visibility = 'visible';
	}
	else if (document.all) {
		document.all[object].style.visibility = 'visible';
		document.all[object].style.zIndex = 100;
	}
	else if (document.getElementById) {
		document.getElementById(object).style.visibility = 'visible';
		document.getElementById(object).style.zIndex = 100;
	}
}

function cache(object) {
	if (document.layers && document.layers[object]) {
		document.layers[object].visibility = 'hidden';
	}
	else if (document.all) {
		document.all[object].style.visibility = 'hidden';
	}
	else if (document.getElementById) {
		document.getElementById(object).style.visibility = 'hidden';
	}
}


function selectJumpTo(objSel) {
	if (objSel.options[objSel.selectedIndex].value.length>0) {
		document.location.href=objSel.options[objSel.selectedIndex].value;
	}
}


/**
 * Forum
 */
function forumCheckForm(frm) {
	if (frm.For_NewLast_Title.value=="" || frm.For_NewLast_Sender.value=="" || frm.For_NewLast_Text.value=="" ) {
		alert("Please fill in a subject, a sender and write some text.");
		return false;
	}
	/*if (frm.For_NewLast_Email.value.indexOf("@")<0) {
		alert("wrong email address!");
		return false;
	}*/
	return true;
}


/**
 * FORMS
 */
function CQForms_email_check(actfield) {
	var email = actfield.value;
	if(!email) return true;
//var regexpEmail  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/g;
	if(0<=email.indexOf(" ")) return false;
	var elems = email.split("@");
	if(elems.length<2 || elems.length>2) return false;
	if(elems[0].length<1) return false;
	if(elems[1].length<1) return false;
	elems = elems[1].split(".");
	if(elems.length<2 ) return false;
	if(elems[0].length<1) return false;
	if(elems[1].length<1) return false;
	return true;
}
function CQForms_focus_text(actfield) {
	actfield.style.margin = '0';
	actfield.style.borderWidth = '2px';
	actfield.style.backgroundColor = '#FFFFFF'; 
}
function CQForms_blur_text(actfield) {
	actfield.style.margin = '1px';
	actfield.style.borderWidth = '1px';
	actfield.style.backgroundColor = '#E9F0F5';
}
function CQForms_size_check(actfield, size) {
	return actfield.value.length < size;
}
function CQForms_none_check(actfield) {
	return true;
}
function CQForms_numeric_check(actfield) {
	var num = actfield.value;
	if(!num) return true;
	return (num.search(/^[0-9\.]+$/) != -1);
}
function CQForms_phone_check(actfield) {
	var num = actfield.value;
	if(!num) return true;
	return (num.search(/^[0-9\+\(\)\.]+$/) != -1);
}
function CQForms_filename_check(actfield) {
	return true;
}
function CQForms_name_check(actfield) {
	var name = actfield.value;
	if(!name) return true;
	//return (name.search(/^[a-zA-Z\ \._-çäâàéëêèïîöôüûù]+$/) != -1);
	return true;
}
function CQForms_predefined_check(actfield) {
	return true;
}
function CQForms_valid_warning(name, ok) {
	elem=document.getElementById('label'+name);
	if (ok)	{
		elem.style.color = "";
		elem.style.fontWeight = "";
	}
	else {
		elem.style.color = "#FF0000";
		elem.style.fontWeight = "bold";
		/*if (document.getElementById(name).select)
			document.getElementById(name).select();
		else document.getElementById(name).focus();
		//else alert("unknon : "+name);
		*/
	}
}

