var bAllow = false;

	function enterKeyPressLive(evt){				
		evt = (evt) ? evt : event;
		var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 
        ((evt.which) ? evt.which : 0));
		if (charCode == 13){
			__doPostBack('StandardSearchLive1:btnGo','');
		}
   }

	function enterKeyPress(evt){				
		evt = (evt) ? evt : event;
		var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 
        ((evt.which) ? evt.which : 0));
        if (charCode == 13){  			    						
			try{
			var temp = window.document.Form2.elements["Standardsearchcontrol1:txtKeyword"].type;
			__doPostBack('Standardsearchcontrol1:btnGo','');			
			}
			catch(er){
				try{
						var temp = window.document.Form2.elements["StandardSearchControl1:txtKeyword"].type;
						__doPostBack('StandardSearchControl1:btnGo','');
				}
				catch(er2){
						__doPostBack('StandardSearchControl2:btnGo','');
				}			
			}
        }
	}

var AddProductPopup = "AddProductPopUp.aspx";
function popUpWindow()
{
	var sFeatures, h, w, myThanks, i
	h = window.screen.availHeight 
	w = window.screen.availWidth 
	sFeatures = "height=" + h*.25 + ",width=" + h*.50 + ",screenY=" + (h*.30) + ",screenX=" + (w*.33) + ",top=" + (h*.30) + ",left=" + (w*.33) + ",resizable,scrollbars=yes"
	myThanks = window.open(AddProductPopup,"",sFeatures)
}
function popUpInventory(spage)
{
	var sFeatures, h, w, myThanks, i
	h = window.screen.availHeight 
	w = window.screen.availWidth 
	sFeatures = "height=" + 200 + ",width=" + h*.50 + ",screenY=" + (h*.30) + ",screenX=" + (w*.33) + ",top=" + (h*.30) + ",left=" + (w*.33) + ",resizable,scrollbars=no,location=no"
	myThanks = window.open(spage,"",sFeatures)
}
function closePopUpWindow()
{
	window.close();
}

function CheckoutFromPopUp()
{
	window.opener.location.href = "ShoppingCart.aspx";
	window.close();
}
function ConfirmCancel(msg){
var resp

resp = window.confirm(msg);
//window.document.openerForm.DelFlag.value="1";
return resp;
}


function doHelp(topic){
	window.focus()
	var w = window.screen.availWidth;
	var h = window.screen.availHeight;
	window.resizeTo(.75*w,h);
	window.moveTo(0.0);
	var sFeatures = "height=" + (h-(.05*h)) + ",width=" + w*.23 + ",resizable,scrollbars=1,top=0,left=" + w*.75; 
	var helpPane = window.open(topic,"helpPane",sFeatures)
	helpPane.focus();
}


function SetValidationSearchResults(str)
			{var e
			if (str == ""){str="::::::::::";}			
			ResetForm(window.document.Form2);
			for (var i = 0; i < window.document.Form2.length; i++) 
				{
				e = window.document.Form2.elements[i];
				if (e.name.indexOf(str)>-1)
					{
					//if (e.type != "radio")
					//	{
						if (e.type == "select-one" || e.type == "radio") 
							{e.title="Product Attribute";
							e.required=true;}
						if (e.type == "text" && (e.name.indexOf("txtQty")>-1 ||  e.name.indexOf("txtQuantity")>-1))
						
							{e.title="Product Quantity";
							e.quantitybox=true;
							e.required=true;
							}
					//	}
					}
				}
				
				return ValidateForm(window.document.Form2)
			}
		
function SetValidationProductBot(str,str2)
			{var e
			ResetForm(window.document.frmBot);
			if (str2=="")
				{str2="::::::::"}//this is a string that should not be in anything, so if it is blank, it shouldn't effect the if statement
			for (var i = 0; i < window.document.frmBot.length; i++) 
				{
				e = window.document.frmBot.elements[i];
				if (e.name.indexOf(str)>-1 || str2==e.name.substr(e.name.indexOf(str2)))   //contains str or ends with str2 (this satisfies productbots qty textboxes, so that one id might contain another)
					{
					//if (e.type != "radio")
					//	{
					
					
						if (e.type == "select-one" || e.type == "radio") 
							{
							if(e.type == "radio")
							{
							 e.title="Product Attribute";
							}							
							else
							{
							 e.title=e[0].text;
							}
							 
							e.required=true;
							}
						if (e.type == "text" && e.name.indexOf("txtQty")>-1)
							{e.title="Product Quantity";
							e.quantitybox=true;
							e.required=true;
							}
					//	}
					}
				}
			//	
				return ValidateForm(window.document.frmBot)
//return false
			}


