// JavaScript Document

function copyBillToInfo(){
 if(document.forms[2].copyCheckbox.checked) {
  document.forms[2].sCompanyName.value = document.forms[2].bCompanyName.value;
  document.forms[2].sStreet1.value = document.forms[2].bStreet1.value;
  document.forms[2].sStreet2.value = document.forms[2].bStreet2.value;
  document.forms[2].sCity.value = document.forms[2].bCity.value;
  //document.forms[2].mtxSState.value = document.forms[2].mtxBState.value;
  document.forms[2].sPostCode.value = document.forms[2].bPostCode.value;
  document.forms[2].sContactName.value = document.forms[2].bContactName.value;
  document.forms[2].sContactTitle.value = document.forms[2].bContactTitle.value;
  document.forms[2].sTel.value = document.forms[2].bTel.value;
  document.forms[2].sExt.value = document.forms[2].bExt.value;
  document.forms[2].sFax.value = document.forms[2].bFax.value;
  document.forms[2].sEmail.value = document.forms[2].bEmail.value;
  document.forms[2].sWebsite.value = document.forms[2].bWebsite.value;
  //document.forms[2].mtxSRep.value = document.forms[2].mtxBRep.value;
  
  document.forms[2].sState.selectedIndex = document.forms[2].bState.selectedIndex;
  
  
  }
}

function copyCCInfo(){
 if(document.forms[2].copyCCCheckbox.checked) {
  document.forms[2].cName.value = document.forms[2].bContactName.value;
  document.forms[2].cStreet1.value = document.forms[2].bStreet1.value;
  document.forms[2].cStreet2.value = document.forms[2].bStreet2.value;
  document.forms[2].cCity.value = document.forms[2].bCity.value;
  //document.forms[2].mtxSState.value = document.forms[2].mtxBState.value;
  document.forms[2].cPostCode.value = document.forms[2].bPostCode.value;  
  document.forms[2].cState.selectedIndex = document.forms[2].bState.selectedIndex; 
  }
}

function validateBillCheckout(f){
	var regValid = new Boolean(true);
	var errorMessage = '';
	
	if(f.bCompanyName.value == ""){
		errorMessage += '- Please enter a Bill to Name\n\n';
		regValid = false;		
	}	
	if(f.bStreet1.value == ""){
		errorMessage += '- You must enter a bill to address\n\n';
		regValid = false;		
	}	
	if(f.bCity.value == ""){
		errorMessage += '- You must enter a bill to City\n\n';
		regValid = false;		
	}
	if(f.bPostCode.value == ""){
		errorMessage += '- You must enter a bill to Zip Code\n\n';
		regValid = false;		
	}
	if(f.bContactName.value == ""){
		errorMessage += '- You must enter a bill to Contact Name\n\n';
		regValid = false;		
	}
	if(f.bTel.value == ""){
		errorMessage += '- You must enter a bill to Phone\n\n';
		regValid = false;		
	}
	if(f.bEmail.value == ""){
		errorMessage += '- You must enter a bill to Email address\n\n';
		regValid = false;		
	}
	
	if(f.bState.value == "NC" && f.bRetailLicense.value == ""){
		errorMessage += '- You must enter your North Carolina Resale Tax ID #.\n\n';
		regValid = false;		
	}
	if(f.bTerms.value != "Net 30"){
		if(f.ccName.value == ""){
			errorMessage += '- You must enter the name on your credit card\n\n';
			regValid = false;		
		}
		if(f.cStreet1.value == ""){
			errorMessage += '- You must enter the address on your credit card\n\n';
			regValid = false;		
		}
		if(f.cCity.value == ""){
			errorMessage += '- You must enter the city on your credit card\n\n';
			regValid = false;		
		}
		if(f.cPostCode.value == ""){
			errorMessage += '- You must enter the zip code on your credit card\n\n';
			regValid = false;		
		}
		if(f.ccNum.value.replace(" ","").replace("-","").length < 13 || f.ccNum.value.replace(" ","").replace("-","").length > 16){
			errorMessage += '- You must use a valid credit card number without any dashes(-) or spaces(" ")\nPlease verify your card number.\n\n';
			regValid = false;		
		}
		if(!cardval(f.ccNum.value)){
			errorMessage += '- You must use a valid credit card number without any dashes(-) or spaces(" ")\nPlease verify your card number.\n\n';
			regValid = false;						
		}
	}
	
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = f.bEmail.value;
   if(reg.test(address) == false) {
	  errorMessage += '- You must enter a valid bill to email address\n\n';
      regValid = false;
   }
   

	document.getElementById('errorMessage').innerHMTL = errorMessage;
	if(errorMessage.length > 0){
		alert(errorMessage);
	}
    return regValid;
}

