var dochome="http://www.tienligne.com/";

function Xtend(X, N) {
    var P;
    X = String(X);
    if (/e/i.test(X)) {
        return X;
    }
    while ((P = X.indexOf(".")) < 0) {
        X += ".";
    }
    while (X.length <= P + N) {
        X += "0";
    }
    return X;
}

function roundNum(x,s)
{
  if(x.toFixed)
  {
    return x.toFixed(s);
  }
  else
  {
    return Xtend(parseInt(x*Math.pow(10,s)+0.5)/Math.pow(10,s),s);
  }
}


function formatprice(x){
	var s=String(roundNum(parseFloat(x),2));
	if(s<10.0){
		return "&nbsp;&nbsp;&nbsp;$" + s;
	}
	if(s<100.0){
		return "&nbsp;&nbsp;$" + s;
	}
	if(s<1000.0){
		return "&nbsp;$" + s;
	}
	return "$" + s;
}

function trim(strText) { 
    // this will get rid of leading spaces 
    while (strText.substring(0,1) == ' '){ 
        strText = strText.substring(1, strText.length);
       }

    // this will get rid of trailing spaces 
    while (strText.substring(strText.length-1,strText.length) == ' '){
        strText = strText.substring(0, strText.length-1);
       }

   return strText;
}


function form_validation(en){
	var sku1=document.getElementById("sku_1");
	var totpriceprod=document.getElementById("totpriceprod").value;
	totpriceprod=parseFloat(totpriceprod);
	
	var ziptxt=document.getElementById("txtZip");
	var zip="";
	if(null!=ziptxt){
		zip=trim(document.getElementById("txtZip").value);
	}
	
	var handling=document.shopcartfrm.handling_cart.value;
	var state=document.getElementById("cboState").value;
	
	//alert("form_validation:en=" + en);
	if(sku1==null){
		if(en){
			alert("You have to select at least one product before being able to proceed to checkout!");
		}else{
			alert("Vous devez choisir au moins un produit avant de pouvoir aller à la caisse!");	
		}
		return false;
	}
	/*if(totpriceprod<50.00){
		if(en){
			alert("The total price of the products must be superior to 50.00$!");
		}else{
			alert("Le prix total des produits commandés doit être supérieur à 50.00$!");	
		}
		return false;
	}*/
	if((state=="QC" || state=="ON" || state=="---" || state=="CAN" || state=="USA") && zip==""){
		if(en){
			alert("Please fill in the postal information!");
		}else{
			alert("S.v.p. introduire l'information postale!");	
		}
		if(ziptxt!=null && !ziptxt.disabled)
				ziptxt.focus();
		return false;
	}
	if(handling==0.0){
		if(en){
			alert("Please fill in a valid destination Postal Code!");
		}else{
			alert("S.v.p. introduire un code postal valide de destination!");	
		}
		if(ziptxt!=null && !ziptxt.disabled)
				ziptxt.focus();
		return false;
	}
	
	return true;
}

function state_validate(){
	alert(1);

}

function validate(sku){
	var fld=document.getElementById("qty_" + sku);
	
	if(null==fld){return;}
		
	var newval=parseInt(fld.value);
	
	if(isNaN(newval)){newval=0;}
	
	fld.value=newval;
}


function setCookie (name, value, expires, path, domain, secure) {
   var curCookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
   document.cookie = curCookie;
}

function getCookie (name) {
   var prefix = name + '=';
   var c = document.cookie;
   var nullstring = '';
   var cookieStartIndex = c.indexOf(prefix);
   if (cookieStartIndex == -1)
       return nullstring;
   var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length);
   if (cookieEndIndex == -1)
       cookieEndIndex = c.length;
   return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

