
var DEFAULT_WAITING_MESSAGE = "Chargement de la page en cours";
var docRoot = "";
var WebsiteURL = "http://www.laprocure.com/"; /*http://laProcure.nouvellevague.fr/ http://www.laprocure.com/*/
var rootWebSite = "http://www.laprocure.com/";


if (document.layers) { // Netscape
    document.captureEvents(event.MOUSEMOVE);
} else if (document.all) { // Internet Explorer
    document.onmousemove = captureMousePosition;
} else if (document.getElementById) { // Netcsape 6
    document.onmousemove = captureMousePosition;
    if (navigator.userAgent.indexOf('Safari',0)>0) document.onclick=captureMousePosition;
}


//fonction qui retourne la heuteur d'un DIV
function getDivHeight(DivObj)
{
		if (DivObj.scrollheight)
		{
			retHeight = DivObj.scrollheight;
		}
		else
		{
			retHeight = DivObj.offsetHeight;
		}
		return retHeight;
}



//fonction qui retourne la largeur d'un DIV
function getDivWidth(DivObj)
{
		if (DivObj.scrollwidth)
		{
			retWidth = DivObj.scrollwidth;
		}
		else
		{
			retWidth = DivObj.offsetWidth;
		}
		return retWidth;
}



function captureMousePosition(e) {
    if (document.layers)
    {
        xMousePos = e.pageX;
        yMousePos = e.pageY;
        xMousePosMax = window.innerWidth+window.pageXOffset;
        yMousePosMax = window.innerHeight+window.pageYOffset;
    }
    else if (document.all)
    {
    	if (document.body) 
    	{
    		if ((navigator.appVersion.indexOf('Mac',0))>0) 
    		{
    			xMousePos = event.x+document.body.scrollLeft; 
     			yMousePos = event.y+document.body.scrollTop; 
     			//xMousePosMax = document.body.clientWidth+document.body.scrollLeft;
     			xMousePosMax = document.body.clientWidth;
	        	yMousePosMax = document.body.clientHeight+document.body.scrollTop;
    		} 
    		else if ((document.body.scrollLeft == 0) && (document.body.scrollTop == 0)) 
    		{
					xMousePos = window.event.x+document.documentElement.scrollLeft;
		        yMousePos = window.event.y+document.documentElement.scrollTop;
		        xMousePosMax = document.body.clientWidth+document.documentElement.scrollLeft;
	        	yMousePosMax = document.body.clientHeight+document.documentElement.scrollTop;
	      } 
	      else 
	      {
		       	xMousePos = window.event.x+document.body.scrollLeft;
		        yMousePos = window.event.y+document.body.scrollTop;
	    		xMousePosMax = document.body.clientWidth+document.body.scrollLeft;
	        	yMousePosMax = document.body.clientHeight+document.body.scrollTop;
				}
			}
    	} 
    	else if (document.getElementById) 
    	{
        // Netscape 6 behaves the same as Netscape 4 in this regard 
        xMousePos = e.pageX;
        yMousePos = e.pageY;
        xMousePosMax = window.innerWidth+window.pageXOffset;
        yMousePosMax = window.innerHeight+window.pageYOffset;
    }
}

//=====================================================================================
//===============================        XHR           ================================
//=====================================================================================
/*
		Objet javascript permettant de gérer les fonctionnalités du XMLHTTPRequest
*/	
function XHR()
{  
	var xhr_object = null;
	// si Firefox 
	if(window.XMLHttpRequest) 
	{
		xhr_object = new XMLHttpRequest()
	} // Sinon si Internt Explorer .... beurk
	else if(window.ActiveXObject) 
	{
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	} // XMLHttpRequest non supporte par le navigateur 
	else 
	{
		xhr_object = null;
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	}

	return xhr_object;
}	// End function XHR() 


//=====================================================================================


