/***********************************
**  Nav image rollover functions  **
***********************************/

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

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

/**************************************
**  myOnLoad(), fires for all pages  **
**************************************/

function myOnload() {
	//MM_preloadImages('http://www.filebookslink.com/images/button1_2.gif','http://www.filebookslink.com/images/button3_2.gif','http://www.filebookslink.com/images/button4_2.gif','http://www.filebookslink.com/images/button5_2.gif','http://www.filebookslink.com/images/button6_2.gif','http://www.filebookslink.com/images/button7_2.gif');

	var fileNameArray = document.URL.split('/');
	var fileName = fileNameArray[fileNameArray.length - 1];
	var qmark = fileName.length;

	if(fileName.indexOf('?') >= 0)
		qmark = fileName.indexOf('?');

	fileName = fileName.substring(0,qmark);

	if(fileName == 'download.php' && document.Download != undefined) {
		if(document.FBLDownload.x_First_Name.value.length == 0)
			document.FBLDownload.x_First_Name.focus();
		else if(document.FBLDownload.x_Last_Name.value.length == 0)
			document.FBLDownload.x_Last_Name.focus();
		else if(document.FBLDownload.x_Email.value.length == 0 || !check_email(document.FBLDownload.x_Email.value))
			document.FBLDownload.x_Email.focus();
	} else if((fileName == 'purchase.php' || fileName == 'processPurchase.php') && document.Purchase != undefined) {
		if(document.Purchase.x_First_Name.value.length == 0)
			document.Purchase.x_First_Name.focus();
		else if(document.Purchase.x_Last_Name.value.length == 0)
			document.Purchase.x_Last_Name.focus();
		else if(document.Purchase.x_Email.value.length == 0 || !check_email(document.Purchase.x_Email.value))
			document.Purchase.x_Email.focus();
		else if(document.Purchase.x_Address.value.length == 0)
			document.Purchase.x_Address.focus();
		else if(document.Purchase.x_City.value.length == 0)
			document.Purchase.x_City.focus();
		else if(document.Purchase.x_Zip.value.length < 5)
			document.Purchase.x_Zip.focus();
		else if(document.Purchase.x_Phone.value.length < 10)
			document.Purchase.x_Phone.focus();
		else if(document.Purchase.unlimitedLicenses.value.length == 0)
			document.Purchase.unlimitedLicenses.focus();
		else if(document.Purchase.numberLicenses.value.length == 0)
			document.Purchase.numberLicenses.focus();
		else if(document.Purchase.username.value.length == 0)
			document.Purchase.username.focus();
		else if(document.Purchase.password.value.length == 0)
			document.Purchase.password.focus();
		else if(document.Purchase.passwordvalidate.value.length == 0)
			document.Purchase.passwordvalidate.focus();
		else if(document.Purchase.password.value.length != 0 && document.Purchase.passwordvalidate.value.length != 0 && document.Purchase.password.value != document.Purchase.passwordvalidate.value)
			document.Purchase.passwordvalidate.focus();
		else
			document.Purchase.username.focus();
	} else if((fileName == '' || fileName == 'index.php') && document.loginForm != undefined) {
		document.loginForm.username.focus();
	} else if(fileName == 'menu.php' && document.AddCode != undefined) {
		document.AddCode.newCompanyName.focus();
	} else if(fileName == 'editCode.php' && document.EditCode != undefined) {
		document.EditCode.cName.focus();
	} else if((fileName == 'upgradeCode.php' || fileName == 'processUpgrade.php') && document.UpgradeCode != undefined) {
		if(document.UpgradeCode.x_First_Name.value.length == 0)
			document.UpgradeCode.x_First_Name.focus();
		else if(document.UpgradeCode.x_Last_Name.value.length == 0)
			document.UpgradeCode.x_Last_Name.focus();
		else if(document.UpgradeCode.x_Email.value.length == 0 || !check_email(document.UpgradeCode.x_Email.value))
			document.UpgradeCode.x_Email.focus();
		else if(document.UpgradeCode.x_Address.value.length == 0)
			document.UpgradeCode.x_Address.focus();
		else if(document.UpgradeCode.x_City.value.length == 0)
			document.UpgradeCode.x_City.focus();
		else if(document.UpgradeCode.x_Zip.value.length < 5)
			document.UpgradeCode.x_Zip.focus();
		else if(document.UpgradeCode.x_Phone.value.length < 10)
			document.UpgradeCode.x_Phone.focus();
	}
}

