var DefaultObjectId;
var DOMViewerObj=null;
var DOMViewerName=null;

var bFormValid = true;
var errMsg = '';

var highlightcolor="#c2d0ef";
var offcolor="#eeeeee";


var ns6=document.getElementById && !document.all;
var ie=document.all;
var previous='';
var eventobj;

//Regular expression to highlight only form elements
var intended=/INPUT|TEXTAREA/;

/////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////
function updateShipping(xval) {
   document.getElementById('shipTotal').value = xval;
}
function checkShip () {
var flag=0;	
			  for (var i=0; i<document.shipform.shipping.length; i++)  {
			  if (document.shipform.shipping[i].checked)  {
						  var ship = document.shipform.shipping[i].value;
						  flag=1;
			               }
			  } 
if(flag==0)
{
			  alert("Please select a Shipping type");
			  return false;
}
else
{
			   var promocode=document.shipform.promo.value;
			   var prom=promocode.toUpperCase(); 
			  //alert(prom);
			  if(prom==''||prom==null)
			  {
				  return true;
			  }
			  else
			  {
						 var total=document.getElementById("DefTotal").value;
						  //alert(total);
						  var success=0;
							for(var j=0;j<promos.length;j++)
							{
							  if(promos[j]==prom)
								{
									success=1;
									//alert("hurray free shipping");
								}
							}// for loop
								  if(success==1)
								  {
									  if(total>350)
									  {
										  return true;
									  }
									  else if(total>250&&ship<55)
									  {
										  return true;
									  }
									  else if(total>150&&ship<40)
									  {
										  return true;
									  }
									  else if(ship<=15)
									  {
										  return true;
									  }
									  else
									  {
										  alert("You can not choose this shipping option with this promo code. Please choose a lower value shipping option.\n\n PromoCode Requirements:\n Orders of 350$ or above value qualifies for Free Overnight \n Orders of  250$ or above value qualifies for Free Express.\n\n Still wants to proceed with your selected shipping option? please remove the promo code and click checkout."); 
										  return false;
									  }
									  
									  
								  }
								  else
								  {
									  return true;
								  }
			  
			  
			  }//promo null or not else


}//else
}//function
function validation(){
//	alert("is it working");
	var rules=document.orderForm.Ack_Rules.checked;
	var error="please correct the following errors\n\n";
	var flag=0;
	
	if(rules==false)
	{
		error=error+"please accept our terms and conditions\n";
		flag=1;
	}
	var ship=document.orderForm.Ship_Type.value;
	//alert(ship);
	if(ship==2)
	{
			
	}
	else
	{
	if(document.orderForm.Ship_Recip.value=='')
	{
		error=error+"please enter Reciepient Name\n";
		flag=1;
	}
	if(document.orderForm.Ship_Address.value=='')
	{
		error=error+"please enter shipping address\n";
		flag=1;
	}
	if(document.orderForm.Ship_City.value=='')
	{
		error=error+"please enter shipping city\n";
		flag=1;
	}
	if(document.orderForm.Ship_State.value=='')
	{
		error=error+"please enter shipping state\n";
		flag=1;
	}
	if(document.orderForm.Ship_Zip.value=='')
	{
		error=error+"please enter shipping zip\n";
		flag=1;
	}
	}
	if(document.orderForm.FirstName.value=='')
	{
		error=error+"please enter your firstname\n";
		flag=1;
	}
	if(document.orderForm.LastName.value=='')
	{
		error=error+"please enter your lastname\n";
		flag=1;
	}
	if(document.orderForm.DayArea.value=='')
	{
		error=error+"please enter area code\n";
		flag=1;
	}
	if(document.orderForm.DayPre.value==''||document.orderForm.DayNum.value=='')
	{
		error=error+"please enter a valid phone number\n";
		flag=1;
	}
	
			if(document.orderForm.Bill_Address.value=='')
			{
				error=error+"please enter a Billing Address\n";
				flag=1;
			}
			if(document.orderForm.Bill_City.value=='')
			{
				error=error+"please enter a Billing City\n";
				flag=1;
			}
			if(document.orderForm.Bill_State.value=='')
			{
				error=error+"please enter a Billing State\n";
				flag=1;
			}
			if(document.orderForm.Bill_Zip.value=='')
			{
				error=error+"please enter a Billing Zip\n";
				flag=1;
			}
	
	//var gc=document.orderForm.GCBal.value;
	//var rc=document.orderForm.RCBal.value;

	/*if(dis)
	{
		*/
	if(document.getElementById("CardIssuer").disabled == false)
	{
		if(document.orderForm.CardNumber.value=='')
		{
		error=error+"please enter a Valid Credit Card Number\n";
		flag=1;
		}
		if(document.orderForm.CardCVV2.value=='')
		{
		error=error+"please enter a Valid cvv Number\n";
		flag=1;
		}
		if(document.orderForm.ExpMonth.value=='')
		{
		error=error+"please select expiration Month\n";
		flag=1;
		}
		if(document.orderForm.ExpYear.value=='')
		{
		error=error+"please select expiration Year\n";
		flag=1;
		}
		if(document.orderForm.CardName.value=='')
		{
		error=error+"please enter the person's name on the card\n";
		flag=1;
		}
	}
	
	if(flag==1)
	{
		alert(error);
		return false;
	}
	else
	  return true;
	
}