// charge le contenu dynamique d'une page et l'ecrit dans un div à l'aide de l'objet XHR()
function LoadContent(menu,TAGID,waitingMsg,MoreAction) 
{

	var MyXhr = new XHR();
	var url = menu;
	MyXhr.open("POST", url, true);
	
	MyXhr.onreadystatechange = function() 
	{
		if(MyXhr.readyState == 4 ) 
		{
			
			if (MyXhr.status == 200)
			{
				var objMain=document.getElementById(TAGID);
				
				if (objMain != null)
				{
					objMain.innerHTML = MyXhr.responseText;
					
				}
				
				if (MoreAction && MoreAction.length > 0)
				{				eval(MoreAction);			}
			}
			else
			{
				ShowDebugMsg(MyXhr.responseText)
			}
		}	
	}
	if (waitingMsg!=undefined && waitingMsg!='')
	{
		//ShowWaitingMessage(waitingMsg,TAGID);
	}
		else
	{
		//ShowWaitingMessage(DEFAULT_WAITING_MESSAGE,TAGID);
	}
	
	MyXhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	MyXhr.send("");
	
}	// End function LoadContent() 

//=====================================================================================
//Add le 22/03/2007 par D.Guillard
//Redidirge vers la page indiqué par le XHR, ou affiche un message d'erreur si le XHR renvoi un resultat null
function RedirectionContent(menu,TAGID,Reference,errorMsg1,errorMsg2,errorSecondtest,MoreAction) 
{

	var MyXhr = new XHR();
	var url = menu;
	MyXhr.open("POST", url, true);
	
	MyXhr.onreadystatechange = function() 
	{
		if(MyXhr.readyState == 4 ) 
		{
			
			if (MyXhr.status == 200)
			{
				var objMain=document.getElementById(TAGID);
				//Si le XHR n'est pas null, on redirige
				if (objMain != null)
				{
					xt_mtcl = Reference;        //keyword value
					
					if (MyXhr.responseText != "")
					{
					
						if (MyXhr.responseText != errorSecondtest)
						{
							xt_npg = "1";        //result page number (0 when no result)
	
		
							if (window.xtparam!=null){window.xtparam+="&mc="+xt_mtcl+"&np="+xt_npg;}
							else{window.xtparam ="&mc="+xt_mtcl+"&np="+xt_npg;};
						
							document.write('<scr' + 'ipt type="text/javascript" src="' + WebsiteURL + 'j/xiti/xtcore.js"></scr' + 'ipt>')
							
							document.location.href = MyXhr.responseText; //Redirection
						} else {
							xt_npg = "0";        //result page number (0 when no result)
	
							if (window.xtparam!=null){window.xtparam+="&mc="+xt_mtcl+"&np="+xt_npg;}
							else{window.xtparam ="&mc="+xt_mtcl+"&np="+xt_npg;};
							
							document.write('<scr' + 'ipt type="text/javascript" src="' + WebsiteURL + 'j/xiti/xtcore.js"></scr' + 'ipt>')
							
							objMain.innerHTML = errorMsg2; //Message d'erreur
						}
					} else {
					//Sinon, on renvoi un message d'erreur
					objMain.innerHTML = errorMsg1;
					}
				}
				
				eval(MoreAction);			
			}
			else
			{
				ShowDebugMsg(MyXhr.responseText)
			}
		}	
	}

	
	MyXhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	MyXhr.send("");
	
}	// End function LoadContent() 


//=====================================================================================

//=====================================================================================
//Add le 22/03/2007 par D.Guillard
//Test le numero de carte et renvoi vers deux traitement different suivant la validité du numero saisi
// ==> numCarteBon / numCarteFaux 
function Check_CarteProcure_byXHR(url, funcGood, funcFalse) 
{
	var MyXhr = new XHR();
	MyXhr.open("POST", rootWebSite + url, true);
	
	MyXhr.onreadystatechange = function() 
	{
		if(MyXhr.readyState == 4 ) 
		{
				if (MyXhr.responseText == 1)
				{
					funcGood();
				}
				else
				{
					funcFalse(MyXhr.responseText);
				}
		}	
	}

	MyXhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	MyXhr.send("");
}	// End function LoadContent() 

//¤¤¤¤¤ Si le numéro saisi n'est pas valide ¤¤¤¤¤
function numCarteFaux(flagFalse)
{
	//on test la validité du formulaire
	valid.validate()
	
	//Message d'erreur
	if (flagFalse == "-2")
	{
		document.getElementById('error_adh_num').innerHTML="Attention, le numero de carte n existe pas.";
		document.getElementById('error_adh_num').style.color="red";
	} else {
		document.getElementById('error_adh_num').innerHTML="Attention, le numero de carte saisie est perime.";	
		document.getElementById('error_adh_num').style.color="red";
	}
}

