// design brouillon leshop
var navLeftBeforeFull, navLeftStrs, navLeftBeforeSearch=null;
var displayedMsg;
var windowStatus, roundedInputSearch, busy = false;
var navLeft, navLeftTitle, navLeftFooter, basket, basketHeader, searchMode, navLeftLess = false;
var Body, mainContent, mainContentFrame, mainLoading, userHelp, basketPostIt, navLeftList, basketList, pageOK = false;
var level2As, headerHeight, navLeftHeaderHeight, basketHeaderHeight, buttonFooterHeight;
var basketTotal, basketTotalFrame, basketTotalHeight=200;
var bHBackgroundUrl = "/images/_A0/basket/bH/", bHBackgrounds = 6;
var targetedPos, targetedCatTop; // eric's cookin'
var Ie, IeVersion;

/* ********
   * main *
   ********/
//window.onload = setDesign;
//addEvent(window, 'DOMContentLoaded', setDesign);
addEvent(window, 'DOMContentLoaded', displayLoading);
addEvent(window, 'load', setDesign);
//addEvent(window, 'load', hideLoading);
//window.onresize = resize;
addEvent(window, 'resize', resize);
addEvent(window, 'unload', clearEvent);

/* *************
   * fonctions *
   *************/
function clearEvent() {
	removeEvent(window, 'DOMContentLoaded', displayLoading);
	removeEvent(window, 'load', setDesign);
	removeEvent(window, 'resize', resize);
	removeEvent(window, 'unload', clearEvent);
}
function loadIframe(id,url,count) {
	if (!count||(count==null)) count = 0;
	else count ++;
	if (count >= 60) {
		count = 0;
		return;
	}
	else if (pageOK != true) setTimeout("loadIframe('"+id+"','"+url+"','"+count+"');",250);
	else {
		count = 0;
		document.getElementById(id).src = url;
	}
}
function topMarginRequest(count) {
	if (!count||(count==null)) count = 0;
	else count ++;
	if (count >= 60) {
		count = 0;
		return true;
	}
	else if (!navLeft) setTimeout("topMarginRequest('"+count+"')",250);
	else {
		count = 0;
		if (navLeft.className == "closed") {
			try { mainContentFrameName.increaseTopMargin(buttonFooterHeight);}
			catch(err) {}
		}
		return true;
	}
}
function getBeforeStatus() {
	var toReturn = navLeftBeforeFull;
	navLeftBeforeFull = null;
	return toReturn;
}
function getBeforeSearch() {
	var toReturn = navLeftBeforeSearch;
	return toReturn;
}
function getBasketStatus(count) {
	if (!count||(count==null)) count = 0;
	else count ++;
	if (count >= 60) {
		count = 0;
		return "opened";
	}
	else if (!basket) setTimeout("getBasketStatus('"+count+"')",250);
	else {
		count = 0;
		return basket.className;
	}
}
function displayFullScreen() {
	if (basket.className != "none") {
		navLeftBeforeFull = navLeft.className;
		basket.className = "none";
		navLeft.className = "none";
		mainContent.style.marginLeft = "0px";
		mainContent.style.marginRight = "0px";
		mainLoading.style.width = mainContentFrame.offsetWidth + "px";
		try { mainContentFrameName.restoreTopMargin();}
		catch(err) {}
	}
}
function restoreNavLeftStrs() {
	if ((typeof navLeftStrs != "undefined") || navLeftStrs!=null) {
		var toOpen = getElementsByClassName(navLeftFooter, "div", "toOpen")[0];
		var spanToOpen = toOpen.getElementsByTagName("span")[0];
		var toClose = getElementsByClassName(navLeftFooter, "div", "toClose")[0];
		var spanToClose = toClose.getElementsByTagName("span")[0];
		navLeftTitle.setAttribute('title',navLeftStrs["titleRefineTip"]);
		navLeftTitle.getElementsByTagName("span")[0].firstChild.data = navLeftStrs["titleRefine"];
		navLeftFooter.getElementsByTagName("p")[0].firstChild.data = navLeftStrs["refine"];
		spanToOpen.firstChild.data = navLeftStrs["see"];
		spanToClose.firstChild.data = navLeftStrs["mask"];
		try {
			navLeftListFrameName.refreshNavLeftList();
		}
		catch(err) {}
	}
}
function setNavLeftTitle(title) {
	navLeftTitle.getElementsByTagName("p")[0].firstChild.data = title;
}
function displaySearch(url,titleRefine,titleRefineTip,mask,refine,see) {
	var toOpen = getElementsByClassName(navLeftFooter, "div", "toOpen")[0];
	var spanToOpen = toOpen.getElementsByTagName("span")[0];
	var toClose = getElementsByClassName(navLeftFooter, "div", "toClose")[0];
	var spanToClose = toClose.getElementsByTagName("span")[0];
	// *** RollBack Savings ***
	if (!navLeftStrs || navLeftStrs==null) {
		var toStock;
		navLeftBeforeSearch = navLeft.className;
		navLeftStrs = new Array();
		toStock = navLeftTitle.getAttribute('title');
		navLeftStrs["titleRefineTip"] = toStock;
		toStock = navLeftTitle.getElementsByTagName("span")[0].firstChild.data;
		navLeftStrs["titleRefine"] = toStock;
		toStock = spanToOpen.firstChild.data;
		navLeftStrs["see"] = toStock;
		toStock = spanToClose.firstChild.data;
		navLeftStrs["mask"] = toStock;
		toStock = navLeftFooter.getElementsByTagName("p")[0].firstChild.data;
		navLeftStrs["refine"] = toStock;
	}

	loadIframe('navLeftListFrame', url);
	if (document.getElementById("spmktLink")) {
		document.getElementById("spmktLink").href="/leshop/Main.do?currentMenu=SHOP_SUPERMARKET";
		document.getElementById("spmktLink").target="_top";
	}
	navLeftTitle.setAttribute('title',titleRefineTip);
	navLeftTitle.getElementsByTagName("span")[0].firstChild.data = titleRefine;
	navLeftFooter.getElementsByTagName("p")[0].firstChild.data = refine;
	spanToOpen.firstChild.data = see;
	spanToClose.firstChild.data = mask;
	navLeft.className = "opened";
	mainContent.style.marginLeft = navLeft.offsetWidth+"px";
	navLeftHeaderHeight = document.getElementById("navLeftHeader").offsetHeight;
	var soustraction = buttonFooterHeight+navLeftHeaderHeight;
	document.getElementById("navLeftListFrame").style.height = (Body.offsetHeight-soustraction) + "px";
	navLeftList.style.height = (Body.offsetHeight-soustraction) + "px";
	for (var i=0; i<level2As.length; i++) {
		if (level2As[i].className && level2As[i].className=="selected") {
			level2As[i].className = ""
		}
	}
	try { mainContentFrameName.restoreTopMargin();}
	catch(err) {}
}
function displayLoading() {display("loading","block");}
function displayHelp(styleClass) {
	userHelp.className = styleClass;
	basketPostIt.firstChild.className = basket.className;
	display("userHelp","block");
}
function displayMainLoading() {display("mainLoading","block");}
function displayFullMainLoading() {
	display("mainLoading","block");
	document.getElementById("fullMainLoading").style.visibility = "visible";
}
function hideLoading() {display("loading","none");}
function hideMainLoading() {
	display("mainLoading","none");
	display("userHelp","none");
}

