
        // Removes leading whitespaces
        function LTrim( value ) 
        {
	        var re = /\s*((\S+\s*)*)/;
	        return value.replace(re, "$1");
        }

        // Removes ending whitespaces
        function RTrim( value ) 
        {
	        var re = /((\s*\S+)*)\s*/;
	        return value.replace(re, "$1");
        }

        // Removes leading and ending whitespaces
        function trim( value ) 
        {
	        return LTrim(RTrim(value));
        }
    

   	//  check for valid numeric strings	
    	function IsNumeric(strString)
   	{
   		var strValidChars = "0123456789.-";
	   	var strChar;
	   	var blnResult = true;
   		if (strString.length == 0) return false;
		for (i = 0; i < strString.length && blnResult == true; i++)
		{		
		      strChar = strString.charAt(i);
		      if (strValidChars.indexOf(strChar) == -1)
			{
	        		blnResult = false;
         		}
     		}
   		return blnResult;
   	}

	function OnlyAlphabet(key) 
	{
		
		var keyasc;
		keyasc = key;
	    	if(keyasc >= 65 && keyasc <= 90)
			return true;
    		else if(keyasc >= 97 && keyasc <= 122)
			return true;
		else if(keyasc == 8)
			return true;
		else if(keyasc == 32)
			return true;
        	else
	      		return false;
	}

	function IsCity(key) 
	{
		
		var keyasc;
		keyasc = key;
	    	if(keyasc >= 65 && keyasc <= 90)
			return true;
    		else if(keyasc >= 97 && keyasc <= 122)
			return true;
		else if(keyasc == 8)
			return true;
		else if(keyasc == 32)
			return true;
		else if(keyasc == 46)
			return true;
        	else
	      		return false;
	}

   	//  check for valid phone number	
    	function IsPhoneNo(key)
   	{
   		var keyasc;
		keyasc = key;
	    	if(keyasc >= 48 && keyasc <= 57)
			return true;
    		else if(keyasc == 45 || keyasc == 40 || keyasc == 41 || keyasc==32)
			return true;
		else if(keyasc == 8)
			return true;
        		else
	                      	return false;
   	}
	//  check for valid ZIP Code	
    	function IsZipCode(key)
   	{
   		var keyasc;
		keyasc = key;
	    	if(keyasc >= 48 && keyasc <= 57)
			return true;
    		else if(keyasc==32)
			return true;
		else if(keyasc == 8)
			return true;
        		else
	                      	return false;
   	}

	//  check for valid User Name	
    	function ValidUserName(key)
   	{
   		var keyasc;
		keyasc = key;
	    	if(keyasc == 39 || keyasc == 34 || keyasc==96 || keyasc==58 || keyasc==59 || keyasc==60 || keyasc==62 || keyasc==63 || keyasc==32)
		{
			alert("This is not a valid character");			
			return false;
		}
        		else
	                      	return true;
   	}

	// Function to validate Email Address Format
	function echeck(str) 
	{
		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
		if (str.indexOf(at)==-1)
		{
			return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
		{
			return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
		{
			return false;
		}

		if (str.indexOf(at,(lat+1))!=-1)
		{
			return false;
		}

		if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
		{
			return false;
		}

		if (str.indexOf(dot,(lat+2))==-1)
		{
			return false;
		}
		
		if (str.indexOf(" ")!=-1)
		{
			return false
		}

		return true;
	}

	// Declaring valid date character, minimum year and maximum year
	var dtCh= "/";
	var minYear=1900;
	var maxYear=2100;

	function isInteger(s)
	{
		var i;
    		for (i = 0; i < s.length; i++)
		{   
        		// Check that current character is number.
        		var c = s.charAt(i);
        		if (((c < "0") || (c > "9"))) return false;
    		}
    		// All characters are numbers.
    		return true;
	}

	function stripCharsInBag(s, bag)
	{
		var i;
    		var returnString = "";
    		// Search through string's characters one by one.
    		// If character is not in bag, append to returnString.
    		for (i = 0; i < s.length; i++)
		{   
        		var c = s.charAt(i);
        		if (bag.indexOf(c) == -1) returnString += c;
    		}
    		return returnString;
	}

	function daysInFebruary (year)
	{
		// February has 29 days in any year evenly divisible by four,
    		// EXCEPT for centurial years which are not also divisible by 400.
    		return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
	}

	function DaysArray(n) 
	{
		for (var i = 1; i <= n; i++) 
		{
			this[i] = 31
			if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
			if (i==2) {this[i] = 29}
   		}	 
   		return this
	}

	function isDate(dtStr)
	{
		var daysInMonth = DaysArray(12)
		var pos1=dtStr.indexOf(dtCh)
		var pos2=dtStr.indexOf(dtCh,pos1+1)
		var strMonth=dtStr.substring(0,pos1)
		var strDay=dtStr.substring(pos1+1,pos2)
		var strYear=dtStr.substring(pos2+1)	
		strYr=strYear
		if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
		if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
		for (var i = 1; i <= 3; i++) 
		{
			if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
		}
		month=parseInt(strMonth)
		day=parseInt(strDay)
		year=parseInt(strYr)
		
		if (pos1==-1 || pos2==-1)
		{
			alert("The date format should be : mm/dd/yyyy")
			return false
		}
		if (strMonth.length<1 || month<1 || month>12)
		{
			alert("Please enter a valid month")
			return false
		}
		if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
		{
			alert("Please enter a valid day")
			return false
		}
		if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
		{
			alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
			return false
		}
		if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
		{
			alert("Please enter a valid date")
			return false
		}
		return true
	}