//¤¤¤¤¤ Si le numéro saisi n'est pas valide ¤¤¤¤¤
function numCarteNoOk(flagFalse)
{
	//Message d'erreur
	if (flagFalse == "-2")
	{
		document.getElementById('error_adh_num').innerHTML="Attention, le numero de carte n existe pas.";
		document.getElementById('error_adh_num').style.color="red";
	} else {
		document.getElementById('error_adh_num').innerHTML="Attention, le numero de carte saisie est perime.";	
		document.getElementById('error_adh_num').style.color="red";
	}
}

//¤¤¤¤¤ Si le numéro saisi est valide ¤¤¤¤¤
function numCarteBon()
{	
	ValidAndSubmitForm(valid,'AccountForm');
}

//¤¤¤¤¤ Effectue une validation et un submit du formulaire ( 01/02/2008, par d.guillard) ¤¤¤¤¤¤¤
function ValidAndSubmitForm(objValid,FormID)
{
	//on test la validité du formulaire
	if(objValid.validate())
	{
		// si valide, on soumet le formulaire
		document.getElementById(FormID).submit();
	}
}

//¤¤¤¤¤ Si le numéro saisi est valide ¤¤¤¤¤
function numCarteOk()
{	
	//on reinitialise le label erreur
		if (document.getElementById('u_adh_num').value!= '')
		{
			document.getElementById('error_adh_num').innerHTML="Numero de carte valide";
			document.getElementById('error_adh_num').style.color="green";
		} else {
			document.getElementById('error_adh_num').innerHTML="";
		}	
}

//=====================================================================================

//Poste un formulaire via HTTPRequest
function PostForm(formName,url,TAGID,waitingMsg) 
{
	var MyXhr = new XHR();
	MyXhr.open("POST", url, true);
	
	MyXhr.onreadystatechange = function() 
	{
		if(MyXhr.readyState == 4) 
		{
			if (MyXhr.status==200)
			{
				var objMain = document.getElementById(TAGID);
				objMain.innerHTML = MyXhr.responseText;
			}
			else
			{
				ShowDebugMsg(MyXhr.responseText)
			}

			// si on est dans le cas d'une recherche, on regarde ensuite parmi le resultat 
			// de recherche quels elements sont selectionne et on active les checkbox correspondantes 

			initXHRLink();
		}
	}
	
	MyXhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	var dataObj = document.getElementById(formName);
	var dataStr = "?send=ok";

	for (nbElt=0;nbElt<dataObj.elements.length;nbElt++) 
	{
		if (dataObj.elements[nbElt].type=="checkbox")
		{
			var Elt = dataObj.elements[nbElt]
			if (Elt.checked)
			{
				dataStr+= "&" + dataObj.elements[nbElt].name + "=" + dataObj.elements[nbElt].value;
			}
		}
	else
		{
			dataStr+= "&" + dataObj.elements[nbElt].name + "=" + dataObj.elements[nbElt].value;
		}
	}
	MyXhr.send(dataStr);
	if (waitingMsg!=undefined)
	{
		ShowWaitingMessage(waitingMsg);
	}
		else
	{
		ShowWaitingMessage(DEFAULT_WAITING_MESSAGE);
	}
	
	
} // END function PostForm(formName,url) 



//=====================================================================================
// Affiche le résulat d'une requete HTTPRequest dans un DIV de debug
function ShowDebugMsg(msg)
{
	var objMain=document.getElementById("debug");
	objMain.innerHTML = msg;
}
//=====================================================================================
// FIN  function ShowDebugMsg



//=====================================================================================
//===============================     FIN  XHR           ================================
//=====================================================================================






//=====================================================================================
//Affiche un message d'attente pendant qu'une recherche est effectuee
//de maniere asynchrone
function ShowWaitingMessage(message,TAGID)
{
	var newHTML="";
	var objMain=document.getElementById(TAGID);
	
	if (objMail)
	{
		newHTML += "<p><br><br>" + message + "<br><br>";
		newHTML += "<img src=\"" + docRoot + "/i/waiting.gif\"></p>";
	
		objMain.innerHTML = newHTML;
		return true;
	}
	else
	{
		return false;
	}
	
}
// FIN  function ShowWaitingMessage
//=====================================================================================






