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<=4;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;

}

 

  

function trim(data)

{



// triming from right



	while(''+data.value.charAt(data.value.length-1)==' ')

	

	data.value=data.value.substring(0,data.value.length-1);

	

	// triming from left

	

	while(''+data.value.charAt(0) == ' ')

	

	data.value=data.value.substring(1,data.value.length);



}  

	

// function check for phone number

	

function IsPhone(strString)

//  check for valid numeric strings	

{

	var blnResult = true;

	var ph = new Array();

	ph = strString.split('-');

	

	// if value of phone number has not been seperated in three sections

	if(ph.length != 3)

		blnResult = false;

	else

	{

		for(var i=0;i<ph.length;i++)

		{

			if(isNaN(parseInt(ph[i])))

				blnResult = false;

			else if(i!=(ph.length-1) && ph[i].length != 3)	

				blnResult = false;

			else if(i==(ph.length-1) && ph[i].length != 4)	

				blnResult = false;	

		}

	}	

	return	blnResult;

}		

// function check for numeric values

	

function IsNumeric(strString)

//  check for valid numeric strings	

{

var strValidChars = "0123456789";

var strChar;

var blnResult = true;



if (strString.length == 0) 

	return false;



//  test strString consists of valid characters listed above

for (i = 0; i < strString.length && blnResult == true; i++)

  {

  strChar = strString.charAt(i);

  if (strValidChars.indexOf(strChar) == -1)

     {

		blnResult = false;

     }

  }

return blnResult;

}	

// function check for price values

	

function IsNumeric1(strString)

//  check for valid numeric strings	

{

var strValidChars = "0123456789.";

var strChar;

var blnResult = true;



if (strString.length == 0) return false;



//  test strString consists of valid characters listed above

for (i = 0; i < strString.length && blnResult == true; i++)

  {

  strChar = strString.charAt(i);

  if (strValidChars.indexOf(strChar) == -1)

     {

		blnResult = false;

     }

  }

return blnResult;

}

   

// function check for alpha-numeric values

	

function AlphaNumeric(strString)

//  check for valid numeric strings	

{

	var strValidChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz'/,-.";

	var strChar;

	var blnResult = true;

	

	if (strString.length == 0) return false;

	

	//  test strString consists of valid characters listed above

	for (i = 0; i < strString.length && blnResult == true; i++)

	  {

	  strChar = strString.charAt(i);

	  if (strValidChars.indexOf(strChar) == -1)

	     {

			blnResult = false;

	     }

	  }

	return blnResult;

}   



// function check for alphabets only



function isAlpha(string)

{

	var strValidChars = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ";

	var blnResult = true;

	strString = string;

	

	for (i = 0; i < strString.length && blnResult == true; i++)

	{

		strChar = strString.charAt(i);

		if (strValidChars.indexOf(strChar) == -1)

		{

			blnResult = false;

		}

	}

	return blnResult;

	/*if (blnResult == false)

	{

		alert ("Invalid format!\nPlease Enter alphabets only!");

		document.frm.fname.value = "";

		document.frm.fname.focus(); 

		return false;

	}*/

}

// function check for alphabets only



function isAlpha1(string)

{

	var strValidChars = "abcdefghijklmnopqrstuvwxyz 'ABCDEFGHIJKLMNOPQRSTUVWXYZ";

	var blnResult = true;

	strString = string;

	

	for (i = 0; i < strString.length && blnResult == true; i++)

	{

		strChar = strString.charAt(i);

		if (strValidChars.indexOf(strChar) == -1)

		{

			blnResult = false;

		}

	}

	return blnResult;

	/*if (blnResult == false)

	{

//		alert ("Invalid format!\nPlease Enter alphabets only!");

//		document.frm.fname.value = "";

//		document.frm.fname.focus(); 

		return false;

	}*/

}



//function for select all 

function selectAll(theElement) 

{

     var theForm = theElement.form, z = 0;

	 for(z=0; z<theForm.length;z++)

	 {

     	if(theForm[z].type == 'checkbox' && theForm[z].name != 'checkall')

     	{

	 		theForm[z].checked = theElement.checked;

	  	}

     }

}



// function for delete confirmation

function askforremoval(thetype)

{

	if(confirm("Do you want to delete this "+thetype+" ?")) 

		return true;

	else 

		return false;

}

ie = (document.all) ? 1 : 0;

n = !ie;

function Go(){

document.onkeypress = keyDown;



if (n) {

    document.captureEvents(Event.KEYPRESS);

}

}



function keyDown(e) {

var keycode;

if (window.event) keycode = window.event.keyCode;

else if (e) keycode = e.which;

else return true;

if (keycode==60 || keycode==62)

    {

        alert("This key is blocked for this application");

    	return false;

    }



}



// function to validate url string



function validateURL(urlStr)

