var OPE = (window.opera) ? true : false;
var IE  = (document.all && !OPE) ? true : false;
var MOZ = (!IE && !OPE) ? true : false;
var x,y;

var IE7;
var strChUserAgent = navigator.userAgent;
var intSplitStart = strChUserAgent.indexOf("(",0);
var intSplitEnd = strChUserAgent.indexOf(")",0); 
var strChMid = strChUserAgent.substring(intSplitStart, intSplitEnd); 
if(strChMid.indexOf("MSIE 7") != -1) IE7 = true;


function initPage()
{
	document.onmousemove = positionMouse;
}

function positionMouse(e)
{
  x = MOZ ? e.clientX : event.clientX;
  y = MOZ ? e.clientY : event.clientY;
}

function arrondi(num,p)
{
   var precision = p;
   p=Math.pow(10,p);
   var ret =  Math.round(num*p)/p;
   //Converti la valeur en String
   var ret = ret+'';
   var reg = new RegExp("[.]+", "g");
   var tab = ret.split(reg);
   //Si valeur num sans décimal il faut initialiser dec à vide
   var dec = '';
   
   if(tab[1])
   {
	dec     = tab[1];
   }
  
   //Je rajoute des zéros tant que je n'arrive pas à 2 chiffres après la virgule
   while(dec.length < precision)
   {
	dec += '0';
   }
   //
   
   ret = tab[0]+'.'+dec;
   return ret;
}

//Ancienne version problème de précision ne retourne pas le bon nombre de chiffres après la virgule si 0
/*function arrondi(num,p)
{
   p=Math.pow(10,p);
   return Math.round(num*p)/p;
}*/

function openLink(){
   if((arguments[1])&&(arguments[1]=="_blank"))
      window.open(arguments[0]);
   else
      document.location=arguments[0];
}

function changeIndexMenuSelect()
{		
	var obj = arguments[0];	
	var valeur = arguments[1];
	var nom = arguments[2];	
	if (obj.options)
	{				
		var tab = obj.options;
		for (var i=0;i<tab.length;i++)
		{						
			if (tab[i].value == valeur)
			{
				tab[i].selected = true;
				if (typeof(nom)!='undefined')
					tab[i].text = nom;				
				return false;
			}		
		}
	}
	if (typeof(nom)!='undefined')
	{
		var op = new Option();
		op.text = nom;
		op.value = valeur;
		op.selected = true;
		obj[obj.length] = op;
	}
	return false;
}

function getHTTPObject()
{
	if (typeof XMLHttpRequest != 'undefined')
	{
		return new XMLHttpRequest();
	} try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		  } 
	  catch (e) {
		  			try
		  				{
		  					return new ActiveXObject("Microsoft.XMLHTTP");
		  				} catch (e) {}
		  	    }
	 return false;
}

function setContenu(name,text)
{  
	if(document.getElementById && document.getElementById(name)) 
		document.getElementById(name).innerHTML = text; 
}

function setContenuConcat(name,text)
{  
	if(document.getElementById && document.getElementById(name))	
		document.getElementById(name).innerHTML+=text;
}

function getContenu(name)
{  
	if(document.getElementById && document.getElementById(name)) 
    return document.getElementById(name).innerHTML;
}

function showContenu(Name)
{
  if (document.getElementById(Name))
    document.getElementById(Name).style.visibility = "visible";
}

function hideContenu(Name)
{
  if (document.getElementById(Name))
  {
	  var hide = MOZ ? "hidden" : "hide";
	  document.getElementById(Name).style.visibility = hide;
  }
}

function noDisplayContenu(Name)
{  
	if(document.getElementById(Name))
		document.getElementById(Name).style.display='none';
		document.getElementById('sousBody').className = 'sousBodyON';
}

function displayContenu()
{
	var Name = arguments[0];
	if(document.getElementById(Name))
		document.getElementById(Name).style.display='block';
}


function noDisplayComboBox()
{
	if (IE)
	{
		var tab = document.getElementsByTagName('select');
		for (elt in tab)
		{
			if(typeof(tab[elt].form)!='undefined' && typeof(tab[elt].nocache)=='undefined')			
	  			tab[elt].style.visibility = "hidden";	
		}
	}
}

