
// File for validating index.jsp of admin module

function isUsernameOK(){
	var field_val=document.regiForm.username.value.replace(/[ ]/g, "");
	if (field_val.length==0){
		alert('Please type your Password');
		document.regiForm.username.value=""
		document.regiForm.username.focus();
		return false;
		}
	return true;
}


function checkEnter(e){ //e is event object passed from function invocation
var characterCode //literal character code will be stored in this variable

if(e && e.which){ //if which property of event object is supported (NN4)
e = e
characterCode = e.which //character code is contained in NN4's which property
}
else{
e = event
characterCode = e.keyCode //character code is contained in IE's keyCode property
}

if(characterCode == 13|| characterCode == 32){ //if generated character code is equal to ascii 13 (if enter key)
doSubmit(); //submit the form
return false 
}
else{
return true 
}
}


function emailCheck (emailStr) {
		
		/* The following variable tells the rest of the function whether or not
		to verify that the address ends in a two-letter country or well-known
		TLD.  1 means check it, 0 means don't. */

		var checkTLD=1;

		/* The following is the list of known TLDs that an e-mail address must end with. */

		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

		/* The following pattern is used to check if the entered e-mail address
		fits the user@domain format.  It also is used to separate the username
		from the domain. */

		var emailPat=/^(.+)@(.+)$/;

		/* The following string represents the pattern for matching all special
		characters.  We don't want to allow special characters in the address. 
		These characters include ( ) < > @ , ; : \ " . [ ] */

		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

		/* The following string represents the range of characters allowed in a 
		username or domainname.  It really states which chars aren't allowed.*/

		var validChars="\[^\\s" + specialChars + "\]";

		/* The following pattern applies if the "user" is a quoted string (in
		which case, there are no rules about which characters are allowed
		and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
		is a legal e-mail address. */

		var quotedUser="(\"[^\"]*\")";

		/* The following pattern applies for domains that are IP addresses,
		rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
		e-mail address. NOTE: The square brackets are required. */

		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

		/* The following string represents an atom (basically a series of non-special characters.) */

		var atom=validChars + '+';

		/* The following string represents one word in the typical username.
		For example, in john.doe@somewhere.com, john and doe are words.
		Basically, a word is either an atom or quoted string. */

		var word="(" + atom + "|" + quotedUser + ")";

		// The following pattern describes the structure of the user

		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");

		/* The following pattern describes the structure of a normal symbolic
		domain, as opposed to ipDomainPat, shown above. */

		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

		/* Finally, let's start trying to figure out if the supplied address is valid. */

		/* Begin with the coarse pattern to simply break up user@domain into
		different pieces that are easy to analyze. */

		var matchArray=emailStr.match(emailPat);

		if (matchArray==null) {

		/* Too many/few @'s or something; basically, this address doesn't
		even fit the general mould of a valid e-mail address. */

		alert("Email address seems incorrect (check @ and .'s)");
		return false;
		}
		var user=matchArray[1];
		var domain=matchArray[2];

		// Start by checking that only basic ASCII characters are in the strings (0-127).

		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;
		   }
		}

		// See if "user" is valid 

		if (user.match(userPat)==null) {

		// user is not valid

		alert("The username doesn't seem to be valid.");
		return false;
		}

		/* if the e-mail address is at an IP address (as opposed to a symbolic
		host name) make sure the IP address is valid. */

		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null) {

		// this is an IP address

		for (var i=1;i<5;i++) {
		if (IPArray[i]>255) {
		alert("Destination IP address is invalid!");
		return false;
		   }
		}
		return true;
		}

		// Domain is symbolic name.  Check if it's valid.
		 
		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;
		   }
		}

		/* domain name seems valid, but now make sure that it ends in a
		known top-level domain (like com, edu, gov) or a two-letter word,
		representing country (uk, nl), and that there's a hostname preceding 
		the domain or country. */

		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;
		}

		// Make sure there's a host name preceding the domain.

		if (len<2) {
		alert("This address is missing a hostname!");
		return false;
		}

		// If we've gotten this far, everything's valid!
		return true;
	}


//chcek for blank first name field
function isFirstnameOK(){    
	var field_val= document.regiForm.fname.value.replace(/[ ]/g, "");		
	if (field_val.length==0){
		alert('Please type your first name');
		
		document.regiForm.fname.focus();
		return false;
		}	
	var firstChar = field_val.substr(0,1);
	if (firstChar.charCodeAt(0)>47 && firstChar.charCodeAt(0)<58)
	{
		alert("First should start with alphabets only");
		
		document.regiForm.fname.focus();
		return false;
	}

	var charpos = document.regiForm.fname.value.search("[^A-Za-z0-9\._]"); 
	if(document.regiForm.fname.value.length > 0 &&  charpos >= 0) 
	{ 
	    alert("First name accepts only alpha-numeric characters "); 		
		
		document.regiForm.fname.focus();
		return false; 
	 }//if 
	return true;
}

