function GetHTML(url){
  var HTML='';
  var idx=0;
  idx = url.indexOf('=');
  HTML = url.substr(idx+1,url.length);
  return HTML;
}

function textMax(field, maxlimit) {
  if (field.value.length > maxlimit){
    field.value = field.value.substring(0, maxlimit);
  }
}

function isFormComplete(form){
//  if (form.CartItems.value == '') {
//    alert('Cart is empty');
//    return false;
//  }
  var msgstr = '';
  var flg = true;
  var itemfound = false;
  var crlf = String.fromCharCode(10);
  for (i=0; i < form.elements.length; i++){
    if (form.elements[i].value == '' || form.elements[i].value == '0'){
      if (form.elements[i].name == 'LogId'){
        msgstr = msgstr + '   E-Mail Address' + crlf;
        form.LogId.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'LogPass'){
        msgstr = msgstr + '   Password' + crlf;
        form.LogPass.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'FName'){
        msgstr = msgstr + '   Billing first name' + crlf;
        form.FName.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'LName'){
        msgstr = msgstr + '   Billing last name' + crlf;
        form.LName.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'Addr1'){
        msgstr = msgstr + '   Billing street address' + crlf;
        form.Addr1.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'City'){
        msgstr = msgstr + '   Billing city name' + crlf;
        form.City.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'PostalCode'){
        msgstr = msgstr + '   Billing postal code' + crlf;
        form.PostalCode.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'State'){
        msgstr = msgstr + '   Billing state' + crlf;
        form.State.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'Country'){
        msgstr = msgstr + '   Billing country' + crlf;
        form.Country.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'Phone'){
        msgstr = msgstr + '   Billing phone number' + crlf;
        form.Phone.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'SFName'){
        msgstr = msgstr + '   Shipping first name' + crlf;
        form.SFName.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'SLName'){
        msgstr = msgstr + '   Shipping last name' + crlf;
        form.SLName.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'SAddr1'){
        msgstr = msgstr + '   Shipping street address' + crlf;
        form.SAddr1.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'SCity'){
        msgstr = msgstr + '   Shipping city name' + crlf;
        form.SCity.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'SState'){
        msgstr = msgstr + '   Shipping state' + crlf;
        form.SState.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'SPostalCode'){
        msgstr = msgstr + '   Shipping postal code' + crlf;
        form.SPostalCode.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'SCountry'){
        msgstr = msgstr + '   Shipping country' + crlf;
        form.SCountry.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'SPhone'){
        msgstr = msgstr + '   Shipping phone number' + crlf;
        form.SPhone.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'CardNo'){
        msgstr = msgstr + '   Credit card number' + crlf;
        form.CardNo.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'CardType'){
        msgstr = msgstr + '   Credit card type' + crlf;
        form.CardType.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'CVV2'){
        msgstr = msgstr + '   Credit card CVV number' + crlf;
        form.CVV2.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'ExpMonth'){
        msgstr = msgstr + '   Credit card expiration month' + crlf;
        form.ExpMonth.style.background="#D5E0DC";
      }else if (form.elements[i].name == 'ExpYear'){
        msgstr = msgstr + '   Credit card expiration year' + crlf;
        form.ExpYear.style.background="#D5E0DC";
      }
    }else{
      if (form.elements[i].type != 'button'){
        form.elements[i].style.background="#ffffff";
      }
    }
  }
  if (msgstr != ''){
    msgstr = 'The following fields are required:' + crlf + msgstr;
    alert(msgstr);
    flg = false;
  }else{
    form.submit();
  }
  return flg;
}