function isNumber(value) {
	for (var i=0; i < value.length; i++) {
		a = parseInt(value.charAt(i));
		if (isNaN(a)) {
			return false;			
			break;
		}
	}
	return true;
}

function isCardNumValid(num) {
	var num1, num2, tempNum;
	
	if (!isNumber(num)) {
		return true;
	}
	num1 = ""
	if (!(num.length%2==0)) {
		for(var j=0; j < num.length; j++) {
			if ((j+1)%2==0){
				tempNum = 2 * num.charAt(j);
			}
			else {
				tempNum = 1 * num.charAt(j);
			}
			num1 = num1 + tempNum.toString();
		}
	}
	else{
		for(var j=0; j < num.length; j++){
			if ((j+1)%2==0){
				tempNum = 1 * num.charAt(j);
			}
			else{
				tempNum = 2 * num.charAt(j);
			}
			num1 = num1 + tempNum.toString();
		}
	}
	num2 = 0;
	for (var j = 0; j < num1.length; j++) {
		num2 = num2 + parseInt(num1.charAt(j));
	}
	if (num2%10==0) {
		return false;
	}
	else {
		return true;
	}
}

function specialCase(obj) {
	if (isCardNumValid(obj.value)) {
		bAllow = false;
		alert("The Credit Card Number is in an invalid format.");
	}
	else
		bAllow = true;

}


function isDate(strDate)
{
if (dateCheck(strDate, '%m/%d/%y') || dateCheck(strDate, '%d/%m/%y') ||
    dateCheck(strDate, '%m-%d-%y') || dateCheck(strDate, '%d-%m-%y'))
{return true;}
else
{return false;}
	
}
function ResetForm(form)
{
	var e
	
	for (var i = 0; i < form.length; i++) {
		e = form.elements[i];
		e.required=false;
		e.number=false;
		e.email=false;
		e.creditcardnumber=false;
		e.phonenumber=false;
		e.password=false;
		e.ssn=false;
		e.quantitybox=false;
	}
}
function checkValue(objForm){
  if (objForm.txtCardNumber == null)
  {
	if (objForm.txtPONumber == null)
	{
	  // ECheck is there
	 bAllow = true; 
	}
	else
	{
		// PO Number on page
		if (objForm.txtPONumber.value == "")
		{
			bAllow = false;
			Alert("Please enter something in PO");
		}
		else
			bAllow = true;
	}
  }
  else
  {
    if (objForm.txtCardNumber.value == "")
    {
      if (objForm.txtPONumber == null)
      {
		// Just Credit Card
		bAllow = false;
		alert("Please put in credit card");
      }
      else
      {
		if (objForm.txtPONumber.value == "")
		{
			bAllow = false;
			alert("Please put in something");
		}
		else
		{
			bAllow = true;
		}
      }
    }
    else
    {
		bAllow = true;
    }
  }

  return bAllow;
}

