function chktelephone(str2)
{
	if (str2.charAt(0) != '+')
	{
		alert ("First character must be '+', Number should be of the format (CountryCode '.' Phone/Fax with Area Code) like +91.1124242424");
		return false;
	}
	
	if (str2.indexOf(".") <= 1)
	{
		alert ("Country Code and Number must be seperated by '.', Number should be of the format (Country Code '.' Phone/Fax with Area Code) like +91.1124242424");
		return false;
	}
	 
	if (isNaN(str2.substring(1, str2.indexOf("."))) || str2.substring(1, str2.indexOf(".")).length > 3)
	{
		alert ("Counrty Code can have only Numeric Values and maximum 3 characters, Number should be of the format (Country Code '.' Phone/Fax with Area Code) like +91.1124242424");
		return false;
	}
	
	if (isNaN(str2.substring((str2.indexOf(".") + 1), (str2.length))) || str2.substring((str2.indexOf(".") + 1), (str2.length - 1)).length > 14 || str2.substring((str2.indexOf(".") + 1), (str2.length - 1)).length < 1)
	{
		alert ("Phone/Fax with Area Code can have only Numeric Values and maximum 14 characters, Number should be of the format (Country Code '.' Phone/Fax with Area Code) like +91.1124242424");
		return false;
	}
	return true;
}


function chkint(str) 
{
	alphabets="0123456789";

	for(i=0;i<str.length;i++)
	{
		if(alphabets.indexOf(str.charAt(i)) == -1)
		{
			alert ("Value entered is not numeric, Please Re-Enter");
			return false;
		}
	}	 
	
	return true;
}


function chkbadchar(str)
{
	
  	badch = new Array(" select "," drop ","--"," insert "," delete ","<",">","#");
	
	for (var k=0;k<8;k++)
	{
		if (str.toLowerCase().indexOf(badch[k]) != -1)
		{
			alert ("Invalid characters found, Please Re-Enter ");
			return false;
		}
	}
	return true;	
}

function chksplcharald(str)
{
	alphabets="abcdefghijklmnopqrstuvwxyz0123456789-+_.?@$%/&*,;:'(){}[]`~!^| \t\r\n";
		
	for(i=0;i<str.length;i++)
	{
		if(alphabets.indexOf(str.toLowerCase().charAt(i)) == -1)
		{
			alert ("Invalid characters found, Please Re-Enter");
			return false;
		}
	}
	return true;
}

function chkchar(str)
{
	alphabets="abcdefghijklmnopqrstuvwxyz  ";
	
	for(i=0;i<str.length;i++)
	{
		if(alphabets.indexOf(str.toLowerCase().charAt(i)) == -1)
		{
			alert ("Invalid characters found, Please Re-Enter");
			return false;
		}
	}
	return true;
}

function chkalphanum(str)
{
	//alphabets="abcdefghijklmnopqrstuvwxyz0123456789. ";
	alphabets=" abcdefghijklmnopqrstuvwxyz0123456789.,_?& ";
	for(i=0;i<str.length;i++)
	{
		if(alphabets.indexOf(str.toLowerCase().charAt(i)) == -1)
		{
			alert ("Invalid characters found, Please Re-Enter");
			return false;
		}
	}
	return true;
}

function trim(str) 
{
 	res="";

 	for(var i=0; i< str.length; i++) 
	{
   		if (str.charAt(i) != " ") 
		{
     		res +=str.charAt(i);
  		}
 	}
   
 	return res;
}

