function addr() {

var joe=document.sab.bas.checked;

var object1=document.sab.billName;
var object2=document.sab.billAddr;
var object3=document.sab.billCity;
var object4=document.sab.billSt;
var object5=document.sab.billZip;
var object6=document.sab.billProv;
var object7=document.sab.billPcode;
var object8=document.sab.billCntry;

var o1=document.sab.shipName.value;
var o2=document.sab.shipAddr.value;
var o3=document.sab.shipCity.value;
var o4=document.sab.shipSt.value;
var o5=document.sab.shipZip.value;
var o6=document.sab.shipProv.value;
var o7=document.sab.shipPcode.value;
var o8=document.sab.shipCntry;

var cntrySel;

	for (var i=0; i < o8.options.length; i++) {
	
		if (o8.options[i].selected) {		
			cntrySel=i;
			}
	}

	if (joe) {

		object1.value=o1;
		object2.value=o2;
		object3.value=o3;
		object4.value=o4;
		object5.value=o5;
		object6.value=o6;
		object7.value=o7;
		object8.options[cntrySel].selected=true;
		
		} 
}

function valEmail() {
	var eml=document.sab.cEmail.value;
	var remail = /^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/;
	return remail.test(eml);
	}
	
function valEmail2() {
	var eml=document.logform.lemail.value;
	var remail = /^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/;
	return remail.test(eml);
	}
	
function valEmail3() {
	var eml=document.newform.nemail.value;
	var remail = /^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/;
	return remail.test(eml);
	}
	
function logEmail() {

	var eml=document.logform.lemail;
	
	if (valEmail2()==false){
			alert("Please Enter a valid Email Address.");
			eml.focus();
			eml.select();
			return false;
			}
		
		if ((eml.value==null)||(eml.value=="")){
			alert("Please Enter your Email Address.");
			eml.focus();
			eml.select();
			return false;
			}

}

	
function valEmailF() {
	var eml=document.finSub.Femail.value;
	var remail = /^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/;
	return remail.test(eml);
	}

function logEmailF() {

	var eml=document.finSub.Femail;
	
	if (valEmailF()==false){
			alert("Please Enter a valid Email Address.");
			eml.focus();
			eml.select();
			return false;
			}
		
		if ((eml.value==null)||(eml.value=="")){
			alert("Please Enter your Email Address.");
			eml.focus();
			eml.select();
			return false;
			}

}

function newEmail() {

	var emll=document.newform.nemail;
	
	if (valEmail3()==false){
			
			alert("Please Enter a valid Email Address.");
			emll.value="";
			emll.focus();
			emll.select();
			return false;
			}
		
	if ((emll.value==null)||(emll.value=="")){
			
			emll.focus();
			emll.select();
			alert("Please Enter your Email Address.");
			return false;
			}
}


function valLog() {

	var pss=document.logform.lpass;
		
		if ((pss.value==null)||(pss.value=="")){
			alert("Please Enter your password.");
			pss.focus();
			pss.select();
			return false;
			}
			
		if (logEmail()==false) {
			return false;
			}
}