function stripChar(sValue, sChar) {
	var i, tempChar, buildString;
	buildString = ""
	for (var i=0; i<sValue.length; i++) {
		tempChar = sValue.charAt(i);
		if (tempChar != sChar) {
			buildString = buildString + tempChar;
		}
	}
	return buildString;
}
function ValidateForm(form) {
	var e, title, empty_fields, char_check, invalid_faxNumber,invalid_card, month, year, invalid_date, eMail, invalid_eMail 
	var strDate
	var iQuantity, quantity_check, checkSpecial, tempError, special_Error, msg, upperLine, lowerLine
	var num, invalid_phoneNumber, passwd_mismatch,invalid_ssn
	var strRadioButtonNames
	var RadioExists
	var RadioCnt
	var RadioChecked
	var ProdAttrCount
	ProdAttrCount=1;
	strRadioButtonNames=";"
	msg = "";
	empty_fields = "";
	char_check = "";
	special_Error = "";
	tempError = "";
	num = form.length
	var PasswordSet
	var PasswordStr
	for (var i = 0; i < form.length; i++) {
		e = form.elements[i]
		if ((e.title == null)||(e.title == "")) {
			title = e.name;
		}
		else {
			title = e.title;
		}
		
		if (((e.type == "text") || (e.type == "textarea")||(e.type == "password")) && !e.special && !e.disabled) {
			
			if (e.value.length <= 0 && e.required) {
				empty_fields += "\n            " + title;
				
				continue;
			}
			if (e.number) {
				num = e.value;
				num = stripChar(num, ".");
				num = stripChar(num, ",");
				if (!isNumber(num) || num.length>10) {
					char_check += "\n             " + title;
				}
			}
			if (e.creditcardnumber) {
				e.value = stripChar(e.value, " "); 
				e.value = stripChar(e.value, "-"); 
				invalid_card = isCardNumValid(e.value);
			}
			
			
			if (e.email) {
				eMail = e.value;
				if (eMail.length > 0)
				{
					if ((eMail.indexOf("@") != -1) && (eMail.indexOf(".") != -1)) {
						invalid_eMail = false;
					}
					else {
						invalid_eMail = true;
					}
				}	
			}
                        if (e.name == "txtEmail") {
				eMail = e.value;
				if ((eMail.indexOf("@") != -1) && (eMail.indexOf(".") != -1)) {

					invalid_eMail = false;
				}
				else {
				  
					invalid_eMail = true;
				}
			}	
			

			if (e.phonenumber) 
			{
				if (e.value !="") 
				{
				var isFax = e.title.indexOf("Fax");
				if(isFax >= 0 )
				 {
				   num = e.value;
					num = stripChar(num, " ");
					num = stripChar(num, "-");
					num = stripChar(num, "+");
					if (num.length < 10) 
					{
					invalid_faxNumber = true;
					}	
				 }
				else
				 {		
				
					num = e.value;
					num = stripChar(num, " ");
					num = stripChar(num, "-");
					num = stripChar(num, "+");
					if (num.length < 10) 
					{
					invalid_phoneNumber = true;
					}	
				  }
				}
			}
			if (e.ssn) 
			{
				if (e.value !="") 
				{
					num = e.value;
					num = stripChar(num, "-");
					if (num.length != 9 || !isNumber(num)) 
					{
					invalid_ssn = true;
					}	
				}
			}
			if (e.date) 
			{
				if (e.value !="") 
				{
					strDate= e.value;

					if (!isDate(strDate)) 
					{
					invalid_date = true;
					}	
				}
			}
		}
		if (e.quantitybox) {
			iQuantity = e.value;
			if (!isNumber(iQuantity)) {
				quantity_check = true;
			}
			if (parseInt(iQuantity) < 0) {
				quantity_check = true;
			}
			if ((iQuantity) < 1) {
				quantity_check = true;
			}

		}
		if (e.password)
			{
			if (PasswordSet==true)
				{
				if (e.value != PasswordStr)
					{
					passwd_mismatch = true;}
				}

			else
				{
				PasswordSet=true;
				PasswordStr=e.value;}
			}
		//if (e.special) {
		//	checkSpecial = specialCase(e, form);
		//	if (tempError != checkSpecial) {
		//		special_Error = special_Error + checkSpecial
		//	}
		//	tempError = checkSpecial;
		//}


		if (e.type=="select-one"){	
			if (e.required) {
		
				if (e.options[e.options.selectedIndex].value == "" ||e.options[e.options.selectedIndex].value == "-1" || (e.options[e.options.selectedIndex].value == "NONE" && e.name.indexOf("cboShipping")>-1) ||(e.options[e.options.selectedIndex].value == "0" && e.name.indexOf("cboShipChoices")>-1)) {
					empty_fields += "\n            " + title;
					continue;
				}
			}
		}
		if (e.type == "radio" && e.required) {
			if (strRadioButtonNames.indexOf(";" + e.name + ";") == -1)

			{//title=title + " " + ProdAttrCount
			//ProdAttrCount=++ProdAttrCount;
			RadioExists=true;
			RadioChecked=false;
			RadioCnt=0
			strRadioButtonNames=strRadioButtonNames + e.name + ";"
			if (form.elements[e.name].checked==true) {
				RadioChecked=true;
			}
			else if (form.elements[e.name].checked==false){
				empty_fields += "\n            " + title;
			}
			else
			{			
			do
				{
				if (form.elements[e.name][RadioCnt]==undefined) {
						RadioExists=false;
						}
					else
					{
						if (form.elements[e.name][RadioCnt].checked==true)
						{RadioChecked=true;}
						
					}
				RadioCnt=++RadioCnt
				}while(RadioExists==true);
						if (RadioChecked==false)
						{empty_fields += "\n            " + title;
							continue;
						}
					}
				}
		}
	}
	
	if (!empty_fields && !char_check && !invalid_ssn && !special_Error && !invalid_card && !invalid_date && !invalid_eMail && !quantity_check && !invalid_phoneNumber && !passwd_mismatch) {return true}
	
	msg = "The form was not submited due to the following error(s).\n";
	
	upperLine = "\n_________________________________________________________\n\n";
	lowerLine = "_________________________________________________________\n";
	
	if (empty_fields) {
		msg += upperLine;
		msg += "The following field(s) must be filled in:\n";
		msg += lowerLine;
		msg += empty_fields;
	}
	if (char_check) {
		msg += upperLine;
		msg += "The following field(s) need a numeric value 10 characters long or less:\n";
		msg += lowerLine;
		msg += char_check;
	}
	if (quantity_check) {
		msg += upperLine;
		msg += "Please Enter a Positive Integer.\n"
		msg += lowerLine;
	}
	if (invalid_card) {
		msg += upperLine;
		msg += "The Credit Card Number is an invalid format.\n";
		msg += lowerLine;
	}
	if (invalid_date) {
		msg += upperLine;
		msg += "Please Enter a Valid Date.\n";
		msg += lowerLine;
	}
	if (invalid_eMail) {
		msg += upperLine;
		msg += "The Email Address is in an invalid format.\n";
		msg += lowerLine;
	}
	if (invalid_phoneNumber) {
		msg += upperLine;
		msg += "Please enter a valid Phone Number with area code.\n";
		msg += lowerLine;
	}
	if (invalid_faxNumber) {
		msg += upperLine;
		msg += "Please enter a valid Fax Number with area code.\n";
		msg += lowerLine;
	}
	if (invalid_ssn) {
		msg += upperLine;
		msg += "Please enter a valid Social Security Number.\n";
		msg += lowerLine;
	}
	if (special_Error) {
		msg += upperLine;
		msg += special_Error + "\n";
		msg += lowerLine;
	}
	if (passwd_mismatch) {
		msg += upperLine;
		msg += "Your passwords did not match. Please enter them again.\n";
		msg += lowerLine;
	}		
	alert(msg);
return false;
}