// chceck lastname is ok
function isLastnameOK(){ 	
	var field_val=document.regiForm.lname.value.replace(/[ ]/g, "");		
	if (field_val.length==0){
		alert('Please type your last name');
	
		document.regiForm.lname.focus();
		return false;
		}
	var firstChar = field_val.substr(0,1);
	if (firstChar.charCodeAt(0)>47 && firstChar.charCodeAt(0)<58)
	{
		alert("Last should start with alphabets only");
	
		document.regiForm.lname.focus();
		return false;
	}

	var charpos = document.regiForm.lname.value.search("[^A-Za-z0-9\._]"); 
	if(document.regiForm.lname.value.length > 0 &&  charpos >= 0) 
	{ 
	    alert("Last name accepts only alpha-numeric characters "); 		
	
		document.regiForm.lname.focus();
		return false; 
	 }//if 
	return true;
}
	
function isBirthDateOK(){
	var field_val1=document.regiForm.dd.value;
	var field_val2=document.regiForm.mm.value;
	var field_val3=document.regiForm.yy.value;

	if(field_val1 == "DD"){
		alert('Please select your day of birth.');
		
		document.regiForm.dd.focus();
		return false;
	}
	if(field_val1 == ""){
		alert('Please select your day of birth.');
		
		document.regiForm.dd.focus();
		return false;
	}
	if(field_val2 == "MM"){
		alert('Please select your month of birth.');
		
		document.regiForm.mm.focus();
		return false;
	}
	if(field_val2 == ""){
		alert('Please select your month of birth.');
		
		document.regiForm.mm.focus();
		return false;
	}
	if(field_val3 == "YYYY"){
		alert('Please select your year of birth.');
		
		document.regiForm.yy.focus();
		return false;
	}
	if(field_val3 == ""){
		alert('Please select your year of birth.');
		
		document.regiForm.yy.focus();
		return false;
	}		
	if (field_val3.length<4){
		alert('Please select your year of birth.');
		
		document.regiForm.yy.focus();
		return false;
	}
	if(document.regiForm.yy.value < 1900 || document.regiForm.yy.value >= 2003)
	{
		alert("Year of Birth field is Invalid.\nPlease enter a proper value.");
		document.regiForm.yy.value='';
		document.regiForm.yy.focus();
		return false;
	}
	else
	{
		return true;
	}
	
}


//check gender is ok
function isGenderOK(){	

	if (document.regiForm.gender.value == "00"){
			
			alert('Please select Your Gender.');
			document.regiForm.gender.focus();
			return false;
		}else{
			return true;	
		}
}

//check zipcode is ok
function isZipcodeOK(){	
	var field_val=document.regiForm.zip.value;
	
	for (i=0; i<field_val.length; i++) {
		
		if (field_val.charAt(i) < '0' || field_val.charAt(i) > '9') {
			alert("Zip code accepts only numbers");
			return false;
   			}
		}

	if (field_val.length<5){
		alert('Please type your postal Zip Code.');
		
		document.regiForm.zip.focus();
		return false;
		}
		return true;

}


function browserDetect()
{	
	
	 if(document.layers)
	 {
		thisbrowser="NN4";			
		regiForm = document.regiForm;
	 }
	 if(document.all)
	 {
		thisbrowser="ie";
	 }
	 if(!document.all && document.getElementById)
	 {
		thisbrowser="NN6";			
		regiForm = document.regiForm;
	 }			
}	


function isPasswordOK()
	{		
		var field_val=regiForm.password.value.replace(/[ ]/g, "");
		if (field_val.length==0){
			alert('Please type your Password');
			
			regiForm.password.focus();
			return false;
			}
		return true;
	}



var isNN = (navigator.appName.indexOf("Netscape")!=-1);
	
	function autoTab(input,len, e)
	{
		var keyCode = (isNN) ? e.which : e.keyCode; 
		var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
		if(input.value.length >= len && !containsElement(filter,keyCode))
		{
		input.value = input.value.slice(0, len);
		input.form[(getIndex(input)+1) % input.form.length].focus();
		}		
		function containsElement(arr, ele)
	  	{
			var found = false, index = 0;
			while(!found && index < arr.length)
			if(arr[index] == ele)
			found = true;
			else
			index++;
			return found;
		}
		
		function getIndex(input)
		{
			var index = -1, i = 0, found = false;
			while (i < input.form.length && index == -1)
			if (input.form[i] == input)index = i;
			else i++;
			return index;
		}
		return true;
	}