{

	urlStr1 = urlStr;

	urlStr = urlStr.value;

	

	if (urlStr.indexOf(" ")!=-1)

	{

		alert("Spaces are not allowed in a URL");

		urlStr1.focus();

		return false;

	}

	if(urlStr==""||urlStr==null)

	{

		return false;

	}

	urlStr=urlStr.toLowerCase();

	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

	var validChars="\[^\\s" + specialChars + "\]";

	var atom=validChars + '+';

	var urlPat=/^(\w*)\.([\-\+a-z0-9]*)\.(\w*)/;

	var matchArray=urlStr.match(urlPat);

	if (matchArray==null)

	{

		alert("The URL seems incorrect, check it should be in the format www.yourdomain.extension");

		urlStr1.focus();

		return false;

	}

	var user=matchArray[2];

	var domain=matchArray[3];

	for (i=0; i<user.length; i++) 

	{

		if (user.charCodeAt(i)>127) 

		{

			alert("This domain contains invalid characters.");

			urlStr1.focus();

			return false;

		}

	}

	for (i=0; i<domain.length; i++) 

	{

		if (domain.charCodeAt(i)>127) 

		{

			alert("This domain name contains invalid characters.");

			urlStr1.focus();

			return false;

		}

	}

	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.");

			urlStr1.focus();

			return false;

		}

	}



}

function fixFloat(fld)

{ 

	// decimal number check/complainer 

	var val= fld;

	var retVal = true;

	val= parseFloat(fld);

	if(isNaN(val))

	{ 

		retVal =  false;

	}

	return retVal;

}

function fixInt(fld,fieldName)

{ 

	// decimal number check/complainer 

	var val= fld.value;

	

	if(val != "")

	{

		val= parseInt(fld.value);

		if(isNaN(val))

		{ 

			// parse error 

			status=fieldName+' must contain a number value.';

			alert(status);

			return false;

		}

	}

}

function checkFormValidation(frmobj)

{

	if(frmobj.first_name.value == '')

	{

		alert("Please enter your First Name.");

		frmobj.first_name.focus();

		return false;

	}

	else if(!isAlpha(frmobj.first_name.value))

	{

		alert("Only alphabets is allowed in First Name.");

		frmobj.first_name.focus();

		return false;

	}

	if(frmobj.last_name.value == '')

	{

		alert("Please enter your Last Name.");

		frmobj.last_name.focus();

		return false;

	}

	else if(!isAlpha(frmobj.last_name.value))

	{

		alert("Only alphabets is allowed in Last Name.");

		frmobj.last_name.focus();

		return false;

	}

	if(frmobj.address1.value == '')

	{

		alert("Please enter your Address.");

		frmobj.address1.focus();

		return false;

	}

	if(frmobj.city.value == '')

	{

		alert("Please enter City Name.");

		frmobj.city.focus();

		return false;

	}

	if(frmobj.state.value == '')

	{

		alert("Please select State Name.");

		frmobj.state.focus();

		return false;

	}

	if(frmobj.phone.value != '')

	{

		if(!IsPhone(frmobj.phone.value))

		{

			alert("Please enter valid phone number.");

			frmobj.phone.focus();

			return false;

		}

	}

	if(frmobj.email.value == '')

	{

		alert("Please enter your email address.");

		frmobj.email.focus();

		return false;

	}

	else

	{

		if(!emailCheck(frmobj.email.value))

		{

			frmobj.email.focus();

			return false;

		}

	}

	if(!get_radio_value(frmobj) && frmobj.amount_text.value == '')

	{

		alert("Please enter donation amount.");

		frmobj.amount_text.focus();

		return false;

	}	

	if(frmobj.amount_text.value != '')

	{

		if(!IsNumeric1(frmobj.amount_text.value))

		{

			alert("Please enter valid amount.");

			frmobj.amount_text.focus();

			return false;

		}

	}

	if(frmobj.card_num.value == '')

	{

		alert("Please enter card number.");

		frmobj.card_num.focus();

		return false;

	}

	if(frmobj.month.value == '')

	{

		alert("Please enter expiry month.");

		frmobj.month.focus();

		return false;

	}

	if(!IsNumeric(frmobj.month.value) || (frmobj.month.value==0) || (frmobj.month.value==00))

	{

		alert("Please enter valid expiry month.");

		frmobj.month.focus();

		return false;

	}

	if(frmobj.year.value == '')

	{

		alert("Please enter expiry year.");

		frmobj.year.focus();

		return false;

	}

	if(!IsNumeric(frmobj.year.value) || (frmobj.year.value==0) || (frmobj.year.value==00))

	{

		alert("Please enter valid expiry year.");

		frmobj.year.focus();

		return false;

	}

	if(frmobj.card_cvv.value == '')

	{

		alert("Please enter security code.");

		frmobj.card_cvv.focus();

		return false;

	}

	/*if(!frmobj.terms.checked)

	{

		alert("Please Confirm Your Eligibility.");

		frmobj.terms.focus();

		return false;

	}*/	

}

function get_radio_value(frmobj)

{

	var f=0;

for (var i=0; i < frmobj.amount.length; i++)

   {

   if (frmobj.amount[i].checked)

      {

      //var rad_val = frmobj.amount[i].value;

      f=1;

      }

   }

   if(f==0)

   {

   	return false;

   }

   else

   {

   	return true;

   }	

   

}