function resize() {
	if(busy==true) return;
	else {
		busy = true;
		adjustSizes();
	}
}
function adjustSizes() {
	if (document.getElementById && (pageOK == true)) {
		mainLoading.style.height = "auto";
		userHelp.style.height = "auto";
		mainContent.style.height = "auto";
		navLeftList.style.height = "auto";
		basketList.style.height = "30px";
		basketTotalFrame.style.height = "30px";
		setHauteur();
		adjustNavLeftList();
		adjustMainContent();
	}
	else if (document.getElementById && (pageOK != true)) setDesign();
	busy = false;
}
function getNavLeftListHeight(count) {
	if (!count||(count==null)) count = 0;
	else count ++;
	if (count >= 60) {
		count = 0;
		return 483;
	}
	else if (!navLeftList) setTimeout("getNavLeftListHeight('"+count+"')",250);
	else {
		count = 0;
		return navLeftList.offsetHeight;
	}
}
function getMainContentHeight(count) {
	if (!count||(count==null)) count = 0;
	else count ++;
	if (count >= 60) {
		count = 0;
		return 516;
	}
	else if (!mainContent) setTimeout("getMainContentHeight('"+count+"')",250);
	else {
		count = 0;
		return mainContent.offsetHeight;
	}
}
function getMainContentWidth(count) {
	if (!count||(count==null)) count = 0;
	else count ++;
	if (count >= 60) {
		count = 0;
		return 583;
	}
	else if (!mainContentFrame) setTimeout("getMainContentWidth('"+count+"')",250);
	else {
		count = 0;
		return mainContentFrame.offsetWidth;
	}
}
function adjustNavLeftList() {
	try { navLeftListFrameName.resizeReceipt();}
	catch(err) {}
}
function adjustMainContent() {
	try { mainContentFrameName.resizeReceipt();}
	catch(err) {}
}
function badgingFromBasketTotal(size) {
	if ((typeof size != 'undefined')&&(size != basketTotalHeight)) {
		basketTotalHeight = size;
		if ((typeof basket != "undefined")&&(basket.className != "none")) setHauteurListe("basket");
	}
}
function setDesign() {  // layout building
	if (document.getElementById) {
		var detect = navigator.userAgent.toLowerCase();
		Ie = detect.indexOf("msie");
		IeVersion = detect.charAt(Ie + 5);
		if ((Ie != -1) && (IeVersion == 6)) {
			try {
			  document.execCommand("BackgroundImageCache", false, true);
			} catch(err) {}
			setImgs();
		}
		//displayLoading();
		hideLoading();
		//window.alert(ScriptEngineMinorVersion()+" : "+ScriptEngineBuildVersion());
		headerHeight = document.getElementById("header").offsetHeight;
		navLeftHeaderHeight = document.getElementById("navLeftHeader").offsetHeight;
		basketHeader = document.getElementById("basketHeader");
		basketHeaderHeight = basketHeader.offsetHeight;
		navLeft = document.getElementById("navLeft");
		navLeftTitle = document.getElementById("navLeftTitle");
		navLeftFooter = document.getElementById("navLeftFooter");
		basket = document.getElementById("basket");
		if (navLeft.className != "none") buttonFooterHeight = navLeftFooter.offsetHeight;
		else {
			buttonFooterHeight = 0;
			navLeftLess = true;
		}
		if (basket.className != "none") basket.className = "opened";
		Body = document.getElementById("body");
		mainContent = document.getElementById("mainContent");
		mainContentFrame = document.getElementById("mainContentFrame");
		mainLoading = document.getElementById("mainLoading");
		userHelp = document.getElementById("userHelp");
		basketPostIt = document.getElementById("basketPostIt");
		navLeftList = document.getElementById("navLeftList");
		basketList = document.getElementById("basketList");
		basketTotal = document.getElementById("basketTotal");
		basketTotalFrame = document.getElementById("basketTotalFrame");
		getWindowStatus();
		setWindowStatus();
		setTopNav();
		topNavSetUrls(); // ŕ retirer pour test en local
		if ((typeof module == "undefined")&&(useSat == false)) {
			setBHBackground();
		}
		setHauteur();
		setButtons();
		roundedInputSearch = getElementsByClassName(Body,'div','roundSB'); // do we have rounded input?
		if (roundedInputSearch.length >=1) setInputSearch(); 					// then we set hover
		if (gup("closeNav") == "yes") uselessMenu();
		pageOK = true;
	}
}
function setInputSearch() { /*
	set hover for rounded input */
		for (var i=0; i<roundedInputSearch.length; i++) {
			var localInput = roundedInputSearch[i].getElementsByTagName('input');
			if (localInput.length > 0) {
				addEvent(localInput[0], 'focus', focusEventInputSearch);
				addEvent(localInput[0], 'blur', blurEventSearch);
			}
		}
	}
