//Title Validation.js
//Author : Harish Chauhan
//Date   : 24 Aug,2004
//This file contains the functions for input data validation
//at client side with the help of java script.

//  this function checks the email format is correct or not
//  and return true or false accordingly.
	function is_email(email)
	{
		if(!email.match(/^[A-Za-z0-9\._\-+]+@[A-Za-z0-9_\-+]+(\.[A-Za-z0-9_\-+]+)+$/))
			return false;
		return true;
	}
// End of is_email Function

//  this function checks the given number is signed/unsigned number
//  and return true or false accordingly.
	function is_number(number)
	{
		if(!number.match(/^[\-\+0-9e1-9]+$/))
			return false;
		return true;
	}
// End of is_number Function

//  this function checks the given number is unsigned number
//  and return true or false accordingly.
	function is_unsign_number(number)
	{
		if(!number.match(/^[\+0-9]+$/))
			return false;
		return true;
	}
	function is_double(number)
	{
		if(!number.match(/^[0-9]*\.?[0-9]*$/))
			return false;
		return true;
	}
// End of is_unsign_number Function
	
//  this function checks the given string is alphanumeric word or not
//  and return true or false accordingly.
	function is_alpha_numeric(str)
	{
		if(!str.match(/^[A-Za-z0-9 ]+$/))
			return false;
		return true;
	}
// End of is_alpha_numeric Function

//  this function checks the given string is empty or not
//  and return true or false accordingly.
	function is_empty(str)
	{
  		 str=trim(str);
		 if ((str.length==0)||(str==null))
			return true;
		 return false;
	}
// End of is_empty Function
	
	function trim(inputString) 
	{
	   // Removes leading and trailing spaces from the passed string. Also removes
	   // consecutive spaces and replaces it with one space. If something besides
	   // a string is passed in (null, custom object, etc.) then return the input.
	   if (typeof inputString != "string") { return inputString; }
	   var retValue = inputString;
	   var ch = retValue.substring(0, 1);
	   while (ch == " ") { // Check for spaces at the beginning of the string
		  retValue = retValue.substring(1, retValue.length);
		  ch = retValue.substring(0, 1);
	   }
	   ch = retValue.substring(retValue.length-1, retValue.length);
	   while (ch == " ") { // Check for spaces at the end of the string
		  retValue = retValue.substring(0, retValue.length-1);
		  ch = retValue.substring(retValue.length-1, retValue.length);
	   }
	   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
		  retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
	   }
	   return retValue; // Return the trimmed string back to the user
	} // Ends the "trim" function

	function is_date(d)
	{
		if(d.search(/^(\d){1,2}[-\/\\](\d){1,2}[-\/\\]\d{4}$/)!=0)
			return -1;//Bad Date Format
		var T = d.split(/[-\/]/);
		var M = T[0];
		var D = T[1];
		var	Y = T[2];
		return D>0 && (D<=[,31,28,31,30,31,30,31,31,30,31,30,31][M] ||	D==29 && Y%4==0 && (Y%100!=0 || Y%400==0) ) 
	}

