	// isInteger
	function isInteger (s) {
		
		var i;		
		
		if (s.length == 1) {
		
			return isDigit(s);
							
		} // end if
		
		for (i = 0; i < s.length; i++) {
		
			 // Check that current character is number.
			 var c = s.charAt(i);
			 
			 if (!isDigit(c)) {
			 
				return false;
				
			}  // end if				 
		}  // end for
				
		return true;
				
	} // end function isInteger
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// isDigit
	function isDigit (c) {
	
		return ((c >= "0") && (c <= "9"));
		
	} // end function isDigit
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// isCharacter
	function isCharacter (c) {
	
		c = c.toLowerCase();	
		return ((c >= 'a') && (c <= 'z'));
		
	} // end function isCharacter
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// isEmpty
	function isEmpty(s) {
	
		return ((s == null) || (s.length == 0));
		
	} // end function isEmpty
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// isAlphaNumeric
	function isAlphaNumeric(s,n) {
	
		if (n = 1) {
		
			var validChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 /\\';
			
		} else if (n = 2){
		
			var validChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 /\\';
			
		} else {
		
			var validChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ /\\';
		
		}
	  
		for (var i = 0; i < s.length; i++) {
	   
			if (validChars.indexOf(s.charAt(i)) == -1) {
			
				if (num = 2 && (s.charAt(i) == '_')) { 
				
				} else {
					
					return false;
					
				} // end if			 
			} // end if
		} // end for
		
		return true;
				
	} // end function isAlphaNumeric
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// isAlphabetic
	function isAlphabetic(s) {
	
		var validChars = 'abcdefghijklmnopqrstuvwxyz ';
		s = s.toLowerCase();
	  
		for (var i = 0; i < s.length; i++) {
	   
			if (validChars.indexOf(s.charAt(i)) == -1) {
		 
				return false;
			 
			} // end if
		} // end for
		
		return true;
		
	} // end function isAlphabetic
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// containsInvalidChars
	function containsInvalidChars(s) {
	
		var invalidChars = '\'/\\\"';
	  
		for (var i = 0; i < s.length; i++) {
	   
			if (invalidChars.indexOf(s.charAt(i)) == 0) {

				return true;
			 
			} // end if
		} // end for
		
		return false;
		
	} // end function containsInvalidChars
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// isPhoneNumber
	function isPhoneNumber(s) {
	
		var validChars = '1234567890 +';
	  
		for (var i = 0; i < s.length; i++) {
	   
			if (validChars.indexOf(s.charAt(i)) == -1) {
		 
				return false;
			 
			} // end if
		} // end for
		
		return true;
		
	} // end function isPhoneNumber
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// isEmailAddress
	function isEmailAddress(s) {
	
		var atSymbol = '@';
		var num = 0;
		
		// Check For Invalid Chars
		if (containsInvalidChars(s)) {
		
			return false;
			
		} // end if
		
		// Check for @ symbol	  
		for (var i = 0; i < s.length; i++) {	   
			if (s.charAt(i) == atSymbol) {
		 
				num++;
				
			} // end if
		} // end for
		
		if ((num == 0) || (num > 1)) {
		
			return false;
			
		} // end if		
		
		return true;
		
	} // end function isEmailAddress
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// isCurrency
	function isCurrency(s) {
	
		var validChars = '1234567890';
	  
		for (var i = 0; i < s.length; i++) {
	   
			if (validChars.indexOf(s.charAt(i)) == -1) {
		 
				return false;
			 
			} // end if
		} // end for
		
		return true;
		
	} // end function isCurrency

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// containsSpaces
	function containsSpaces(s) {
	
		var spaceSymbol = ' ';
		var num = 0;
		
		// Check for ' ' symbol	  
		for (var i = 0; i < s.length; i++) {			
			if (s.charAt(i) == spaceSymbol) {
				
				num++;
				
			} // end if
		} // end for
		
		if (num > 0) {
		
			return true;
			
		} // end if
		
		return false;	
	
	} // end function containsSpaces
	
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	function isDate(dateStr) {

		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		
		if (matchArray == null || matchArray[1] == null || matchArray[3] == null || matchArray[5] == null) {
		
			alert("Please enter date as either dd/mm/yyyy.");
			return false;
			
		} // end if
		
		day = matchArray[1]; // p@rse date into variables
		month = matchArray[3];
		year = matchArray[5];
		
		if (month < 1 || month > 12) { // check month range
		
			alert("Month must be between 1 and 12.");
			return false;
			
		} // end if
		
		if (day < 1 || day > 31) {
		
			alert("Day must be between 1 and 31.");
			return false;
			
		} // end if
		
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		
			alert("Month "+month+" doesn`t have 31 days!")
			return false;
			
		} // end if
		
		if (month == 2) { // check for february 29th
		
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			
			if (day > 29 || (day==29 && !isleap)) {
			
				alert("February " + year + " doesn`t have " + day + " days!");
				return false;
				
			} // end if
		} // end if
		
		return true; // date is valid
		
	} // end function isDate
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	function isDateLaterThanToday(str) {
	
		var todayDate = new Date();
		var compareDate = new Date();
		compareDate.setFullYear(parseInt(getDateYear(str)),parseInt(getDateMonth(str)) - 1, parseInt(getDateDay(str)));

		if (compareDate > todayDate) {

			return true;
			
		} // end if
		
		return false;
		
	} // end function isDateLaterThanToday
	
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	function isDateXLaterThanDateY(strX,strY) {
	
		var dateX = new Date();
		dateX.setFullYear(parseInt(getDateYear(strX)),parseInt(getDateMonth(strX)) - 1, parseInt(getDateDay(strX)));

		var dateY = new Date();
		dateY.setFullYear(parseInt(getDateYear(strY)),parseInt(getDateMonth(strY)) - 1, parseInt(getDateDay(strY)));

		if (dateX > strY) {
		
			return true;
			
		} // end if
		
		return false;
		
	} // end function isDateXLaterThanDateY
	
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	function getDateDay(dateStr) {
	
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		
		return matchArray[1];
		
	} // end function getDateDay
	
	function getDateMonth(dateStr) {
	
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		
		return matchArray[3];
		
	} // end function getDateDay
	
	function getDateYear(dateStr) {
	
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		
		return matchArray[5];
		
	} // end function getDateDay