function focusEventInputSearch(Event) {/*
what are we doing with this focus? */
	var inputNode = this;
	while ((!inputNode.className) || (inputNode.className.indexOf("roundS") == -1)) inputNode = inputNode.parentNode;
	inputNode.style.backgroundPosition = '50% -50px';
}
function blurEventSearch(Event) {/*
what are we doing with this focus? */
	var inputNode = this;
	while ((!inputNode.className) || (inputNode.className.indexOf("roundS") == -1)) inputNode = inputNode.parentNode;
	if(this.value == "") inputNode.style.backgroundPosition = '50% 0%';
	else inputNode.style.backgroundPosition = '50% -100px';
}
function setTopNav() {
	var originalHeight, pad, rab=4;
	var level_2 = document.getElementById("level_2");
	var miniSearch = document.getElementById("mini");
	if(miniSearch != null) miniSearch.style.display = "";
	level2As = level_2.getElementsByTagName("a");
	if ((Ie != -1) && (IeVersion < 9)) {
		for (var i = 0; i < level2As.length; i++) {
			originalHeight = level2As[i].offsetHeight;
			level2As[i].style.height = "auto";
			pad = Math.floor((originalHeight - level2As[i].offsetHeight) / 2) + rab;
			level2As[i].style.paddingTop = pad + "px";
			level2As[i].style.height = (originalHeight - pad) + "px";
		}
	}
	if(miniSearch != null) miniSearch.style.display = "none";
	$("#spmktLink").click(function() {
		if($(this).hasClass('selected') == false) {
			$(this).addClass('selected');
		}
	});
}
function level2Clear() {
	$('#level_2 a').removeClass('selected');
}
function setBHBackground() {  // random basketHeader backgroundImage setting
	var bG = Math.floor(Math.random()*bHBackgrounds);
	if (bG < 10) bG = "0"+bG;
	basketHeader.style.backgroundImage = "url("+bHBackgroundUrl+"bH-"+bG+".jpg)";
}
function setHauteur() {  // set layout's height
	mainContent.style.height = (Body.offsetHeight-headerHeight) + "px"; // hauteur de mainContent
	if (navLeft.className == "none") mainContent.style.marginLeft = "0px";
	if (basket.className == "none") mainContent.style.marginRight = "0px";
	setHauteurListe("navLeft");
	setHauteurListe("basket");
	mainLoading.style.height = mainContent.offsetHeight + "px";
	mainLoading.style.width = mainContentFrame.offsetWidth + "px";
	userHelp.style.height = mainContent.offsetHeight + "px";
	userHelp.style.width = mainContentFrame.offsetWidth + "px";
	littleScreenCheck();
}