function ExpirationDateMessage()
{
	    var  msg, upperLine, lowerLine
	    msg = "The form was not submited due to the following error(s).\n";
		upperLine = "\n_________________________________________________________\n\n";
		lowerLine = "_________________________________________________________\n";		
		msg += upperLine;
		msg += "Expiration Date is not valid.\n";
		msg += lowerLine;		
		alert(msg);
		return false;
}

//2425
function DateIssueNumMessage()
{
	    var  msg, upperLine, lowerLine
	    msg = "The form was not submited due to the following error(s).\n";
		upperLine = "\n_________________________________________________________\n\n";
		lowerLine = "_________________________________________________________\n";		
		msg += upperLine;
		msg += "Either a Start Date or Issue Number is required for Switch and Solo payments.\n";
		msg += lowerLine;		
		alert(msg);
		return false;
}

function StartDateMessage()
{
	    var  msg, upperLine, lowerLine
	    msg = "The form was not submited due to the following error(s).\n";
		upperLine = "\n_________________________________________________________\n\n";
		lowerLine = "_________________________________________________________\n";		
		msg += upperLine;
		msg += "Start Date is not valid.\n";
		msg += lowerLine;		
		alert(msg);
		return false;
}


/* Here's the list of tokens we support:
   m (or M) : month number, one or two digits.
   mm (or MM) : month number, strictly two digits (i.e. April is 04).
   d (or D) : day number, one or two digits.
   dd (or DD) : day number, strictly two digits.
   y (or Y) : year, two or four digits.
   yy (or YY) : year, strictly two digits.
   yyyy (or YYYY) : year, strictly four digits.
   mon : abbreviated month name (April is apr, Apr, APR, etc.)
   Mon : abbreviated month name, mixed-case (i.e. April is Apr only).
   MON : abbreviated month name, all upper-case (i.e. April is APR only).
   mon_strict : abbreviated month name, all lower-case (i.e. April is apr 
         only).
   month : full month name (April is april, April, APRIL, etc.)
   Month : full month name, mixed-case (i.e. April only).
   MONTH: full month name, all upper-case (i.e. APRIL only).
   month_strict : full month name, all lower-case (i.e. april only).
   h (or H) : hour, one or two digits.
   hh (or HH) : hour, strictly two digits.
   min (or MIN): minutes, one or two digits.
   mins (or MINS) : minutes, strictly two digits.
   s (or S) : seconds, one or two digits.
   ss (or SS) : seconds, strictly two digits.
   ampm (or AMPM) : am/pm setting.  Valid values to match this token are
         am, pm, AM, PM, a.m., p.m., A.M., P.M.
*/
// Be careful with this pattern.  Longer tokens should be placed before shorter
// tokens to disambiguate them.  For example, parsing "mon_strict" should 
// result in one token "mon_strict" and not two tokens "mon" and a literal
// "_strict".

var tokPat=new RegExp("^month_strict|month|Month|MONTH|yyyy|YYYY|mins|MINS|mon_strict|ampm|AMPM|mon|Mon|MON|min|MIN|dd|DD|mm|MM|yy|YY|hh|HH|ss|SS|m|M|d|D|y|Y|h|H|s|S");

// lowerMonArr is used to map months to their numeric values.

var lowerMonArr={jan:1, feb:2, mar:3, apr:4, may:5, jun:6, jul:7, aug:8