function displayComboBox()
{
	if (IE)
	{
		var tab = document.getElementsByTagName('select');
		for (elt in tab)
		{
			if(typeof(tab[elt].form)!='undefined' && typeof(tab[elt].nocache)=='undefined')			
	  			tab[elt].style.visibility = "visible";	
		}
	}
}

function debutLoadAjax(sWait)
{	
		
}

function finLoadAjax()
{		
	window.status='';	
}

function getText(element)
{
	if (MOZ)
		return element.textContent;
	else
	{
		if(element.firstChild!=null)
			return element.firstChild.data;
		else
			return '';
	}
}

function submitForm()
{
	var req = null;
	var data = '';
	var i,j;
	var type,id,nom,form_dest,data;
	var contenu='';
	var formulaire = arguments[0];
	var url = arguments[1];
	
	if (arguments[3]) var sWait = arguments[3];
	if (arguments[2]) var after = arguments[2];
	
	req = getHTTPObject();
	req.onreadystatechange = function()
	{
	if(req.readyState == 4)
    {
		if(req.status == 200)
    	   {    	    			
			var XML = req.responseXML;
			 if (!XML)
			 {				 				 
				 MessagePopup('avert','URL error :<br>'+data+'<br><br>'+req.responseText);
				 finLoadAjax(formulaire);
				 return false;
			 }
			 var element = XML.getElementsByTagName('element');
			
			//DEB XML
 	   	    for (var i=0;i<element.length;i++)
    	   	 {
				 if (element[i].getElementsByTagName('type').length>0)
    	   		 {    	   			 
    	   			 type = element[i].getElementsByTagName('type')[0].firstChild.data;
    	   			 if (type == 'div' || type == 'divConcat')
    	   			 {
    	   				 contenu='';
    	   				 id = element[i].getElementsByTagName('id')[0].firstChild.data;
    	   				 for(var j=0;j<element[i].getElementsByTagName('contenu').length;j++)
	  						contenu+=getText(element[i].getElementsByTagName('contenu')[j]);    	   				 

					if (type == 'div'){
							setContenu(id,contenu);
						}else{
							setContenuConcat(id,contenu);
						}
    	   			 }    	  
       	   			 else
    	   			 if (type == 'value')
    	   			 {
    	   				nom = ''; form_dest = '', data='';
    	   				if(element[i].getElementsByTagName('form').length>0)
    	   					form_dest = element[i].getElementsByTagName('form')[0].firstChild.data;
    	   				if(element[i].getElementsByTagName('data').length>0)
    	   				{
    	   					for(var j=0;j<element[i].getElementsByTagName('data').length;j++)
    	   					{
    	   						nom = element[i].getElementsByTagName('data')[j].getElementsByTagName('nom')[0].firstChild.data; 
    	   						if(element[i].getElementsByTagName('data')[j].getElementsByTagName('contenu')[0].firstChild)
    	   							data = getText(element[i].getElementsByTagName('data')[j].getElementsByTagName('contenu')[0]);
    	   						else
    	   							data = '';
    	   						document.forms[form_dest].elements[nom].value = data;
    	   					}
    	   				}
    	   				else
    	   				{
    	   					if(element[i].getElementsByTagName('nom').length>0)
    	   						nom = element[i].getElementsByTagName('nom')[0].firstChild.data;    	   				     	   				    	   				
    	   					if (nom !='' && form_dest!='')
    	   					{
    	   						if(element[i].getElementsByTagName('contenu')[0].firstChild)
    	   							document.forms[form_dest].elements[nom].value = element[i].getElementsByTagName('contenu')[0].firstChild.data;
    	   						else
    	   							document.forms[form_dest].elements[nom].value='';
    	   					}
    	   				}
    	   			 }
    	   			 else
    	   			 if (type == 'java' && element[i].getElementsByTagName('contenu')[0].firstChild)
    	   			 {
						for(var j=0;j<element[i].getElementsByTagName('contenu').length;j++)
							eval(getText(element[i].getElementsByTagName('contenu')[j]));
    	   			 }
    	   			else
       	   			 if (type == 'alert' && element[i].getElementsByTagName('contenu')[0].firstChild)
       	   			 {       	   					
							alert(getText(element[i].getElementsByTagName('contenu')[0]));
       	   			 }
    	   		 }
    	   	 } 
			  
    	   // END XML	
		   
			 finLoadAjax();
    	   	 if (after)
    	   		 submitForm('',after);
    	   }
       //else
    	   //alert("An error occurred during the generation");
    }
	else
		if(sWait)
			setContenu(sWait,"<div align=\"center\"><br><br><img src=\"/images/img_order/ajax-loader.gif\"><br><br></div>");
  }

    
  if (formulaire)
  {	  
	  req.open("POST",url, true);
	  req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	  for (i=0;i<formulaire.elements.length;i++)
	  {
		if (i>0)
			data+='&';
				
		if(formulaire.elements[i].type=='select-multiple')
		{
			var k = 0;
			for (var j=0;j<formulaire.elements[i].length;j++)
			{				
				if(formulaire.elements[i][j].selected==true)
				{
					if (k>0)
						data+='&';
					data+=formulaire.elements[i].name+'[]=';
					data+=remplacer(formulaire.elements[i][j].value);
				}
				k++;
			}
		}
		else if (formulaire.elements[i].type=='radio')
		{
			if (formulaire.elements[i].checked == true)
			{
				data+=formulaire.elements[i].name;
				data+='=';
				data+=remplacer(formulaire.elements[i].value);
			}
		}
		else if (formulaire.elements[i].type!='checkbox' || (formulaire.elements[i].type=='checkbox' && formulaire.elements[i].checked==true))
		{			
			data+=formulaire.elements[i].name;
			data+='=';
			data+=remplacer(formulaire.elements[i].value);			
		}
	  }
	  req.setRequestHeader('Content-Length', data.length);
	  req.send(data);	 
  }
  else
  {	  
	  req.open("GET",url, true);
	  req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	  req.send(null);
  }
	   
}

