// validation for site contact form

function validate(form)
{
	var lg_il = "!#$%^&*()+=~@\\/<>,?:;\"{}[]_";
	var all_il = "$%^*+=~<>\\/{}[]_";
	var textarea_il = "^*+=~<>\\/{}[]_";
	var tel_nums = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-:;,.()+ ";
	var alphanums = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\\/-:;, ";
	var em_il = "!#$%^&*()=\\/<>,?;\"{}";
	
	var fname = form.fname.value;
	var lname = form.lname.value;
	var email = form.email.value;
	var telephone = form.telephone.value;
	// var country = form.country.value;
	var message = form.message.value;
	var txtNumber = form.txtNumber.value;
	
	// fname validation begin
	
	var v = -1;
	
	if (fname == '')
	{
		alert("You do not need to enter your last name. But we do require your first name for correspondence purposes.");
		document.inquiry.fname.focus();
		return false;
	}
	
	if (fname.length > 60)
	{
		alert("Your first name exceeds max length - 60 characters");
		document.inquiry.fname.focus();
		return false;
	}
	
	
	for (var k=0; k<fname.length; k++)
	{
		var km = fname.charAt(k);
		
		if (lg_il.indexOf(km) == -1)
		continue;
		v = 1; 
		break;
	}
	
	if ( v == 1)
	{
		alert("Your first name contains illegal characters - illegal characters are " + lg_il);
		document.inquiry.fname.focus();
		return false;
	}
	
	// fname validation END
	// lname validation begin
	
	var v = -1;
	
	if (lname.length > 70)
	{
		alert("Your last name exceeds MAX length. Limit 70 characters");
		document.inquiry.lname.focus();
		return false;
	}
	
	
	for (var k=0; k<lname.length; k++)
	{
		var km = lname.charAt(k);
		
		if (lg_il.indexOf(km) == -1)
		continue;
		v = 1; 
		break;
	}
	
	if ( v == 1)
	{
		alert("Your last name contains illegal characters- illegal characters are " + lg_il);
		document.inquiry.lname.focus();
		return false;
	}
	// lname validation END
	
	//email validation begin
	var v = -1;
		
	if (email.length > 100)
	{
		alert("Your email exceeds MAX length. Limit 100 characters");
		document.inquiry.email.focus();
		return false;
	}
	
	for (var k=0; k<email.length; k++)
	{
		var km = email.charAt(k);
		
		if (em_il.indexOf(km) == -1)
		continue;
		v = 1; 
		break;
	}
	
	if ( v == 1)
	{
		alert("Your email contains illegal characters");
		document.inquiry.email.focus();
		return false;
	}
	
	if ( (email != '') &&  (email.indexOf('@') < 0 || email.indexOf('.') < 0)  )
	{
		alert("Your email address is not properly formed. Make sure you enter a full email address or leave blank.");
		document.inquiry.email.focus();
		return false;
	}
	 // email validation END 
	 
	 // telephone validation BEGIN
	
	var y = -1;
	if (telephone != '')
	{
		if (telephone.length > 100)
		{
			alert("Your telephone number exceeds MAX length. Limit 100 characters");
			document.inquiry.telephone.focus();
			return false;
		}
		
		for (var m=0; m<telephone.length; m++)
		{
			var mm = telephone.charAt(m);
			
			if (tel_nums.indexOf(mm) > -1)
			continue;
			y = 1; 
			break;
		}
		
		if ( y == 1)
		{
			alert("your telephone field can only contain these characters: " + tel_nums);
			document.inquiry.telephone.focus();
			return false;
		}
	}
	
	// telephone validation END
	
	// telephone email one field check BEGIN
	if (email == '' && telephone == '')
	{
		alert("You must enter either a telephone number or email address. We need some way of contacting you.");
		document.inquiry.email.focus();
		return false;
	}
	// telephone email one field check END
	
	/* country validation BEGIN
	if (country == 'NOCOUNTRY')
	{
		alert("Please select a country of origin from the drop-down, or choose OTHER");
		document.inquiry.country.focus();
		return false;
	}
	 country validation BEGIN */
	
	// message validation BEGIN
	if (message != '')
	{
		if (message.length > 1000)
		{
			alert("Your message exceeds MAX length. Limit 1000 characters. Please reduce your message.");
			document.inquiry.message.focus();
			return false;
		}
		
		v = -1;
		
		for (var k=0; k<message.length; k++)
		{
			var km = message.charAt(k);
			
			if (textarea_il.indexOf(km) == -1)
			continue;
			v = 1; 
			break;
		}
		
		if ( v == 1)
		{
			alert("Your message contains illegal characters: " + textarea_il + ". Remove illegal characters before sending.");
			document.inquiry.message.focus();
			return false;
		}
	}
	// message validation END
	
	// txtNumber check BEGIN
	if (txtNumber == '')
	{
		alert("You must retype the security code at the bottom of the form. Please enter the code you see.");
		document.inquiry.txtNumber.focus();
		return false;
	}
	else if (txtNumber.length > 50)
	{
		alert("You must retype the security code at the bottom of the form. Code currently exceeds accepted length.");
		document.inquiry.txtNumber.focus();
		return false;
	}
	else { txtNumber = txtNumber.replace(/^\s+|\s+$/g, ''); }
	
	// textNumber check END

	
	// send protected email and telephone - sort of.
	var nwKm = "";
	for (var k=0; k<email.length; k++)	{ var nwKm = email.charAt(k) + nwKm; }
	document.inquiry.email_rev.value = nwKm;
	
	var nwJk = "";
	for (var k=0; k<telephone.length; k++)	{ var nwJk = telephone.charAt(k) + nwJk; }
	document.inquiry.telephone_rev.value = nwJk;
	
	document.inquiry.txtNumber.value = txtNumber;
	// end protected email and telephone area
}

function changePages(page) { location = page; }

function a_message(message){ alert(message); }
