/*************************************************************************
  This code is from Toucouleur Web Coding at www.toucouleur.fr
  Copyright 2005 by Cédric MORELLE  
  This notice must be retained in the code as is!
*************************************************************************/

/*   lib_common.js   version date: Dec 2005   requires dw_scrollObj.js dw_hoverscroll.js dw_glidescroll.js */

function initScrollLayer() {
  	var wndo  = new dw_scrollObj('global_menu', 'scrollable_layer', 'h1');
  	
  	dw_scrollObj.GeckoTableBugFix('global_menu'); 
  
  	wndo.on_scroll_end = doOnScrollEnd;
}

function getWidth() {
	if (window.innerWidth) return window.innerWidth;
	else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
	else return 0;
}

function resizeLayer() {
	var myElement = document.getElementById('global_menu');
	var widthToApply = getWidth() - 30 - 30 - 5 - 245; // 30 * 2 pour faire les marges gauches et droites
	if (myElement.style) {
	document.getElementById('global_menu').style.clip  = 'rect(0px, ' + widthToApply + 'px, 25px, 0px)';
	document.getElementById('global_menu').style.width  = widthToApply + 'px';
	document.getElementById('hold').style.width  = widthToApply + 'px';
	}	
}

// onresize for ns4
var origWidth, origHeight;
if (document.layers) {
	origWidth = window.innerWidth; origHeight = window.innerHeight;
	window.onresize = function() { if (window.innerWidth != origWidth || window.innerHeight != origHeight) history.go(0); }
}

var cur_lyr;	// holds id of currently visible layer
function swapLayers(id,indice) {  
	if (cur_lyr) hideLayer(cur_lyr,cur_indice);
	showLayer(id,indice);
	cur_lyr = id;
	cur_indice = indice;
}

function showLayer(id,indice) {
	var a=getElemRefs("ongleta"+indice);
	var span=getElemRefs("ongletspan"+indice);
  
	var lyr = getElemRefs(id);
	if (lyr && lyr.css) {
  		lyr.css.visibility = "visible";
  		lyr.css.height = "auto";
  	}
  	a.css.backgroundPosition="0% -150px";
  	a.css.color="#000000";
  	span.css.backgroundPosition="100% -150px";
  	span.css.color="#000000";
}

function hideLayer(id,indice) {
	var a=getElemRefs("ongleta"+indice);
	var span=getElemRefs("ongletspan"+indice);
  
	var lyr = getElemRefs(id);
	if (lyr && lyr.css) {
  		lyr.css.visibility = "hidden";
  		lyr.css.height = "0";
  	}
  	a.css.backgroundPosition="0% 0px";
  	a.css.color="#FFFFFF";
  	span.css.backgroundPosition="100% 0px";
  	span.css.color="#FFFFFF";
}

function writeLayer(id,txt){
	if(document.getElementById) {
		document.getElementById(id).innerHTML=txt;
	} else if(document.all) {
		document.all[id].innerHTML=txt;
	} else if(document.layers) {
		with(document.layers[id].document){
		open();
		write(txt);
		close();
		}
	}
}  

function getElemRefs(id) {
	var el = (document.getElementById)? document.getElementById(id): (document.all)? document.all[id]: (document.layers)? document.layers[id]: null;
	if (el) el.css = (el.style)? el.style: el;
	return el;
}

// glide scrolling layer to specified element
// arguments: id of element to scroll to, scroll area id (same id as passed to constructor, i.e., 'wn')
// id of layer element is contained in (i.e., layer to load in scroll area)
dw_scrollObj.scrollToAnchor = function(id, wnId, lyrId) {
  	if ( dw_scrollObjs[wnId] && document.getElementById) { 
    		var el = document.getElementById(id);
    		if (!el) return;
    		// check if correct layer is loaded in scroll area
    		// if not, load it
    		if ( dw_scrollObjs[wnId].lyrId != lyrId )
    			dw_scrollObjs[wnId].load(lyrId);
    		var lyr = document.getElementById( dw_scrollObjs[wnId].lyrId );
    		var x = dw_getLayerOffset(el, lyr, 'left');
    		var y = dw_getLayerOffset(el, lyr, 'top');
    		// optional 3rd argument: duration of glide (default is 100)
    		dw_scrollObjs[wnId].glideTo(x, y, 2000);
  	} 
}

