/*takes the name of 4 controls. Adds control 1 to control 2 and saves it into control 3. 
if there are errors writes the error message to control 4*/

function addControls(Control1,Control2,TotalControl)
{
	var Control1Val=0;
	var Control2Val=0;
	var TotalVal=0;

	form = document.forms[0];
	if (IsNumeric(eval('form.'+Control1+'.value')) && IsNumeric(eval('form.'+Control2+'.value'))){
		Control1Val =  parseFloat(eval('form.'+Control1+'.value'));
		Control2Val = parseFloat(eval('form.'+Control2+'.value'));
		TotalVal = Control1Val+Control2Val;
		getElement(TotalControl).innerHTML = TotalVal;
	}
}

/*Gets the value from a drop down*/
function getValueFromDropdown(ControlName){

	var dropdownIndex = getElement(ControlName).selectedIndex;
	var dropdownValue = getElement(ControlName);
	var SelectedValue = dropdownValue.value;
	
	/*Get the subTotal*/
	var sSubtotal=getElement("lblSubTotal1").innerHTML;
	sSubtotal = sSubtotal.replace(/[^a-zA-Z 0-9 .]+/g,'');
	var Subtotal;
	if(IsNumeric(sSubtotal)){
		Subtotal=parseFloat(sSubtotal);
		Subtotal = Subtotal.toFixed(2);
	}

	if(ControlName.indexOf("Cnty")>=0){
		if (SelectedValue.indexOf("Can")>=0){
			makeAppear('ShipToProvState');
			makeAppear('ProvDD');
			makeDissapear('ShipToStLBL');
			makeDissapear('StateDD');
			makeDissapear('IntPnl');
			makeDissapear('FedExShipOptPnl');
			getElement("ShippingLbl").innerHTML = '--';
			getElement("TaxLbl").innerHTML = '--';
			getElement("TotalLbl").innerHTML = '--';
			getElement("StateDD").selectedIndex=0;
			getElement("ProvDD").selectedIndex=0;
			makeDissapear('cmdProceedToChkOut');
			makeDissapear('FlatRateImg');
			makeDissapear('CheckOutError');
		}
		if (SelectedValue.indexOf("USA")>=0){
			makeDissapear('ShipToProvState');
			makeDissapear('ProvDD');
			makeAppear('ShipToStLBL');
			makeAppear('StateDD');
			makeDissapear('IntPnl');
			makeDissapear('IntlShipPnl');
			getElement("ShippingLbl").innerHTML = '--';
			getElement("TaxLbl").innerHTML = '--';
			getElement("TotalLbl").innerHTML = '--';
			getElement("StateDD").selectedIndex=0;
			getElement("ProvDD").selectedIndex=0;
			makeDissapear('cmdProceedToChkOut');
			makeDissapear('FlatRateImg');
			makeAppear('cmdProceedToChkOutGhost');
			makeDissapear('CheckOutError');
			GetTotal();
		}
		if (SelectedValue.indexOf("Other")>=0){
			makeDissapear('ShipToProvState');
			makeDissapear('ProvDD');
			makeDissapear('ShipToStLBL');
			makeDissapear('StateDD');
			makeAppear('IntPnl');
			makeDissapear('IntlShipPnl');
			makeDissapear('FedExShipOptPnl');
			getElement("ShippingLbl").innerHTML = '--';
			getElement("TaxLbl").innerHTML = '--';
			getElement("TotalLbl").innerHTML = '--';
			getElement("StateDD").selectedIndex=0;
			getElement("ProvDD").selectedIndex=0;
			makeDissapear('cmdProceedToChkOut');
			makeDissapear('FlatRateImg');
			makeDissapear('cmdProceedToChkOutGhost');
			makeDissapear('CheckOutError');
		}
	}
	if(ControlName.indexOf("State")>=0){
		if ((SelectedValue.indexOf("Haw")==0)||(SelectedValue.indexOf("Alas")==0)){
			makeAppear('HawAlasPnl');
			makeDissapear('FedExShipOptPnl');
			getElement("ShippingLbl").innerHTML = '$25.00';
			getElement("TaxLbl").innerHTML = '$0.00';
			makeDissapear('CheckOutError');
			GetTotal();
		}else if ((SelectedValue.indexOf("AA")==0)||(SelectedValue.indexOf("AE")==0)||(SelectedValue.indexOf("AP")==0)){
			makeAppear('APOPnl');
			makeDissapear('FedExShipOptPnl');
			getElement("ShippingLbl").innerHTML = '$25.00';
			getElement("TaxLbl").innerHTML = '$0.00';
			makeDissapear('CheckOutError');
			GetTotal();
		}else{
			makeAppear('FedExShipOptPnl');
			makeDissapear('HawAlasPnl');
			makeDissapear('APOPnl');
			if (SelectedValue.indexOf("Mexico")>=0){
				CalTax();
			}else{
				getElement("TaxTxtBx").value = 0;
				getElement("TaxLbl").innerHTML = "$0.00";
			}
			GetSelectedItem("ShippingOption");
			makeDissapear('CheckOutError');
			
			var QulFreeShipping = getElement("FreeShippingTxtBx").value;
			if (QulFreeShipping.indexOf("True")>=0) {
				getElement("ShippingLbl").innerHTML = '$0.00';
				makeDissapear('FlatRateImg');
				
			}else{
				getElement("ShippingLbl").innerHTML = '$7.95';
			}
			GetTotal();
		}
	}
	if(ControlName.indexOf("ProvDD")>=0){
		makeAppear('IntlShipPnl');
		getElement("ShippingLbl").innerHTML = '$25.00';
		getElement("TaxLbl").innerHTML = '$0.00';
		makeDissapear('CheckOutError');
		GetTotal();
	}
}