function copyFromBilling() {

  	if (document.orderForm.Ship_Recip.value == '') {

         document.orderForm.Ship_Recip.value = document.orderForm.FirstName.value+" "+document.orderForm.LastName.value;

    }

		document.orderForm.Ship_Address.value = document.orderForm.Bill_Address.value;
		document.orderForm.Ship_Address2.value = document.orderForm.Bill_Address2.value;
		document.orderForm.Ship_City.value = document.orderForm.Bill_City.value;
		document.orderForm.Ship_State.value = document.orderForm.Bill_State.value;
		document.orderForm.Ship_Zip.value = document.orderForm.Bill_Zip.value;
		calctax();
		updateTotalDue();

}
function calctax(){
	var state=document.orderForm.Ship_State.value;
	
	if(state=='tx'||state=='TX'||state=='Tx'||state=='tX' ||state=='TEXAS'||state=='texas')
	{
		var total=document.getElementById("ntotal").value;
		var tax=document.getElementById("tax").value;
		//var tax = new Number(((total * 1) + (ship * 1))*8.25/100);
		//alert(tax);
		//var newtotal=total+ship+tax;
		document.getElementById("ActTotal").value=total;
		document.getElementById("ActTax").value=tax;
	}
	else
	{
		var total=document.getElementById("DefTotal").value;
		var freeship=document.getElementById("freeship").value;
		if(freeship==0)
		{
		var ship=document.getElementById("shipping").value;
		}
		else
		{
			var ship=0;
		}
		var newtotal = new Number((total * 1) + (ship * 1));
		document.getElementById("ActTax").value="$0.00";
		document.getElementById("ActTotal").value=newtotal;
		//alert(newtotal);
	}
	//alert(state);
	
	
}

function updateRecip() {

  	if (document.orderForm.Ship_Recip.value == '') {

         document.orderForm.Ship_Recip.value = document.orderForm.FirstName.value+" "+document.orderForm.LastName.value;

    }

}


function showShipinfo(rbut) {

	var secxtype = rbut.value;

	if (secxtype == 2) {

			document.getElementById("Ship_Recip").className = "textbox_off";
			document.getElementById("Ship_Recip").className = "textbox_off";
			document.getElementById("Ship_Address").className = "textbox_off";
			document.getElementById("Ship_Address2").className = "textbox_off";
			document.getElementById("Ship_City").className = "textbox_off";
			document.getElementById("Ship_State").className = "textbox_off";
			document.getElementById("Ship_Zip").className = "textbox_off";

			document.getElementById("Ship_Recip").disabled = true;
			document.getElementById("Ship_Address").disabled = true;
			document.getElementById("Ship_Address2").disabled = true;
			document.getElementById("Ship_City").disabled = true;
			document.getElementById("Ship_State").disabled = true;
			document.getElementById("Ship_Zip").disabled = true;

	} else {

			document.getElementById("Ship_Recip").disabled = false;
			document.getElementById("Ship_Address").disabled = false;
			document.getElementById("Ship_Address2").disabled = false;
			document.getElementById("Ship_City").disabled = false;
			document.getElementById("Ship_State").disabled = false;
			document.getElementById("Ship_Zip").disabled = false;

			document.getElementById("Ship_Recip").className = "textbox";
			document.getElementById("Ship_Recip").className = "textbox";
			document.getElementById("Ship_Address").className = "textbox";
			document.getElementById("Ship_Address2").className = "textbox";
			document.getElementById("Ship_City").className = "textbox";
			document.getElementById("Ship_State").className = "textbox";
			document.getElementById("Ship_Zip").className = "textbox";

	}

}




