<!--
//JavaScript codes by Genie Joy D. Marfa (genie1107@hotmail.com)

function isValidForm(theform){
	FormatFields(theform);
	if (theform.txtordertotal.value == 0){
		alert ('Please specify which publication do you wish to order');
		theform.chkAR99.focus();
		return false;
		}
	if (!isValidEmail(theform.txtemail))
		return false;
	if (!isSelectedCombo(theform.cbojob,"JOB field"))
		return false;
	if (!isGoodLength(theform.txtorg,"ORGANIZATION",0,200))
		return false;
	if (!isSelectedCombo(theform.cboorgcatid,"ORGANIZATION CATEGORY"))
		return false;
	if (!isValidAlphaEntry(theform.txtlname,"LAST NAME",2,50))
		return false;
	if (!isValidAlphaEntry(theform.txtfname,"FIRST NAME",2,50))
		return false;
	if (!isValidAlphaNumEntry(theform.txtst,"STREET/PO BOX ADDRESS",5,50))
		return false;
	if (!isValidAlphaNumEntry(theform.txttown,"TOWN/CITY ADDRESS",5,50))
		return false;
	if (!isValidAlphaNumEntry(theform.txtstate,"STATE/PROVINCE ADDRESS",5,50))
		return false;
	if (!isValidAlphaNumEntry(theform.txtzip,"ZIP/POSTAL CODE",0,50))
		return false;
	return true;
}

function FormatFields(theform){
var ordernum;
ordernum = 0;
theform.txtemail.value = Trim(theform.txtemail.value);
theform.txtjob.value=Trim(theform.cbojob[theform.cbojob.selectedIndex].value);
theform.txtorg.value=Trim(theform.txtorg.value);
theform.txtorgcatid.value=Trim(theform.cboorgcatid[theform.cboorgcatid.selectedIndex].value);
theform.txtorgcat.value=Trim(theform.cboorgcatid[theform.cboorgcatid.selectedIndex].text);
theform.txtlname.value = ChangeCase(Trim(theform.txtlname.value));
theform.txtfname.value = ChangeCase(Trim(theform.txtfname.value));
theform.txtst.value = ChangeCase(Trim(theform.txtst.value));
theform.txttown.value = ChangeCase(Trim(theform.txttown.value));
theform.txtstate.value = ChangeCase(Trim(theform.txtstate.value));
theform.txtzip.value = Trim(theform.txtzip.value);
theform.txtcountryid.value = Trim(theform.cbocountryid[theform.cbocountryid.selectedIndex].value);
theform.txtcountry.value=Trim(theform.cbocountryid[theform.cbocountryid.selectedIndex].text);
if (theform.chkAR99.checked){
	theform.txtAR99.value='AR1999';
	ordernum = ordernum + 1;
	}
if (theform.chkAR00.checked){
	theform.txtAR00.value='AR2000';
	ordernum = ordernum + 1;
	}
if (theform.chkGBP.checked){
	theform.txtGBP.value='GuideBookToBiodivPrinciples';
	ordernum = ordernum + 1;
	}	
	
	
theform.txtordertotal.value = ordernum;
theform.txtmaxorder.value=5;
}

/*Check Entry Functions*/

function isValidEmail(email){
	if (!isGoodLength(email,"EMAIL",6,75))
		return false;
	if (!isGoodEmail(email.value))
		return false;
	return true;
}

function isGoodEmail(emailStr) {
var checkTLD=1;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
	alert("Email address seems incorrect (check @ and .'s)");
	return false;
}

var user=matchArray[1];
var domain=matchArray[2];

for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("Ths username contains invalid characters.");
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
	alert("Ths domain name contains invalid characters.");
	return false;
   }
}

if (user.match(userPat)==null) {
	alert("The username doesn't seem to be valid.");
	return false;
	}

var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {

for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
	alert("Destination IP address is invalid!");
	return false;
   }
}
return true;
}

var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
	alert("The domain name does not seem to be valid.");
	return false;
   }
}

if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
	alert("The address must end in a well-known domain or two letter " + "country.");
	return false;
	}

if (len<2) {
	alert("This address is missing a hostname!");
	return false;
	}

return true;
}