//=====================================================================================
// Cette fonction parse un contenu HTML, récupère tous les liens et ajoute un évènement onclick sur chacun d'eux
// Permet d'utiliser XHR sous forme d'un lien simple
function initXHRLink()
{
	if (!document.getElementsByTagName){ return; }
	var anchors = document.getElementsByTagName("a");

	// loop through all anchor tags
	for (var i=0; i<anchors.length; i++) 
	{
		var anchor = anchors[i];

		if (anchor.getAttribute("href") && (anchor.getAttribute("type") == "XHRLink"))
		{
			anchor.onclick = function () 
			{
				LoadContent(this.href,'main');
				return false;
			}
		}
	}
}

// FIN  function initXHRLink
//=====================================================================================



//=====================================================================================

function addLoadEvent(func)
{	
	var oldonload = window.onload;
	
	if (typeof window.onload != 'function') 
	{
    	window.onload = func;
	}
	else 
	{
		window.onload = function() 
		{
			oldonload();
			func();
		}
	}
}
	
addLoadEvent(initXHRLink);	// lance l'analyse des liens



function showTextFor(idBlocToShow, myLink)
{
	var myBloc = document.getElementById(idBlocToShow);
	var posSharp =  myLink.href.indexOf("#",0) + 1;
	var curMode = myLink.href.substring(posSharp, myLink.href.length - 1);
	var pos  = myLink.href.substring(myLink.href.length - 1,myLink.href.length);
	

	
	if (curMode != "lire")
	{
	
		myLink.href = "#lire" + pos;
		myLink.innerHTML = "Lire la suite >";
		myLink.className ="";
		
		myBloc.style.display = "none";
		
	}
	else
	{
		closeOtherText();
		
		myLink.href = "#mask" + pos;
		myLink.innerHTML = "< Masquer le texte";
		myLink.className ="al-dr";
		
		myBloc.style.display = "block";
		myBloc.style.backgroundColor = "#FBFAFA";
		myBloc.style.borderBottom ="3px double #eee";
		myBloc.style.borderTop = "3px double #eee";
		
		
		if (document.getElementById('evt_img' + pos))
		{
			myBloc.style.marginRight = '120px';
			myLink.style.marginRight = '120px';
		}
	}
}


function closeOtherText()
{
	var allLink = document.getElementsByTagName("a");
	
	for(var i = 0; i < allLink.length - 1; i++)
	{
		currentLink = allLink[i];
		curMode = currentLink.href.substring(currentLink.href.indexOf("#",0) + 1, currentLink.href.length - 1);
		if(curMode == "mask")
		{
			pos = currentLink.href.substring(currentLink.href.length - 1,currentLink.href.length);
			
			currentLink.href = "#lire" + pos;
			currentLink.className ="";
			currentLink.innerHTML = "Lire la suite >";
			document.getElementById('evt_text' + pos).style.display = "none";
		}
	}
}