function remplacer(a)
{
	var tmp="";
	var c;
	for(var i = 0; i < a.length; i++)
	{
		c = a.charAt(i);
		if (c =="&") c = "%26";
		if (c =="+") c = "%2B";
		if (c =="%") c = "%25";
		if (c =="#") c = "%23";
		tmp+=c;
	}
	return tmp;
}

function findPos(obj) {
	var curleft = curtop = 0;

	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
			objFinal = obj;
		}
	}
	return [curleft,curtop];
}

function appelCalqueSimple()
{
	var calque;
	var nomCalque = arguments[0];
	var source = arguments[1];
	var obj = arguments[2];
	
	if (!document.getElementById(nomCalque))
	{						
		calque = document.createElement("div");		
		calque.setAttribute("id", nomCalque);
		calque.style.position='absolute';
		calque.style.zIndex=8;
		var center = document.getElementById('stockcalque');		
		center.appendChild(calque);	
		submitForm('',source);
	}
	else
		calque = document.getElementById(nomCalque);
	
	if (obj)
	{			
		var add_x=0,add_y=0;
		if (typeof(arguments[3])!='undefined' && typeof(arguments[4])!='undefined')
		{
			add_x = parseInt(arguments[3]);
			add_y = parseInt(arguments[4]);
		}
			
		var position = findPos(obj);
		calque.style.left=parseInt(position[0]+add_x)+'px';
		calque.style.top=parseInt(position[1]+add_y)+'px';
	}
	
	displayContenu(nomCalque);
}

function appelCalque()
{
	var calque, wW,wH;
	var nomCalque = arguments[0];
	var source = arguments[1];
	var deco = arguments[2];
	var obj = arguments[3];
	var sWait = arguments[4];
	var nCenter = 0;
		
	if (arguments[5] && typeof(arguments[6])=='undefined')
		nCenter = arguments[5];
	
	if (!document.getElementById(nomCalque))
	{						
		calque = document.createElement("div");		
		calque.setAttribute("id", nomCalque);
		calque.style.position='absolute';
		calque.style.zIndex=8;
		var center = document.getElementById('stockcalque');		
		center.appendChild(calque);	
		if (deco)
		{		
			if (sWait) submitForm('',deco,source,sWait); else submitForm('',deco,source);
		}
	}
	else
	{
		if (sWait) submitForm('',source,'',sWait); else submitForm('',source); 
		calque = document.getElementById(nomCalque);
	}
	
	
	if (nCenter==1){
			if (IE){
					wH=document.documentElement.clientHeight;
					wW=document.documentElement.clientWidth;
				}else{
					wH=window.innerHeight;
					wW=window.innerWidth;
				}
		calque.style.left = ((wW/2)-350)+'px';
		calque.style.top ='145px';
	
	}else{
		
		if (obj)
		{			
			var add_x=0,add_y=0;
			if (typeof(arguments[5])!='undefined' && typeof(arguments[6])!='undefined')
			{
				add_x = parseInt(arguments[5]);
				add_y = parseInt(arguments[6]);
			}
				
			
			var position = findPos(obj);
			calque.style.left=parseInt(position[0]+add_x)+'px';
			calque.style.top=parseInt(position[1]+add_y)+'px';
		}else{
			var x = arguments[5];
			var y = arguments[6];
			calque.style.left = x+'px';
			calque.style.top = y+'px';
		}
	}

	document.getElementById('sousBody').className = 'sousBodyOff';
	displayContenu(nomCalque);
}

