/**
* Auteur : Sébastien Braissant - The DevTowah
* Date de création : 10/04/2009
**/

var timer;
var offtop = 0;

function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}


function followScroll () {
	if ((document.getElementById("RightMenu")) && (document.getElementById("paramForm").elements["page"].value != "food") && 
			(document.getElementById("paramForm").elements["page"].value != "cosmetics")) {
  	if (offtop == 0)
  		offtop = document.getElementById("RightMenu").offsetTop;
  	var toppix = document.getElementById("RightMenu").style.top;
  	var margeT = "";
  	var TopScroll = f_scrollTop();
  	var dif = TopScroll - offtop;
  	if (TopScroll > offtop) {
  		var ttop = (TopScroll - offtop) + 5;
  		document.getElementById("RightMenu").style.marginTop = ttop + "px";
  	}
  	else
  		document.getElementById("RightMenu").style.marginTop = "0px";
  	timer=window.setTimeout("followScroll()",1);
	}
}

function stoptimer()
{
  window.clearTimeout(timer);
}

function setFooter () {
	var footerTop = document.getElementById("footer").offsetTop;
	var decalage = 0;
	if (navigator.userAgent.match("MSIE"))
		decalage = 6;
	else
		decalage = 6;
	
	var textTop = footerTop + decalage;
	document.getElementById("footerLegend").style.top = textTop.toString() + "px";
}

/**
* fonction getXhr() qui crée et retourne un objet XMLHTTPRequest
*
* @return object xhr;
**/
function getXhr(){
	var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
	   xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
	   try {
       xhr = new ActiveXObject("Msxml2.XMLHTTP");
  	 } catch (e) {
       xhr = new ActiveXObject("Microsoft.XMLHTTP");
  	 }
	}
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	   xhr = false; 
	} 
	return xhr;
}

/*function strReplace (cherche,remplace,chaine) {

}*/

function change_url_lang (lien,langu) {
	old_url = document.getElementById(lien).href;
  tmp = old_url.split("/");
  tmp[tmp.length - 2] = langu.toLowerCase();
  document.getElementById(lien).href = tmp.join("/");
}

/**
* fonction fadeSwitch() qui change le contenu d'un élément html (div de préférence) en faisant un fade-out puis un fade-in
*
* @param item élément html dont le contenu va être changé
* @param fill nouvenu contenu pour l'élément html
**/
function fadeSwitch (item,fill) {
	
	if (navigator.userAgent.match("MSIE") && !navigator.userAgent.match("Opera")) { // MSIE
		var opacity = new Array("10","20","30","40","50","60","70","80","90","100");
	}
	else {						// Les autres
		var opacity = new Array("0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1.0");
	}
	var a = 9;
	var h = 0;
	var tmp1 = "";
	var tmp2 = "";
	var time_step = 50; //36
	var delai = 0;
	for (i = opacity.length-1;i >= 0;i--) {
		delai += time_step;
		if (!navigator.userAgent.match("MSIE"))
			window.setTimeout('document.getElementById("'+item+'").style.opacity = "'+opacity[i]+'";',delai);
		else
			window.setTimeout('document.getElementById("'+item+'").filters.alpha.opacity = "'+opacity[i]+'";',delai);
	}
	// On rajoute un backslash avant les guillemets
	/*var longueur = fill.length;
	for (var i=0;i < longueur;i++) {
		if (fill.charAt(i) == '"') {
			tmp1 = fill.slice(0,i);
			tmp2 = fill.slice(i);
			fill = tmp1 + "\\" + tmp2;
			i++;
			longueur = fill.length;
		}
	}*/
	// On rajoute un backslash avant les apostrophes
	var longueur = fill.length;
	for (var i=0;i < longueur;i++) {
		if (fill.charAt(i) == "'") {
			tmp1 = fill.slice(0,i);
			tmp2 = fill.slice(i);
			fill = tmp1 + "\\" + tmp2;
			i++;
			longueur = fill.length;
		}
	}
	
	var hop = "document.getElementById('"+item+"').innerHTML = '"+fill+"';";
	window.setTimeout(hop,delai);
	window.setTimeout("setFooter();",delai);
	//document.getElementById(item).innerHTML = fill;
	for (i = 0;i < opacity.length;i++) {
		delai += time_step;
		if (!navigator.userAgent.match("MSIE"))
			window.setTimeout('document.getElementById("'+item+'").style.opacity = '+opacity[i]+';',delai);
		else
			window.setTimeout('document.getElementById("'+item+'").filters.alpha.opacity = '+opacity[i]+';',delai);
	}
}