function CheckDate(THISDATE) {
  if (THISDATE.value == ""){return ""}
	var err=0
        var regExp
        var okVar = THISDATE.value
	a=THISDATE.value
	if (a.length != 10) err=1
	b = a.substring(0, 2)// month
	c = a.substring(2, 3)// '/'
	d = a.substring(3, 5)// day
	e = a.substring(5, 6)// '/'
	f = a.substring(6, 10)// year
        okVar = b+'/'+d+'/'+f
	if (b<1 || b>12) err = 1
	if (d<1 || d>31) err = 1
	if (f<1900) err = 1
	if (b==4 || b==6 || b==9 || b==11){
		if (d==31) err=1
	}
	if (b==2){
		var g=parseInt(f/4)
		if (isNaN(g)) {
			err=1
		}
		if (d>29) err=1
		if (d==29 && ((f/4)!=parseInt(f/4))) err=1
	}
	if (err==1) {
		alert(THISDATE.value + ' is not a valid date. Please re-enter. - mm/dd/yyyy');
                THISDATE.select()
		THISDATE.value = ""
                THISDATE.focus()
	}else{
            THISDATE.value=okVar
        }
}

function extractNumber(obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	
	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}

function blockNonNumbers(obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	
	return isFirstN || isFirstD || reg.test(keychar);
}

function FmtNumber(gCurVal,timing,decimal,MaxLen,type) {
   S = gCurVal.value;
   len = S.length;
   newStr = '';
   neg = 0;
   for (i=0; i<len; i++){
      if (S.substr(i,1) != ' ' && S.substr(i,1) != '$' && S.substr(i,1) != ',' && S.substr(i,1) != '(' && S.substr(i,1) != ')'){
         newStr = newStr + S.substr(i,1);
         if (isNaN(S.substr(i,1)) && S.substr(i,1) != '.' && S.substr(i,1) != '-'){
            alert ('A non-numeric found in this entry.');
            gCurVal.value = '0';
            gCurVal.select();
            gCurVal.focus();
            return
         }
      }else{
         if (S.substr(i,1) == '(')
            neg = 1;
         }
   }
   if (neg == 1){
      newStr = '-' + newStr;
   }
   curVal = newStr;
   if (timing == 'EXIT'){
      var dc='.';
      var gc=',';
      var nc='(';
      var cs='$';
      if (type != 'M'){cs='';}
//      W=curVal.length + 6;
      dec='1';
      for (i=0;i<decimal;i++){dec = dec + '0';}
      var N=Math.abs(Math.round(curVal*dec));
      var S=((N<10)?'00':((N<100)?'0':''))+N;
      S=cs+((curVal<0)?nc:'')+Group(S.substring(0,(S.length-2)))+dc+S.substring((S.length-2),S.length)+((curVal<0&&nc=='(')?')':'');
         gCurVal.value = PadStr(S,' ',MaxLen,'R');
   }else{
      gCurVal.value = PadStr(newStr,' ',MaxLen,'R');
      gCurVal.select();
      gCurVal.focus();
   }
}

function PadStr(S,Str,Len,Just){
   var NewStr = '';
   var NewLen = Len - S.length;
   for (i=0;i<NewLen;i++){NewStr = NewStr + Str;}
   return NewStr + S;
}

function Group(S) {
    var gc=',';
    return (S.length<4)?S:(Group(S.substring(0,S.length-3))+gc+S.substring(S.length-3,S.length));
}

function FmtAlpha(strData, fmtCode){
//
// Format a string to either 1-Uppercase, 2-Lowercase, or 3-Titlecase
//
   newStr = ''
   if (fmtCode ==  '1'){
      strData = strData.toUpperCase()
      strData = ReplaceString(strData,'=','%3D')
      return strData
   }
   if (fmtCode == '2'){
      strData = strData.toLowerCase()
      strData = ReplaceString(strData,'=','%3D')
      return strData
   }
   if (fmtCode == '3'){
      newStr = ''
      newStr = ReplaceString(strData,'_',' ')
      strData = newStr
      newStr = strData.toLowerCase()
      strData = newStr
      newStr = ''
      max = strData.length
      for (i=0; i < max; i++){
         if (i == 0 || strData.substr(i-1,1) == ' '){
             newStr += strData.substr(i,1).toUpperCase()
         }else{
             newStr += strData.substr(i,1)
         }
      }
   }
   newStr = ReplaceString(newStr,'=','%3D')
   return newStr
}