function updateAdjTotal() {

	var xsh1 = document.getElementById("shipping").value;

	var xdt1 = document.getElementById("DefTotal").value;

	var newat = new Number((xsh1 * 1) + (xdt1 * 1));

	document.getElementById("ActTotal").value = newat.toFixed(2);
	//alert('no prob');

}
function updateAdjTotalship(price) {

if(document.shipform.gconly.value==0)
{
for (var i=0; i<document.shipform.shipping.length; i++)  {
if (document.shipform.shipping[i].checked)  {

var ship = document.shipform.shipping[i].value;
//alert(ship);
}
} 
	var xsh1 = ship;

	var xdt1 = document.getElementById("DefTotal").value;

	var newat = new Number((xsh1 * 1) + (xdt1 * 1));

	document.getElementById("ActTotal1").value = newat.toFixed(2);
}

}


function init() {

	//updateAdjTotal();
	
	var login=document.getElementById("login").value;
	var gc=document.getElementById("GCBal").value;
	var rc=document.getElementById("RCBal").value;
	if(gc!=0||rc!=0)
	{
	updateTotalDue();
	}
	//updateTotalDue();
	var ship=document.orderForm.shipping.value;
	
	if(ship==0)
	 {
	        document.getElementById("Ship_Recip").className = "textbox_off";
			document.getElementById("Ship_Recip").className = "textbox_off";
			document.getElementById("Ship_Address").className = "textbox_off";
			document.getElementById("Ship_Address2").className = "textbox_off";
			document.getElementById("Ship_City").className = "textbox_off";
			document.getElementById("Ship_State").className = "textbox_off";
			document.getElementById("Ship_Zip").className = "textbox_off";

			document.getElementById("Ship_Recip").disabled = true;
			document.getElementById("Ship_Address").disabled = true;
			document.getElementById("Ship_Address2").disabled = true;
			document.getElementById("Ship_City").disabled = true;
			document.getElementById("Ship_State").disabled = true;
			document.getElementById("Ship_Zip").disabled = true;
	 }
	 

}

function updateCreditTotal(rbut) {

	if(rbut.checked) {

		document.getElementById("RCBalX").value = document.getElementById("RCBal").value;

	} else {

		document.getElementById("RCBalX").value = 0;

	}

	updateTotalDue();

}


function updateGiftTotal(rbut) {

	if(rbut.checked) {


		document.getElementById("GCBalX").value = document.getElementById("GCBal").value;

	} else {

		document.getElementById("GCBalX").value = 0;

	}

	updateTotalDue();

}

function updateTotalDue() {

	var newtot = new Number((document.getElementById("ActTotal").value * 1) - (document.getElementById("GCBalX").value * 1) - (document.getElementById("RCBalX").value * 1));


	if (newtot < 0) {

		newtot = 0;

	}

	document.getElementById("GrTotal").value = newtot.toFixed(2);

	if (newtot == 0) {

			document.getElementById("CardIssuer").className = "order_select_off";
			document.getElementById("CardNumber").className = "textbox_off";
			document.getElementById("CardCVV2").className = "textbox_off";
			document.getElementById("ExpMonth").className = "order_select_off";
			document.getElementById("ExpYear").className = "order_select_off";
			document.getElementById("CardName").className = "textbox_off";

			document.getElementById("CardIssuer").disabled = true;
			document.getElementById("CardNumber").disabled = true;
			document.getElementById("CardCVV2").disabled = true;
			document.getElementById("ExpMonth").disabled = true;
			document.getElementById("ExpYear").disabled = true;
			document.getElementById("CardName").disabled = true;

	} else {

			document.getElementById("CardIssuer").className = "order_select";
			document.getElementById("CardNumber").className = "textbox";
			document.getElementById("CardCVV2").className = "textbox";
			document.getElementById("ExpMonth").className = "order_select";
			document.getElementById("ExpYear").className = "order_select";
			document.getElementById("CardName").className = "textbox";

			document.getElementById("CardIssuer").disabled = false;
			document.getElementById("CardNumber").disabled = false;
			document.getElementById("CardCVV2").disabled = false;
			document.getElementById("ExpMonth").disabled = false;
			document.getElementById("ExpYear").disabled = false;
			document.getElementById("CardName").disabled = false;

	}

}