function chkmail(str) 
{
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	
	if (str.indexOf(at)==-1)
	{
	   alert("Invalid E-mail ID");
	   return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	{
	   alert("Invalid E-mail ID");
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	{
		alert("Invalid E-mail ID");
		return false;
	}

	 if (str.indexOf(at,(lat+1))!=-1)
	 {
		alert("Invalid E-mail ID");
		return false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	 {
		alert("Invalid E-mail ID");
		return false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		alert("Invalid E-mail ID")
		return false
	 }
	
	 if (str.indexOf(" ") != -1)
	 {
		alert("Invalid E-mail ID");
		return false;
	 }

	 return true;					
}

function valid_date(x)
{
	dateStr=x;
	
	var slash1 = dateStr.indexOf("/");
	if (slash1 == -1) 
	{ 
		slash1 = dateStr.indexOf("-"); 
	}
	
	// if no slashes or dashes, invalid date
	if (slash1 == -1) 
	{ 
		alert ("Enter a valid date in DD-MM-YYYY format"); 
		return false; 
	}
	
	var dateDay = dateStr.substring(0, slash1)
	var dateMonthAndYear = dateStr.substring(slash1+1, dateStr.length);
	
	var slash2 = dateMonthAndYear.indexOf("/");
	if (slash2 == -1) 
	{ 
		slash2 = dateMonthAndYear.indexOf("-"); 
	}
	
	// if not a second slash or dash, invalid date
	if (slash2 == -1) 
	{  
		alert ("Enter a valid date in DD-MM-YYYY format"); 
		return false; 
	}
	
	var dateMonth = dateMonthAndYear.substring(0, slash2);
	var dateYear = dateMonthAndYear.substring(slash2+1, dateMonthAndYear.length);
	
	if ( (dateMonth == "") || (dateDay == "") || (dateYear == "") ) 
	{ 
		alert ("Enter a valid date in DD-MM-YYYY format"); 
		return false; 
	}
	
	// if any non-digits in the month, invalid date
	for (var x=0; x < dateMonth.length; x++) 
	{
		var digit = dateMonth.substring(x, x+1);
		if ((digit < "0") || (digit > "9")) 
		{ 
			alert ("Enter a valid date in DD-MM-YYYY format, Invalid Month"); 
			return false; 
		}
	}
	
	// convert the text month to a number
	var numMonth = 0;
	for (var x=0; x < dateMonth.length; x++) 
	{
		digit = dateMonth.substring(x, x+1);
		numMonth *= 10;
		numMonth += parseInt(digit);
	}
	
	if ((numMonth <= 0) || (numMonth > 12)) 
	{ 
		alert ("Enter a valid date in DD-MM-YYYY format, Invalid Month "+numMonth); 
		return false; 
	}
	
	// if any non-digits in the day, invalid date
	for (var x=0; x < dateDay.length; x++) 
	{
		digit = dateDay.substring(x, x+1);
		if ((digit < "0") || (digit > "9")) 
		{ 
			alert ("Enter a valid date in DD-MM-YYYY format"); 
			return false; 
		}
	}

	// convert the text day to a number
	var numDay = 0;
	for (var x=0; x < dateDay.length; x++) 
	{
		digit = dateDay.substring(x, x+1);
		numDay *= 10;
		numDay += parseInt(digit);
	}
	
	if ((numDay <= 0) || (numDay > 31)) 
	{ 
		alert ("Enter a valid date in DD-MM-YYYY format, Invalid Day"); 
		return false; 
	}
	
	// February can't be greater than 29 (leap year calculation comes later)
	if ((numMonth == 2) && (numDay > 29)) 
	{ 
		alert ("Enter a valid date in DD-MM-YYYY format, Invalid Day"); 
		return false; 
	}
	
	// check for months with only 30 days
	if ((numMonth == 4) || (numMonth == 6) || (numMonth == 9) || (numMonth == 11)) 
	{ 
		if (numDay > 30) 
		{ 
			alert ("Enter a valid date in DD-MM-YYYY format, Invalid Day"); 
			return false; 
		} 
	}
	
	// if any non-digits in the year, invalid date
	for (var x=0; x < dateYear.length; x++) 
	{
		digit = dateYear.substring(x, x+1);
		if ((digit < "0") || (digit > "9")) 
		{
			alert ("Enter a valid date in DD-MM-YYYY format, Invalid Year"); 
			return false; 
		}
	}
	
	// convert the text year to a number
	var numYear = 0;
	for (var x=0; x < dateYear.length; x++) 
	{
		digit = dateYear.substring(x, x+1);
		numYear *= 10;
		numYear += parseInt(digit);
	}
	
	// Year must be a 2-digit year or a 4-digit year
	if ((dateYear.length != 2) && (dateYear.length != 4)) 
	{
		alert ("Enter a valid date in DD-MM-YYYY format, Invalid Year"); 
		return false; 
	}
	
	// if 2-digit year, use 50 as a pivot date
	if ((numYear < 50) && (dateYear.length == 2)) 
	{ 
		numYear += 2000; 
	}
	
	if ((numYear < 100) && (dateYear.length == 2)) 
	{ 
		numYear += 1900; 
	}
	
	if ((numYear <= 0) || (numYear > 9999)) 
	{
		alert ("Enter a valid date in DD-MM-YYYY format, Invalid Year"); 
		return false; 
	}
	
	// check for leap year if the month and day is Feb 29
	if ((numMonth == 2) && (numDay == 29)) 
	{
		var div4 = numYear % 4;
		var div100 = numYear % 100;
		var div400 = numYear % 400;
		
		// if not divisible by 4, then not a leap year so Feb 29 is invalid
		if (div4 != 0) 
		{
			alert ("Enter a valid date in DD-MM-YYYY format, Invalid Date"); 
			return false; 
		}
		
		// at this point, year is divisible by 4. So if year is divisible by
		// 100 and not 400, then it's not a leap year so Feb 29 is invalid
		if ((div100 == 0) && (div400 != 0)) 
		{
			alert ("Enter a valid date in DD-MM-YYYY format, Invalid Date"); 
			return false; 
		}
	}
	// date is valid
	return true;
}

function y2k(number) 
{ 
	return (number < 1000) ? number + 1900 : number; 
}

function timeTillDate(startDay,startMonth,startYear,whenDay,whenMonth,whenYear)
{    
   var now = new Date(y2k(startYear),startMonth-1,startDay);
   var then = new Date(y2k(whenYear),whenMonth-1,whenDay);
   var difference = Date.UTC(y2k(then.getYear()),then.getMonth(),then.getDate(),0,0,0) - Date.UTC(y2k(now.getYear()),now.getMonth(),now.getDate(),0,0,0);   
   return difference;
}
