	//Function To Check For Special Characters
	function IsSplChar(strValue,desc)
	{
	 var SplChars;
	 var intLoop;
	 var Temp;
	 
	 SplChars="~`!@#$%^&*()_+={}[]\|\"\"':;/?>.<,";
	 
	 for (intLoop = 0;intLoop < SplChars.length;intLoop++)
	 {
		Temp=SplChars.charAt(intLoop);
		if (strValue.indexOf(Temp) != -1)
		{
			alert("Special characters(!@#$%^&*()_+={}[]\|\"\"':;/?>.<,\") not allowed in " + desc );
			return true;
			break;
		}
		else
		{
			continue;
		}
	 }	
		return false		
	}
	//Function To Check For Special Characters for hotsyncid it will allowed(_)
	function IsSplCharHot(strValue)
	{
	 var SplChars;
	 var intLoop;
	 var Temp;
	 
	 SplChars="~`!@#$%^&*()+={}[]\|\"\"':;/?>.<,";
	 
	 for (intLoop = 0;intLoop < SplChars.length;intLoop++)
	 {
		Temp=SplChars.charAt(intLoop);
		if (strValue.indexOf(Temp) != -1)
		{
			alert("Special Characters Not Allowed i.e !@#$%^&*()+={}[]\|\"\"':;/?>.<,");
			return true;
			break;
		}
		else
		{
			continue;
		}
	 }	
		return false		
	}
	//Function TO Check For Ampersand in string
	function IsAmpersand(strValue)
	{
		if(strValue.indexOf("&")!= -1)
		{
			alert("Ampersand Not Allowed !");
			return true;
		}		
			return false;
	}	
	
	//Function to Check for Valid emailID// commented by mitesh 11jun05
	//function IsEmailValid(strValue)
	//{
		//if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(strValue))

		//if (\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*.test(strValue))
			//return true;
		//else 
		//{
			//alert("Invalid E-mail Address! Please re-enter.")
			//return false;
		//}
	//}
	
	/*function IsEmailValid(strValue)
	{
		//var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;
		var filter = /^[\w-\.\']{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/; 
		if (filter.test(strValue))
			return true;
		else 
		{
			alert("Invalid E-mail Address! Please re-enter.")
			return false;
		}
	}*/
	function IsEmailValid (emailStr) 
{
	emailStr = emailStr.toLowerCase();
	
	//no single '@' in email
	if (emailStr.match('@') == null)
	{
		alert("Invalid Email ID. Please reenter");
		return false;	
	}
	
	//no single '.' in email
	if (emailStr.indexOf('.') == -1)
	{
		alert("Invalid Email ID. Please reenter");
		return false;	
	}
	
	var count_at_the_rates = 0;
	
	for(count=0; count < emailStr.length;count++)
		{
			if((emailStr.charCodeAt(count) == 64))
			{
				count_at_the_rates = count_at_the_rates + 1;
			}
		}
	
	
	// if more than one '@'
	if (count_at_the_rates > 1)
	{
		alert("Invalid Email ID. Please reenter");
		return false;	
	}
	
	// spilt the email in two from '@'	
	emailStr = emailStr.split('@');
	
	// if user_name is blank in email	
	if (emailStr[0] == "")
	{
		alert("Invalid Email ID. Please reenter");
		return false;	
	}
	
	// check for special characters in user_name (only alphanumeric, _(underscore), .dot and -dash allowed
	for(count=0; count < emailStr[0].length;count++)
		{
			if(((emailStr[0].charCodeAt(count) < 97) || (emailStr[0].charCodeAt(count) > 122)) && (emailStr[0].charCodeAt(count) != 95) && (emailStr[0].charCodeAt(count) != 45) && ((emailStr[0].charCodeAt(count) < 48) || (emailStr[0].charCodeAt(count) > 57)) && (emailStr[0].charCodeAt(count) != 46))
			{
				alert("Invalid Email ID. Please reenter");
				return false;
				break;
			}
		}
	
	// first character in user_name should be alphanumeric, cant be _(underscore) or .dot
	if ((emailStr[0].charCodeAt(0) == 46) || (emailStr[0].charCodeAt(0) == 95))
	{
		alert("Invalid Email ID. Please reenter");
		return false;
	}	
	
	
	var last_character = ((emailStr[0].length) - 1) ;
	//alert(parseInt(pos))
	//alert(emailStr[0].charCodeAt(5);
	
	// last character in user_name should be alphanumeric, cant be _(underscore) or .dot
	if ((emailStr[0].charCodeAt(last_character) == 46) || (emailStr[0].charCodeAt(last_character) == 95))
	{
		alert("Invalid Email ID. Please reenter");
		return false;
	}	
	
	// user_name cant have the following continous _(underscore) or .(dot)
	for(count=0; count < emailStr[0].length;count++)
		{
			if((emailStr[0].charCodeAt(count) == 46) || (emailStr[0].charCodeAt(count) == 95))
			{
				//alert("one of them");
				if((emailStr[0].charCodeAt(count+1) == 46) || (emailStr[0].charCodeAt(count+1) == 95))
				{
					alert("Invalid Email ID. Please reenter");
					return false;
					break;
				}
				//return false;
				//break;
			}
		}
	 
	//alert(emailStr[1]);
	// if host_address is blank
	if (emailStr[1] == "")
	{
		alert("Invalid Email ID. Please reenter");
		return false;	
	}
	
	// only .(dot) and -(dash) with alphanumeric allowed in host_address
	for(count=0; count < emailStr[1].length;count++)
		{
			if(((emailStr[1].charCodeAt(count) < 97) || (emailStr[1].charCodeAt(count) > 122)) && (emailStr[1].charCodeAt(count) != 45) && ((emailStr[1].charCodeAt(count) < 48) || (emailStr[1].charCodeAt(count) > 57)) && (emailStr[1].charCodeAt(count) != 46))
			{
				alert("Invalid Email ID. Please reenter");
				return false;
				break;
			}
		}

	// first character in host_address cant be .(dot) or -(dash)
	if ((emailStr[1].charCodeAt(0) == 46) || (emailStr[1].charCodeAt(0) == 45))
	{
		alert("Invalid Email ID. Please reenter");
		return false;
	}	
	
	
	last_character = ((emailStr[1].length) - 1) ;
	
	// last character in host_address cant be .(dot) or -(dash)	
	if ((emailStr[1].charCodeAt(last_character) == 46) || (emailStr[1].charCodeAt(last_character) == 45))
	{
		alert("Invalid Email ID. Please reenter");
		return false;
	}	
	
	// no simultaenous .(dot) or -(dash) in host_address	
	for(count=0; count < emailStr[1].length;count++)
		{
			if((emailStr[1].charCodeAt(count) == 46) || (emailStr[1].charCodeAt(count) == 45))
			{
				
				if((emailStr[1].charCodeAt(count+1) == 46) || (emailStr[1].charCodeAt(count+1) == 45))
				{
					alert("Invalid Email ID. Please reenter");
					return false;
					break;
				}
				
			}
		}
	
	//split the host_address from .(dot)	
	var host_address = emailStr[1].split('.');
		
	var no_of_domains = 0
	for(count=0; count < emailStr[1].length;count++)
		{
			if((emailStr[1].charCodeAt(count) == 46)) 
			{
				no_of_domains = no_of_domains + 1;
			}
		}
	no_of_domains = no_of_domains + 1	
	//alert(no_of_domains);
	// the length of each domain should be more than one
	for(count=0; count < no_of_domains;count++)
	{
		//alert(host_address[count].length);
		if (host_address[count]. length <= 1)
		{
			alert("Invalid Email ID. Please reenter");
			return false;
			break;
		}
	}	
	return true;
}
	
	
	
	
	
	
 	//Function To Check if the string is a Number
	function IsNumber(strValue,desc)
	{
		if(isNaN(strValue))
		{	
			alert("Only numbers allowed in " + desc);
			return false;
			
		}
		else
		{	
			return true;
		}

		/*invalidchar=0
		for (count=0;count < strValue.length;count++)
		{
			if((!isNaN(strValue.charCodeAt(count))) && (strValue.charCodeAt(count) != 43) && (strValue.charCodeAt(count) != 45) && (strValue.charCodeAt(count) != 41) && (strValue.charCodeAt(count) != 40))
			{
				invalidchar = 1;
				break;
				return false;
			}
		}
		if(invalidchar==0)
		{
			alert ("Only numbers and (), +, - allowed in "+ desc) ;			
			return false;
		}
		else
			return true;*/

	}
	
