/*
Matt Pilz
Price List JavaScript
Leave Only Bubbles / What If Scientific (2009)
*/

// Global Variables
var tmpSubTotal = 0;
var tmpSalesTax = 0;
var totalDQ$ = 0;
var DQArr = new Array();

var tmpCost$ = "";
var tmpCostB$ = "";
var defaultSpacing$ = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";

var blankSpacing=new Array();
for(var i=1;i<19;i++){
	tmpSpaceStr$ = "";
	for(var j=0;j<i;j++){
		tmpSpaceStr$ += "&nbsp;";
	}
	blankSpacing[i]=tmpSpaceStr$;
}


// USA Shipping
var US_Shipping = new Array();

US_Shipping[0] = 20.00;
US_Shipping[1] = 40.00;
US_Shipping[2] = 75.00;

var US_ShippingC = new Array();

US_ShippingC[0] = 5.95;
US_ShippingC[1] = 6.95;
US_ShippingC[2] = 7.95;
US_ShippingC[3] = 8.95;


// Alaska & Hawaii Shipping
var ALHA_Shipping = new Array();

ALHA_Shipping[0] = 20.00;
ALHA_Shipping[1] = 40.00;
ALHA_Shipping[2] = 75.00;

var ALHA_ShippingC = new Array();

ALHA_ShippingC[0] = 9.95;
ALHA_ShippingC[1] = 12.95;
ALHA_ShippingC[2] = 15.95;
ALHA_ShippingC[3] = 18.95;


// Canada & Mexico Shipping
var CAMX_Shipping = new Array();

CAMX_Shipping[0] = 20.00;
CAMX_Shipping[1] = 40.00;
CAMX_Shipping[2] = 75.00;

var CAMX_ShippingC = new Array();

CAMX_ShippingC[0] = 11.95;
CAMX_ShippingC[1] = 14.95;
CAMX_ShippingC[2] = 17.95;
CAMX_ShippingC[3] = 21.95;



// Initialize Main Function
window.onload = initAll;

function initAll() {

	// Attach input boxes to event handler to calculate total when changed
	i = 0;
	a = document.getElementsByTagName("input");
	while (element = a[i++]) {
	  if (element.className == "PLTBox") {
	    a[i-1].onkeyup = calculateTotal;
	    }
	  }
	  
	// Discount quantities
	var totalDQ$ = 0;
	if(document.getElementById("pdq")){
		var totalDQ$ = document.getElementById("pdq").innerHTML;
	}
	if(totalDQ$ > 0) {
		var tmpDQArr = document.getElementsByTagName("div");
		for(i=1;i<=totalDQ$;i++){
			DQArr[i] = tmpDQArr[i-1].id;
		}
	}
}

// Calculate Total (Function)
function calculateTotal() {

	// Reset Variables
	var tmpQty;
	totalQty = 0;
	tmpSubTotal = 0;
	tmpCost$ = "";
	tmpCostB$ = "";
	i = 0;
	a = document.getElementsByTagName("input");

	// Cycle through, add total if quantity is greater than 0
	while (element = a[i++]) {
	  if (element.className == "PLTBox") {
	  
	     tmpQty = a[i-1].value; 
	     if(tmpQty > 0) {
		    tmpCost$ = "";
		    tmpCostB$ = "";
		    totalQty = totalQty + Number(tmpQty);   
		    tmpID$ = "p" + i;
	        tmpCost$ = document.getElementById("p" + (i-1)).innerHTML;
	        tmpCost$ = tmpCost$.replace("$", "");	        
	        
	     // Check to see if discount quantity is available, first level
	     var tmpChkStr$ = "dqp" + element.name + "_0";
	     if (document.getElementById(tmpChkStr$)) {
	     	var tmpQtyAttr = parseInt(document.getElementById(tmpChkStr$).getAttribute("name"));
		if(tmpQty >= tmpQtyAttr) {
		     tmpCost$ = document.getElementById(tmpChkStr$).innerHTML;
		}
	     }
		    
	        
	     // Check to see if discount quantity is available, second level
	     var tmpChkStr$ = "dqp" + element.name + "_1";
	     if (document.getElementById(tmpChkStr$)) {
	     	var tmpQtyAttr = parseInt(document.getElementById(tmpChkStr$).getAttribute("name"));
		if(tmpQty >= tmpQtyAttr) {
		     tmpCost$ = document.getElementById(tmpChkStr$).innerHTML;
		}
	     }
	     
	        
	     // Check to see if discount quantity is available, second level
	     var tmpChkStr$ = "dqp" + element.name + "_2";
	     if (document.getElementById(tmpChkStr$)) {
	     	var tmpQtyAttr = parseInt(document.getElementById(tmpChkStr$).getAttribute("name"));
		if(tmpQty >= tmpQtyAttr) {
		     tmpCost$ = document.getElementById(tmpChkStr$).innerHTML;
		}
	     }	     
		   
	        tmpCostB$ = tmpCost$ * Number(tmpQty);
			tmpSubTotal = Number(tmpSubTotal) + Number(tmpCostB$);

	     }
	    }
	  }
	
	  // Update text display
	if (totalQty > 0) {
		totalQtyB = String(totalQty);
        document.getElementById("QTYTotal").innerHTML = totalQtyB + blankSpacing[5-totalQtyB.length];
        tmpSubTotalB = "$" + (tmpSubTotal).toFixed(2);
        document.getElementById("SubTotal").innerHTML  = tmpSubTotalB + blankSpacing[10-tmpSubTotalB.length];
        if(document.mainForm.salestax.checked==true){
	        tmpSalesTax = (tmpSubTotal).toFixed(2) * 0.055;
	     	tmpSalesTaxB = "$" +  tmpSalesTax.toFixed(2);
	        document.getElementById("SalesTax").innerHTML  = tmpSalesTaxB + blankSpacing[10-tmpSalesTaxB.length];	     	
        } else {
	    	tmpSalesTax = 0.0;        
	        document.getElementById("SalesTax").innerHTML  = blankSpacing[10];	     	
    	}
        calculateShipping(tmpSubTotal, tmpSalesTax);
    } else {
        document.getElementById("QTYTotal").innerHTML = blankSpacing[5];
        document.getElementById("SubTotal").innerHTML  = blankSpacing[10];
        document.getElementById("SalesTax").innerHTML  = blankSpacing[10];
        document.getElementById("ShipCost").innerHTML = blankSpacing[10];
        document.getElementById("GrandTotal").innerHTML = blankSpacing[10];
    }
}

