// Function Name:			IsEmailValid()
// Input Parameter:			document.formname.textobject
// Input Parameter Type:	Text
// Function Purpose:		Validates the email address as per the standard norms.
//							

function IsEmailValid(lEmailId)
{
	var c1;
	var c2;
	var c3;

	emlchar	=lEmailId.value;
	emlchar = emlchar.toLowerCase() ;
	if(trimstr(emlchar,lEmailId)==-1) {
		return false;
	}

	c1 = emlchar.indexOf("@");
	c2 = emlchar.indexOf(".");  
	c3 = occurs("@", lEmailId) ;
	c4 = emlchar.indexOf("-");	
	c5 = occurs(" ", lEmailId) ;

// Explanation..Rahul
// c1== -1	@ must be present
// c2== -1	. must be present
// c1== 0	@ cannot come as first character
// c2== 0	. cannot come as first character
// c1==c2-1	@. back-to-back not allowed
// c1==c2+1	.@ back-to-back not allowed
// c3!=1	@ can occur only once
// (c4 != -1 && c4 < c1)		if hyphen present & comes before @ not allowed 
// (c4 != -1 && c4 == emlchar.length-1) if hyphen present & comes as a last character not allowed

	if (c1==-1 || c2==-1 || c1== 0 || c2==0 || c1==c2-1 || c1==c2+1 || c3!=1 || (c4 != -1 && c4 == emlchar.length-1) || c5 >= 0) 
	{
		lEmailId.focus();
		return false;
	}    

	if (emlchar.length < 5 || c1==emlchar.length - 1 || c2==emlchar.length - 1 )
	{
		lEmailId.focus();
		return false;
	}

	tmpStr = "0123456789_-abcdefghijklmnopqrstuvwxyz" ;
	cnt = 0
	i = emlchar.indexOf(".", cnt);
	
	while (true) {
		ch1 = emlchar.charAt(i-1) ;
		ch2 = emlchar.charAt(i+1) ;
		if (tmpStr.indexOf(ch1) == -1 || tmpStr.indexOf(ch2) == -1)
			return false;

		cnt = cnt + 1 ;	
		i = emlchar.indexOf(".", cnt);
		if (i == -1)
			break;
	}

	return true;
}
function occurs(ch, fieldname) {
	cnt 	= 0
	flag	= 0 
	for (i=0; i < fieldname.value.length; ++i) {
		if (fieldname.value.substring(i,i+1) == ch) {
			cnt	= cnt + 1 ;
			flag= 1;
		}
	}
	if (flag == 1) 
		return (cnt) ;
	else
		return (-1) ;
}

// Function Name:			IsDateValid()
// Input Parameter:			Form object, day, Month index, year
// Input Parameter Type:	Text
// Function Purpose:		Validates date as per the standard norms.

function IsDateValid(frmName) {

    var bIsLeapYear = ((frmName.year.value % 4 == 0) && (frmName.year.value % 100 != 0) || (frmName.year.value % 400 == 0))

	if	(CheckEmpty(frmName.day) == 0) {
		//frmName.day.focus();       
		return(2);
	}
	
	if	(isNaN(frmName.day.value)) {
		//frmName.day.focus();       
		return(2);
	}
	
	      
	if ((frmName.month.selectedIndex)== 1) {
		if (bIsLeapYear == 1) {
			if ((frmName.day.value < 1) || (frmName.day.value > 29)) {
				//frmName.day.focus();
				return(2);
			}
		}
          
		if (bIsLeapYear == 0) {
			if ((frmName.day.value < 1) || (frmName.day.value >28)) {
				//frmName.day.focus();
				return(2);
			}
		}     
	}
    
	if ((frmName.month.selectedIndex)!= 1) {
		if (frmName.month.value == 4 || frmName.month.value == 6 || frmName.month.value == 9 || frmName.month.value == 11) {
			if ((frmName.day.value < 1) || (frmName.day.value > 30)) { 
				//frmName.day.focus(); 
				return(2);
			}
		}
		else {  
			if ((frmName.day.value < 1) || (frmName.day.value > 31)) { 
				//frmName.day.focus(); 
				return(2);
			}
		}
	}
	
	if	(CheckEmpty(frmName.year) == 0) {
		//frmName.year.focus();       
		return(3);
	}

	
	if	(isNaN(frmName.year.value)) {
		//frmName.year.focus();       
		return(3);
	}

	var yr = frmName.year.value;
       
	if	((frmName.year.value) < 1900 || yr.length > 4) {
		//frmName.year.focus();       
		return(3);
	}   
	
	
	return (true) ;
}

// This is validation for telephone, mobile & fax..
function isTelephoneValid (fieldname) {
	var charcheck;
	var validStr="0123456789-() " ;
	charcheck=fieldname.value;
  
	for(i=0;i<charcheck.length;i++)
	{
		if (validStr.indexOf(charcheck.charAt(i)) == -1)
				return false;
	}
	return true;
}
function isDollar (fieldname) {
	var charcheck;
	var validStr="0123456789$" ;
	charcheck=fieldname.value;
  
	for(i=0;i<charcheck.length;i++)
	{
		if (validStr.indexOf(charcheck.charAt(i)) == -1)
				return false;
	}
	return true;
}
function isFaxValid (fieldname) {
	var charcheck;
	//var validStr="0123456789-() " ;
	validStr="  ()-0123456789" ;
	charcheck=fieldname.value;
  
	for(i=0;i<charcheck.length;i++)
	{
		if (validStr.indexOf(charcheck.charAt(i)) == -1)
				return false;
	}
	return true;
}

function CheckEmpty (fieldname) {
//alert(fieldname)
	var a;
	a = fieldname.value;
	if (!a.length > 0) {
		fieldname.focus();
		return false;
	}
	else
		return true ;
}

function RemoveQuotes (inputString) {
	outputString = ""
	for (i = 0 ; i < inputString.length ; ++i) {
		if (inputString.charAt(i) != "'")
			outputString = outputString + inputString.charAt(i) ;
	}

	return (outputString) ;
}

function round(number,X) {
// rounds number to X decimal places, defaults to 2
X = (!X ? 2 : X);
return (Math.round(number*Math.pow(10,X))/Math.pow(10,X));
}



/*
function IsEmailValid(lEmailId)
{
	var c1;
	var c2;
	var c3;

	emlchar=lEmailId.value;
	
	if(trimstr(emlchar,"Invalid Email Id",lEmailId)==-1)
	{
		return;
	}

	c1 = emlchar.indexOf("@");
	c2 = emlchar.indexOf(".");  

	if (c1==-1 || c2==-1 || c1== 0 || c2==0 || c1==c2-1 || c1==c2+1) 
	{
//		alert("Invalid Email address");
		lEmailId.focus();
		return false;
	}    

	if (emlchar.length < 5 || c1==emlchar.length - 1 || c2==emlchar.length - 1 )
	{
//		alert("Invalid Email address");
		lEmailId.focus();
		return false;
  
	}
	return true;
}
*/