//Function To Check if the string is of a valid Length	
	function ValidateLen(field, min, max, desc)
	{
		if (field.length < min || field.length > max)
		{
			alert(desc + " field should be between "+ min +" and "+max+" characters");
			return false;
		}	
		return true;
	}
	


//Function To Check if string contains only alphabets
	function isAlphabets(field,desc)
	{
		var check=0;
		
		for(count=0; count < field.length;count++)
		{
			
			if((field.charCodeAt(count) >= 97) && (field.charCodeAt(count) <= 122)) 
				check++;
			else if((field.charCodeAt(count) >= 65) && (field.charCodeAt(count) <= 90))
				check++;
			else if (field.charCodeAt(count)==32)
				check++;
			else
			{	
				check=0;
				break;
			}
		}

		if (check == 0)
		{
			alert("Only characters allowed in "+desc);		
			return false;
		}
		else
			return true;
	}

function trim(str)
{ 
return((""+str).replace(/^\s*([\s\S]*\S+)\s*$|^\s*$/,'$1') ); 
}

	//Function to check if the string is Blank
	function isBlank(field,desc)
	{	
		field = trim(field);
		var counter=0;
		for (count=0;count<field.length;count++)
		{

			if (field.charCodeAt(count)==32)
				counter++;
			else 
				counter--;
		}
	
		if ((field == "") || (field.length == counter))
		{
			alert("Please enter " + desc );
			return false;
		}	
		else
//			return true;	
			return true;
	}		
	
	function IsPwdSame(field1,field2)
	{
		if(field1 != field2)
		{	
			alert("The Passwords do not match");
			return false;
		}
		return true;
	}
	
	
	function isValidDate(strDate)
	 {
     // (\d{1,2}) means 4 or 12
     // (\/|-) means either (/ or -), 4-12 or 4/12 
     // NOTE: we have to escape / (\/)
     // or else pattern matching will interpret it to mean the end instead of the literal "/"
     // \2 use the 2nd placeholder (\/|-) "here"
     // (\d{2}|\d{4}) means 02 or 2002
     var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
     var matchArray = strDate.match(datePat);
     if (matchArray == null) return false;

     // matchArray[0] will be the original entire string, for example, 4-12-02 or 4/12/2002
     var month = matchArray[3];     // (\d{1,2}) - 1st parenthesis set - 4
     var day = matchArray[1];         // (\d{1,2}) - 3rd parenthesis set - 12
     var year = matchArray[4];        // (\d{2}|\d{4}) - 5th parenthesis set - 02 or 2002

     if (month < 1 || month > 12) return false;
     if (day < 1 || day > 31) return false;
     if ((month == 4 || month == 6 || month==9 || month == 11) && day == 31) return false;
     if (month == 2) {
          var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));

          if (day > 29 || (day == 29 && !isleap)) return false;
     }
     return true;
	}

	
	function clearFields(formname){
     var objForm = eval('document.'+formname)
     for(i=0;i<objForm.elements.length;i++){
          if(objForm.elements[i].type=="text"){
               objForm.elements[i].value = "";
          }
            if(objForm.elements[i].type=="textarea"){
               objForm.elements[i].value = "";
          }
          if(objForm.elements[i].type=="select-one"){
               objForm.elements[i].selectedIndex = -1;
          }
		  if(objForm.elements[i].type=="select-multiple"){
               objForm.elements[i].selectedIndex = -1;
          }
          if(objForm.elements[i].type=="checkbox"){
               objForm.elements[i].checked = false;
          }
          if(objForm.elements[i].type=="radio"){
               objForm.elements[i].checked = false;
          }
          if(objForm.elements[i].type=="file"){
               objForm.elements[i].value = "";
          }
     }
}