/////////////////////////////////////////////////////////////////
function checkCC()
   {
   var sCardText = new String();
   sCardText = document.orderForm.CardNumber.value;
   var regexp;
   regexp = / /g;
   sCardText = sCardText.replace(regexp,"");
   if(sCardText.length<=0)
      {
      alert('Please enter a valid card number.');
      document.orderForm.CardNumber.focus();
      return false;
      }
   if (CheckNum(document.orderForm.CardNumber.value) == 0)
      {
      alert('Please enter a valid card number.');
      return false;
      }
   if (!checkExpDate())
      {
      alert('Please enter a valid expiration date.');
      return false;
      }
   return true;
   }
/////////////////////////////////////////////////////////////////
function CheckNum(cardnum)
   {
   if (cardnum == '') return 0;
   if (isNaN(cardnum)) return 0;
   if (cardnum=='4111111111111111') return 0;
   if (cardnum=='4242424242424242') return 0;
   if (cardnum=='5454545454545454') return 0;
   if (!CheckLUHN(cardnum)) return 0;
   return 1;
   }
/////////////////////////////////////////////////////////////////
function CheckLUHN(cardnum)
   {
   var RevNum = new String(cardnum);
   RevNum = Reverse(RevNum);

   var total = new Number(0);
   for ( var i = 0; i < RevNum.length; i += 1 )
      {
      var temp = 0;
      if (i % 2)
         {
         temp = RevNum.substr(i, 1) * 2;
         if (temp >= 10)
            {
            var splitstring = new String(temp);
            temp = parseInt(splitstring.substr(0, 1)) + parseInt(splitstring.substr(1, 1));
            }
         }
      else
         {
         temp = RevNum.substr(i, 1);
         }
      total += parseInt(temp);
      }
   // if there's no remainder, we return 1 (true)
   return (total % 10) ? 0 : 1;
   }
/////////////////////////////////////////////////////////////////
function Reverse(strToReverse)
   {
   var strRev = new String;
   var i = strToReverse.length;

   while (i--)
      {
      strRev += strToReverse.charAt(i);
      }
   return strRev;
   }
/////////////////////////////////////////////////////////////////
function checkExpDate()
   {
   var d = new Date;
   var curYear = d.getFullYear();
   var curMonth = d.getMonth()+1;
   var expMonth = document.orderForm.ExpMonth.options[document.orderForm.ExpMonth.selectedIndex].value;
   var expYear = document.orderForm.ExpYear.options[document.orderForm.ExpYear.selectedIndex].value;
   if ((curYear > expYear) || ((curYear == expYear) && (curMonth > expMonth))) return false;
   return true;
   }
/////////////////////////////////////////////////////////////////
function isLeapYear(Year)
{
   if ( ( Year % 4 == 0 ) && (( Year % 100 != 0 ) || ( Year % 400 == 0 )))
   {
      return (true);
   }
   else
   {
      return (false);
   }
}
/////////////////////////////////////////////////////////////////
function chkYear()
   {
   var d = new Date;
   var curYear = d.getFullYear();
   var curMonth = d.getMonth()+1;
   var curMonthDay = d.getDate();
   var bYear = document.orderForm.DOBYear.options[document.orderForm.DOBYear.selectedIndex].value;
   var bMonth = document.orderForm.DOBMonth.options[document.orderForm.DOBMonth.selectedIndex].value;
   var bDay = document.orderForm.DOBDay.options[document.orderForm.DOBDay.selectedIndex].value;
   if ((curYear-bYear)>usrAgeLimit)
      {
      return true;
      }
   else if ((curYear-bYear)==usrAgeLimit)
      {
      if ((curMonth-bMonth)>0 || ((curMonth-bMonth)==0 && (curMonthDay-bDay)>=0)) return true;
      }
   alert("Please be advised that you must be Over " + usrAgeLimit + " to place an order.");
   document.orderForm.DOBYear.focus();
   return false;
   }
