var digits = "0123456789";
var lLetters = "abcdefghijklmnopqrstuvwxyz"
var uLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var alphanum = lLetters + uLetters + digits;
var whitespace = " \t\n\r ";

var ProvinceDelimiter = "|";
var Provinces = new Array();
Provinces["US"] = "AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|AE|AA|AE|AE|AP";
Provinces["CA"] = "AB|BC|MB|NB|NF|NT|NS|NU|ON|PI|PQ|SK|YT";

function isEmpty(s) {
	return ((s == null) || (s.length == 0))
}

function isWhitespace(s) {
	var i;
	if (isEmpty(s)) return true;
		for (i = 0; i < s.length; i++)
		{   
			var c = s.charAt(i);
			if (whitespace.indexOf(c) == -1) return false;
		}
	return true;
}

function StripIn (s, bag) {
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++) {   
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

function StripNotIn (s, bag) {
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++) {
		 var c = s.charAt(i);
		 if (bag.indexOf(c) != -1) returnString += c;
	}
	return returnString;
}

function isLetter (c) {
	return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit (c) {
	return ((c >= "0") && (c <= "9"))
}

function isLetterOrDigit (c) {
	return (isLetter(c) || isDigit(c))
}

function isInteger (s) {
	var i;
	if (isEmpty(s)) return false;
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (!isDigit(c)) return false;
	}
	return true;
}

function AlphaNumeric(s) {
	var i;
	if (isEmpty(s)) return false;
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (!isLetterorDigit(c)) return false;
	}
	return true;
}

function isLength(s, lMin, lMax) {
	if ((s.length >= lMin) && (s.length <= lMax)) return true;
	return false;
}

function isProvinceCode(sCode, sCountry) {
if(sCode == "NONE"){
 return false;
}

	if (Provinces[sCountry] != null) {
		if (!isLength(sCode, 2, 2)) return false;
		return ((Provinces[sCountry].indexOf(sCode) != -1) && (sCode.indexOf(ProvinceDelimiter) == -1) && (isLength(sCode,2,2)));
	}
	return true;
}

function isZipCode(sZip, sCountry) {
	if (sCountry=="US") return isUSZipCode(sZip);
	if (sCountry=="CA") return isCAZipCode(sZip);
	return true
}

function isUSZipCode(sZip) {
	return (isInteger(sZip) && ((sZip.length==5) || (sZip.length==9)));
}

function isCAZipCode(sZip) {
	var re = new RegExp();
	re = /^[a-zA-z]\d[a-zA-z]( |-)?\d[a-zA-z]\d$/;
	return re.test(sZip);
}

function isEmail (s) {
	if (isEmpty(s)) return false;
	if (isWhitespace(s)) return false;
	var i = 1;
	var sLength = s.length;
	while ((i < sLength) && (s.charAt(i) != "@")) {i++}
	if ((i >= sLength) || (s.charAt(i) != "@")) return false;
	else i += 2;
	while ((i < sLength) && (s.charAt(i) != ".")) { i++ }
	if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
	else return true;
}

function isURL(s) {
	if (isWhitespace(s)) return false;
	return true;
}

function warnInvalid (theField, s) {
	theField.focus();
	theField.select();
	alert(s);
	return false;
}