function calculateShipping(STotal, TTotal) {
	var shipType = document.getElementById("shipZone").value;
	var shipCost = 0.00;
	var grandTotal = 0.00;
	
	switch(shipType)
	{
		case "USA":
			if (STotal <= US_Shipping[0]) {
				shipCost = US_ShippingC[0];
			} else if (STotal <= US_Shipping[1] && STotal > US_Shipping[0]) {
				shipCost = US_ShippingC[1];				
			} else if (STotal <= US_Shipping[2] && STotal > US_Shipping[1]) {
				shipCost = US_ShippingC[2];				
			} else if (STotal > US_Shipping[2]) {
				shipCost = US_ShippingC[3];				
			}
			break;
		case "ALHA":
			if (STotal <= ALHA_Shipping[0]) {
				shipCost = ALHA_ShippingC[0];
			} else if (STotal <= ALHA_Shipping[1] && STotal > ALHA_Shipping[0]) {
				shipCost = ALHA_ShippingC[1];				
			} else if (STotal <= ALHA_Shipping[2] && STotal > ALHA_Shipping[1]) {
				shipCost = ALHA_ShippingC[2];				
			} else if (STotal > ALHA_Shipping[2]) {
				shipCost = ALHA_ShippingC[3];				
			}
			break;
		case "CAMX":
			if (STotal <= CAMX_Shipping[0]) {
				shipCost = CAMX_ShippingC[0];
			} else if (STotal <= CAMX_Shipping[1] && STotal > CAMX_Shipping[0]) {
				shipCost = CAMX_ShippingC[1];				
			} else if (STotal <= CAMX_Shipping[2] && STotal > CAMX_Shipping[1]) {
				shipCost = CAMX_ShippingC[2];				
			} else if (STotal > CAMX_Shipping[2]) {
				shipCost = CAMX_ShippingC[3];				
			}
			break;
		case "INT":
			if (STotal <= US_Shipping[0]) {
				shipCost = US_ShippingC[0];
			} else if (STotal <= US_Shipping[1] && STotal > US_Shipping[0]) {
				shipCost = US_ShippingC[1];				
			} else if (STotal <= US_Shipping[2] && STotal > US_Shipping[1]) {
				shipCost = US_ShippingC[2];				
			} else if (STotal > US_Shipping[2]) {
				shipCost = US_ShippingC[3];				
			}
			shipCost = shipCost + 24.00;
			break;
		default:
	}
	
	
	if (shipCost > 0.00) {        
		tmpShipTotal = "$" + (shipCost).toFixed(2);
        document.getElementById("ShipCost").innerHTML = tmpShipTotal + blankSpacing[10-tmpShipTotal.length];
        grandTotal = STotal + shipCost + TTotal;       
        tmpGrandTotal = "$" + (grandTotal).toFixed(2);
        document.getElementById("GrandTotal").innerHTML = tmpGrandTotal + blankSpacing[10-tmpGrandTotal.length]; 
	  
    } else {
        document.getElementById("ShipCost").innerHTML = defaultSpacing$;
        document.getElementById("GrandTotal").innerHTML = defaultSpacing$;
    }

}

function hideUnused() {
		i = 0;
		j = 0;
		a = document.getElementsByTagName("tr");
		while (element = a[i++]) {
			if (element.className == "PLHeader") {
					element.style.display = "none";
			}
			
			if (element.className == "product") {
				if (document.getElementsByTagName("input")[j].value == 0) {
					element.style.display = "none";
				} else {
					element.style.backgroundImage = "URL(images/plbg.gif)";
				}
					
				j++;
			}
		}	
}


function unhideAll(PLURL$, hCat) {
	if (hCat == 0) {
		i = 0;
		j = 0;
		a = document.getElementsByTagName("tr");
		while (element = a[i++]) {
			if (element.className == "PLHeader") {
					element.style.display = "";
			}
			
			if (element.className == "product") {
				element.style.display = "";
				element.style.backgroundImage = "URL(none)";
			}
		}		
	} else {
		window.location=PLURL$;
		return false;	
	}
}