/////////////////////////////////////////////////////////////////
//Check whether element clicked is form element
/////////////////////////////////////////////////////////////////
function checkel(which)
   {
   if (which.style && intended.test(which.tagName))
      {
      if (ns6 && eventobj.nodeType==3) eventobj=eventobj.parentNode.parentNode;
      return true;
      }
   else
      return false;
   }
/////////////////////////////////////////////////////////////////
//Highlight form element
/////////////////////////////////////////////////////////////////
function highlight(e)
   {
   eventobj = ns6 ? e.target : event.srcElement;
   if (previous!='')
      {
      if (checkel(previous)) previous.style.backgroundColor='';
      previous=eventobj;
      if (checkel(eventobj)) eventobj.style.backgroundColor=highlightcolor;
      }
   else
      {
      if (checkel(eventobj)) eventobj.style.backgroundColor=highlightcolor;
      previous=eventobj;
      }
   }

/////////////////////////////////////////////////////////////////
function LimitText(fieldObj,maxChars)
{
  var result = true;
  if (fieldObj.value.length >= maxChars) {
    alert("Your answer must be less than " + maxChars + " characters.");
    fieldObj.value = fieldObj.value.substr(0, maxChars);
    result = false;
  }
  if (window.event)
    window.event.returnValue = result;
  return result;
}

/////////////////////////////////////////////////////////////////
function matchFound(sInput,re)
   {
   var tmpArr;
   tmpArr = sInput.match(re);
   if (tmpArr != null) return true;
   return false;
   }
/////////////////////////////////////////////////////////////////
function getRef(obj)
   {
   if(typeof obj == "string") obj= document.getElementById(obj);
   return obj;
   }
/////////////////////////////////////////////////////////////////
function setStyle(obj, style, value)
   {
   getRef(obj).style[style]= value;
   }
    /* USAGE:
      obj      = object reference or element id.
      style    = the style to be changed.
      value    = the value assigned to the style.
    */
/////////////////////////////////////////////////////////////////
function setClassName(obj, className)
   {
   getRef(obj).className= className;
   }
/////////////////////////////////////////////////////////////////
/* The Browser object */
Browser = {
   isSupported : function()
      {
      return (Boolean(document.getElementsByTagName) && Boolean(document.getElementById));
      },
   // toString is ignored by for - in loop. Why?
   toString : function() {return navigator.userAgent;},
   isOpera : function() {return this.toString().indexOf("Opera") > 0;},
   isNS4 : function() {return (Boolean(document.layers) && this.toString().indexOf("Netscape") == -1);},
   isNS6 : function() {return (Boolean(document.getElementById) && this.toString().indexOf("Netscape") == -1);},
   isIE : function() {return !this.isOpera() && this.toString().indexOf("MSIE") > 0;},
   isIE5 : function() {return !this.isOpera() && this.toString().indexOf("MSIE 5") > 0;},
   isIE5_0 : function() {return !this.isOpera() && this.toString().indexOf("MSIE 5.0") > 0;},
   isIE6 : function() {return !this.isOpera() && this.toString().indexOf("MSIE 6") > 0;},
   isGecko : function() {return !this.isOpera() && this.toString().indexOf("Gecko") > 0;},
   isMoz : function() {return this.isGecko() && this.toString().indexOf("Netscape") == -1;},
   isMac : function() {return this.toString().indexOf("Mac") > 0;},
   isMac_IE5 : function() {return this.isIE5() && this.isMac();}
};
/////////////////////////////////////////////////////////////////
function writeBrowser()
   {
   document.writeln("<pre>");
   document.writeln(padString("Browser.toString()", 21)+" = ", Browser.toString());
   for(var x in Browser) document.writeln(padString("Browser."+x +"()", 21)+" = " + Browser[x]());
   document.writeln("<"+"/pre>");
   }