function Validate(myForm) {

	alert("I am here");
    if (!isLength(myForm.txtFirstName.value, 1, 30)) return warnInvalid(myForm.txtFirstName, "First name must be between 1 and 30 characters in length");
	if (!isLength(myForm.txtLastName.value, 1, 50)) return warnInvalid(myForm.txtLastName, "Last name must be between 1 and 50 characters in length");
	if (!isLength(myForm.txtAddress1.value, 1, 255)) return warnInvalid(myForm.txtAddress1, "Address 1 must be between 1 and 255 characters in length");
	if (!isLength(myForm.txtCity.value, 1, 50)) return warnInvalid(myForm.txtCity, "City must be between 1 and 50 characters in length");
	myForm.txtProvince.value = myForm.txtProvince.value.toUpperCase();
	if (myForm.selCountry[myForm.selCountry.selectedIndex].value == "US") {
		if (!isProvinceCode(myForm.txtProvince.value, myForm.selCountry[myForm.selCountry.selectedIndex].value)) return warnInvalid(myForm.txtProvince, "State must be a valid 2 letter code (e.g. CA for California)");
		myForm.txtPostalCode.value = StripNotIn(myForm.txtPostalCode.value, digits)
		if (!isUSZipCode(myForm.txtPostalCode.value)) return warnInvalid(myForm.txtPostalCode, "You must enter a valid US zip code. (e.g. #####)");
		if (myForm.txtPostalCode.value.length == 9) {
			myForm.txtPostalCode.value = myForm.txtPostalCode.value.slice(0,5) + "-" + myForm.txtPostalCode.value.slice(5)
		}
	}
	if (myForm.selCountry[myForm.selCountry.selectedIndex].value == "CA") {
		if (!isProvinceCode(myForm.txtProvince.value, myForm.selCountry[myForm.selCountry.selectedIndex].value)) return warnInvalid(myForm.txtProvince, "Province must be a valid 2 letter code (e.g. BC for British Columbia)");
		myForm.txtPostalCode.value = StripNotIn(myForm.txtPostalCode.value, alphanum + " -")
		myForm.txtPostalCode.value = myForm.txtPostalCode.value.toUpperCase();
		if (!isCAZipCode(myForm.txtPostalCode.value)) return warnInvalid(myForm.txtPostalCode, "You must enter a valid Canadian postal code. (e.g. A#A-#A#)");
	}
	if (!isEmail(myForm.txtEmail.value)) return warnInvalid(myForm.txtEmail, "Email address is invalid.");
	return true;
}







<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->

<!--
// copyright 1999-2001 Idocs, Inc. http://www.idocs.com/tags/
// Distribute this script freely, but keep this 
// notice with the code.
var submitRolls = new Object();



function submitroll(src, oversrc, name, formObj)
{

this.src=src;
this.oversrc=oversrc;
this.name=name;
this.alt="Submit Query";
this.write=submitroll_write;
}

function submitroll_write()
{
var thisform = 'document.forms[' + (document.forms.length - 1) + ']';
submitRolls[this.name] = new Object();
submitRolls[this.name].over = new Image();
submitRolls[this.name].over.src = this.oversrc;
submitRolls[this.name].out = new Image();
submitRolls[this.name].out.src = this.src;

document.write
	(
	'<A onMouseOver="if (document.images)document.images[\'' + this.name + "'].src=submitRolls['" + this.name + '\'].over.src"' + 
	' onMouseOut="if (document.images)document.images[\'' + this.name + "'].src=submitRolls['" + this.name + '\'].out.src"' + 
	' HREF="javascript:'
	);

if (this.sendfield)
	{
	if (! this.sendvalue)
		this.sendvalue = 1;
	document.write(thisform, ".elements['", this.sendfield, "'].value='", this.sendvalue, "';");
	}

document.write(thisform + '.submit();void(0);"');
if (this.msg)document.write(' onClick="return confirm(\'' , this.msg, '\')"');
  
  if(this.name == "btnCheckout"){
    document.write(' onClick="checkOut();"');
  }
    if(this.name == "validate"){
    document.write(' onClick="return Validate(document.frmBilling);"');
  }
   if(this.name == "validateCheckout"){
    document.write(' onClick="return Validate2(document.frmPayMeth2);"');
  }
   if(this.name == "search"){
    document.write(' onClick="return checkSearch();" ');
  }
     if(this.name == "raffle"){
    document.write(' onClick="return checkForm();" ');
  }
  
document.write('>');

document.write('<IMG SRC="' + this.src + '" ALT="' + this.alt + '" BORDER=0 NAME="' + this.name + '"');
if (this.height)document.write(' HEIGHT=' + this.height);
if (this.width)document.write(' WIDTH='  + this.width);
if (this.otheratts)document.write(' ' + this.otheratts);
document.write('></A>');
if (this.sendfield)
	{
	
	document.write('<INPUT TYPE=HIDDEN NAME="' + this.sendfield + '">');
	document.forms[document.forms.length - 1].elements[this.sendfield].value='';
	}
	

}



function checkSearch(){
  
   if(document.searchFrm.Keywords.value == ""){
   
       alert("Please enter a Search Keyword")
       return false;
   }
  
   
}
//-->
function checkOut(){
   document.frmBasket.checkoutClicked.value = 2
}


<!--

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//-->