function isEmail(emailStr1)
{
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

	var matchArray=emailStr1.match(emailPat)
	if (matchArray==null) {
		alert("Email address seems incorrect (check @ and .'s)")		
		return false;
	}
	
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
		alert("The user name doesn't seem to be valid.")
		return false;
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Destination IP address is invalid!")
				return false;
			}
		}	    
		return true
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		alert("The domain name doesn't seem to be valid.")
		return false;
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>3) {
	   alert("The address must end in a three-letter domain, or two letter country.")
	   return false;
	}

	if (len<2) 
	{
	   var errStr="This address is missing a hostname!"
	   alert(errStr)
	   return false;
	}	
	return true;
}

/* 
Function Written By kadambari@bcod.co.in
Validates text, number , symbol and date format */

function InvalidCharachter(type, testField)
{
	switch(type)
	{
		case 'text' : 
				var invalidChars = '0123456789`~!@#$%^&*()[]\{\}\-_+=/\'\\"<>,.;:?^|';
				for (i=0; i<invalidChars.length; i++) {
					if (testField.indexOf(invalidChars.charAt(i),0) > -1)
					{
						return false;			
					}
				}
				break;
		case 'number' :
				var invalidNumbers = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`~!@#$%^&*()[]\{\}\-_+=/\'\\"<>,;:?^|';
				for (i=0; i<invalidNumbers.length; i++) {
					if (testField.indexOf(invalidNumbers.charAt(i),0) > -1)
					{
						return false;			
					}
				}
				break;
		case 'symbol' :
				var invalidSymbols = '`~!@#$%^&*()[]\{\}\-_+=/\'\\"<>,.;:?^|';
				for (i=0; i<invalidSymbols.length; i++) {
					if (testField.indexOf(invalidSymbols.charAt(i),0) > -1)
					{
						return false;			
					}
				}
				break;
		case 'date' :
				var invalidSymbols = '`~!@#$%^&*()[]\{\}_+=/\'\\"<>,.;:?^|';
				for (i=0; i<invalidSymbols.length; i++) {
					if (testField.indexOf(invalidSymbols.charAt(i),0) > -1)
					{
						return false;			
					}
				}
				break;
		case 'phone' :
				var invalidNumbers = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`~!@#$%^&*()[]\{\}_=/\'\\"<>,;:?^|';
				for (i=0; i<invalidNumbers.length; i++) {
					if (testField.indexOf(invalidNumbers.charAt(i),0) > -1)
					{
						return false;			
					}
				}
				break;
		default : 
				return false;
				break;
	}
}

/* 
Function Written By kadambari@bcod.co.in
Returns date in format Jan-01-2010 */

function getToday()
{
	var date	 =	new Date();
	var months = new Array(13);
	months[0]  = "Jan";
    months[1]  = "Feb";
    months[2]  = "Mar";
    months[3]  = "Apr";
    months[4]  = "May";
    months[5]  = "Jun";
    months[6]  = "Jul";
    months[7]  = "Aug";
    months[8]  = "Sep";
    months[9]  = "Oct";
    months[10] = "Nov";
    months[11] = "Dec";

	var today = months[date.getMonth()]+"-"+date.getDate()+"-"+date.getFullYear();
	return today;
}

String.prototype.trim = function()
{
	return this.replace(/^\s+|\s+$/g,'');
}


function validateExpressQuote(formname)   /* quoteform.php */
{
	var name		=	document.expressquote.name.value;
	var email			=	document.expressquote.email.value;
	var company	=	document.expressquote.org.value;
	var address		=	document.expressquote.address.value;
	var city			=	document.expressquote.city.value;
	var state		=	document.expressquote.state.value;
	var zip			=	document.expressquote.zip.value;
	var phone		=	document.expressquote.phone.value;
	var fax			=	document.expressquote.fax.value;
	var creditapp	=	document.expressquote.creditapp.checked;
	var message	=	document.expressquote.message.value;
	var quantity	=	document.expressquote.item_1_quantity.value;
	var condition	=	document.expressquote.item_1_condition.value;
	var partnumber	=	document.expressquote.item_1_pn.value;
	var captcha1	=	document.expressquote.identiPIC_selected1.value;
	var captcha2	=	document.expressquote.identiPIC_selected2.value;
	var captcha3	=	document.expressquote.identiPIC_selected3.value;
	//var validhome			=  new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)");

	if (name.trim() == '')
	{
		alert("Please enter your name.");
		document.expressquote.name.focus();
		return false;
	}
	else if (InvalidCharachter('text',name.trim())==false)
	{
		alert("Please enter a valid name.");
		document.expressquote.name.focus();
		return false;
	}
	else if (email.trim() =='' )
	{
		alert("Please enter your email.");
		document.expressquote.email.focus();
		return false;
	}
	else if(isEmail(email.trim()) == false)
	{
		document.expressquote.email.focus();
		return false;
	}
	else if (company.trim() == '')
	{
		alert("Please enter your company name.");
		document.expressquote.org.focus();
		return false;
	}
	else if (InvalidCharachter('symbol',company.trim())==false)
	{
		alert("Please enter a valid company name.");
		document.expressquote.org.focus();
		return false;
	}
	else if (address.trim() == '')
	{
		alert("Please enter your address.");
		document.expressquote.address.focus();
		return false;
	}
	else if (address.trim() != '' && address.length < 5)
	{
		alert("Address should contain atleast 5 characters.");
		document.expressquote.address.focus();
		return false;
	}
	else if (city.trim() == '')
	{
		alert("Please enter your city name.");
		document.expressquote.city.focus();
		return false;
	}
	else if (InvalidCharachter('text',city.trim())==false)
	{
		alert("Please enter a valid city name.");
		document.expressquote.city.focus();
		return false;
	}
	else if (state.trim() == '')
	{
		alert("Please enter your state name.");
		document.expressquote.state.focus();
		return false;
	}
	else if (InvalidCharachter('text',state.trim())==false)
	{
		alert("Please enter a valid state name.");
		document.expressquote.state.focus();
		return false;
	}
	else if (zip.trim() == '')
	{
		alert("Please enter a zip code.");
		document.expressquote.zip.focus();
		return false;
	}
	else if ( (InvalidCharachter('number',zip.trim())==false) || (zip.length < 3) )
	{
		alert("Please enter a valid zip code which contains atleast 3 digits.");
		document.expressquote.zip.focus();
		return false;
	}
	else if (phone.trim() == '')
	{
		alert("Please enter your phone number.");
		document.expressquote.phone.focus();
		return false;
	}
//	else if (InvalidCharachter('number',phone.trim())==false)
//	{
//		alert("Please enter a valid phone number.");
//		document.expressquote.phone.focus();
//		return false;
//	}
//	else if (fax.trim() != '' && InvalidCharachter('number',fax.trim())==false)
//	{
//		alert("Please enter a valid fax number.");
//		document.expressquote.fax.focus();
//		return false;
//	}
	else if (quantity.trim() == '')
	{
		alert("Please enter your product quantity.");
		document.expressquote.item_1_quantity.focus();
		return false;
	}
	else if (InvalidCharachter('number',quantity.trim())==false)
	{
		alert("Please enter a valid product quantity.");
		document.expressquote.item_1_quantity.focus();
		return false;
	}
	else if (partnumber.trim() == '')
	{
		alert("Please enter your product part number.");
		document.expressquote.item_1_pn.focus();
		return false;
	}
	else if (condition.trim() == '')
	{
		alert("Please enter your product condition.");
		document.expressquote.item_1_condition.focus();
		return false;
	}
	else if (message.trim() == '')
	{
		alert("Please enter your message or questions regarding this quote.");
		document.expressquote.message.focus();
		return false;
	}
	else if (captcha1.trim() == '')
	{
		alert("Please identify first security picture.");
		document.expressquote.identiPIC_selected1.focus();
		return false;
	}
	else if (captcha1.trim() != '' && captcha1.trim() != 'Apple')
	{
		alert("Please check selected first security picture.");
		document.expressquote.identiPIC_selected1.focus();
		return false;
	}
	else if (captcha2.trim() == '')
	{
		alert("Please identify second security picture.");
		document.expressquote.identiPIC_selected2.focus();
		return false;
	}
	else if (captcha2.trim() != '' && captcha2.trim() != 'Tree')
	{
		alert("Please check selected second security picture.");
		document.expressquote.identiPIC_selected2.focus();
		return false;
	}
	else if (captcha3.trim() == '')
	{
		alert("Please identify third security picture.");
		document.expressquote.identiPIC_selected3.focus();
		return false;
	}
	else if (captcha3.trim() != '' && captcha3.trim() != 'Cat')
	{
		alert("Please check selected third security picture.");
		document.expressquote.identiPIC_selected3.focus();
		return false;
	}
//	else if(creditapp == false)
//	{
//		alert("Please read and accept Terms and Conditions and Privacy Statement.");
//		document.expressquote.creditapp.focus();
//		return false;
//	}
}

function validateGeneralInfo(formname)   /* generalinfo.php */
{
	var name		=	document.generalinfo.name.value;
	var email			=	document.generalinfo.email.value;
	var company	=	document.generalinfo.org.value;
	var address		=	document.generalinfo.address.value;
	var city			=	document.generalinfo.city.value;
	var state		=	document.generalinfo.state.value;
	var zip			=	document.generalinfo.zip.value;
	var phone		=	document.generalinfo.phone.value;
	var fax			=	document.generalinfo.fax.value;
	var creditapp	=	document.generalinfo.creditapp.checked;
	var message	=	document.generalinfo.message.value;
	var captcha1	=	document.generalinfo.identiPIC_selected1.value;
	var captcha2	=	document.generalinfo.identiPIC_selected2.value;
	var captcha3	=	document.generalinfo.identiPIC_selected3.value;

	if (name.trim() == '')
	{
		alert("Please enter your name.");
		document.generalinfo.name.focus();
		return false;
	}
	else if (InvalidCharachter('text',name.trim())==false)
	{
		alert("Please enter a valid name.");
		document.generalinfo.name.focus();
		return false;
	}
	else if (email.trim() =='' )
	{
		alert("Please enter your email.");
		document.generalinfo.email.focus();
		return false;
	}
	else if(isEmail(email.trim()) == false)
	{
		document.generalinfo.email.focus();
		return false;
	}
	else if (company.trim() == '')
	{
		alert("Please enter your company name.");
		document.generalinfo.org.focus();
		return false;
	}
	else if (InvalidCharachter('symbol',company.trim())==false)
	{
		alert("Please enter a valid company name.");
		document.generalinfo.org.focus();
		return false;
	}
	else if (address.trim() == '')
	{
		alert("Please enter your address.");
		document.generalinfo.address.focus();
		return false;
	}
	else if (address.trim() != '' && address.length < 5)
	{
		alert("Address should contain atleast 5 characters.");
		document.generalinfo.address.focus();
		return false;
	}
	else if (city.trim() == '')
	{
		alert("Please enter your city name.");
		document.generalinfo.city.focus();
		return false;
	}
	else if (InvalidCharachter('text',city.trim())==false)
	{
		alert("Please enter a valid city name.");
		document.generalinfo.city.focus();
		return false;
	}
	else if (state.trim() == '')
	{
		alert("Please enter your state name.");
		document.generalinfo.state.focus();
		return false;
	}
	else if (InvalidCharachter('text',state.trim())==false)
	{
		alert("Please enter a valid state name.");
		document.generalinfo.state.focus();
		return false;
	}
	else if (zip.trim() == '')
	{
		alert("Please enter a zip code.");
		document.generalinfo.zip.focus();
		return false;
	}
	else if ( (InvalidCharachter('number',zip.trim())==false) || (zip.length < 3) )
	{
		alert("Please enter a valid zip code which contains atleast 3 digits.");
		document.generalinfo.zip.focus();
		return false;
	}
	else if (phone.trim() == '')
	{
		alert("Please enter your phone number.");
		document.generalinfo.phone.focus();
		return false;
	}
	else if (message.trim() == '')
	{
		alert("Please enter your message or questions regarding this quote.");
		document.generalinfo.message.focus();
		return false;
	}
	else if (captcha1.trim() == '')
	{
		alert("Please identify first security picture.");
		document.generalinfo.identiPIC_selected1.focus();
		return false;
	}
	else if (captcha1.trim() != '' && captcha1.trim() != 'Apple')
	{
		alert("Please check selected first security picture.");
		document.generalinfo.identiPIC_selected1.focus();
		return false;
	}
	else if (captcha2.trim() == '')
	{
		alert("Please identify second security picture.");
		document.generalinfo.identiPIC_selected2.focus();
		return false;
	}
	else if (captcha2.trim() != '' && captcha2.trim() != 'Tree')
	{
		alert("Please check selected second security picture.");
		document.generalinfo.identiPIC_selected2.focus();
		return false;
	}
	else if (captcha3.trim() == '')
	{
		alert("Please identify third security picture.");
		document.generalinfo.identiPIC_selected3.focus();
		return false;
	}
	else if (captcha3.trim() != '' && captcha3.trim() != 'Cat')
	{
		alert("Please check selected third security picture.");
		document.generalinfo.identiPIC_selected3.focus();
		return false;
	}
}

function validateCredit(formname)   /* credit.php */
{
	var name		=	document.credit.name.value;
	var email			=	document.credit.email.value;
	var company	=	document.credit.org.value;
	var address		=	document.credit.address.value;
	var city			=	document.credit.city.value;
	var state		=	document.credit.state.value;
	var zip			=	document.credit.zip.value;
	var phone		=	document.credit.phone.value;
	var fax			=	document.credit.fax.value;

	var FedID				=	document.credit.FedID.value;
	var DUNS				=	document.credit.DUNS.value;
	var bank1name		=	document.credit.bank1name.value;
	var bank1howlong		=	document.credit.bank1howlong.value;
	var bank1phone		=	document.credit.bank1phone.value;
	var bank1contact		=	document.credit.bank1contact.value;
	var bank2name		=	document.credit.bank2name.value;
	var bank2howlong		=	document.credit.bank2howlong.value;
	var bank2phone		=	document.credit.bank2phone.value;
	var bank2contact		=	document.credit.bank2contact.value;
	var taxexempt			=	document.credit.taxexempt.value;

	var suppliername1			=	document.credit.suppliername1.value;
	var supplierterms1		=	document.credit.supplierterms1.value;
	var supplierhowlong1		=	document.credit.supplierhowlong1.value;
	var supplierphone1		=	document.credit.supplierphone1.value;
	var supplierfax1			=	document.credit.supplierfax1.value;
	var suppliercontact1		=	document.credit.suppliercontact1.value;
	var suppliername2			=	document.credit.suppliername2.value;
	var supplierterms2		=	document.credit.supplierterms2.value;
	var supplierhowlong2		=	document.credit.supplierhowlong2.value;
	var supplierphone2		=	document.credit.supplierphone2.value;
	var supplierfax2			=	document.credit.supplierfax2.value;
	var suppliercontact2		=	document.credit.suppliercontact2.value;
	var suppliername3			=	document.credit.suppliername3.value;
	var supplierterms3		=	document.credit.supplierterms3.value;
	var supplierhowlong3		=	document.credit.supplierhowlong3.value;
	var supplierphone3		=	document.credit.supplierphone3.value;
	var supplierfax3			=	document.credit.supplierfax3.value;
	var suppliercontact3		=	document.credit.suppliercontact3.value;
	var suppliername4			=	document.credit.suppliername4.value;
	var supplierterms4		=	document.credit.supplierterms4.value;
	var supplierhowlong4		=	document.credit.supplierhowlong4.value;
	var supplierphone4		=	document.credit.supplierphone4.value;
	var supplierfax4			=	document.credit.supplierfax4.value;
	var suppliercontact4		=	document.credit.suppliercontact4.value;

	var owner1		=	document.credit.owner1.value;
	var owner2		=	document.credit.owner2.value;
	var owner3		=	document.credit.owner3.value;
	var owner4		=	document.credit.owner4.value;
	var message	=	document.credit.message.value;
	var captcha1	=	document.credit.identiPIC_selected1.value;
	var captcha2	=	document.credit.identiPIC_selected2.value;
	var captcha3	=	document.credit.identiPIC_selected3.value;

	if (name.trim() == '')
	{
		alert("Please enter your name.");
		document.credit.name.focus();
		return false;
	}
	else if (InvalidCharachter('text',name.trim())==false)
	{
		alert("Please enter a valid name.");
		document.credit.name.focus();
		return false;
	}
	else if (email.trim() =='' )
	{
		alert("Please enter your email.");
		document.credit.email.focus();
		return false;
	}
	else if(isEmail(email.trim()) == false)
	{
		document.credit.email.focus();
		return false;
	}
	else if (company.trim() == '')
	{
		alert("Please enter your company name.");
		document.credit.org.focus();
		return false;
	}
	else if (InvalidCharachter('symbol',company.trim())==false)
	{
		alert("Please enter a valid company name.");
		document.credit.org.focus();
		return false;
	}
	else if (address.trim() == '')
	{
		alert("Please enter your address.");
		document.credit.address.focus();
		return false;
	}
	else if (address.trim() != '' && address.length < 5)
	{
		alert("Address should contain atleast 5 characters.");
		document.credit.address.focus();
		return false;
	}
	else if (city.trim() == '')
	{
		alert("Please enter your city name.");
		document.credit.city.focus();
		return false;
	}
	else if (InvalidCharachter('text',city.trim())==false)
	{
		alert("Please enter a valid city name.");
		document.credit.city.focus();
		return false;
	}
	else if (state.trim() == '')
	{
		alert("Please enter your state name.");
		document.credit.state.focus();
		return false;
	}
	else if (InvalidCharachter('text',state.trim())==false)
	{
		alert("Please enter a valid state name.");
		document.credit.state.focus();
		return false;
	}
	else if (zip.trim() == '')
	{
		alert("Please enter a zip code.");
		document.credit.zip.focus();
		return false;
	}
	else if ( (InvalidCharachter('number',zip.trim())==false) || (zip.length < 3) )
	{
		alert("Please enter a valid zip code which contains atleast 3 digits.");
		document.credit.zip.focus();
		return false;
	}
	else if (FedID.trim() == '')
	{
		alert("Please enter your FedID number.");
		document.credit.FedID.focus();
		return false;
	}
	else if (phone.trim() == '')
	{
		alert("Please enter your phone number.");
		document.credit.phone.focus();
		return false;
	}	
	else if (DUNS.trim() == '')
	{
		alert("Please enter DUNS.");
		document.credit.DUNS.focus();
		return false;
	}
	else if (bank1name.trim() == '')
	{
		alert("Please enter name of first bank.");
		document.credit.bank1name.focus();
		return false;
	}
	else if (bank1howlong.trim() == '')
	{
		alert("Please enter how long value of first bank.");
		document.credit.bank1howlong.focus();
		return false;
	}
	else if (bank1phone.trim() == '')
	{
		alert("Please enter telephone number of first bank.");
		document.credit.bank1phone.focus();
		return false;
	}
	else if (bank1contact.trim() == '')
	{
		alert("Please enter name of a contact person of first bank.");
		document.credit.bank1contact.focus();
		return false;
	}
	else if (taxexempt.trim() == '')
	{
		alert("Please enter sales tax exemption.");
		document.credit.taxexempt.focus();
		return false;
	}
	else if (suppliername1.trim() == '')
	{
		alert("Please enter supplier name.");
		document.credit.suppliername1.focus();
		return false;
	}	
	else if (message.trim() == '')
	{
		alert("Please enter your message or questions regarding this quote.");
		document.credit.message.focus();
		return false;
	}
	else if (captcha1.trim() == '')
	{
		alert("Please identify first security picture.");
		document.credit.identiPIC_selected1.focus();
		return false;
	}
	else if (captcha1.trim() != '' && captcha1.trim() != 'Apple')
	{
		alert("Please check selected first security picture.");
		document.credit.identiPIC_selected1.focus();
		return false;
	}
	else if (captcha2.trim() == '')
	{
		alert("Please identify second security picture.");
		document.credit.identiPIC_selected2.focus();
		return false;
	}
	else if (captcha2.trim() != '' && captcha2.trim() != 'Tree')
	{
		alert("Please check selected second security picture.");
		document.credit.identiPIC_selected2.focus();
		return false;
	}
	else if (captcha3.trim() == '')
	{
		alert("Please identify third security picture.");
		document.credit.identiPIC_selected3.focus();
		return false;
	}
	else if (captcha3.trim() != '' && captcha3.trim() != 'Cat')
	{
		alert("Please check selected third security picture.");
		document.credit.identiPIC_selected3.focus();
		return false;
	}
}