// Get position of el within layer (oCont)
function dw_getLayerOffset(el, oCont, sOff) {
    	var off = "offset" + sOff.charAt(0).toUpperCase() + sOff.slice(1);
    	var val = el[off];
    	while ( (el = el.offsetParent) != oCont ) 
        	val += el[off];
    	var clientOff = off.replace("offset", "client");
    	if ( el[clientOff] ) val += el[clientOff];
    		return val;
}

function getValueFromQueryString(varName) {
	var qStr = window.location.search;
	var pt = qStr.indexOf(varName);
	if ( pt != -1 ) {
        	var str = qStr.slice(pt);
        	var endPt = str.indexOf("&");
        	if ( endPt == -1 )
        		endPt = str.length;
        	var str2 = str.slice(0, endPt);
        	return str2.slice( str2.indexOf("=") + 1 )
    	} 
    	return null;
}

function update_cart(uc_product_id, uc_quantity, uc_field_id, uc_action, uc_uID) {

	// Initialisation de variable
	var vs_URL;
    	   
    	// Récupération de la valeur "quantité" désirée
	quantity = document.cart_quantity[uc_field_id].value;
	quantity = parseInt(quantity) + parseInt(uc_quantity);

	// On force à -1 si l'utilisateur préfère de ne plus avoir ce produit dans son panier
	// Le moteur OsCommerce supprime le produit si la quantité indiquée est négative
	if (quantity == 0) { quantity = -1; }
	if (quantity > 99) { quantity = 99; }
	
	// Identification du produit, si ce dernier appartient à la catégorie cadeau, on utilise 
	// une autre méthode de mise à jour du panier
	if (uc_action == 'list_gift') {
	vs_URL = 'shopping_cart_light.php?products_id='+uc_product_id+'&quantity='+quantity+'&action='+uc_action+'&'+uc_uID;
	
	parent.shopping_cart.location.replace(vs_URL);
	}
	else {
	// URL protégé par le Session ID que l'utilisateur soit identifié ou non
	// necessite l'utilisation de application_top specifique au projet
	vs_URL = 'shopping_cart_light.php?products_id='+uc_product_id+'&quantity='+quantity+'&action='+uc_action+'&'+uc_uID;

	// Mise à jour de la frame de droite pour le panier
    	parent.shopping_cart.location.replace(vs_URL);
	}

	update_cart_layer(uc_quantity, uc_uID);

	// Pour forcer l'affichage à zéro dans le panier de l'utilisateur
	if (quantity == -1) { quantity = 0; }

	// Mise à jour du champ correspondant
	document.cart_quantity[uc_field_id].value = quantity;		    	
}

function update_cart_module(uc_product_id, uc_quantity, uc_field_id, uc_action, uc_uID) {

	// Initialisation de variable
	var vs_URL;
    	   
    	// Récupération de la valeur "quantité" désirée
	quantity = document.cart_quantity[uc_field_id].value;
	quantity = parseInt(quantity) + parseInt(uc_quantity);

	// On force à -1 si l'utilisateur préfère de ne plus avoir ce produit dans son panier
	// Le moteur OsCommerce supprime le produit si la quantité indiquée est négative
	if (quantity == 0) { 
		if (confirm("Etes-vous sûr de vouloir supprimer ce produit de votre liste ?","aze","qsd"))
		{
			quantity = -1; 
		}
		else
		{
			quantity = 1; 
		}
	}
	if (quantity > 99) { quantity = 99; }
	
	products_in_cart = products_in_cart + parseInt(uc_quantity);
	// Mise à jour calque spécifique au panier
	if (products_in_cart > 0) {
		parent.writeLayer("shopping_cart_info","Vous avez <b>" + products_in_cart + " articles dans votre panier</b> - <a href=\"shopping_cart_light.php?" + uc_uID + "\" class=\"shopping_cart_info\">Cliquez ici pour commander !</a>");
		parent.document.getElementById("shopping_cart_info").style.display = "block";	
		parent.products_in_cart = products_in_cart;
	} else if (products_in_cart < 1) {
		parent.document.getElementById("shopping_cart_info").style.display = "none";	
		parent.products_in_cart = 0;
	}
	
	// Identification du produit, si ce dernier appartient à la catégorie cadeau, on utilise 
	// une autre méthode de mise à jour du panier
	if (uc_action == 'list_gift') {
	vs_URL = 'shopping_cart_light.php?products_id='+uc_product_id+'&quantity='+quantity+'&action='+uc_action+'&'+uc_uID;
	parent.shopping_cart.location.replace(vs_URL);
	}
	else {
	// URL protégé par le Session ID que l'utilisateur soit identifié ou non
	// necessite l'utilisation de application_top specifique au projet
	vs_URL = 'shopping_cart_light.php?products_id='+uc_product_id+'&quantity='+quantity+'&action='+uc_action+'&'+uc_uID;

	// Mise à jour de la frame de droite pour le panier
    	parent.shopping_cart.location.replace(vs_URL);
	}	
}