function cardval(s) {
// remove non-numerics
var v = "0123456789";
var w = "";
for (i=0; i < s.length; i++) {
x = s.charAt(i);
if (v.indexOf(x,0) != -1)
w += x;
}
// validate number
j = w.length / 2;
if (j < 6.5 || j > 8 || j == 7) return false;
k = Math.floor(j);
m = Math.ceil(j) - k;
c = 0;
for (i=0; i<k; i++) {
a = w.charAt(i*2+m) * 2;
c += a > 9 ? Math.floor(a/10 + a%10) : a;
}
for (i=0; i<k+m; i++) c += w.charAt(i*2+1-m) * 1;
return (c%10 == 0);
}

function validateBillAccount(f){
	var regValid = new Boolean(true);
	var errorMessage = '';
	
	if(f.bCompanyName.value == ""){
		errorMessage += '- Please enter a Bill to Name\n\n';
		regValid = false;		
	}	
	if(f.bStreet1.value == ""){
		errorMessage += '- You must enter a bill to address\n\n';
		regValid = false;		
	}	
	if(f.bCity.value == ""){
		errorMessage += '- You must enter a bill to City\n\n';
		regValid = false;		
	}
	if(f.bPostCode.value == ""){
		errorMessage += '- You must enter a bill to Zip Code\n\n';
		regValid = false;		
	}
	if(f.bContactName.value == ""){
		errorMessage += '- You must enter a bill to Contact Name\n\n';
		regValid = false;		
	}
	if(f.bTel.value == ""){
		errorMessage += '- You must enter a bill to Phone\n\n';
		regValid = false;		
	}
	if(f.bEmail.value == ""){
		errorMessage += '- You must enter a bill to Email address\n\n';
		regValid = false;		
	}
	
	if(f.bState.value == "NC" && f.bRetailLicense.value == ""){
		errorMessage += '- You must enter your North Carolina Resale Tax ID #.\n\n';
		regValid = false;		
	}
	
	
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = f.bEmail.value;
   if(reg.test(address) == false) {
	  errorMessage += '- You must enter a valid bill to email address\n\n';
      regValid = false;
   }
   var storereg = /^\s*\d+\s*$/;
   var storenum = f.bNumStores.value;
   if(storereg.test(storenum) == false) {
	  errorMessage += '- You must enter number of stores with numbers only\n\n';
      regValid = false;
   }

	document.getElementById('errorMessage').innerHMTL = errorMessage;
	if(errorMessage.length > 0){
		alert(errorMessage);
	}
    return regValid;
}


function validatePassword(f){
	
	var regValid = new Boolean(true);
	var errorMessage = '';
	if(f.passwordEnter.value != f.passwordConfirm.value){
		errorMessage += '- Password and Password Confirmation must match\n\n';
		regValid = false;		
	}
	if(f.passwordEnter.value.length < 7){
		errorMessage += '- You must enter a password longer than 7 characters with no spaces\n\n';
		regValid = false;		
	}
	if(errorMessage.length > 0){
		alert(errorMessage);
	}
	return regValid;
}

function validateShipCheckout(f){
	var regValid = new Boolean(true);
	var errorMessage = '';
	
	if(f.sCompanyName.value == ""){
		errorMessage += '- Please enter a Ship to Name\n\n';
		regValid = false;		
	}	
	if(f.sStreet1.value == ""){
		errorMessage += '- You must enter a Ship to address\n\n';
		regValid = false;		
	}	
	if(f.sCity.value == ""){
		errorMessage += '- You must enter a Ship to City\n\n';
		regValid = false;		
	}
	if(f.sPostCode.value == ""){
		errorMessage += '- You must enter a Ship to Zip Code\n\n';
		regValid = false;		
	}
	if(f.shipVia.value == "OTHER"){
		if(f.otherShip.value == ""){
			errorMessage += '- You must enter an alternative shipping method\n\n';
			regValid = false;		
		}
	}
	
	if(f.shipVia.value == "UPSCOLLECT" || f.shipVia.value == "FEDEXBILL" || f.shipVia.value == "FEDEXCOLL"){
		if(f.sShipAccountNum.value == ""){
			errorMessage += '- You must enter your shipping account number.\n\n';
			regValid = false;		
		}
	}
	if(f.sShipAccountNum.value.length > 0 && (f.shipVia.value == "FEDEX" || f.shipVia.value == "UPS")){
		errorMessage += '- You must enter a shipping method that requires an account number because you entered an shipping account number.\n\n';
		regValid = false;		
	}
	
	
   	document.getElementById('errorMessage').innerHMTL = errorMessage;
	if(errorMessage.length > 0){
		alert(errorMessage);
	}
    return regValid;
}