// Cete fonction javascript va se diviser en 3 étapes
// 1- affichage d'une temporisation, 
// 2- Chargement du nouveau contenu 
// 3- Mise à jour de la taille de la box (Elle ne doit jamais diminuer)
function navInBloc(idBloc, paramAdd, Page, nbItem_byPage, idAHREF_click)
{
	var MyXhr = new last_httpRequest(docRoot + '/ajax/ajax_request.aspx', paramAdd + '&page=' + Page + '&nbItem_byPage=' + nbItem_byPage, 'POST');
	var curElement = document.getElementById(idBloc);

	// Récupération et/ou assignation de la hauteur de la box
	/*if (curElement.parentNode.style.height.length < 3)
	{
		parentCur.style.height = CurHeight + 'px';
	}
	else
	{
		CurHeight = parentCur.style.height.substr(0,parentCur.style.height.length - 2);
	}*/

	
	curElement.style.backgroundColor = "#E5E5E5";
	curElement.innerHTML = "<img src='/i/loading.gif' width='20px'/> Chargement en cours" 
	
	
	// XHR start
	MyXhr.createRequestObject();
	MyXhr.sendGetReq();
	MyXhr.xmlHttp.onreadystatechange = function() 
	{	
		if(MyXhr.xmlHttp.readyState == 4 ) 
		{
		
			if (MyXhr.xmlHttp.status == 200)
			{
				var htmlRetour = MyXhr.xmlHttp.responseText;
	
				if (curElement)
				{
			
					curElement.innerHTML = htmlRetour;
					curElement.style.backgroundColor = "transparent";
					
					// on met à jour la taille de la box après intégration du new HTML
					/*
					
					if (CurHeight <= curElement.parentNode.scrollHeight)
					{
						CurHeight = parentCur.scrollHeight;
					}


					parentCur.style.height   = CurHeight + 'px';						
					parentCur.style.overflow = 'visible';
					
					heightH3 = 0;
					heightDIV = 0;
					
					for(var i=0;i< parentCur.childNodes.length;i++)
					{ 
						if (parentCur.childNodes[i].tagName == 'H3')
						{heightH3 = parentCur.childNodes[i].offsetHeight}
						else
						{heightDIV = parentCur.childNodes[i].offsetHeight}
					}
					
					heightUse = 0;
					nodeDivClearBoth = curElement;
					for(var i=0;i< curElement.childNodes.length;i++)
					{ 
						if (curElement.childNodes[i].className == 'clearBoth')
						{nodeDivClearBoth = curElement.childNodes[i];}
						else 
						{heightUse += curElement.childNodes[i].offsetHeight;}
					}*/
					
					 /*
					 if((CurHeight - heightDIV - heightH3) > 0)
					 {
						nodeDivClearBoth.style.height = (CurHeight - heightDIV - heightH3) + 'px';
						nodeDivClearBoth.innerHTML = '&nbsp;';
					 }
					 else
					 {
						parentCur.style.height   = (heightDIV + heightH3) + 'px';
						nodeDivClearBoth.style.height = '0px'; 
						nodeDivClearBoth.innerHTML = '';	
					 }*/
	
				}
			}
			else
			{
				ShowDebugMsg(MyXhr.responseText)
			}
		}	
	}
}   

//=====================================================================================
//Fonction qui met à jour la demande de dédicace pour une ligne panier,
// apres avoir controlé le formulaire
function verifForm_dedicace(curForm)
{
	var m_content = curForm.content_forDedicace;
	var m_check = curForm.check_forDedicace;
	var reussite = true;
	var myAlert = "Merci de renseigner : \n";
	
	if ((m_check.checked) && m_content.value.length == 0)
	{
		myAlert += "- votre demande de dédicace. \n";
		reussite = false;
	}
	
	
	if (!reussite)
	{
		alert(myAlert);
	}

	return reussite
}
//=====================================================================================

// ¤¤¤¤¤¤¤¤¤ ZONE BACKOFFICE AVIS LECTEUR ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤//
//=====================================================================================
//Fonction qui met à jour un avis par XHR
// idTask : 0 - Modération | 1 - Bloquer | 2 - Archiver | 3 - En Ligne
function UpdateThisAvis_byAjax(idAvis,idTask,from)
{
		
		// on se rend via AJAX airline dans le processus de maj		
		URIpath = docRoot + '/ajax/ajax_BO_request.aspx?idControl=1&doTask=' + idTask + '&idAvis=' + idAvis + '&from=' + from; 	  
	
		// Les parametres du Filtre si on viens du listing des avis
		if (from == 'avis')
		{
			ParamFilter = '&ajax_txtRechercheEAN=' + document.getElementById('ctl00_txtRechercheEAN').value;
			ParamFilter += '&ajax_cboEtat=' + document.getElementById("ctl00_cboEtat").options[document.getElementById("ctl00_cboEtat").selectedIndex].value;
			ParamFilter += '&ajax_cboModeration=' + document.getElementById("ctl00_cboModeration").options[document.getElementById("ctl00_cboModeration").selectedIndex].value;
			ParamFilter += '&ajax_cboStatut=' + document.getElementById("ctl00_cboStatut").options[document.getElementById("ctl00_cboStatut").selectedIndex].value;
			ParamFilter += '&ajax_page=' + document.getElementById("curPagination").value;
			ParamFilter += '&ajax_typeRayon=' + document.getElementById("curTypeRayon").value;
			ParamFilter += '&ajax_filtre=' + document.getElementById("curFiltre").value;
		
			// puis on effectue le tout
			LoadContent(URIpath + ParamFilter,"ListAvisLecteur","","");
		} else {
			// puis on effectue le tout
			LoadContent(URIpath,"","","document.location.href='../avis/index.aspx';");
		}		
}
//=====================================================================================	