function littleScreenCheck() {
	var availWidth = Body.offsetWidth;
	var miniSearch = document.getElementById("mini");
	var searchForm = document.getElementById("searchForm");
	var level2 = document.getElementById("level_2");
	var tabNr = level2.getElementsByTagName("a");
	var tabNrL = tabNr.length;
	var petShopGenius = document.getElementById("petShop");
	if (searchForm != null) {
		switch (petShopGenius) {
			case null:
			switch (tabNrL) {
				case 4:
				if(availWidth < 980) {
					searchForm.style.display = "none";
					miniSearch.style.display = "";
				}
				else {
					searchForm.style.display = "";
					miniSearch.style.display = "none";
				}
				break;
				case 3:
				if (availWidth < 969) {
					$("#level_2 div.rab").hide();
				}
				else {
					$("#level_2 div.rab").show();
				}
				if(availWidth < 865) {
					searchForm.style.display = "none";
					miniSearch.style.display = "";
				}
				else {
					searchForm.style.display = "";
					miniSearch.style.display = "none";
				}
				break;
			}
			break;
			default:
			tabNrL -=1;
			$("#level_2 div.rab").hide();
			switch (tabNrL) {
				case 4:
				if (availWidth < 1085) {
					$("#petShop").hide();
				}
				else {
					$("#petShop").show();
				}
				if(availWidth < 980) {
					searchForm.style.display = "none";
					miniSearch.style.display = "";
				}
				else {
					searchForm.style.display = "";
					miniSearch.style.display = "none";
				}
				break;
				case 3:
				if (availWidth < 970) {
					$("#petShop").hide();
				}
				else {
					$("#petShop").show();
				}
				if(availWidth < 865) {
					searchForm.style.display = "none";
					miniSearch.style.display = "";
				}
				else {
					searchForm.style.display = "";
					miniSearch.style.display = "none";
				}
				break;
			}
			break;
		}
	}
}
function setHauteurListe(id) {
	var hauteurListe;
	var conteneur = document.getElementById(id);
	var liste = document.getElementById(id+"List");
	var soustraction = eval(id+"HeaderHeight");
	if (id == "navLeft") soustraction += buttonFooterHeight;
	if (conteneur.className == "opened") {
		if (id == "basket") {
			basketTotal.style.height = basketTotalHeight + "px";
			basketTotalFrame.style.height = basketTotalHeight + "px";
			soustraction += basketTotalHeight;
		}
		else document.getElementById("navLeftListFrame").style.height = (Body.offsetHeight-soustraction) + "px";
		if(!Body) return; // fuck the "Body has no properties" bug
		liste.style.height = (Body.offsetHeight-soustraction) + "px";
	}
	else {
		if (id == "basket") {
			basketTotal.style.height = (headerHeight-1)+"px";
			basketTotalFrame.style.height = (headerHeight-1)+"px";
			basket.style.height = (headerHeight-1)+"px";
			liste.style.height = 0 + "px";
		}
		else {
			liste.style.height = 0 + "px";
		}
	}
}
function setButtons() {  // define left & right menu buttons
	var buttons = getElementsByClassName(Body, "*", "bouton");
	for (i=0; i<buttons.length; i++) {
		buttons[i].onclick = buttonEvent;
	}
}
function buttonEvent(Event) {/*
what are we doing with this click? */
	var buttonNode = this;
	while ((!buttonNode.id) || ((buttonNode.id.indexOf("Footer") == -1)&&(buttonNode.id.indexOf("Header") == -1))) buttonNode = buttonNode.parentNode;
	var ElmId = buttonNode.id.substr(0,buttonNode.id.length-6);
	openClose(ElmId);
}
function uselessMenu() {
	if (navLeft.className == "opened") {
		navLeft.className = "closed";
		setHauteurListe("navLeft");
		mainContent.style.marginLeft = "0px";
		try { mainContentFrameName.increaseTopMargin(buttonFooterHeight);}
		catch(err) {}
	}
}
function needsMenu() {
	if (navLeft.className == "closed") {
		navLeft.className = "opened";
		setHauteurListe("navLeft");
		mainContent.style.marginLeft = navLeft.offsetWidth+"px";
		try {
			mainContentFrameName.restoreTopMargin();
			navLeftListFrameName.refreshNavLeftList();
		}
		catch(err) {}
	}
}