function viewCatEffect(sWait,nUniversId)
{
 if ((arguments[2])&&(arguments[2]==1)){
 document.getElementById(sWait).innerHTML="<div class=\"waitCat\"><img src=\"/images/img_order/ajax-loader_"+nUniversId+".gif\"></div>";
 setTimeout("viewCategorie("+nUniversId+");",500);
 }else{
	viewCategorie(nUniversId);
 }
}

function viewCategorie(nUniversId)
{

  var TabUnivers = new Array(6);
  TabUnivers = ["","sca_2","sca_3","sca_6","sca_4","sca_5"];
  var id = TabUnivers[nUniversId];
  if (typeof(id)=='undefined'){
	window.document.location.href="/index.php?updunivers=1";
  } 
  
  var univers;
  var lastCatlimit;
  var tailleUl = 200;
  var arbre = document.getElementById(id);
  var node = arbre.childNodes;
  var arbreFinal = document.getElementById('arbreCategorieVisible');
  arbreFinal.innerHTML = "";
  
 for (var i=0;i<node.length;i++)
  {
     if (typeof(node[i])!='undefined')
     {
    	node[i].className = 'universCategorie';
		univers = node[i].cloneNode(1);	
		
		/*univers.style.width = parseInt(univers.firstChild.nodeValue.length*6)+'px';	*/
		
		if(univers.firstChild!=null)
		{
			if (univers.getElementsByTagName('UL').length>0)
			{
				univers.onmouseout = function ()
    	 		{
		 			var elementMask = this.getElementsByTagName('UL')[0].id;
					document.getElementById(elementMask).style.display='none';
					displayComboBox();
    	 		}
		 
    	 		univers.onmouseover = function ()
    	 		{    				 			 	 
		 	 		noDisplayComboBox();
		 	 		this.getElementsByTagName('UL')[0].id = 'v'+this.getElementsByTagName('UL')[0].id;
    		 		var id = this.getElementsByTagName('UL')[0].id;
    		 		var li = this.getElementsByTagName('UL')[0].childNodes;			 
    		 		for(var j=0;j<li.length;j++)
    		 		{
    					if (typeof(li[j].id)!='undefined')
    			 		{
    						 li[j].onclick = function ()
    				 		{ 
    							var categorie = this.id.substring(3,this.id.length);
        						window.location.href = '/catalogue.php?cat='+categorie; 
    				 		}
    			 		}
    		 		}
					document.getElementById(id).style.display='block';
		 		}
		 	}
			arbreFinal.appendChild(univers);	 	
	 	}
	 }
  }
}


function selectChangeURL()
{
var sUrl = arguments[0];
var sType = arguments[1];
var sWait = arguments[2];

	if ((sType==1)&&(sUrl!='')){
		window.location.href = sUrl;
	}else if ((sType==2)&&(sUrl!='')){
		submitForm('',sUrl,'',sWait);
	}
}

function parseResult(sString,sDiv)
{
	var sChaine = document.getElementById(sDiv).innerHTML;
	var n = sChaine.indexOf(sString,-1);
 	if (n>=-1)
 	{
	var reg=new RegExp(sString, "gi");
	document.getElementById(sDiv).innerHTML = sChaine.replace(reg,"<SPAN class=\"surligne\">"+sString+"</SPAN>");
	}
}
