function number_format( number, decimals, dec_point, thousands_sep ) {    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;    var d = dec_point == undefined ? "." : dec_point;    var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");}function format_money(quoi){	quoi = Math.floor(quoi*100)/100;	quoi = "" + quoi;	mSplit = quoi.indexOf(".");	if (mSplit==-1){		return(quoi+".00")	} else {		quoi = "" + Math.floor(quoi*100)/100;		mSplit = quoi.lastIndexOf(".");		diff = quoi.length - mSplit;		if (diff==2){			return(quoi+"0")		} else {			var money = (Math.floor(quoi*100)/100);			money+="";			mSplit = money.indexOf(".");			if (mSplit == -1){				return (money+".00")			}			return money;		}	}}function changeBriQty(produit){	var span = document.getElementById('SPAN_'+produit);	var lst = document.getElementById('PAR_'+produit);	var price = document.getElementById('PRICE_'+produit);	var price_sugg = document.getElementById('SUGG_PRICE_'+produit);		var realprice = document.getElementById('RPRICE_'+produit);		var prix = document.getElementById("PRIX_"+produit);	var bulk = document.getElementById("BULK_"+produit);		if(document.all && window.ActiveXObject) {		var int_price_one = number_format( parseFloat(realprice.innerText.replace("$","").replace(",",".") ) , 2, '.', '');		var int_price_sugg_one = number_format( parseFloat(price_sugg.innerText.replace("$","").replace(",",".") ) / parseFloat(span.innerText), 2, '.', '');		price.innerText = number_format( parseFloat(lst.value) * int_price_one , 2, '.', '');		if(prix && bulk)			if(parseFloat(lst.value) >= parseFloat(bulk.innerText))				price.innerText = number_format( lst.value / bulk.innerText * prix.innerText.replace("$","").replace(",",".") , 2, '.', '');		if(price_sugg.innerText != "NET")			price_sugg.innerText = number_format( parseFloat(lst.value) * int_price_sugg_one, 2, '.', '');		span.innerText = parseFloat(lst.value);	} else {		var int_price_one = number_format( parseFloat(realprice.textContent.replace("$","").replace(",",".") ) , 2, '.', '');		var int_price_sugg_one = number_format( parseFloat(price_sugg.textContent.replace("$","").replace(",",".") ) / parseFloat(span.textContent), 2, '.', '');		price.textContent = number_format( parseFloat(lst.value) * int_price_one , 2, '.', '');		if(prix && bulk)			if(parseFloat(lst.value) >= parseFloat(bulk.textContent))				price.textContent = number_format( lst.value / bulk.textContent * prix.textContent.replace("$","").replace(",",".") , 2, '.', '');		if(price_sugg.textContent != "NET")			price_sugg.textContent = number_format( parseFloat(lst.value) * int_price_sugg_one, 2, '.', '')		span.textContent = parseFloat(lst.value);	}}function createForm(name, action, items){	var doc = document.createDocumentFragment();	var form = document.createElement("form");	form.id = name;	form.name = name;	form.action = action;	form.method = "post";	var e, i;	for(e in items){		i = document.createElement("input");		i.id = e;		i.name = e;		i.value = "";		i.type = items[e];		form.appendChild(i);	}	doc.appendChild(form);	document.getElementsByTagName("body")[0].appendChild(doc);}function PanierAdd2(get_url, item, colour, lang, stock){   var qty = parseFloat(document.getElementById("QTY_"+item+"-"+colour).value);   var par = document.getElementById("PAR_"+item+"-"+colour) ? parseFloat(document.getElementById("PAR_"+item+"-"+colour).value) : 1;   if(isNaN(qty) || (qty.length == 0)) qty = "1";   if(isNaN(par) || (par.length == 0)) par = "1";	var conf = 1;    if(stock<qty)    {        if(lang == 0)            openDhtmlConfirm("Quantitée en inventaire "+stock+" seulement. Tout item en suspend sera annulé. Voulez-vous continuer ?", "FR");//conf = confirm("Quantitée en inventaire "+stock+" seulement. Tout item en suspend sera annulé. Voulez-vous continuer ?");        else            openDhtmlConfirm("Quantity on hand "+stock+" only. All backorder will be canceled. Continue anway?", "EN");//conf = confirm("Quantity on hand "+stock+" only. All backorder will be canceled. Continue anway?");				qty = stock;				document.getElementById("dhtml_confirm_ok").onclick = function(){					if (!document.panier_add_form && !document.getElementById("panier_add_form"))				createForm("panier_add_form", get_url, {"CMD": "hidden", "ITEM": "hidden", "COLOUR": "hidden", "PAR": "hidden", "QTY": "hidden"});						//if(!document.panier_add_form)			//	document.panier_add_form = document.getElementById("panier_add_form");			var form = document.panier_add_form || document.getElementById("panier_add_form");		   form.action      = get_url;		   form.CMD.value   = "PANIER_ADD";		   form.ITEM.value  = item;		   form.COLOUR.value= colour;		   form.PAR.value   = parseInt(par);		   form.QTY.value   = parseInt(qty);		   		   if(window.cemAddPanier)			   cemAddPanier(function(){					form.submit();			   }, item, colour, qty, par);		   else				form.submit();					closeDhtmlConfirm();		};    }	else	{		if (!document.panier_add_form && !document.getElementById("panier_add_form"))			createForm("panier_add_form", get_url, {"CMD": "hidden", "ITEM": "hidden", "COLOUR": "hidden", "PAR": "hidden", "QTY": "hidden"});				//if(!document.panier_add_form)		//	document.panier_add_form = document.getElementById("panier_add_form");		var form = document.panier_add_form || document.getElementById("panier_add_form");	   form.action      = get_url;	   form.CMD.value   = "PANIER_ADD";	   form.ITEM.value  = item;	   form.COLOUR.value= colour;	   form.PAR.value   = parseInt(par);	   form.QTY.value   = parseInt(qty);	   	   if(window.cemAddPanier)		   cemAddPanier(function(){				form.submit();		   }, item, colour, qty, par);	   else			form.submit();	}}function firePanierAdd2(e, item_couleur_text){	if (!e) var e = window.event;	key = e.keyCode ? e.keyCode : e.which;	//alert(key)	if(key == 13)	{		var btn = document.getElementById(item_couleur_text);		if(btn != null){			if (document.all)				btn.click();			else				btn.onclick();		}	}	return false;}function trim(txt) {	return txt.replace(/^\s+|\s+$/g,"");}function xhr(){   if(window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");   if(window.XMLHttpRequest) return new XMLHttpRequest();   return false;}function PanierUpdate(input){   var parent = input.parentNode;   while(parent.tagName.toLowerCase() != "form")      parent = parent.parentNode;   parent.onsubmit();}function request(form, action){   action = action ? action : form.action;	if(action.indexOf("https:") == 0 && (''+window.location).indexOf("https:") == -1)		action = action.replace("https:", "http:");   var params = "", x, j, i = form.getElementsByTagName("input");   for(j in i){      x = i[j];      if (x) {         if (x.tagName && x.name) {            params += x.name + "=" + (x.value || "") + "&";         }      }   }   i = form.getElementsByTagName("select");   for(j in i){      x = i[j];      if (x) {         if (x.tagName && x.name) {            params += x.name + "=" + (x.value || "") + "&";         }      }   }   if(params.substr(params.length-1, params.length) == "&")      params = params.substr(0, params.length-1);   var x = xhr();   x.onreadystatechange = function(){      if (x.readyState == 4 && x.status == 200) {         var parent = form.getElementsByTagName("ul")[0].parentNode.parentNode;         parent.innerHTML = x.responseText;		 if(!$) var $ = function(id){ return document.getElementById(id); }         var t = $("sub_total"), bo = $("sub_total_bo"), total_text, total_bo_text, total, total_bo;         total_text = (t.textContent || t.innerText);         total = total_text.replace("$","").replace(",",".").replace(" ","")         total = parseFloat(total);                  total_bo_text = (bo.textContent || bo.innerText);         total_bo = total_bo_text.replace("$","").replace(",",".").replace(" ","")         total_bo = parseFloat(total_bo);         var tl = getElementsByClassName("extra_msg");         for(var t in tl){            var tx = tl[t];            if(tx && tx.tagName){               tx.style.display = "none";               if ((total + total_bo) < 50) {                  tx.style.display = "block";                  if(!document.all)                     tx.style.display = "table-row";               }                  //tx.className = "extra_msg";            }         }      }   }   if(!action){	   action = window.location.toString();	   action = action.substr(0, action.lastIndexOf("/"))+"/update_panier.php";   }   x.open("POST", action, true);   x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");   //x.setRequestHeader("Content-length", params.length);   //x.setRequestHeader("Connection", "close");   x.send(params);      return false;}/*	Developed by Robert Nyman, http://www.robertnyman.com	Code/licensing: http://code.google.com/p/getelementsbyclassname/*/var getElementsByClassName = function (className, tag, elm){	if (document.getElementsByClassName) {		getElementsByClassName = function (className, tag, elm) {			elm = elm || document;			var elements = elm.getElementsByClassName(className),				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,				returnElements = [],				current;			for(var i=0, il=elements.length; i<il; i+=1){				current = elements[i];				if(!nodeName || nodeName.test(current.nodeName)) {					returnElements.push(current);				}			}			return returnElements;		};	}	else if (document.evaluate) {		getElementsByClassName = function (className, tag, elm) {			tag = tag || "*";			elm = elm || document;			var classes = className.split(" "),				classesToCheck = "",				xhtmlNamespace = "http://www.w3.org/1999/xhtml",				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,				returnElements = [],				elements,				node;			for(var j=0, jl=classes.length; j<jl; j+=1){				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";			}			try	{				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);			}			catch (e) {				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);			}			while ((node = elements.iterateNext())) {				returnElements.push(node);			}			return returnElements;		};	}	else {		getElementsByClassName = function (className, tag, elm) {			tag = tag || "*";			elm = elm || document;			var classes = className.split(" "),				classesToCheck = [],				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),				current,				returnElements = [],				match;			for(var k=0, kl=classes.length; k<kl; k+=1){				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));			}			for(var l=0, ll=elements.length; l<ll; l+=1){				current = elements[l];				match = false;				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){					match = classesToCheck[m].test(current.className);					if (!match) {						break;					}				}				if (match) {					returnElements.push(current);				}			}			return returnElements;		};	}	return getElementsByClassName(className, tag, elm);}BrowserInfo = {	get: function(){		if(this._info)			return this._info;		var d = document, w = window;		isOpera = !!(w.opera && opera.buildNumber);		isWebKit = !!(w.devicePixelRatio);		isOldWebKit = isWebKit && !(w.getSelection().getRangeAt);		isIE = !(!d.all) && !(!w.ActiveXObject);		isIE6 = isIE && !(w.XMLHttpRequest);		isGecko = !!(d.getBoxObjectFor);		this._info = {			opera: isOpera,			webkit: isWebKit,			oldwebkit: isOldWebKit,			ie: isIE,			ie6: isIE6,			gecko: isGecko		}		return this._info;	},	_info: null}