/**
* fonction change_language () qui change la langue du site sans recharger complètement la page (elle change aussi le flag de langue)
*
* @param langue la langue dans laquelle le site doit s'afficher
**/
function change_language (langue) {
	var xhr = getXhr();
	document.body.style.cursor = 'progress';
	var llink = "link" + langue;
	var alink = "link" + document.getElementById("paramForm").elements["currentLang"].value;
	
	document.getElementById("currentLang").value = langue;
	document.getElementById(alink).className = "lang";
	document.getElementById(llink).className = "lang-active";
	document.getElementById(llink).blur();
	
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			document.body.style.cursor = 'auto';
			var reponse = xhr.responseText;
			reponse = reponse.replace('&amp;oelig;','œ');
			var res = reponse.split("~");
			
			switch (res[0]) {
				case "OK"			 : var fields = res[1].split("|");
												 var fills = res[2].split("|");
												 for (var i=0;i < fields.length;i++) {
													 if (document.getElementById(fields[i])) {
													 	 if (navigator.userAgent.match("MSIE") || document.getElementById("paramForm").elements["page"].value == "press")
													 	 	 document.getElementById(fields[i]).innerHTML = fills[i];
													 	 else
													 	 	 fadeSwitch(fields[i],fills[i]);
													 }
												 }
												 //window.setTimeout('window.location.href="'+res[3]+'";',1200);
												 document.title = "Attitude Bio - " + res[3].replace(/&Uuml;/,"Ü");
												 if (document.getElementById("homelink_food"))
												 	change_url_lang("homelink_food",langue);
												 if (document.getElementById("homelink_cosmetics"))
												 	change_url_lang("homelink_cosmetics",langue);
												 if (document.getElementById("paramForm").elements["page"].value == "home") {
												 	 window.location.replace('http://www.attitude-bio.com/'+langue.toLowerCase()+'/'+res[3].toLowerCase()+'.html');
											 	   /*var tmp = fills[3].replace("<br/>"," ");
											 	   while (tmp.match("&eacute;"))
											 	 	 tmp = tmp.replace("&eacute;","é");
											 	   document.getElementById("img_news").alt = tmp;
											 	 	 document.getElementById("img_news").title = tmp;*/
												 }
												 setFooter();
												 break;
				case "NO_LANG" : 
												 break;
				case "NO_PAGE" : 
												 break;
				case "NO_MODE" : 
												 break;
			}
		}
	}
	var execfile = "";
	var section = document.getElementById("paramForm").elements["section"].value;
	switch (section) {
		case "main" : execfile = "http://www.attitude-bio.com/sections/main/execMain.php";
									break;
		case "user" : execfile = "http://www.attitude-bio.com/sections/user/execUser.php";
									break;
		case "shop" : execfile = "http://www.attitude-bio.com/sections/shop/execShop.php";
									break;
		default 	  : break;
	}
	
	// Ici on va voir comment faire du post
	xhr.open("POST",execfile,true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	var params = "lang=" + langue;
	params += "&page=" + document.getElementById("paramForm").elements["page"].value;
	if (document.getElementById("paramForm").elements["category_id"].value != "")
		params += "&category_id=" + document.getElementById("paramForm").elements["category_id"].value;
	if (document.getElementById("paramForm").elements["product_id"].value != "")
		params += "&product_id=" + document.getElementById("paramForm").elements["product_id"].value;
	if (document.getElementById("paramForm").elements["mf_id"].value != "")
		params += "&mf_id=" + document.getElementById("paramForm").elements["mf_id"].value;
	if (document.getElementById("paramForm").elements["news_id"].value != "")
		params += "&news_id=" + document.getElementById("paramForm").elements["news_id"].value;
	if (document.getElementById("paramForm").elements["chapter"].value != "")
		params += "&chapter=" + document.getElementById("paramForm").elements["chapter"].value;
	params += "&mode=PICK_LANG";
	xhr.send(params);
}