function validateShipAdd(f){
	var regValid = new Boolean(true);
	var errorMessage = '';
	
	if(f.sCompanyName.value == ""){
		errorMessage += '- Please enter a Ship to Name\n\n';
		regValid = false;		
	}	
	if(f.sStreet1.value == ""){
		errorMessage += '- You must enter a Ship to address\n\n';
		regValid = false;		
	}	
	if(f.sCity.value == ""){
		errorMessage += '- You must enter a Ship to City\n\n';
		regValid = false;		
	}
	if(f.sPostCode.value == ""){
		errorMessage += '- You must enter a Ship to Zip Code\n\n';
		regValid = false;		
	}
	if(f.sContactName.value == ""){
		errorMessage += '- You must enter a Contact Name\n\n';
		regValid = false;		
	}
	if(f.sEmail.value == ""){
		errorMessage += '- You must enter a Ship to email address\n\n';
		regValid = false;		
	}
	if(f.sTel.value == ""){
		errorMessage += '- You must enter a Ship to Phone\n\n';
		regValid = false;		
	}
	if(f.shipVia.value == "OTHER"){
		if(f.otherShip.value == ""){
			errorMessage += '- You must enter an alternative shipping method\n\n';
			regValid = false;		
		}
	}
	
   	document.getElementById('errorMessage').innerHMTL = errorMessage;
	if(errorMessage.length > 0){
		alert(errorMessage);
	}
    return regValid;
}

function validateRegister (f) {
    var regValid = new Boolean(true);
	var errorMessage = '';
	if(document.forms[2].sCompanyName.value == ""){
		errorMessage += '- Please enter a Ship to Name\n\n';
		regValid = false;
	}
	if(document.forms[2].bCompanyName.value == ""){
		errorMessage += '- Please enter a Bill to Name\n\n';
		regValid = false;		
	}		
  	if(document.forms[2].sStreet1.value == "") {
		errorMessage += '- You must enter a ship to address\n\n';
		regValid = false;		
	}
	if(document.forms[2].bStreet1.value == ""){
		errorMessage += '- You must enter a bill to address\n\n';
		regValid = false;		
	}
  	if(document.forms[2].sCity.value == ""){
		errorMessage += '- You must enter a ship to city\n\n';
		regValid = false;		
	} 
	if(document.forms[2].bCity.value == ""){
		errorMessage += '- You must enter a bill to city\n\n';
		regValid = false;		
	}
  	if(document.forms[2].sPostCode.value == ""){
		errorMessage += '- You must enter a ship to Zip Code\n\n';
		regValid = false;		
	} 
	if(document.forms[2].bPostCode.value == ""){
		errorMessage += '- You must enter a bill to Zip Code\n\n';
		regValid = false;		
	}
  	if(document.forms[2].sContactName.value == ""){
		errorMessage += '- You must enter a ship to Contact Name\n\n';
		regValid = false;		
	} 
	if(document.forms[2].bContactName.value == ""){
		errorMessage += '- You must enter a bill to Contact Name\n\n';
		regValid = false;		
	}
  	if(document.forms[2].sTel.value == ""){
		errorMessage += '- You must enter a ship to phone\n\n';
		regValid = false;		
	} 
	if(document.forms[2].bTel.value == ""){
		errorMessage += '- You must enter a bill to phone\n\n';
		regValid = false;		
	}
	if(document.forms[2].bNumStores.value == ""){
		errorMessage += '- You must enter your number of stores.\n\n';
		regValid = false;		
	}
	if(document.forms[2].bState.value == "NC" && document.forms[2].bRetailLicense.value == ""){
		errorMessage += '- You must enter your North Carolina Resale Tax ID #.\n\n';
		regValid = false;		
	}
	if(isNaN(document.forms[2].bNumStores.value)){
		errorMessage += '- You must enter a number of stores using numbers (0-99999) only.\n\n';
		regValid = false;		
	}
  	if(document.forms[2].sEmail.value == ""){
		errorMessage += '- You must enter a ship to email address\n\n';
		regValid = false;		
	}
	if(document.forms[2].bEmail.value == ""){
		errorMessage += '- You must enter a bill to email address\n\n';
		regValid = false;		
	}
	if(document.forms[2].userName.value == ""){
		errorMessage += '- You must enter a username\n\n';
		regValid = false;		
	}
	if(document.forms[2].passwordEnter.value == ""){
		errorMessage += '- You must enter a password\n\n';
		regValid = false;		
	}
	if(document.forms[2].passwordConfirm.value == ""){
		errorMessage += '- You must confirm your password\n\n';
		regValid = false;		
	}
	if(document.forms[2].passwordEnter.value.length < 7){
		errorMessage += '- You must enter a password longer than 7 characters with no spaces\n\n';
		regValid = false;		
	}
	if(document.forms[2].passwordEnter.value != document.forms[2].passwordConfirm.value){
		errorMessage += '- Passwords must match\n\n';	
		regValid = false;		
	}
	
	if(document.forms[2].sShipVia.value == "UPSCOLLECT" || document.forms[2].sShipVia.value == "FEDEXBILL"){
		if(document.forms[2].sShipAccountNum.value == ""){
			errorMessage += '- You must enter your shipping account number.\n\n';
			regValid = false;		
		}
	}
	
	if(document.forms[2].userNameC.value != document.forms[2].userName.value){
		errorMessage += '- Usernames must match\n\n';	
		regValid = false;		
	}
	
	
	if(!regValid){
		alert('Please make sure all required fields are entered.');
		regValid = false;		
	}
		
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = document.forms[2].bEmail.value;
   if(reg.test(address) == false) {
	  errorMessage += '- You must enter a valid bill to email address\n\n';
      regValid = false;
   }
   var storereg = /^\s*\d+\s*$/;
   var storenum = document.forms[2].bNumStores.value;
   if(storereg.test(storenum) == false) {
	  errorMessage += '- You must enter number of stores with numbers only\n\n';
      regValid = false;
   }

	document.getElementById('errorMessage').innerHMTL = errorMessage;
	if(errorMessage.length > 0){
		alert(errorMessage);
	}
    return regValid;
}