function openClose(id) {  // switch openClose menus left & right
	if (document.getElementById) {
		analyticsLog("openClose "+id);
		var obj = document.getElementById(id);
		if (obj.className == "opened") {
			obj.className = "closed";
			setHauteurListe(id);
			if (obj.id == "navLeft") {
				mainContent.style.marginLeft = "0px";
				try { mainContentFrameName.increaseTopMargin(buttonFooterHeight);}
				catch(err) {}
			}
			else {
				mainContent.style.marginRight = "0px";
				setTimeout("basketAdjustments()",50);
			}
		}
		else {
			obj.className = "opened";
			if (obj.id == "navLeft") {
				mainContent.style.marginLeft = navLeft.offsetWidth+"px";
				try {
					mainContentFrameName.restoreTopMargin();
					navLeftListFrameName.refreshNavLeftList();
				}
				catch(err) {}
			}
			else {
				mainContent.style.marginRight = basket.offsetWidth+"px";
				try {
					basketTotalFrameName.setBasketStatus(basket.className);
					basketTotalFrameName.displayed();
				}
				catch(err) {}
			}
			setHauteurListe(id);
		}
		adjustMainContent();
		mainLoading.style.width = mainContentFrame.offsetWidth + "px";
		userHelp.style.width = mainContentFrame.offsetWidth + "px";
		if (id=="basket") basketPostIt.firstChild.className = basket.className;
		setWindowStatus();
	}
}
function basketAdjustments() {
	try { basketTotalFrameName.setBasketStatus(basket.className);}
	catch(err) {}
}
function getWindowStatus() {
	windowStatus = LireCookie("windowStatus");
	if (windowStatus == null) windowStatus = "opened";
	readWindowStatus();
}
function readWindowStatus(count) {
	if (!count||(count==null)) count = 0;
	else count ++;
	if (count >= 2) {
		count = 0;
		return;
	}
	else if (!windowStatus) setTimeout("readWindowStatus('"+count+"')",250);
	else {
		//window.alert("cookie trouvé, "+windowStatus);
		if (windowStatus.indexOf(" ")!= -1) windowStatus = windowStatus.split(" ")[0];
		if (navLeft.className != "none") {
			navLeft.className = windowStatus;
			if (windowStatus == "closed") mainContent.style.marginLeft = "0px";
			else mainContent.style.marginLeft = navLeft.offsetWidth+"px";
		}
	}
}
function setWindowStatus() {
	var date=new Date;
	date.setMonth(date.getMonth()+1);
	var windowStatus = LireCookie("windowStatus");
	if (windowStatus == null) windowStatus = "opened";
	if ((navLeft.className != "none")&&(searchMode != true)) windowStatus = navLeft.className;
	EcrireCookie("windowStatus", windowStatus, date);
}

