// JavaScript Document

function trimstring (str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}

//not tested yet
function formfield_validate(formfield,alertmessage)
{
	var trimmedformfield;
	
	trimmedformfield = trimstring(formfield.value);
	if (trimmedformfield == "" || trimmedformfield == null)
	{
		alert(alertmessage);
		formfield.focus();
		return false;
	}
	else
	{
		return true;
	}
}

function multiselect_validate(select)
{  
    var valid = false;  
    for(var i = 0; i < select.options.length; i++)
    	{  
	        if(select.options[i].selected)
	        	{  
	            valid = true;  
	            break;
	        	} 
        }
    return valid; 
}  

function validate(thisform)
{
	var namefield, companyfield, address1field, cityfield, statefield, zipfield, phonefield, emailfield, propertyfield;
	var customerfieldtest = false;
	var servicestest = false;
			
	with (thisform)
	{	
		namefield = trimstring(pname.value);
		if(namefield == "" || namefield == null)
		{
			alert("Please enter your name.");
			pname.focus();
			return false;
		}
		
		companyfield = trimstring(company.value);
		if(companyfield == "" || companyfield == null)
		{
			alert("Please enter the name of your company or organization.");
			company.focus();
			return false;
		}
		
		address1field = trimstring(address1.value);
		if(address1field == "" || address1field == null)
		{
			alert("Please enter your address.");
			address1.focus();
			return false;
		}
		
		cityfield = trimstring(city.value);
		if(cityfield == "" || cityfield == null)
		{
			alert("Please enter your city.");
			city.focus();
			return false;
		}
		
		statefield = trimstring(state.value);
		if(statefield == "" || statefield == null)
		{
			alert("Please enter your state.");
			state.focus();
			return false;
		}
		
		zipfield = trimstring(zip.value);
		if(zipfield == "" || zipfield == null)
		{
			alert("Please enter your ZIP code.");
			zip.focus();
			return false;
		}
		
		phonefield = trimstring(phone.value);
		if(phonefield == "" || phonefield == null)
		{
			alert("Please enter your daytime phone number.");
			phone.focus();
			return false;
		}
		
		emailfield = trimstring(email.value);
		if(emailfield == "" || emailfield == null)
		{
			alert("Please enter your e-mail address.");
			email.focus();
			return false;
		}
		
		if(emailfield!="" && emailfield!=null)
		{
			with (email)
			{
				apos=value.indexOf("@");
				dotpos=value.lastIndexOf(".");
				if (apos<1||dotpos-apos<2) 
				{
					alert("Please enter a valid e-mail address.");
					email.focus();
					return false;
				}
		
			}
		}
		
		for (counter = 0; counter < pcmcustomer.length; counter++)
		{
			if (pcmcustomer[counter].checked)
			{
				customerfieldtest = true;
			}
		}
		
		if (!customerfieldtest)
		{
			alert("Please indicate if you are a PCM customer.");
			return false;
		}
		
		propertyfield = trimstring(property.value);
		if(propertyfield == "" || propertyfield == null || property.selectedIndex == 0)
		{
			alert("Please select the type of property.");
			property.focus();
			return false;
		}
		
		servicestest = multiselect_validate(services);
		if (!servicestest)
		{
			alert("Please select services you are interested in.");
			services.focus();
			return false;
		}
		
	}
}