/*Makes any contol vanish. Must have a Style attribute!*/
function makeDissapear(ControlName){
	getElement(ControlName).style.display = 'none';
}

/*Makes any contol appear. Must have a Style attribute!*/
function makeAppear(ControlName){
	/*getElement(ControlName).style.setAttribute('display', '');*/
	getElement(ControlName).style.display = ''; 
}

/*Used to detect which radio button is clicked*/
function GetSelectedItem(RadioListName) {

	var form = document.forms[0];
	var chosen = "";
	var buttonlist = eval('form.'+RadioListName);
	var len = buttonlist.length;
		
	for (i = 0; i <len; i++) {

		if (buttonlist[i].checked) {
			chosen = buttonlist[i].value;
		}	
	}
	
	var QulFreeShipping = getElement("FreeShippingTxtBx").value;
	
	if ((chosen.indexOf("7.95")>=0) && (QulFreeShipping.indexOf("True")>=0)) {
	chosen = "0.00";
	}
	
	/*var locOfPipe = chosen.indexOf("|");
	locOfPipe = locOfPipe+1;
	var shippingService = chosen.substring(locOfPipe);
	getElement("ShippingSrvTxBx").value = shippingService;
	
	var chosenValue =chosen.replace(shippingService,"");
	chosenValue = chosenValue.substring(0,chosenValue.length-1);*/
	getElement("ShippingLbl").innerHTML = "$" + chosen;
		
	GetTotal();
	}