function update_cart_top(uc_product_id, uc_action, uc_quick_id, uc_quantity, uc_uID) {
	// Initialisation de variable
	var vs_URL;

	if (uc_action == 'get_now_gift') {	
	// URL protégée par le Session ID que l'utilisateur soit identifié ou non
	// necessite l'utilisation de application_top specifique au projet
	vs_URL = 'shopping_cart_light.php?products_id='+uc_product_id+'&action=get_now_gift&uID=' + uc_uID;

	// Mise à jour de la frame de droite pour le panier
    	parent.shopping_cart.location.replace(vs_URL);
    	} else {	
	// URL protégée par le Session ID que l'utilisateur soit identifié ou non
	// necessite l'utilisation de application_top specifique au projet
		if (uc_quick_id) {
			vs_URL = 'shopping_cart_light.php?products_id='+uc_product_id+'&quick_id='+uc_quick_id+'&action=buy_now&' + uc_uID;
		} else {
			vs_URL = 'shopping_cart_light.php?products_id='+uc_product_id+'&action=buy_now&' + uc_uID;
		}

	// Mise à jour de la frame de droite pour le panier
    	parent.shopping_cart.location.replace(vs_URL);
    	    	
	}
	
	if (parseInt(uc_quantity) > 0) {
		update_cart_layer(parseInt(uc_quantity), uc_uID);
	} else {
		update_cart_layer(1, uc_uID);
	}
}

function update_cart_layer(uc_quantity, uc_uID) {	
	products_in_cart = products_in_cart + parseInt(uc_quantity);
	// Mise à jour calque spécifique au panier
	if (parseInt(uc_quantity) > 0) {
		writeLayer("shopping_cart_info","Vous avez <b>" + products_in_cart + " articles dans votre panier</b> - <a href=\"checkout_shipping.php?" + uc_uID + "\" class=\"shopping_cart_info\">Cliquez ici pour commander !</a>");
		document.getElementById("shopping_cart_info").style.display = "block";	
	}
}

function resizeFrame() {	
	var myFrame = getElemRefs('icontent');	
	myFrame.style.height = myFrame.contentWindow.document.body.scrollHeight + "px";
	//myFrame.style.height = myFrame.contentDocument.documentElement.offsetHeight + "px";
}

function getFloatPosition(){
	//IE6 in non-quirks doesnt get document.body.scrollTop:
	var pos = (document.body.scrollTop)?document.body.scrollTop:document.documentElement.scrollTop;
	document.getElementById("shopping_cart_info").style.top = parseInt(pos) + "px";
}

function initFloatLayer() {
	if(document.getElementById && !window.getComputedStyle){// DOM but not Mozilla
		document.getElementById("shopping_cart_info").style.position = "absolute";
		window.onscroll = getFloatPosition;
	}
}

function onRoll(imgName) {
  	if (document.images) document[imgName].src = eval(imgName + "on.src");
}

function offRoll(imgName) {
  	if (document.images) document[imgName].src = eval(imgName + "off.src");
}  	

function onScroll(imgName) {
  	if (document.images) document[imgName].src = eval(imgName + "on.src");
}


function rowlistOverEffect(object) {
  	if (object.className == 'modulelistRow') object.className = 'modulelistRowOver';
}

function rowlistOutEffect(object) {
  	if (object.className == 'modulelistRowOver') object.className = 'modulelistRow';
}

function popupWindow_extended(url) {	
	window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=560,height=385,screenX=150,screenY=150,top=150,left=150');
}