function dateAdd( start, interval, number ) 
{
	
    // Create 3 error messages, 1 for each argument. 
    var startMsg = 'Sorry the start parameter of the dateAdd function\n'
        startMsg += 'must be a valid date format.\n\n'
        startMsg += 'Please try again.' ;
		
    var intervalMsg = 'Sorry the dateAdd function only accepts\n'
        intervalMsg += 'd, h, m OR s intervals.\n\n'
        intervalMsg += 'Please try again.' ;

    var numberMsg = 'Sorry the number parameter of the dateAdd function\n'
        numberMsg += 'must be numeric.\n\n'
        numberMsg += 'Please try again.' ;
		
    // get the milliseconds for this Date object. 
    var buffer = Date.parse( start ) ;
	
    // check that the start parameter is a valid Date. 
    if ( isNaN (buffer) ) {
        alert( startMsg ) ;
        return null ;
    }
	
    // check that an interval parameter was not numeric. 
    if ( interval.charAt == 'undefined' ) {
        // the user specified an incorrect interval, handle the error. 
        alert( intervalMsg ) ;
        return null ;
    }

    // check that the number parameter is numeric. 
    if ( isNaN ( number ) )	{
        alert( numberMsg ) ;
        return null ;
    }

    // so far, so good...
    //
    // what kind of add to do? 
    switch (interval.charAt(0))
    {
        case 'd': case 'D': 
            number *= 24 ; // days to hours
            // fall through! 
        case 'h': case 'H':
            number *= 60 ; // hours to minutes
            // fall through! 
        case 'm': case 'M':
            number *= 60 ; // minutes to seconds
            // fall through! 
        case 's': case 'S':
            number *= 1000 ; // seconds to milliseconds
            break ;
        default:
        // If we get to here then the interval parameter
        // didn't meet the d,h,m,s criteria.  Handle
        // the error. 		
        alert(intervalMsg) ;
        return null ;
    }
    return new Date( buffer + number ) ;
}

