function validate(frm)
{
	var n = frm.elements.length;
	for(var i=0;i<n;i++)
	{
		var alt = frm.elements[i].alt;
		var val = frm.elements[i].value;
		if(val)
			val =Trim(val);
		var title = frm.elements[i].title;
		var name = frm.elements[i].name;
		if(name == 'iModelId_1' && val=='0')
		{
				alert("Please Select Model"); return false;
		}
		if(alt && alt != "")
		{
			var comp = alt.charAt(0);
			rtn1=alt.indexOf('{');
			rtn2=alt.lastIndexOf('}');
			if(comp=="*" || comp=="_")
			{
				if(comp=="*" && val=="")
				{
					alert("Please Enter "+title);
					frm.elements[i].focus();
					return false;
				}
				var valid_char = '';
				var valid_email = 'No';
				for(var j=rtn1+1; j<rtn2; j++)
				{
					//alert(alt.charAt(j));
					if(alt.charAt(j)=="N")
						valid_char += '0123456789.';
					else if(alt.charAt(j)=="A")
						valid_char += 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
					else if(alt.charAt(j)=="C")
						valid_char += '0123456789.+-';
					else if(alt.charAt(j)=="T")
						valid_char += '0123456789.+-() ';
					else if(alt.charAt(j)=="D")
						valid_char += '0123456789-/: ';
					else if(alt.charAt(j)=="E")
					{
						valid_email = "Yes";
						valid_char += 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._-@';
					}
					else if(alt.charAt(j)=="X")
						valid_char = '';
					else if(alt.charAt(j)=="[")
					{
						irtn1=alt.indexOf('[');
						irtn2=alt.lastIndexOf(']');
						//alert(alt.substring(irtn1+1,irtn2));
						valid_char += alt.substring(irtn1+1,irtn2);
						j = rtn2;
					}
				}
				if(valid_email == 'Yes')
				{
					valid_msg = isValidEmail(frm.elements[i].value);
					if(valid_msg != 0)
					{
						alert(valid_msg);
						frm.elements[i].focus();
						return false;
					}
				}
				for(k=0;k<val.length && valid_char!='';k++)
				{
					ch=val.charAt(k);
					rtn=valid_char.indexOf(ch);
					if(rtn==-1)
					{
						alert("Please Enter Valid "+ title);
						frm.elements[i].focus();
						return false;
					}
				}
				
				// Format Validation Here

				f_str = alt.substring(rtn2+1,alt.length);
				if(f_str != "" && comp=="*")
				{
					arr = f_str.split(':');
					if(parseInt(arr[0]) > 0)
					{
						if(val.length < parseInt(arr[0]))
						{
							alert(title + " must be atleast of "+parseInt(arr[0])+" characters");
							return false;
						} 
					}
					if(parseInt(arr[1]) > 0)
					{
						if(val.length > parseInt(arr[1]))
						{
							alert(title + " must be less than or equal of "+parseInt(arr[1])+" characters");
							return false;
						} 
					}
				}
			}
		}
	}
	return true;
}
function creditcardcheck()
{
		var vCardType = 'vCardType';
		var vCardNumber = 'vCardNumber';
		var vCVVCode = 'vCVVCode';
		var Month = 'Month';
		var Year = 'Year';
		
		
		var cc_number = document.getElementById(vCardNumber).value;
		var cc_type = document.getElementById(vCardType).value;
		var cc_year = document.getElementById(Year).value;
		var cc_month = document.getElementById(Month).value;
		var cc_ccv = document.getElementById(vCVVCode).value;

		var mm = (new Date()).getMonth()+1;
		var yy = (new Date()).getYear();
		var error = 0;
		var error_message = "Errors have occured during the process of your form.\n\nPlease make the following corrections:\n\n";
		if (cc_number == "" || cc_number.length < 10) {
		  error_message = error_message + "* The credit card number must be at least 10 characters.\n";
		  error = 1;
		}
		if (!isValidCreditCard(cc_type, cc_number)) {
		  error_message = error_message + "* Invalid Credit Card Number.\n";
		  error = 1;
		}//alert(cc_number); return false;
		
		if (cc_month == '') {
		  error_message = error_message + "* Enter Credit card expire Month.\n";
		  error = 1;
		}
		
		if (cc_year == "") {
		  error_message = error_message + "* Enter Credit card expire Year.\n";
		  error = 1;
		}

		if (cc_year<yy || (cc_year==yy && cc_month<mm)) {
		  error_message = error_message + "* The credit card has been Expired. Enter valid expire date.\n";
		  error = 1;
		}
		if (cc_ccv == "") {
		  error_message = error_message + "* Enter Credit card Verification Code.\n";
		  error = 1;
		}
		if (cc_ccv.length < 3 || cc_ccv.length > 4) {
		  error_message = error_message + "* Invalid Credit card Verification Code.\n";
		  error = 1;
		}
		if (error == 1) {
			alert(error_message);
			return false;
		} 	
	return true;
}
function isValidCreditCard(type, ccnum) {
  	if (type == "V") {
	  // Visa: length 16, prefix 4, dashes optional.
//	  var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
	  var re = /^4[0-9]{12}([0-9]{3})?$/;
   } else if (type == "M") {
	  // Mastercard: length 16, prefix 51-55, dashes optional.
//	  var re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
	  var re = /^5[1-5][0-9]{14}$/;
   } else if (type == "D") {
	  // Discover: length 16, prefix 6011, dashes optional.
	  var re = /^6011-?\d{4}-?\d{4}-?\d{4}$/;
//	  ^6011[0-9]{12}$
   } else if (type == "A") {
	  // American Express: length 15, prefix 34 or 37.
	  var re = /^3[4,7]\d{13}$/;
   } else if (type == "Diners") {
	  // Diners: length 14, prefix 30, 36, or 38.
	  var re = /^3[0,6,8]\d{12}$/;
   }
   if (!re.test(ccnum)) return false;
   // Checksum ("Mod 10")
   // Add even digits in even length strings or odd digits in odd length strings.
   var checksum = 0;
   for (var i=(2-(ccnum.length % 2)); i<=ccnum.length; i+=2) {
	  checksum += parseInt(ccnum.charAt(i-1));
   }

   // Analyze odd digits in even length strings or even digits in odd length strings.
   for (var i=(ccnum.length % 2) + 1; i<ccnum.length; i+=2) {
	  var digit = parseInt(ccnum.charAt(i-1)) * 2;
	  if (digit < 10) { checksum += digit; } else { checksum += (digit-9); }
   }
   if ((checksum % 10) == 0) return true; else return false;
}