function showNews (nid) {
	var xhr = getXhr();
	document.body.style.cursor = 'progress';
	
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200) {
			document.body.style.cursor = 'auto';
			var reponse = xhr.responseText;
			var res = reponse.split("~");
			
			switch (res[0]) {
				case "OK"			 : document.getElementById("homeNews").innerHTML = res[1];
												 /*for (var i=0;i < fields.length;i++)
												 	 fadeSwitch(fields[i],fills[i]);
												 if (nid == 1)
												 	onid = 2;
												 else onid = 1;
												 document.getElementById("newsNext_link").href = "javascript:showNews("+onid+");";
												 document.getElementById("newsPrev_link").href = "javascript:showNews("+onid+");";*/
												 document.getElementById("paramForm").elements["news_id"].value = nid;
												 setFooter();
												 break;
				case "NO_LANG" : 
												 break;
				case "NO_MODE" : 
												 break;
			}
		}
	}
	
	// Ici on va voir comment faire du post
	xhr.open("POST","http://www.attitude-bio.com/sections/main/execMain.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	var params = "lang=" + document.getElementById("paramForm").elements["currentLang"].value;
	params += "&news_id=" + nid;
	params += "&mode=SHOW_NEWS";
	xhr.send(params);
	
}

function showChapter (page,chapter,docWidth) {
	var xhr = getXhr();
	document.body.style.cursor = 'progress';
	
	var formu = page + "Form";
	var active_field = page + "_active";
	var TitleToShow = "title_" + chapter;
	var TextToShow = "text_" + chapter;
	var TitleToHide = "title_" + document.getElementById(formu).elements[active_field].value;
	var TextToHide = "text_" + document.getElementById(formu).elements[active_field].value;
	
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			document.body.style.cursor = 'auto';
			var reponse = xhr.responseText;
			
			if (document.getElementById(TitleToHide))
    		document.getElementById(TitleToHide).style.display = "none";
    	if (document.getElementById(TextToHide))
    		document.getElementById(TextToHide).style.display = "none";
    	if (document.getElementById(TitleToShow))
    		document.getElementById(TitleToShow).style.display = "block";
    	if (document.getElementById(TextToShow))
    		document.getElementById(TextToShow).style.display = "block";
    	
    	document.getElementById("breadcrumb").innerHTML = reponse;
    	if (navigator.userAgent.match("MSIE"))
    		document.getElementById("intro_contact").className = "textesimple";
    	
    	document.getElementById(formu).elements[active_field].value = chapter;
    	if (document.body.scrollTop > 282)
    		window.scrollTo(0,282);
    
    	document.getElementById("paramForm").elements["chapter"].value = chapter;
    	setFooter();
		}
	}
	
  // Ici on va voir comment faire du post
	xhr.open("POST","http://www.attitude-bio.com/sections/main/execMain.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	var params = "lang=" + document.getElementById("paramForm").elements["currentLang"].value;
	params += "&page=" + document.getElementById("paramForm").elements["page"].value;
	params += "&chapter=" + chapter;
	params += "&mode=GET_BC";
	xhr.send(params);
}

function showComposition () {
	if (document.getElementById("prod_compo").style.display == "none") {
		document.getElementById("compo_link").style.backgroundPosition = "0px -8px";
		document.getElementById("prod_compo").style.display = "block";
		/*var h = document.getElementById("col1").offsetHeight;
  	document.getElementById("img_prod").style.height = h.toString() + "px";*/
	}
	else {
		document.getElementById("compo_link").style.backgroundPosition = "0px 0px";
		document.getElementById("prod_compo").style.display = "none";
		//document.getElementById("img_prod").style.height = "100%"
	}
  var h = document.getElementById("col1").offsetHeight;
  document.getElementById("img_prod").style.height = h.toString() + "px";	
}

function showAllsub (base_id) {
	var small_id = base_id + "_small_list";
	var full_id = base_id + "_full_list";
	
  if (document.getElementById(small_id) && document.getElementById(full_id)) {
  	if (document.getElementById(small_id).style.display == "none") {
  		document.getElementById(small_id).style.display = "block";
  		document.getElementById(full_id).style.display = "none";
  	}
  	else {
  		document.getElementById(small_id).style.display = "none";
  		document.getElementById(full_id).style.display = "block";
  	}
  }
}

function find_sellpoints () {
	var xhr = getXhr();
	document.body.style.cursor = 'progress';
	
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			document.body.style.cursor = 'auto';
			var reponse = xhr.responseText;
			var res = reponse.split("~");
	    	
			switch (res[0]) {
				case "OK"	 	: document.getElementById("sellpoints_result").innerHTML = res[1];
								  break;
				case "NFOUND" 	: alert("Aucun point de vente trouvé dans un rayon de 20km.")
					  			  break;
				case "NO_ZIP" 	: alert("Ce code postal n'existe pas en Suisse.");
					  			  break;
				case "PARAMS" 	: alert("Erreur de paramètres.");
					  			  break;
				default			: break;
			}
	    	
	    	if (document.body.scrollTop > 282)
	    		window.scrollTo(0,282);
	    	setFooter();
		}
	}
	
	// Ici on va voir comment faire du post
	xhr.open("POST","http://www.attitude-bio.com/sections/shop/execShop.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	var mf_name = document.getElementById("pdvForm").elements["trademark"].value;
	while (mf_name.match("&"))
		mf_name = mf_name.replace("&","{_amp}");
	var params = "lang=" + document.getElementById("paramForm").elements["currentLang"].value;
	params += "&zip=" + parseInt(document.getElementById("pdvForm").elements["zip"].value).toString();
	params += "&mf_name=" + mf_name;
	params += "&mode=FIND_SELLPOINTS";
	xhr.send(params);
}