function deleteCookie (name, path, domain) {
   if (getCookie(name))
       document.cookie = name + "=" + ((path) ? "; path=" + path : "; path=/") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

function prodqty(prodsku){
	//returns the shopping cart quantity of the product with the given sku
	var ix=0;
	var ixx=0;
	var price=0;
	var qty=0;
	var cnt=0;
	var sku=0;
	
	var cq=document.cookie;
	
	cnt=0;
	ix=cq.indexOf("TIPROD_");
	while(ix>=0){
		ixx=cq.indexOf("=", ix+1);
		if(ixx>=0){
			var cqname=cq.substr(ix,ixx-ix);
			
			var indx=cqname.indexOf(";");
			while(indx>=0){
				cqname=cqname.substr(indx+1);
				indx=cqname.indexOf(";");
			}
						
			var cqval=getCookie(cqname);
			sku=parseInt(cqname.substr(1 + cqname.indexOf("_")));
			
			if(null!=cqval){
				if(sku==prodsku){
					ix2=cqval.indexOf("#%#%");
					qty=parseInt(cqval.substr(0,ix2));
					return qty;
					}		
				}
		}
		else{ixx=ix;}
		ix=cq.indexOf("TIPROD_",ixx+1);
	}
	return 0;
}

function addproduct(sku, qty, price, desc, mpn, weight, stock, rebate){
	try{
		if(sku<0)return 0;
		if(qty<0)return 0;
		if(price<0)return 0;
		
		var qval=qty + "#%#%" + mpn + "#%#%" + price + "#%#%" +  weight + "#%#%" + stock + "#%#%" + rebate + "#%#%" + desc;
		//alert(qval);
		deleteCookie("TIPROD_" + sku, "/", "tienligne.com");	
		if(qty>0){
			setCookie("TIPROD_" + sku, qval, "", "/", "tienligne.com", 0);
			return 1;
		}
		return 2;
	}
	catch(e){
		return 0;
	}
}

function addunit(sku, price, desc, mpn, weight, stock, rebate, en){
	//alert("addunit");
	var qty=prodqty(sku);
	if(1==addproduct(sku,qty+1,price,desc + "(" + sku + "," + mpn + ")", mpn, weight, stock, rebate)){

		if(en){
			document.location=dochome + "carten.php";
		}else{
			document.location=dochome + "cart.php";
		}
		
		showcartcontent();
	}
}

function add2cart(sku){
	var frm=document.getElementById("shopcartfrm");
	if(null==frm)return 0;
	
	var objqty=document.getElementById("qty_" + sku);
	if(null==objqty)return 0;
	var objstock=document.getElementById("stock_" + sku);
	if(null==objstock)return 0;
	var objrebate=document.getElementById("rebate_" + sku);
	if(null==objrebate)return 0;
	var objdesc=document.getElementById("desc_" + sku);
	if(null==objdesc)return 0;
	var objprice=document.getElementById("price_" + sku);
	if(null==objprice)return 0;
	var objweight=document.getElementById("weight_" + sku);
	if(null==objweight)return 0;
	var objmpn=document.getElementById("mpn_" + sku);
	if(null==objmpn)return 0;
		
	var qty=Number(objqty.value);
	var desc=objdesc.value;
	var price=roundNum(Number(objprice.value),2);
	var weight=roundNum(Number(objweight.value),2);
	var mpn=objmpn.value;
	var stock=Number(objstock.value);
	var rebate=roundNum(Number(objrebate.value),2);
	
	//alert("addproduct(" + sku + ", " + qty + ", " + price + ", " + desc + ", " + mpn + ", " + weight + ", " + stock + ", " + rebate + ")");
	return addproduct(sku, qty, price, desc, mpn, weight, stock, rebate);
}

function addtocart(){
	//used for refreshing the shopping cart content
	var cq=document.cookie;
	var frm=document.getElementById("shopcartfrm");
	if(null==frm)return 0;
	
	cnt=0;
	totqty=0;
	ix=cq.indexOf("TIPROD_");
	while(ix>=0){
		ixx=cq.indexOf("=", ix+1);
		if(ixx>=0){
			var cqname=cq.substr(ix,ixx-ix);
			
			var indx=cqname.indexOf(";");
			while(indx>=0){
				cqname=cqname.substr(indx+1);
				indx=cqname.indexOf(";");
			}
						
			var cqval=getCookie(cqname);
			sku=parseInt(cqname.substr(1 + cqname.indexOf("_")));
			
			if(null!=cqval){
				add2cart(sku);				
			}
		}
		else{ixx=ix;}
		ix=cq.indexOf("TIPROD_",ixx+1);
	}
}

function emptycart(){
	//empty the cart content
	var ix=0;
	var ixx=0;
	var sku=0;
	var totprice=0;
	var totqty=0;
	var cnt=0;
	
	var cq=document.cookie;
	
	cnt=0;
	totqty=0;
	ix=cq.indexOf("TIPROD_");
	while(ix>=0){
		ixx=cq.indexOf("=", ix+1);
		if(ixx>=0){
			var cqname=cq.substr(ix,ixx-ix);
			
			var indx=cqname.indexOf(";");
			while(indx>=0){
				cqname=cqname.substr(indx+1);
				indx=cqname.indexOf(";");
			}
						
			var cqval=getCookie(cqname);
			sku=parseInt(cqname.substr(1 + cqname.indexOf("_")));
			
			if(null!=cqval){
				deleteCookie("TIPROD_" + sku, "/", "tienligne.com");							
				}
		}
		else{ixx=ix;}
		ix=cq.indexOf("TIPROD_",ixx+1);
	}
}


function cartcontent(){
	//will produce a string displaying the shopping cart content
	var ix=0;
	var ixx=0;
	var price=0;
	var qty=0;
	var desc="";
	var mpn="";
	var sku=0;
	var totprice=0;
	var totqty=0;
	var cnt=0;
	
	//debug
	var cq=document.cookie;
	
	cnt=0;
	totqty=0;
	ix=cq.indexOf("TIPROD_");
	while(ix>=0){
		ixx=cq.indexOf("=", ix+1);
		if(ixx>=0){
			var cqname=cq.substr(ix,ixx-ix);
			
			var indx=cqname.indexOf(";");
			while(indx>=0){
				cqname=cqname.substr(indx+1);
				indx=cqname.indexOf(";");
			}
						
			var cqval=getCookie(cqname);
			sku=parseInt(cqname.substr(1 + cqname.indexOf("_")));
			if(null!=cqval){
				ix2=cqval.indexOf("#%#%");
				qty=parseInt(cqval.substr(0,ix2));
				var ix3=cqval.indexOf("#%#%",ix2+4);
				mpn=cqval.substr(ix2+4,ix3-ix2-4);
				var ix4=cqval.indexOf("#%#%",ix3+4);
				price=Number(cqval.substr(ix3+4,ix4-ix3-4));
				var ix5=cqval.indexOf("#%#%",ix4+4);
				weight=Number(cqval.substr(ix4+4,ix5-ix4-4));
				desc=cqval.substr(ix5+4);
			
				if(!isNaN(qty) && !isNaN(price)){
					totprice+=price*qty;
					totqty+=qty;				
				}			
			}
		}
		else{ixx=ix;}
		ix=cq.indexOf("TIPROD_",ixx+1);
	}
	totprice=Math.floor(totprice * 100) / 100;
	
	return totqty + "***" + totprice;
}

function showcartcontent(){
	//actually display the cart content
	var content=cartcontent();
	var indx=content.indexOf("***");
	var qty=parseInt(content.substr(0,indx));
	var tot=parseFloat(content.substr(indx+3));
	var cbostate=document.getElementById("cboState");

	if(null!=cbostate)
		cbostate.options[12].selected=true;
	
	if(isNaN(qty)){qty=0;}
	if(isNaN(tot)){tot=0.0;}
	
	var tbl=document.getElementById("cartcontents");
	
	if(null==tbl){return;}
	
	tbl.rows[0].cells[0].innerHTML="<font style='font-size: 10pt; font-weight: 700' color=\"#ffffff\"><b>&nbsp;&nbsp;&nbsp;" + qty + "</b></font>";
	tbl.rows[0].cells[2].innerHTML="<font style='font-size: 10pt; font-weight: 700' color=\"#ffffff\"><b>" + tot + "$</b></font>";
}