function isSelectedCombo(cbofield,cboerr){
	if (cbofield.selectedIndex == 0)
		{
		alert('Invalid Selection for '+cboerr);
		cbofield.focus();
		return false;
		}
return true;
}

function isGoodAlphaInput(field,fieldname){
var valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz .,&'"
var validstatus = "y";
var temp;

for (var i=0; i<field.value.length; i++) 
	{
	temp = "" + field.value.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") validstatus = "n";
	}
	if (validstatus == "n") 
		{
		alert('Please enter a valid ' + fieldname + '\nOnly text inputs are allowed');
		field.focus();
		field.select();
		return false;
   		}
   		else{
   		return true;
   		}
}

function isValidAlphaEntry(field,fieldname,minchar,maxchar){
	if (!isGoodAlphaInput(field,fieldname))
		return false;
	if (!isGoodLength(field,fieldname,minchar,maxchar))
		return false;
	return true;
}

function isValidAlphaNumEntry(field,fieldname,minchar,maxchar){
	if (!isGoodAlphaNumInput(field,fieldname))
		return false;
	if (!isGoodLength(field,fieldname,minchar,maxchar))
		return false;
	return true;
}

/*Basic Shared Functions*/

function isGoodNumInput(field,fieldname){
var valid = "0123456789"
var validstatus = "y";
var temp;

for (var i=0; i<field.value.length; i++) 
	{
	temp = "" + field.value.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") validstatus = "n";
	}
	if (validstatus == "n") 
		{
		alert('Please enter a valid ' + fieldname + '\nOnly numeric inputs are allowed');
		field.focus();
		field.select();
		return false;
   		}
   		else{
   		return true;
   		}
}

function isGoodAlphaNumInput(field,fieldname){
var valid = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./,' "
var validstatus = "y";
var temp;

for (var i=0; i<field.value.length; i++) 
	{
	temp = "" + field.value.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") validstatus = "n";
	}
	if (validstatus == "n") 
		{
		alert('Please enter a valid ' + fieldname + '\nOnly text and numeric inputs are allowed');
		field.focus();
		field.select();
		return false;
   		}
   		else{
   		return true;
   		}
}

function isGoodLength(field,fieldname,minchar,maxchar){
if ((field.value.length > maxchar)||(field.value.length < minchar))
	{
	alert('Please re-enter valid '+fieldname+'\n\nLength for this field should be within '+minchar+'-'+maxchar+' characters.');
	field.focus()
	field.select()
	return false;
   }
else return true;
}

function ChangeCase(fieldval) {
var i;
var tmpStr;
var tmpChar;
var preString;
var postString;
var strLen;
tmpStr = fieldval.toLowerCase();
strLen = tmpStr.length;

if (strLen > 0)  {
	for (i = 0; i < strLen; i++)  {
		if (i == 0)  {
			tmpChar = tmpStr.substring(0,1).toUpperCase();
			postString = tmpStr.substring(1,strLen);
			tmpStr = tmpChar + postString;
		}
		else {
	tmpChar = tmpStr.substring(i, i+1);
	if (tmpChar == " " && i < (strLen-1))  {
		tmpChar = tmpStr.substring(i+1, i+2).toUpperCase();
		preString = tmpStr.substring(0, i+1);
		postString = tmpStr.substring(i+2,strLen);
		tmpStr = preString + tmpChar + postString;
       }
   		}
   }
}
return tmpStr;
}

function LTrim(str){
var whitespace = new String(" \t\n\r");
var s = new String(str);

if (whitespace.indexOf(s.charAt(0)) != -1) {
	var j=0,i=s.length;
	
	while (j<i && whitespace.indexOf(s.charAt(j)) != -1)
		j++;
	s=s.substring(j,i);
	}
return s;
}

function RTrim(str){
var whitespace = new String(" \t\n\r");
var s = new String(str);

if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
	var i = s.length-1;
	
	while(i>=0 && whitespace.indexOf(s.charAt(i)) != -1)
		i--;
	s=s.substring(0,i+1);
	}
return s;
}

function Trim(str){
return RTrim(LTrim(str));
}

//Any questions,comments,suggestions on scripting...
//contact GMarfa genie1107@hotmail.com

//-->