function GetTotal(){
	
	/*Add Subtotal, tax and shipping to get total*/
	
	var sSubtotal=getElement("lblSubTotal1").innerHTML;
		sSubtotal = sSubtotal.replace(/[^0-9 .]+/g,'');
	var sTax=getElement("TaxLbl").innerHTML;
		sTax = sTax.replace(/[^0-9 .]+/g,'');
	var sShipping=getElement("ShippingLbl").innerHTML;
		sShipping = sShipping.replace(/[^0-9 .]+/g,'');

		
	
	var Subtotal =0.0;
	var Tax=0.0;
	var Shipping=0.0;
	var Total=0.0;
	var addItUp = true;
	
	/*results must be saved in a hidden textbox*/
	var TaxTxBox = getElement("TaxTxtBx");
	var ShippingTxBox = getElement("ShippingTxtBx");
	var TotalTxBox = getElement("TotalTxtBx");
	
	try 
	{
		Subtotal=parseFloat(sSubtotal);
	}
	catch(err)
	{

	}
	
	if(IsNumeric(sSubtotal)){
		Subtotal=parseFloat(sSubtotal);
		Subtotal = Subtotal.toFixed(2);
	}else{

		addItUp=false;
	}
	if(IsNumeric(sTax)){
		Tax=parseFloat(sTax);
		Tax = Tax.toFixed(2);
		TaxTxBox.value = Tax;
	}else{
		addItUp=false;
	}
	if(IsNumeric(sShipping)){
		Shipping=parseFloat(sShipping);
		Shipping = Shipping.toFixed(2); 
		ShippingTxBox.value = Shipping;
	}else{
		addItUp=false;
	}
	
	
	if (Shipping == '7.95'){
		getElement("ShippingSrvTxBx").value = "Regular Shipping";
	}else if (Shipping == '25.00'){
		getElement("ShippingSrvTxBx").value = "2-3 Day Shipping";
	}else if (Shipping == '45.00'){
		getElement("ShippingSrvTxBx").value = "Overnight Shipping";
	}else if (Shipping == '0.00'){
		getElement("ShippingSrvTxBx").value = "Free Shipping";
	}else {
		getElement("ShippingSrvTxBx").value = "Error";
	}
	
	
	if (addItUp){
		Total = (parseFloat(Subtotal) + parseFloat(Tax) + parseFloat(Shipping));
		Total = Total.toFixed(2);
		getElement("TotalLbl").innerHTML = "$" + Total;
		TotalTxBox.value = Total;
		makeAppear("cmdProceedToChkOut");
		makeAppear('FlatRateImg');
		makeDissapear('cmdProceedToChkOutGhost');
	}
}

/*Makes sure values are numeric*/
function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

	if (sText.length == 0) {
		IsNumber = false;
		return IsNumber;
	}
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}

/*Calculates tax*/
function CalTax()
{
	var Subtotal = 0.0;
	var TaxRate = .07000;
	var Tax = 0.0;
	var sSubtotal=getElement("lblSubTotal1").innerHTML;
		sSubtotal = sSubtotal.replace(/[^ 0-9 .]+/g,'');
		
	if(IsNumeric(sSubtotal)){
		Subtotal=parseFloat(sSubtotal);
		Subtotal = Subtotal.toFixed(2);
	}
	
	Tax = Subtotal*TaxRate;
	Tax = Tax.toFixed(2);
	getElement("TaxTxtBx").value = Tax;
	getElement("TaxLbl").innerHTML = "$" + Tax;
	
}
function DisplayError(){
	makeAppear('CheckOutError');
}

/*This function ensures that the “Find Element by ID" will work regardless of the browser*/
function getElement( id ) 
{ 
    if (document.getElementById) 
        var returnVar = document.getElementById(id); 
    else if (document.all) 
        var returnVar = document.all[id]; 
    else if (document.layers) 
        var returnVar = document.layers[id]; 
    return returnVar; 
}


/*var e = evt? evt : window.event; 
trapEnter(e); */

/*document.onkeypress = trapEnter(e);*/

function trapEnter(e){
	if(window.event){
		if(window.event.keyCode==13){
			__doPostBack('LnkUpdateQtyBtn','');
			event.returnValue=false;
			event.cancel = true;
			return false; 
		}
	}
	else if (e.keyCode==13) {
		var bt = getElement('LnkUpdateQtyBtn');
		bt.click(); 
	}
}

//below code fades objects in and out as needed
function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 
	var object = getElement(id);

	

    //determine the direction for the blending, if start and end are the same nothing happens 
    //fade out
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        }
        object.style.display='none';
        var bodyTag = getElement('homeBody');
        bodyTag.style.overflow='auto';        
          
    //fade in 
    } else if(opacStart < opacEnd) {		
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
            object.style.display='block'; 
            if (id != 'fade'){
				centerVertically(id);
            }else{
				object.style.height=f_clientHeight()+100;
				object.style.top=f_scrollTop();
				
            }
            var bodyTag = getElement('homeBody');
            bodyTag.style.overflow =  'hidden';
    }
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = getElement(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
} 

// center an object
function centerVertically(objectID) 
    {
		var thisObj = getElement(objectID);
		var height = f_scrollTop() + 10;
		var newLocation = height;
		    
		thisObj.style.top = newLocation+'px';
    }
 
function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}