//Akshay 29April 2004
 function emptyval(formname,fieldname,displayname)
{
if (eval("document."+formname+"." + fieldname + ".value==''"))
 {
 alert(displayname + " cannot be left blank");
 eval("document."+formname+"." + fieldname + ".focus()");
 return false;
 } 
 return true;
}

function isnanval(formname,fieldname,displayname)
{
if (!emptyval(formname,fieldname,displayname))
 {
 return false;
 }
 if (isNaN(eval("document."+formname+"." + fieldname + ".value")))
  {
  alert(displayname + " should be a number");
  eval("document."+formname+"." + fieldname + ".focus()");
  eval("document."+formname+"." + fieldname + ".select()");
  return false;
  } 
 return true;
}
function isalphabet(formname,fieldname,displayname)
{

 if (isNaN(eval("document."+formname+"." + fieldname + ".value")))
  {} 
 else
 {
	alert(displayname + " cannot contain numbers");
	eval("document."+formname+"." + fieldname + ".focus()");
  	eval("document."+formname+"." + fieldname + ".select()");
  	return false;
 }
 return true;
}

function MatchUrl(exp,desc)
{
	//Declare variables.
	var s = exp;
	var re=new RegExp("^(http|ftp)://(www\.)?.+\.(com|net|org|edu|gov|mil)$","i"); //Akshay
//	var re = new RegExp("^http://www.[0-9a-zA-Z/-]*.\d{2}$","ig"); // Abhijit
	//Create regular expression object. "i" is for ignore case
	blnflag=re.test(s);
	if (!blnflag)
	{
		alert("Invalid "+ desc + " format Please re-enter.");
		return false;
	}
	return true;
}