function checkSab() {

	var emailID=document.sab.cEmail
	
		if (valEmail()==false){
			alert("Please Enter a valid Email Address.")
			emailID.focus()
			emailID.select()
			return false
			}
		
		if ((emailID.value==null)||(emailID.value=="")){
			alert("Please Enter your Email Address.")
			emailID.focus()
			emailID.select()
			return false
			}
		
	var sname=document.sab.shipName
	var saddr=document.sab.shipAddr
	var scity=document.sab.shipCity
	var szip=document.sab.shipZip
	var sprov=document.sab.shipProv
	var spcd=document.sab.shipPcode
	var scntry=document.sab.shipCntry
	var shCty=scntry.selectedIndex
	var shCy=scntry[shCty].value
	var st=document.sab.shipSt
	var sst=st.selectedIndex
	var shSt=st[sst].value
	
		if (sname.value=="") {
			alert("SHIP TO: Name Required")
			sname.focus()
			sname.select()
			return false
			}
		
		if (saddr.value=="") {
			alert("SHIP TO: Address Required")
			saddr.focus()
			saddr.select()
			return false
			}
		
		if (scity.value=="") {
			alert("SHIP TO: City Required")
			scity.focus()
			scity.select()
			return false
			}
		
		if (shCy=="US" && shSt=="") {
			alert("SHIP TO: US State Required")
			st.focus()
			return false
			}
		
		if (shCy=="US" && szip.value=="") {
			alert("SHIP TO: Zip Code Required")
			szip.focus()
			szip.select()
			return false
			}
		
		if (shCy!="US" && (shSt!="" || szip.value!="")) {
			alert("SHIP TO: U.S. State or Zip Code is not required for International shipments. Please enter Shipping Info in the Province/Postal Code field.")
			st.options[0].selected=true
			szip.value=""
			sprov.focus()
			sprov.select()
			return false
			}
		
		if (shCy=="US" && szip.value!="") {
		
			var valid = "0123456789-"
			var hyphencount = 0
			var zipp = document.sab.shipZip.value

				if (zipp.length!=5 && zipp.length!=10) {
					alert("SHIP TO: Please enter your 5 digit or 5 digit+4 zip code.")
					szip.focus()
					szip.select()
					return false
					}

				for (var i=0; i < zipp.length; i++) {
					temp = "" + zipp.substring(i, i+1)
		
						if (temp == "-") hyphencount++
						if (valid.indexOf(temp) == "-1") {
							alert("SHIP TO: Invalid characters in your zip code.  Please try again.")
							szip.focus()
							szip.select()
							return false
							}
						if ((hyphencount > 1) || ((zipp.length==10) && ""+zipp.charAt(5)!="-")) {
							alert("SHIP TO: The hyphen character should be used with a properly formatted 5 digit+four Zip Code like '12345-6789'. Please try again.")
							szip.focus()
							szip.select()
						return false
  						}
					}
				}
		
		if (shCy=="US" && (sprov.value !="" || spcd.value !="")) {
			alert("SHIP TO: Province/Postal Code Information is not required for Domestic Shipments.")
			sprov.value=""
			spcd.value=""
			return false
			}
			
		if (shCy!="US" && sprov.value=="") {
			alert("SHIP TO: Please fill in the Province field for International Shipments")
			sprov.focus()
			sprov.select()
			return false
			}
			
		if (shCy!="US" && spcd.value=="") {
			alert("SHIP TO: Please fill in the Postal Code field for International Shipments")
			spcd.focus()
			spcd.select()
			return false
			}
		
	var bname=document.sab.billName
	var baddr=document.sab.billAddr
	var bcity=document.sab.billCity
	var bzip=document.sab.billZip
	var bprov=document.sab.billProv
	var bpcd=document.sab.billPcode
	var bcntry=document.sab.billCntry
	var blCty=bcntry.selectedIndex
	var blCy=bcntry[blCty].value
	var bt=document.sab.billSt
	var bbst=bt.selectedIndex
	var bSt=st[bbst].value
	var blPh=document.sab.billPhone
		
		if (bname.value=="") {
			alert("BILL TO: Name Required")
			bname.focus()
			bname.select()
			return false
			}
		
		if (baddr.value=="") {
			alert("BILL TO: Address Required")
			baddr.focus()
			baddr.select()
			return false
			}
		
		if (bcity.value=="") {
			alert("BILL TO: City Required")
			bcity.focus()
			bcity.select()
			return false
			}
		
		if (blCy=="US" && bSt=="") {
			alert("BILL TO: US State Required")
			bt.focus()
			return false
			}
			
		if (blCy=="US" && bzip.value=="") {
			alert("BILL TO: Zip Code Required")
			bzip.focus()
			bzip.select()
			return false
			}
			
		if (blCy=="US" && bzip.value!="") {
		
			var valid = "0123456789-"
			var hyphencount = 0
			var bzipp = document.sab.billZip.value

				if (bzipp.length!=5 && bzipp.length!=10) {
					alert("BILL TO: Please enter your 5 digit or 5 digit+4 zip code.")
					bzip.focus()
					bzip.select()
					return false
					}

				for (var i=0; i < bzipp.length; i++) {
					temp = "" + bzipp.substring(i, i+1)
		
						if (temp == "-") hyphencount++
						if (valid.indexOf(temp) == "-1") {
							alert("BILL TO: Invalid characters in your zip code.  Please try again.")
							bzip.focus()
							bzip.select()
							return false
							}
						if ((hyphencount > 1) || ((bzipp.length==10) && ""+bzipp.charAt(5)!="-")) {
							alert("BILL TO: The hyphen character should be used with a properly formatted 5 digit+four Zip Code like '12345-6789'. Please try again.")
							bzip.focus()
							bzip.select()
							return false
  							}
						}
				}
		
		if (blCy!="US" && (bSt!="" || bzip.value!="")) {
			alert("BILL TO: U.S. State or Zip Code is not required for billing addreses outside the U.S.. Please enter Billing Info in the Province/Postal Code field.")
			bt.options[0].selected=true
			bzip.value=""
			bprov.focus()
			bprov.select()
			return false
			}
			
		if (blCy=="US" && (bprov.value !="" || bpcd.value !="")) {
			alert("BILL TO: Province/Postal Code Information is not required for U.S. residents.")
			bprov.value=""
			bpcd.value=""
			return false
			}
		
		if (blCy!="US" && bprov.value=="") {
			alert("BILL TO: Please fill in the Province field.")
			bprov.focus()
			bprov.select()
			return false
			}
			
		if (blCy!="US" && bpcd.value=="") {
			alert("BILL TO: Please fill in the Postal Code field.")
			bpcd.focus()
			bpcd.select()
			return false
			}
			
		if ((blCy=="US" || blCy=="CA") && blPh.value=="") {
			alert("BILL TO: Please enter a phone number in the event we need to contact you about your order.")
			blPh.focus()
			blPh.select()
			return false
			}	
	

			
	var py=document.sab.pway
	var cname=document.sab.ccName
	var cnum=document.sab.ccNum
	var cexm=document.sab.expM
	var cmh=cexm.selectedIndex
	var cm=cexm[cmh].value
	var cexy=document.sab.expY
	var cyr=cexy.selectedIndex
	var cy=cexy[cyr].value
	var csec=document.sab.ccSec
	
	if (py[1].checked) {
		var pyy="cc"
		}
	
		if (pyy && cname.value=="") {
			alert("PAYMENT METHOD: Cardholder Name Required.")
			cname.focus()
			cname.select()
			return false
			}
			
		if (pyy && cnum.value=="") {
			alert("PAYMENT METHOD: Please enter your credit card number, with no spaces or dashes.")
			cnum.focus()
			cnum.select()
			return false
			}

		if (pyy && cm=="") {
			alert("PAYMENT METHOD: Please select the expiration month of your credit card.")
			cexm.focus()
			return false
			}
		
		if (pyy && cy=="") {
			alert("PAYMENT METHOD: Please select the expiration year of your credit card.")
			cexy.focus()
			return false
			}
	
		if (pyy && csec.value=="") {
			alert("PAYMENT METHOD: Please enter the security code from the back of your credit card.")
			csec.focus()
			csec.select()
			return false
			}
			
		var secc = document.sab.ccSec.value
		var valid = "0123456789"  // Valid digits for security code
		var len = secc.length;  // The length of the submitted sec code
		var iCCN = parseInt(secc);  // integer of secc
		var sCCN = secc.toString();  // string of secc
		var bNum = true;  // by default assume it is a number
		var temp;  // temp variable for parsing string
		
		sCCN = sCCN.replace (/^s+|s+$/g,'');  // strip spaces

		// Determine if the secc is in fact all numbers
		for (var j=0; j<len; j++) {
  			temp = "" + sCCN.substring(j, j+1);
  			if (valid.indexOf(temp) == "-1"){bNum = false;}
			}

		// if it is NOT a number, you can either alert to the fact, or just pass a failure
		if(!bNum){
			alert("Please enter the 3 digit code from the back of your credit card.");
  			csec.focus();
  			csec.select();
  			return false;
			}

		// Determine if it is the proper length 
		if((len != 3)&&(bNum)){ 
	 		alert("Please enter the 3 digit code from the back of your credit card.");
 	 		csec.focus();
  			csec.select();
 			return false;
			}
		
	return true
}

function coreWin(){
	
window.open('coreP.php','CORE','width=610,height=500,center=yes,location=no,status=no,scrollbars=yes,toolbar=no,resizeable=yes')

}

function shipWin(){
	
window.open('ship.php','SHIPPING','width=610,height=700,center=yes,location=no,status=no,scrollbars=yes,toolbar=no,resizeable=yes')

}

function valPass(){
	
	var pass1 = document.newform.npass.value;
	var pass2 = document.newform.nvpass.value;
	var mle = document.newform.nemail.value;
	
	if (newEmail() == false) {
	
		document.newform.nemail.focus();
		document.newform.nemail.select();
		
		return false;
	
	}
	
	if (pass1 != pass2) {
	
		document.newform.npass.focus();
		document.newform.npass.select();
		
		document.newform.npass.value="";
		document.newform.nvpass.value="";
		
		alert ("Password verification failed. Please try again.");
		
		return false;
	
	} 
}