function showdiv(pass) {
	var divs = document.getElementsByTagName('div');
	for(i=0;i<divs.length;i++){
		if(divs[i].id.match(pass)){//if they are 'see' divs
			if (document.getElementById){ // DOM3 = IE5, NS6
				if(divs[i].style.visibility == "hidden"){
					divs[i].style.visibility="visible";// show/hide
					divs[i].style.height= "100%";
				}
				else{
					divs[i].style.visibility="hidden";// show/hide
					divs[i].style.height= 0;
				}
			}
			else
			if (document.layers){ // Netscape 4
				if(document.layers[divs[i]].display == 'visible'){
					document.layers[divs[i]].display = 'visible';
					divs[i].style.height= "100%";
				}
				else {
					document.layers[divs[i]].display = 'hidden';
					divs[i].style.height= 0;				
				}
			}
			else {// IE 4
				document.all.divs[i].visibility = 'visible';
				divs[i].style.height= "100%";
			}
		} 
	}
} 

// check username
function OnSubmit(f) {
			
  checkUsername();
  
  if (document.getElementById("email_ok").value == 'no')
  {
	  alert("The email address you entered already exists. Please use another email address.");
	  document.getElementById("email").value = "";
	  document.getElementById("confirm_email").value = "";
	  document.getElementById("email_ok").value = "";
	  document.getElementById("email").focus();
	  return false;
  } 
	  
  return true;
  
}
 
function checkUsername()
{
      var username_field = document.getElementById("email");
 
      if (username_field.value == "")
      {
            username_field.focus();
      }
      else
      {
            xmlRequest = getXmlHttpObject();
 
            if (xmlRequest == null)
            {
                  // Browser does not support HTTP request
                  alert ("To use this feature, please upgrade to a current web browser");
            }
 
            var url = "Check_Email.php?username="+username_field.value;
 
            xmlRequest.onreadystatechange=stateChanged;
            xmlRequest.open("GET",url,true);
            xmlRequest.send(null);
      }
}
 
function stateChanged()
{
      // Only process if the response is complete
      if (xmlRequest.readyState==4 || xmlRequest.readyState=="complete")
      {
            var responseValue = parseInt(xmlRequest.responseText);
 
            if (responseValue == -1)
            {
                  alert("An error occured while checking your email. Please try again.");
            }
            else if (responseValue == 0)
            {
                  document.getElementById("email_ok").value = "yes";
            }
            else
            {
                  document.getElementById("email_ok").value = "no";
            }
      }
}
 
function getXmlHttpObject()
{
      var objXH=null;
      if (window.XMLHttpRequest)
      {
            objXH=new XMLHttpRequest();
      }
      else if (window.ActiveXObject)
      {
            objXH=new ActiveXObject("Microsoft.XMLHTTP");
      }
      return objXH;
}
