// JavaScript Document// pklCart// Function for the shopping cart// Paul Leasure V 0.1/* PKL SHOPPING CART AUG 2008related files: 	pklCart.js, 				cart_functions.php, 				insert_cart_prod_row.php, 				pkl_chkout_head.php				pkl_cart.css*/function filterNum(str) {reg = /^\$|,/g;// remove "$" and ","if( str != null){ return str.replace(reg, ""); }}//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//+ Jonas Raoni Soares Silva//@ http://jsfromhell.com/number/fmt-money [v1.2]Number.prototype.formatMoney = function(c, d, t){    var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "",    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) : "");};// END:Number.prototype.formatMoney/* Number.formatMoney([floatPoint: Integer = 2], [decimalSep: String = ","], [thousandsSep: String = "."]): *///+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/*function taxRate(){tr = document.getElementById("cart_tax_rate").value;taxrate = filterNum(tr);taxRate = Number(taxrate);return taxRate;}function ShippingCost(){sh = document.getElementById("cart_shipping_cost").value;ship = filterNum(sh);shippingCost = Number(ship);return shippingCost}function addTaxAndShippingTo(subTotal){  grandTotal = ((subTotal * taxRate() ) + ShippingCost()  )  return grandTotal;}function addToCart(prod_id){			}*/function getCartTotal(){var numOfRows = document.getElementById("num_of_rows").value;var rowAmount = 0;var row;var cartSubTotal = 0;var shippingCost = 10;var taxRate = .0725;for (row =0; row<=numOfRows; row++)		{		  if(document.getElementById("item_total-"+row) !=null)		  	{		 	 rowAmount = document.getElementById("item_total-"+row).firstChild.nodeValue;		  	//alert('Row Total has been included and is '+rowAmount );		  		 n = filterNum(rowAmount);		  		 cartSubTotal += Number(n);			}//if		} //for//alert('cart total = '+cartTotal );//alert('SUB total = '+subTot );document.getElementById("cart_sub_total").innerHTML = "$"+cartSubTotal.formatMoney(2, ".", ",");var tax = Number(taxRate) * Number(cartSubTotal);//alert('cart total = '+cartTotal+' and tx = '+tax );document.getElementById("cart_tax").innerHTML = "$"+tax.formatMoney(2, ".", ",");var shipping = Number(shippingCost);//alert('shipping= '+shipping );document.getElementById("cart_shipping").innerHTML = "$"+shipping.formatMoney(2, ".", ",");var cartGrandTotal = parseFloat(cartSubTotal+tax+shipping);//alert('Grand Ttl = '+cartGrandTotal );document.getElementById("cart_grand_total").innerHTML = "$"+cartGrandTotal.formatMoney(2, ".", ",");//return cartTotal;}//function getCartTotal() function updateCartRow(cart_row,cpi_id,prod_id,action) {var index = document.getElementById("cartRowQty-"+cart_row).options.selectedIndex;var quantity = document.getElementById("cartRowQty-"+cart_row).options[index].value;var priceReg = document.getElementById("price_reg-"+cart_row).firstChild.nodeValue;var priceDisc = document.getElementById("price_disc-"+cart_row).firstChild.nodeValue;var itemTotal = document.getElementById("item_total-"+cart_row).firstChild.nodeValue;var cartRowInfo = [];if(action=="update"){  cartRowInfo[0] = action;  cartRowInfo[1] = cart_row;    try{	  	cartRowInfo[2] = document.getElementById("cartProdTypeRow-"+cart_row).value;			 }catch(error){		index = document.getElementById("cartProdType-"+cart_row).options.selectedIndex;  	  	cartRowInfo[2] = document.getElementById("cartProdType-"+cart_row).options[index].value;    }// try	  cartRowInfo[3] = cpi_id;		  try{	 index = document.getElementById("cartRowSize-"+cart_row).options.selectedIndex;    cartRowInfo[4] = document.getElementById("cartRowSize-"+cart_row).options[index].id; 	 }catch(error){	cartRowInfo[4] = document.getElementById("cartRowSizeRow-"+cart_row).value;    }// try  cartRowInfo[5] = (quantity * filterNum(priceDisc) );  //alert("quantity="+quantity+", Price="+priceDisc+" = "+cartRowInfo[5]);  cartRowInfo[6] = quantity;}//if(action=="update")if(action=="remove") {	//var cartSubTotal = document.getElementById("cart_sub_total").firstChild.nodeValue;	//var subTotal = filterNum(cartSubTotal);// make only number	//alert('subTotal ='+cartSubTotal );	//var rowAmount = document.getElementById("item_total-"+cart_row).firstChild.nodeValue;	//var rowPrice = filterNum(rowAmount);	//alert('rowPrice = '+rowAmount );	//var newSubTotal = (subTotal)  - (rowPrice);	quantity = 0;	cartRowInfo[0] = action;	cartRowInfo[1] = cart_row;	cartRowInfo[6] = quantity;	cartRowInfo[7] = prod_id;	var numRows = parseInt(document.getElementById("num_of_rows").value) - 1;	document.getElementById("num_of_rows").value = numRows;	//document.getElementById("cart_sub_total").innerHTML = "<span>sub total    $ </span>"+newSubTotal.formatMoney(2, ".", ",");	//gt = addTaxAndShippingTo(newSubTotal);	//alert( "Grand Ttl = "+gt);}//if(action=="remove")var targetDiv = "cartRow-"+cart_row;var processFile = "/__shared/_pkl_cart/insert_cart_prod_row.php";var postVars = "cartRowInfo="+cartRowInfo; useAjax01(postVars,targetDiv,processFile,cart_row);// for fade effect (cart_row) SEE pkl_effects.js//--BEGIN:------for fade effect SEE pkl_effects.js var feedbackDiv = "rowfeedback-"+cart_row;var fromOpacity = 0;var toOpacity   = 100;var time        = 1000;var fps         = 10;var origColor = "#FFFFFF";var fadeColor = "yellow";FadeOpacity(feedbackDiv, fromOpacity, toOpacity, time, fps);//--END:------for fade effect SEE pkl_effects.js}//function updateCartRow(cart_row,cpi_id,prod_id,action) function useAjax01(postVars,targetDiv,processFile, cart_row) {// create an ajax function to go get the products in this cat and display them in the main page  var XMLHttpRequestObject = false;  if (window.XMLHttpRequest) {	XMLHttpRequestObject = new XMLHttpRequest();  } else if (window.ActiveXObject) {	XMLHttpRequestObject = new 	ActiveXObject("Microsoft.XMLHTTP");  }  if(XMLHttpRequestObject)   {	//--BEGIN:------for fade effect SEE pkl_effects.js	if(cart_row){	progressIndicator("on", cart_row);	}	//--END:------for fade effect SEE pkl_effects.js	XMLHttpRequestObject.open("POST", processFile);     XMLHttpRequestObject.setRequestHeader('Content-Type',             'application/x-www-form-urlencoded');  	XMLHttpRequestObject.onreadystatechange = 		function() 				{ 								if (XMLHttpRequestObject.readyState == 4 && 						XMLHttpRequestObject.status == 200) 						{ 						document.getElementById(targetDiv).innerHTML =						XMLHttpRequestObject.responseText;						getCartTotal();						updateCartBox();						//progressIndicator("off");						}				} //function	XMLHttpRequestObject.send(postVars);   } }// function useAjax01