/*********************************
**  Field validation functions  **
*********************************/

// Email Validation. Written by PerlScriptsJavaScripts.com
function check_email(e) {
	ok = '1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM';

	for(i=0; i < e.length ;i++) {
		if(ok.indexOf(e.charAt(i)) < 0)
			return (false);
	}

	if(document.images) {
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;

		if(!e.match(re) && e.match(re_two))
			return (-1);
	}
}

function ValidateZip(num) {
	var checkOK = '0123456789';
	var allValid = true;

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

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

		if(j == checkOK.length) {
			allValid = false;
			break;
		}
	}

	return allValid;
}

function ValidatePhoneFax(num) {
	var checkOK = '()- 0123456789';
	var allValid = true;

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

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

		if(j == checkOK.length) {
			allValid = false;
			break;
		}
	}

	return allValid;
}

/********************************
**  Data formatting functions  **
********************************/

function noLetters(e) {
	var keynum = e.keyCode;
	var keychar;
	var numcheck;

	if(window.event)	// IE
		keynum = e.keyCode;
	else if(e.which)	// Netscape/Firefox/Opera
		keynum = e.which;

	//Do whatever normally takes place when the user presses the following keys:
	//{BACKSPACE}, {TAB}, {ENTER}, {SHIFT}, {HOME}, {END}, {LEFT ARROW}, {UP ARROW}, {RIGHT ARROW}, {DOWN ARROW}, {DELETE}
	if(keynum == 8 || keynum == 9 || keynum == 13 || keynum == 16 || keynum == 35 || keynum == 36 || keynum == 37 || keynum == 38 || keynum == 39 || keynum == 40 || keynum == 46)
		return;

	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;

	return numcheck.test(keychar);
}

function noNumbers(e) {
	var keynum = e.keyCode;
	var keychar;
	var numcheck;

	if(window.event)	// IE
		keynum = e.keyCode;
	else if(e.which)	// Netscape/Firefox/Opera
		keynum = e.which;

	//Do whatever normally takes place when the user presses the following keys:
	//{BACKSPACE}, {TAB}, {ENTER}, {SHIFT}, {HOME}, {END}, {LEFT ARROW}, {UP ARROW}, {RIGHT ARROW}, {DOWN ARROW}, {DELETE}
	if(keynum == 8 || keynum == 9 || keynum == 13 || keynum == 16 || keynum == 35 || keynum == 36 || keynum == 37 || keynum == 38 || keynum == 39 || keynum == 40 || keynum == 46)
		return;

	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;

	return !numcheck.test(keychar);
}

function CheckMaxlength(obj, maxlen, e) {
	if(typeof e != "undefined") {
		var keynum = e.keyCode;

		if(window.event)	// IE
			keynum = e.keyCode;
		else if(e.which)	// Netscape/Firefox/Opera
			keynum = e.which;

		//Do whatever normally takes place when the user presses the following keys:
		//{BACKSPACE}, {TAB}, {ENTER}, {SHIFT}, {HOME}, {END}, {LEFT ARROW}, {UP ARROW}, {RIGHT ARROW}, {DOWN ARROW}, {DELETE}
		if(keynum == 8 || keynum == 9 || keynum == 13 || keynum == 16 || keynum == 35 || keynum == 36 || keynum == 37 || keynum == 38 || keynum == 39 || keynum == 40 || keynum == 46)
			return true;
	}

	return (obj.value.length < maxlen - 1);
}