function isValidCreditCard(type, ccnum) {
   if (type == "Visa" || type == "VI") {
      // Visa: length 16, prefix 4, dashes optional.
      var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
   } else if (type == "MasterCard" || type == "MC") {
      // Mastercard: length 16, prefix 51-55, dashes optional.
      var re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
   } else if (type == "Discover"  || type == "NO") {
      // Discover: length 16, prefix 6011, dashes optional.
      var re = /^6011-?\d{4}-?\d{4}-?\d{4}$/;
   } else if (type == "AmEx" || type == "AX") {
      // 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}$/;
   } else if (type == "Bankcard") {
      // Bankcard: length 16, prefix 5610 dashes optional.
      var re = /^5610-?\d{4}-?\d{4}-?\d{4}$/;
   } else if (type == "JCB") {
      // Bankcard: length 16, prefix 5610 dashes optional.
      var re = /^[3088|3096|3112|3158|3337|3528]\d{12}$/;
   } else if (type == "EnRoute") {
      // Bankcard: length 15, prefix 5610 dashes optional.
      var re = /^[2014|2149]\d{11}$/;
   } else if (type == "Switch") {
      // Bankcard: length 16, prefix 5610 dashes optional.
      var re = /^[4903|4911|4936|5641|6333|6759|6334|6767]\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;
}

function newUserValidation()
{
	
	if(document.form1.emailID.value=='')
	{
		alert("Please Enter your Email!.");
		document.form1.emailID.focus();
		return false;
	}
	if(!is_email(document.form1.emailID.value))
	{
		alert("Enter a valid Email ID!.");
		document.form1.emailID.focus();
		return false;
	}
	if(document.form1.username.value=='')
	{
		alert("Please Enter your Username!.");
		document.form1.username.focus();
		return false;
	}
	if(document.form1.firstName.value=='')
	{
		alert("Please enter your First Name.");
		document.form1.firstName.focus();
		return false;
	}
	if(document.form1.lastName.value=='')
	{
		alert("Please enter your Last Name.");
		document.form1.lastName.focus();
		return false;
	}
	
	if(document.form1.password.value=='')
	{
		alert("Please enter your password!.");
		document.form1.password.focus();
		return false;
	}
	if(document.form1.cpassword.value=='')
	{
		alert("Please enter your confirm password!.");
		document.form1.cpassword.focus();
		return false;
	}
	if(document.form1.cpassword.value!="")
	{
		var password=document.form1.password.value;
		var cpassword=document.form1.cpassword.value;
		if(password!=cpassword)
		{
			alert("Confirm Password Mismatch.");
			document.form1.cpassword.focus();
			return false;
		}
	}
	if(document.form1.termPrivacy.checked==false)
	{
		alert("Please Check Term, Condition And Privacy Policy.");
		//document.form1.cpassword.focus();
		return false;
	}
	return true;
}

function updateUserValidation()
{
	if(document.form1.firstName.value=='')
	{
		alert("Please enter your First Name.");
		document.form1.firstName.focus();
		return false;
	}
	if(document.form1.lastName.value=='')
	{
		alert("Please enter your Last Name.");
		document.form1.lastName.focus();
		return false;
	}
	if(document.form1.address.value=='')
	{
		alert("Please enter Address.");
		document.form1.address.focus();
		return false;
	}
	if(document.form1.city.value=='')
	{
		alert("Please Enter City.");
		document.form1.city.focus();
		return false;
	}
	if(document.form1.state.value=='')
	{
		alert("Please Enter State.");
		document.form1.state.focus();
		return false;
	}
	if(document.form1.zip.value=='')
	{
		alert("Please Enter Zipcode.");
		document.form1.zip.focus();
		return false;
	}
	
	if(document.form1.password.value=='')
	{
		alert("Please enter your password!.");
		document.form1.password.focus();
		return false;
	}
	return true;
}

function forgotPasswordValidation()
{
	//alert("ajit");
	if(document.frm.emailID.value=='')
	{
		alert("Please enter your Email!.");
		document.frm.emailID.focus();
		return false;
	}
	if(!is_email(document.frm.emailID.value))
	{
		alert("Enter a valid Email ID!.");
		document.frm.emailID.focus();
		return false;
	}
	return true;
}

function Newslettervalidation(fa) 
{
	var emailID=fa.emailID;
	
	if (fa.customerName.value.length < 1) {
		alert("Please Enter a Name.");
		fa.customerName.focus();
		return false;
	}
	if (fa.emailID.value.length < 1) {
		alert("Please Enter an Email Address.");
		fa.emailID.focus();
		return false;
	}
	if (is_email(emailID.value)==false){
		alert("Pls Enter Valid Email Address");
		emailID.focus();
		return false;
	}
	return true;

}

function revabc(fa)
{
	if (fa.review.value.length < 1) {
		alert("Please Enter a Review.");
		fa.review.focus();
		return false;
	}
	return true;
}

//for UserInfo Page Start

function checkAssign(fa)
{
	if(fa.checked == true)
	{
		document.userfrm.shippingname.value = document.userfrm.billingname.value;
		document.userfrm.shippingstreet.value = document.userfrm.billingstreet.value;
		document.userfrm.shippingstreet1.value = document.userfrm.billingstreet1.value;
		document.userfrm.shippingcity.value = document.userfrm.billingcity.value;
		document.userfrm.shippingzipcode.value = document.userfrm.billingzipcode.value;
		var sel = document.userfrm.billingstate.selectedIndex;
		document.userfrm.shippingstate.selectedIndex = sel;
	}
	else
	{
		document.userfrm.shippingname.value = "";
		document.userfrm.shippingstreet.value = "";
		document.userfrm.shippingstreet1.value = "";
		document.userfrm.shippingcity.value = "";
		document.userfrm.shippingzipcode.value = "";
		document.userfrm.shippingstate.selectedIndex = 0;
	}
}

function userabc(fa)
{
	if(fa.userfirstname.value == "")
	{
		alert("First Name is Required");
		fa.userfirstname.focus();
		return false;
	}
	if(fa.userlastname.value == "")
	{
		alert("Last Name is Required");
		fa.userlastname.focus();
		return false;
	}
	if(fa.useremailid.value == "")
	{
		alert("Email Address is Required");
		fa.useremailid.focus();
		return false;
	}
	if (is_email(fa.useremailid.value)==false){
		alert("Pls Enter Valid Email Address");
		fa.useremailid.focus();
		return false;
	}
	if(fa.billingname.value == "")
	{
		alert("Billing Name is Required");
		fa.billingname.focus();
		return false;
	}
	if(fa.billingstreet.value == "")
	{
		alert("Billing Street is Required");
		fa.billingstreet.focus();
		return false;
	}
	if(fa.billingcity.value == "")
	{
		alert("Billing City is Required");
		fa.billingcity.focus();
		return false;
	}
	if(fa.billingstate.value == "")
	{
		alert("Billing State is Required");
		fa.billingstate.focus();
		return false;
	}
	if(fa.billingzipcode.value == "")
	{
		alert("Billing Zipcode is Required");
		fa.billingzipcode.focus();
		return false;
	}
	if(fa.shippingname.value == "")
	{
		alert("Shipping Name is Required");
		fa.shippingname.focus();
		return false;
	}
	if(fa.shippingstreet.value == "")
	{
		alert("Shipping Street is Required");
		fa.shippingstreet.focus();
		return false;
	}
	if(fa.shippingcity.value == "")
	{
		alert("Shipping City is Required");
		fa.shippingcity.focus();
		return false;
	}
	if(fa.shippingstate.value == "")
	{
		alert("Shipping State is Required");
		fa.shippingstate.focus();
		return false;
	}
	if(fa.shippingzipcode.value == "")
	{
		alert("Shipping Zipcode is Required");
		fa.shippingzipcode.focus();
		return false;
	}
	
	if(fa.useremailid.value == "")
	{
		alert("Email Address is Required");
		fa.useremailid.focus();
		return false;
	}
	if(fa.useremailid.value == "")
	{
		alert("Email Address is Required");
		fa.useremailid.focus();
		return false;
	}
	if(fa.useremailid.value == "")
	{
		alert("Email Address is Required");
		fa.useremailid.focus();
		return false;
	}
	if(fa.useremailid.value == "")
	{
		alert("Email Address is Required");
		fa.useremailid.focus();
		return false;
	}
	if(fa.useremailid.value == "")
	{
		alert("Email Address is Required");
		fa.useremailid.focus();
		return false;
	}
	
	if(fa.cardType.value == "")
	{
		alert("Please select card type");
		fa.cardType.focus();
		return false;
	}
		
	if(fa.txtCardNum.value == "")
	{
		alert("Please enter card number");
		fa.txtCardNum.focus();
		return false;
	}
	
	if(fa.expMonth.value == "")
	{
		alert("Please select expiration month.");
		fa.expMonth.focus();
		return false;
	}
	
	if(fa.expYear.value == "")
	{
		alert("Please select expiration year");
		fa.expYear.focus();
		return false;
	}
	if(fa.txtSecCode.value == "")
	{
		alert("Please enter security code");
		fa.txtSecCode.focus();
		return false;
	}
	
	if(fa.termsPrivacy.checked == false)
	{
		alert("Please Read terms, condition and privacy policy...");
		return false;
	}
	
	
	
	return true;
}
//for UserInfo Page End