function GoEnter(event) {
	// Compatibilité IE / Firefox
	if(!event && window.event) {
		event = window.event;
	}
	// IE
	if(event.keyCode == 13) {
	    event.returnValue = false;
	    event.cancelBubble = true;
	    find_sellpoints();
	}
	// DOM
	if(event.which == 13) {
	    event.preventDefault();
	    event.stopPropagation();
	    find_sellpoints();
	}
}

function MouseOverMenu (item) {
	document.getElementById(item).style.marginTop = "-1px";
	document.getElementById(item).style.width = "102px";
	document.getElementById(item).style.height = "23px";
	document.getElementById(item).style.backgroundPosition = "0px -22px";
}

function MouseOutMenu (item) {
	if (item != (document.getElementById("paramForm").elements["page"].value + "Link")) {
  	document.getElementById(item).style.marginTop = "0px";
  	document.getElementById(item).style.width = "101px";
  	document.getElementById(item).style.height = "22px";
  	document.getElementById(item).style.backgroundPosition = "0px 0px";
	}
}

function MenuSetActive (page) {
	var item = page + "Link";
	//var oldActive = 
	//document.getElementById("paramForm").elements["topActive"].value = page;
	document.getElementById(item).style.marginTop = "-1px";
	document.getElementById(item).style.width = "102px";
	document.getElementById(item).style.height = "23px";
	document.getElementById(item).style.backgroundPosition = "0px -22px";
}

function MouseOverProd (item) {
	var leftpos = document.getElementById("contentOuter").offsetLeft + 199 + document.getElementById(item).offsetLeft;
	var paf = 0;
	if (navigator.userAgent.match("Firefox"))
		paf = 0;
	var toppos = document.getElementById("contentOuter").offsetTop + paf + document.getElementById(item).offsetTop;
	
	document.getElementById("over_mask").style.display = 'block';
	document.getElementById("over_mask").style.left = leftpos.toString() + 'px';
	document.getElementById("over_mask").style.top = toppos.toString() + 'px';
	document.getElementById("over_mask").setAttribute("onclick","alert('"+item+"')","false");
	document.getElementById("over_mask").setAttribute("onmouseout","MouseOutProd()","false");
	document.getElementById("over_mask").setAttribute("onmouseover","MouseOverProd('"+item+"')","false");
}

function MouseOutProd () {
	document.getElementById("over_mask").style.display = 'none';
	document.getElementById("over_mask").style.left = '1px';
	document.getElementById("over_mask").style.top = '1px';
	document.getElementById("over_mask").setAttribute("onclick","","false");
}

function MouseOverIE (elem_id) {
	if (navigator.userAgent.match("MSIE")) {
		switch (elem_id) {
			case "newsNext" 		: 
			case "newsPrev" 		: document.getElementById(elem_id).style.backgroundPosition = "0px -29px";
									  break;
			case "link_spirit"  	: 
			case "link_partners"	: 
			case "link_info" 		: 
			case "link_direction" 	: 
			case "link_food" 		: 
			case "link_sellpoint" 	: 
			case "link_cosmetics"	: document.getElementById(elem_id).style.backgroundPosition = "0px -40px";
									  break;
			case "link_search_sp"	: document.getElementById(elem_id).style.backgroundPosition = "0px -30px";
			default					: break;
		}
	}
}

function MouseOutIE (elem_id) {
	if (navigator.userAgent.match("MSIE")) {
		switch (elem_id) {
			case "newsNext" 		: 
			case "newsPrev" 		: document.getElementById(elem_id).style.backgroundPosition = "";
									  break;
			case "link_spirit"  	: 
			case "link_partners"  	: 
			case "link_info" 		: 
			case "link_direction" 	: 
			case "link_food" 		: 
			case "link_sellpoint" 	: 
			case "link_search_sp"	: 
			case "link_cosmetics"	: document.getElementById(elem_id).style.backgroundPosition = "";
									  break;
			default					: break;
		}
	}
}
