// JavaScript Document
<!--
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_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_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;
}

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];}
}
//-->

<!--
function onlyonce(ft)
{
	f = document.getElementById(ft)

	pn = document.getElementById('pn')

	if ((pn==null)||(pn=="")){
		alert("Please Enter your Phone Number")
		pn.focus()
		return false
	}
	if (checkInternationalPhone(pn.value)==false){
		alert("Please Enter a Valid Phone Number")
		pn.value=""
		pn.focus()
		return false
	}

	f.submit()
	return true
} 

/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}



function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}


// End Phone number validation


function checkZipCode(field) {
        var valid = "0123456789-";
        var hyphencount = 0;

        if (field.length!=5 && field.length!=10) {
                //alert("Please enter your 5 digit or 5 digit+4 zip code.");
                return false;
        }

        for (var i=0; i < field.length; i++) {
                temp = "" + field.substring(i, i+1);
                if (temp == "-") hyphencount++;
                if (valid.indexOf(temp) == "-1") {
                        //alert("Invalid characters in your zip code.  Please try again.");
                        return false;
                }
                if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
                        //alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
                        return false;
                }
        }
        return true;
}


	var supportedAreaCodes = new Array(
		"201","202","203","204","205","206","207","208","209","210","212","213","214","215","216","217","218","219","224","225",
		"226","227","228","229","231","234","239","240","242","246","248","250","251","252","253","254","256","260","262","264",
		"267","268","269","270","276","278","281","283","284","289","301","302","303","304","305","306","307","308","309","310",
		"312","313","314","315","316","317","318","319","320","321","323","325","330","331","334","336","337","339","340","341",
		"345","347","351","352","356","360","361","369","380","385","386","401","402","403","404","405","406","407","408","409",
		"410","412","413","414","415","416","417","418","419","423","424","425","430","432","434","435","438","440","441","442",
		"443","445","450","456","464","469","470","473","475","478","479","480","484","500","501","502","503","504","505","506",
		"507","508","509","510","512","513","514","515","516","517","518","519","520","530","533","540","541","551","557","559",
		"561","562","563","564","567","570","571","573","574","575","580","585","586","600","601","602","603","604","605","606",
		"607","608","609","610","612","613","614","615","616","617","618","619","620","623","626","627","628","630","631","636",
		"641","646","647","649","650","651","657","659","660","661","662","664","667","669","670","671","678","679","682","684",
		"689","700","701","702","703","704","705","706","707","708","709","710","712","713","714","715","716","717","718","719",
		"720","724","727","731","732","734","737","740","747","752","754","757","758","760","762","763","764","765","767","769",
		"770","772","773","774","775","778","780","781","784","785","786","787","800","801","802","803","804","805","806","807",
		"808","809","810","812","813","814","815","816","817","818","819","822","828","829","830","831","832","833","835","843",
		"844","845","847","848","850","855","856","857","858","859","860","862","863","864","865","866","867","868","869","870",
		"872","876","877","878","880","881","882","888","900","901","902","903","904","905","906","907","908","909","910","912",
		"913","914","915","916","917","918","919","920","925","928","931","935","936","937","939","940","941","947","949","951",
		"952","954","956","959","970","971","972","973","975","978","979","980","984","985","989"
	);

function checkSupportedAreaCode(phoneNumber) {
	var prefix = phoneNumber.substring(0,3)
	//alert(prefix + ' check against ' + supportedAreaCodes.length )
	for (var j = 0; j < supportedAreaCodes.length; j++) {
		if ( prefix == supportedAreaCodes[j] ) {
			return true;
		}
	}
	return false
	
}

function trimString (str) {
	while (str.charAt(0) == ' ')
    str = str.substring(1);
  while (str.charAt(str.length - 1) == ' ')
    str = str.substring(0, str.length - 1);
  return str;
}

function validEmail(email)
{
    var vAtSym    = email.indexOf('@')
    var vPeriod   = email.lastIndexOf('.')
    var vSpace    = email.indexOf(' ')
    var vLength   = email.length - 1   // Array is from 0 to length-1

    if (vAtSym < 1 ||                     // '@' cannot be in first position
    	vPeriod <= vAtSym + 1 ||          // Must be atleast one valid char btwn '@' and '.'
    	vPeriod == vLength  ||            // Must be atleast one valid char after '.'
    	vSpace  != -1)                    // No empty spaces permitted
		{
			return false;
    }
		return true;
}


function CheckPhoneNumber(PhoneNo) {
	
	TagStr="PHONE NUMBER"

	// get rid of non-numerics
	var checkOK = new String("0123456789");
	var strNo = new String(PhoneNo.value);
	PhoneNo.value="";
	
	for ( i = 0; i < strNo.length; i++ ) {
		ch = strNo.charAt(i);
		for (j = 0;  j < checkOK.length;  j++) {
			if (ch == checkOK.charAt(j))
				break;

			if (j != checkOK.length) {
				PhoneNo.value=String(PhoneNo.value)+String(ch);
			}
		}
	}

	// get rid of leading 1
	if ( ( PhoneNo.value.length == 11 ) && ( PhoneNo.value.charAt(0) == 1 ) ) {
		PhoneNo.value = PhoneNo.value.substr(1,10);
	}

	if ( (PhoneNo.value.length != 0) && (PhoneNo.value.length < 10) ) {
		alert("Please enter exactly 10 digits in \"" + TagStr + "\".");
		PhoneNo.focus();
		return (false);
	}

	if (PhoneNo.value.length > 10) {
		alert("Please enter exactly 10 digits in \"" + TagStr + "\".");
		PhoneNo.focus();
		return (false);
	}

	var checkStr = PhoneNo.value;
	var allValid = true;
	var decPoints = 0;

	for (i = 0;  i < checkStr.length;  i++) {
		ch = checkStr.charAt(i);

		for (j = 0;  j < checkOK.length;  j++)
		if (ch == checkOK.charAt(j))
			break;
		if (j == checkOK.length) {
			allValid = false;
			break;
		}
	}

	if (!allValid)
	{
		alert("Please enter only digits in \"" + TagStr + "\".");
		PhoneNo.focus();
		return (false);
	}

	if ( checkStr.length == 10 ) {
		if ( checkStr.charAt(0) < '2' ) {
			alert("The first digit of the area code in \"" + TagStr + "\" cannot be a '1' or '0'");
			PhoneNo.focus();
			return (false);
		}

		if ( checkStr.charAt(3) < '2' ) {
			alert("The first digit of the prefix in \"" + TagStr + "\" cannot be a '1' or '0'");
			PhoneNo.focus();
			return (false);
		}

		if ( checkStr.substring(0,3) == "900" ) {
			alert("The area code in \"" + TagStr + "\" cannot be '900'");
			PhoneNo.focus();
			return (false);
		}
	} else {
		return true;
		//alert("OK");
	}
}
//-->