function ReplaceString(strData, lookFor, replaceWith){
//
// Replace all occurances of a substring with a specified substring
// within the data object.
//
    newStr = ''
    var testStr = strData
    if (testStr.indexOf(lookFor) != -1) {
       myArray = testStr.split(lookFor)
       for (i=0; i < myArray.length; i++){
          if (i != myArray.length-1){
             newStr += myArray[i] + replaceWith
          }else{
             newStr += myArray[i]
          }
       }
   }else{
       newStr = strData
   }
   return newStr
}

function FmtPhone(gField){
   var crLf = String.fromCharCode(13,10)
   testVar = gField.value
   if (testVar == ''){ return testVar }
   testVar = ReplaceString(testVar,"(","")
   testVar = ReplaceString(testVar,")","")
   testVar = ReplaceString(testVar,"-","")
   testVar = ReplaceString(testVar," ","")
   testVar = ReplaceString(testVar,".","")
   testVar = ReplaceString(testVar,"+","")
   testVar = ReplaceString(testVar,"/","")
   if (testVar.length > 10){return testVar}
   if (testVar.length < 10 && testVar.length < 7){
      alert("An insufficient number of characters has been entered or" + crLf + "the data entered was in the wrong format.")
      gField.focus()
      gField.select()
   }
   if (testVar.length == 10){
      testVar = "(" + testVar.substr(0,3) + ") " + testVar.substr(3,3) + "-" + testVar.substr(6)
   }
   if (testVar.length == 7){
      testVar = testVar.substr(0,3) + "-" + testVar.substr(3,4)
   }
   gField.value = testVar
   return testVar
}

function CheckEmail(gField){
   var emailVar = gField.value
   var pass
   if (emailVar == ''){ return emailVar }
   pass = true
   if (!emailVar.indexOf('@') || !emailVar.indexOf('.')){
      pass = false
   }
   if (emailVar.substr(0,emailVar.indexOf('@')) == '' || emailVar.substr(0,emailVar.indexOf('.')) == '' || emailVar.substr(emailVar.indexOf('.')+1,1) == ''){
      pass = false
   }
   if (emailVar.substr(emailVar.indexOf('@')+1,1) == '.'){
      pass = false
   }
   if (pass == false){
      alert("Check e-mail address entry. E-mail address is invalid.")
      gField.value = ''
      gField.focus()
   }else{
     emailVar = FmtAlpha(emailVar,2)
     gField.value = emailVar
   }
   return pass
}

function VerifyPassword(gField1, gField2){
   if (gField1.value == '' || gField2.value == ''){return}
   if (gField1.value != gField2.value){
      alert("Your passwords do not match, please try again.")
      gField1.value = ''
      gField2.value = ''
      gField1.focus()
   }
}

function SwitchBillShip(){ 
   if (document.getElementById('samebill').checked == true){
     document.getElementById('sfname').value = document.getElementById('fname').value;
     document.getElementById('smname').value = document.getElementById('mname').value;
     document.getElementById('slname').value = document.getElementById('lname').value;
     document.getElementById('saddr1').value = document.getElementById('addr1').value;
     document.getElementById('saddr2').value = document.getElementById('addr2').value;
     document.getElementById('scity').value = document.getElementById('city').value;
     document.getElementById('sstate').value = document.getElementById('state').value;
     document.getElementById('spostalcode').value = document.getElementById('postalcode').value;
     document.getElementById('scountry').value = document.getElementById('country').value;
     document.getElementById('sphone').value = document.getElementById('phone').value;
   }else{
     document.getElementById('sfname').value = '';
     document.getElementById('smname').value = '';
     document.getElementById('slname').value = '';
     document.getElementById('saddr1').value = '';
     document.getElementById('saddr2').value = '';
     document.getElementById('scity').value = '';
     document.getElementById('sstate').value = '';
     document.getElementById('spostalcode').value = '';
     document.getElementById('scountry').value = '';
     document.getElementById('sphone').value = '';
   }
}
