function validate_object(input_object, string_type, max_length_in, custom_alert_message)
{
		var local_object = input_object;
		var outcome = 1;
		var object_name =  input_object.name.toUpperCase() ;
		
		// Remove leading and trailing spaces
		local_object.value = local_object.value.replace(/^ +/g, '');
		local_object.value = local_object.value.replace(/ +$/g, '');

		
		if (max_length_in != null && local_object.length > max_length_in) {
			alert ('The input values for the' + object_name + ' field exceeds the maximum(' + max_length_in + ') ');
			outcome = 0;
		}

	if (string_type == "AP")
		{	//Alphabet, apostrophe ONLY
			if (local_object.value.search(/^([a-zA-Z']+)$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n(Alphabets and apostrophe ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^a-zA-Z][^']/g, '');
				local_object.value = local_object.value.replace(/[^a-zA-Z][^']/g, '');
				outcome = 0;
			}
		}
	if (string_type == "A")
		{	//Alphabet, dot ONLY
			if (local_object.value.search(/^([a-zA-Z.]+)$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n(Alphabets and dot ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^a-zA-Z][^']/g, '');
				local_object.value = local_object.value.replace(/[^a-zA-Z][^']/g, '');
				outcome = 0;
			}
		}

		if (string_type == "NM")
		{	//Alphabet, spaces, apostrophe, hyphen and underscore ONLY
			if (local_object.value.search(/^'?[a-zA-Z]([a-zA-Z\s\-\_]+)$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (Alphabets, hyphen,apostrophe and spaces ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^a-zA-Z\s\.][^-][^_]/g, '');
				local_object.value = local_object.value.replace(/[^a-zA-Z\s\.][^-][^_]/g, '');
				outcome = 0;
			}
		}
				
		
		if (string_type == "AS")
		{	//Alphabet, spaces,hyphen ONLY
			if (local_object.value.search(/^'?[a-zA-Z]([a-zA-Z\s\_'-]+)$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (Alphabets, hyphen,apostrophe underscore and spaces ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^a-zA-Z\s\.][^-][^_]/g, '');
				local_object.value = local_object.value.replace(/[^a-zA-Z\s\.][^-][^_]/g, '');
				outcome = 0;
			}
		}
		
		if (string_type == "DAS")
				{	//Alphabet,dot,apostrophe, spaces,hyphen ONLY
					if (local_object.value.search(/^'?[a-zA-Z]([a-zA-Z\s\_'-\.]+)$/) == -1)
					{
						alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (Alphabets, hyphen, apostrophe, underscore, dot and spaces ONLY) \nPlease check and re-enter.");
						local_object.value = local_object.value.replace(/[^a-zA-Z\s\.][^-][^_]/g, '');
						local_object.value = local_object.value.replace(/[^a-zA-Z\s\.][^-][^_]/g, '');
						outcome = 0;
					}
		}
		
		
		if (string_type == "AD")
		{	//UPPERCASE Alphabet, dot ONLY
			local_object.value = local_object.value.toUpperCase();
			if (local_object.value.search(/^[a-zA-Z]([.|\s][a-zA-Z])*[.|\s]?$/) == -1)
			
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n ((Alphabets separated by space or dot, or a letter ONLY) 	\nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^   ][^  ]/g, ' ');
				local_object.value = local_object.value.replace(/[^   ][^  ]/g, ' ');
				outcome = 0;
			}
		} 

		if (string_type == "AC")
		{	//alphanumeric, space, apostrophe, comma, dot, hyphen, slash, colon and hash characters ONLY
			if (local_object.value.search(/^([\w\s\.',\-\/]*)$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (alphanumeric, space, apostrophe, comma, hyphen, slash, colon and hash characters ONLY) \nPlease check and  re-enter.");
				local_object.value = local_object.value.replace(/[^\w\s\.',\-#:\/]/g, '');
				local_object.value = local_object.value.replace(/[^\w\s\.',\-#:\/]/g, '');
				outcome = 0;
			}
		}
		if (string_type == "DIR")
		{	//alphanumeric, space, apostrophe, comma, dot, hyphen, slash, hash, underscore, colon and hash characters ONLY
			if (local_object.value.search(/^[\w\s\.',\-_#:\/\\]+$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (alphanumeric, space, apostrophe, comma, hyphen, slash, underscore, colon and hash characters ONLY) \nPlease check and  re-enter.");
				local_object.value = local_object.value.replace(/[^\w\s\.',\-_#:\/\\]/g, '');
				local_object.value = local_object.value.replace(/[^\w\s\.',\-_#:\/\\]/g, '');
				outcome = 0;
			}
		}
		if (string_type == "UA")
		{	//AlphaNumeric apostrophe and space characters ONLY
			//Convert lowercase characters to uppercase
			//local_object.value = local_object.value.toUpperCase();
			 if (local_object.value.search(/^[\w\s\-\_\']+$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n(AlphaNumeric apostrophe and space characters ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^\w\s\-]/g, '');
				local_object.value = local_object.value.replace(/[^\w\s\-]/g, '');
				outcome = 0;
			}
		}

		if (string_type == "an")
		{	// AlphaNumeric, punctuation and space characters ONLY
			if (local_object.value.search(/^\w[\w\-\. ]*(\(\w[\w\-\.,; ]*\))?[\w\-\.,; ]*$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n(AlphaNumeric,underscore or minus and space characters ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^\w][^ ]/g, '');
				local_object.value = local_object.value.replace(/[^\w][^ ]/g, '');
				outcome = 0;
			}
		}

		if (string_type == "UAP")		/* (/[^\w\s\.',\-#:\/]/g, ''); */
		{	//UPPERCASE AlphaNumeric characters ONLY
			//Convert lowercase characters to uppercase
			local_object.value = local_object.value.toUpperCase();
			if (local_object.value.search(/^[\w]+$/) == -1)
			//if (local_object.value.search(/^([\w\s][\d])+$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n(UPPERCASE AlphaNumeric characters ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^\w][^ ]/g, '');
				local_object.value = local_object.value.replace(/[^\w][^ ]/g, '');
				outcome = 0;
			}
		}  
	
		if (string_type == "AU")
		{	// AlphaNumeric and dot characters ONLY
			//Convert lowercase characters to uppercase
			local_object.value = local_object.value.toLowerCase();
			if (local_object.value.search(/^([\w\s\-][a-zA-Z\ ])+$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n( AlphaNumeric, dot, minus or 	underscore and space characters ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^\w][^ ]/g, '');
				local_object.value = local_object.value.replace(/[^\w][^ ]/g, '');
				outcome = 0;
			}
		}
		
		if (string_type == "PIC"){	//PICTURE FILES
			if (local_object.value.search(/(.gif)|(.png)|(.jpg)$/i) == -1){
			   	alert("INVALID PICTURE FORMAT \t\"" + object_name + "\"\n (GIF,PNG and JPEG files ONLY).\n\n please check and re-enter.");
				local_object.value = ''; 
				outcome = 0;
			}
		}	

		
		if (string_type == "USER")
		{	// AlphaNumeric and dot characters ONLY
			//Convert lowercase characters to uppercase
			local_object.value = local_object.value.toLowerCase();
			if (local_object.value.search(/^[a-zA-Z]([\-\w\_])+$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n( AlphaNumeric, hyphen and underscore characters ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^\w][^ ]/g, '');
				local_object.value = local_object.value.replace(/[^\w][^ ]/g, '');
				outcome = 0;
			}
		}	
		
		if (string_type == "DIG")
		{	//Phone, fax and pager numbers characters ONLY
			if (local_object.value.search(/^\d?([\d\- ]+)$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (Phone, fax and pager numbers characters ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^\d][^ ][^\-]/g, '');
				local_object.value = local_object.value.replace(/[^\d][^ ][^\-]/g, '');
				outcome = 0;
			}
		}
		
		if (string_type == "DG")
		{	//Digits, space, minus,plus characters ONLY
			if (local_object.value.search(/^([\d\-\+ ]+)$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (Digits, space,plus , minus characters ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^\d][^ ][^\+][^\-]/g, '');
				local_object.value = local_object.value.replace(/[^\d][^ ][^\+][^\-]/g, '');
				outcome = 0;
			}
		}
		
		if (string_type == "DI")
		{	//Positive integers ONLY
			if (local_object.value.search(/^([\d ]+)$/) == -1)
			{
				alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (Positive Integers ONLY) \nPlease check and re-enter.");
				local_object.value = local_object.value.replace(/[^\d][^ ]/g, '');
				local_object.value = local_object.value.replace(/[^\d][^ ]/g, '');
				outcome = 0;
			}
		}		
		
		if (string_type == "DO"){	//Digits, decimal_point characters ONLY
		    if (local_object.value.search(/^([\d\ \.]+)$/) == -1){
		    	alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (Digits, decimal_point characters ONLY) \nPlease check and re-enter.");
			local_object.value = local_object.value.replace(/[^\d][^ ]/g, '');
			local_object.value = local_object.value.replace(/[^\d][^ ]/g, '');
			outcome = 0;
		    }
		}
		
		if (string_type == "DOS"){	//Digits, decimal_point characters and space ONLY
		    if (local_object.value.search(/^([\d.\.\ ]+)$/) == -1){
			alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (Digits, decimal_point and space characters ONLY) \nPlease check and re-enter.");
			local_object.value = local_object.value.replace(/[^\d][^ ]/g, '');
			local_object.value = local_object.value.replace(/[^\d][^ ]/g, '');
			outcome = 0;
		    }
		}		
		
		if (string_type == "EM"){	//Email
		   if (local_object.value.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) == -1){
		   	alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (Email format ONLY).\n\n please check and re-enter.");
			local_object.value = local_object.value.replace(/[^\w][^\@][^\.][^\-][^\_]/g, '');
			local_object.value = local_object.value.replace(/[^\w][^\@][^\.][^\-][^\_]/g, '');
			outcome = 0;
		   }
		}
		
		if (string_type == "UR"){	//URL
		   if (local_object.value.search(/^(http:\/\/)?\w+((\.|-)\w+)*\.\w{2,3}(\/|(\/\w+(-\w+)*))*$/) == -1){
		   	alert("INVALID CHARACTERS IN \t\"" + object_name + "\"\n (URL format ONLY).\n\n please check and re-enter.");
			local_object.value = local_object.value.replace(/[^\w][^\@][^\.][^\-][^\_]/g, '');
			outcome = 0;
		   }
		}
		if (string_type == "AN"){	//ANY printable character .. minimum length ONLY
		     if (local_object.value == "" || local_object.value == null || local_object.value.length < max_length_in){
		     	alert( object_name + " field must contain AT LEAST " + max_length_in + " characters.\n\nPlease check and re-enter.");
			outcome = 0;
		     }
		}

		if (string_type == "PIC"){	//PICTURE FILES
		   if (local_object.value.search(/(.gif)|(.png)|(.jpg)$/i) == -1){
		   	alert("INVALID PICTURE FORMAT \t\"" + object_name + "\"\n (GIF,PNG and JPEG files ONLY).\n\n please check and re-enter.");
			local_object.value = ''; 
			outcome = 0;
		   }
		}	

		if (string_type == "NN")
		{	//NON-NULL ANY characters .. usually a drop down list
			if (local_object.value.length <= 0)
			{
				alert("The values you have entered failed our validation checks (MANDATORY NON-NUL field!). \n\nPlease check and re-enter.");
				outcome = 0;
			}
		}

	
		if (custom_alert_message != "" && custom_alert_message != null && outcome == 0) { 		alert(custom_alert_message); }
		//if (local_object.type == 'text' || local_object.type == 'textarea') { local_object.select(); }

		//If this is a SELECT object, reset the assignment to the object rather than the selected element
		if (input_object.type.toString().toLowerCase().indexOf('select') >= 0) local_object = input_object;
		if (outcome == 0) { local_object.select(); return false; } else { return true; }
	}



function isCurrent_date(thedate){
	var today = new Date();
	var M = today.getMonth() + 1;
	var Y = today.getFullYear();
	var D = today.getDate();

	//alert("date = " + today + "date   = " +D+ "  Month = " + M + "  year = " + Y);
	var sysdate = (Y*10000) + (M*100) + D;
	//alert("system date is "+sysdate);

	thedate.value.search(/^(\d+)(.)(\d+)(.)(\d+)$/);
	var userdate = (RegExp.$5*10000) +(RegExp.$3*100) + (RegExp.$1*1);
	//alert("year =" + RegExp.$5 + " month=  "+RegExp.$3 + "day=  "+RegExp.$1);
	//alert("userdate =" + userdate);
	
	//alert("year =" + RegExp.$5*10000+ " month=  "+RegExp.$3*100 + "day=  "+RegExp.$1);
	if ( userdate <= sysdate ){
		//alert("userdate =  " + userdate + " is valid");	
		return 1;
	} else {
     
		alert ("Date is in future \n\n  please check and re-enter.");
		thedate.value = thedate.value.replace(/[^ ][^ ][^ ][^ ][^ ]/g, '');
		thedate.value = thedate.value.replace(/[^ ][^ ][^ ][^ ][^ ]/g, '');
		return 0;
	
	}
		
}
  

//=======================================================================================
// Credit card validation.

//  ================================================================
//	Credit card verification functions
//	Originally included as Starter Application 1.0.0 in LivePayment.
//	20 Feb 1997 modified by egk:
//	================================================================


//  ================================================================
//	FUNCTION:  isCreditCard(st)
//
//	INPUT:	st - a string representing a credit card number
//
//	RETURNS:  true, if the credit card number passes the Luhn Mod-10
//						test.
//				false, otherwise
//	================================================================

	function isCreditCard(st) {
	// Encoding only works on cards with less than 19 digits
	var sum, mul, l, myDigit, tproduct;

	if (st.length > 19) { return (false); }

	sum = 0; mul = 1; l = st.length; tproduct = 0; myDigit = '';

	for (i = 0; i < l; i++)
	{
		myDigit = st.substring(l-i-1,l-i);
		tproduct = parseInt(myDigit ,10) * mul;
		if (tproduct >= 10)
		sum += (tproduct % 10) + 1;
		else
		sum += tproduct;
		if (mul == 1)
		mul++;
		else
		mul--;
	}

	if ((sum % 10) == 0)
		return (true);
	else
		return (false);

	}
	// END FUNCTION isCreditCard()

	function isCardMatch (cardType, cardNumber)
	{
			cardType = cardType.toUpperCase();
			var doesMatch = true;

			if (!isCreditCard(cardNumber))	{// End processing here if this is an invalid number
				return false;
			}

			if (cardType == "VISA") {
				if (((cc.length == 16) || (cc.length == 13)) && (cc.substring(0,1) == 4)) {
					doesMatch = true;
				}else{
					doesMatch = false;
				}
			}
			if (cardType == "MASTERCARD") {
				firstdig = cc.substring(0,1);
				seconddig = cc.substring(1,2);
				if ((cc.length == 16) && (firstdig == 5) && ((seconddig >= 1) && (seconddig <= 5))) {
					doesMatch = true;
				}else{
					doesMatch = false;
				}
			}
			if ((cardType == "AMERICANEXPRESS") || (cardType == "AMEX")) {
				firstdig = cc.substring(0,1);
				seconddig = cc.substring(1,2);
				if ((cc.length == 15) && (firstdig == 3) && ((seconddig == 4) || (seconddig == 7))) {
					doesMatch = true;
				}else{
					doesMatch = false;
				}
			}
			if (cardType == "DISCOVER") {
				doesMatch = true;
			}else{
				doesMatch = false;
			}
			if (cardType == "JCB") {
				doesMatch = true;
			}else{
				doesMatch = false;
			}
			if ((cardType == "DINERS") || (cardType == "DINERSCLUB")) {
				firstdig = cc.substring(0,1);
				seconddig = cc.substring(1,2);
				if ((cc.length == 14) && (firstdig == 3) && ((seconddig == 0) || (seconddig == 6) || (seconddig == 8))) {
					doesMatch = true;
				}else{
					doesMatch = false;
				}
			}
			if (cardType == "CARTEBLANCHE") {
				doesMatch = true;
			}else{
				doesMatch = false;
			}
			if (cardType == "ENROUTE") {
				doesMatch = true;
			}else{
				doesMatch = false;
			}
			if (cardType == "") {
				doesMatch = true;
			}else{
				doesMatch = false;
			}
		return doesMatch;

	}  // END FUNCTION CardMatch()


	function check_object(input_object, acceptable_characters, unacceptable_characters)
	{
		var local_object, local_string, local_counter, local_char, bad_char, good_char;
		local_object = input_object;
		local_char = ''; local_string = '';
		if (local_object.value == '') { return ''; }

		bad_char = unacceptable_characters || '[]\\^`[';
		good_char = acceptable_characters || '@._-0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

		for (local_counter = 0; local_counter < local_object.value.length; local_counter +=1)
		{
			local_char = local_object.value.substring(local_counter, local_counter + 1);
			local_char = (bad_char.indexOf(local_char) >= 0) || (good_char.indexOf(local_char) < 0) ? '' : local_char;
			if (local_counter >= local_object.value.length) { return local_string; }
			local_string += local_char;
		}
		return(local_string);
	}


	function isEmail(string) {
		if (string.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) != -1)
			return true;
		else
			return false;
	}

	function strip(input_string, characters_to_find, characters_to_strip){
		return input_string.replace(/characters_to_find/g, characters_to_strip);
	}


	function future_date(year_in, month_in, day_in){
		var myDate = new Date();
		var fmDay = day_in ? day_in : '01';
		var fmMnth = month_in;
		var fmYear = year_in;
		// var fmYear = fmYear < 1999 ? 2000 + parseInt(fmYear) : parseInt(fmYear);

		var fmDate = new Date(fmYear, fmMnth, fmDay);
		if (fmDate < myDate)
		{
			alert("This value must reflect a current or future date  \nPlease re-enter a valid date");
			return (false);
		}
		return (true);
	}

	function getparams(item){
	 var pval, pattern = new RegExp(item + "=([^&]+)") ;
	
	 pval = location.search.match(pattern);
	 pval = RegExp.$1 ;

	 return pval;
	
	}


//-->
//</script>
