function ResetForm()
{
	document.getElementById('ErisTable').style.display = 'none';
	document.getElementById('AerialTable').style.display = 'none';
	document.getElementById('TopographicTable').style.display = 'none';
	document.getElementById('CityTable').style.display = 'none';
    ProductSelected = false;
	ClearErrs();
}
function ClearErrs()
{
	document.getElementById('CustomerErr').style.display = 'none';
	document.getElementById('SiteErr').style.display = 'none';
	document.getElementById('HeirsErr').style.display = 'none';
	document.getElementById('ErisErr').style.display = 'none';
	document.getElementById('AerialErr').style.display = 'none';
	document.getElementById('TopographicErr').style.display = 'none';
	document.getElementById('CityErr').style.display = 'none';
}
function Toggle(tablename,obj)
{
	var qs = new Querystring();
	var province = qs.get("p");
	
	if(obj.checked)
		document.getElementById(tablename).style.display = 'block';
	else
		document.getElementById(tablename).style.display = 'none';
		
	if(province!='on')
		if(tablename=='TopographicTable')
			setCheckedValue(document.forms['EnviroOrderForm'].elements['TopographicMapsType'],'National');
}
function ManageDatabases(show)
{
	if(show)
		document.getElementById('ErisTable').style.display = 'block';
	else
		document.getElementById('ErisTable').style.display = 'none';
}
function CountDatabases()
{
	var i;
	var total=0;
	var elementName;
	
	for(i=0;i<EnviroOrderForm.elements.length;i++)
	{
		if(EnviroOrderForm.elements[i].type == 'checkbox')
		{
			if(EnviroOrderForm.elements[i].checked == true)
			{
				elementName = EnviroOrderForm.elements[i].name;
				if(elementName.indexOf('_FED_') != -1 || elementName.indexOf('_PRI_') != -1 || elementName.indexOf('_PRO_') != -1 || elementName.indexOf('_TER_') != -1)
				{
					total++;
				}
			}
		}
	}
	
	return(total);
}
function getCheckedValue(radioObj)
{
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}
function setCheckedValue(radioObj, newValue)
{
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}
function SubmitForm()
{
	var i;
	var tmsg='';
	var msg='';
	var CustomerErr=false;
	var SiteErr=false;
	var HeirsErr=false;
	var ErisErr=false;
	var AerialErr=false;
	var TopographicErr=false;
	var CityErr=false
	var ProductSelected=false;
	
	var qs = new Querystring();
	var province = qs.get("p");
	
	ClearErrs();

	// customer rules ------------------------------------------------------------
	tmsg='';
	if(document.getElementById('CustomerCompany').value.length==0)		tmsg = tmsg + 'Customer Information: a company name is required.\n';
	if(document.getElementById('CustomerAddress').value.length==0)		tmsg = tmsg + 'Customer Information: an address is required.\n';
	if(document.getElementById('CustomerCity').value.length==0)		tmsg = tmsg + 'Customer Information: a city is required.\n';
	if(document.getElementById('CustomerProvince').selectedIndex==0)	tmsg = tmsg + 'Customer Information: a province is required.\n';
	if(document.getElementById('CustomerPostalCode').value.length==0)	tmsg = tmsg + 'Customer Information: a postal code is required.\n';
	if(document.getElementById('CustomerContact').value.length==0)		tmsg = tmsg + 'Customer Information: a contact name is required.\n';
	//if(document.getElementById('CustomerEmail').value.length==0)		tmsg = tmsg + 'Customer Information: email is required.\n';
	if(isValidEmail(document.getElementById('CustomerEmail').value)==false)		tmsg = tmsg + 'Customer Information: a valid email is required.\n';
	if(document.getElementById('CustomerTel').value.length==0)		tmsg = tmsg + 'Customer Information: a telephone is required.\n';
	if(document.getElementById('CustomerProject').value.length==0)		tmsg = tmsg + 'Customer Information: a project number is required.\n';
	if(tmsg.length!=0) CustomerErr = true;	msg = msg + tmsg;

	// site rules ------------------------------------------------------------
	tmsg='';
	if(document.getElementById('SiteMunicpalAddress').value.length==0)	tmsg = tmsg + 'Site Information: an address is required.\n';
	if(document.getElementById('SiteCity').value.length==0)			tmsg = tmsg + 'Site Information: a city is required.\n';
	//if(document.getElementById('SiteProvince').selectedIndex==0)		tmsg = tmsg + 'Site Information: a province is required.\n';
	if(tmsg.length!=0) SiteErr = true;
	msg = msg + tmsg;

	// heirs rules ------------------------------------------------------------
	tmsg='';
	if(tmsg.length!=0) HeirsErr = true;
	msg = msg + tmsg;

	// eris rules ------------------------------------------------------------
	tmsg='';
	// if basic report, maximum of 8 databases to be checked
	if(document.EnviroOrderForm.Eris[1].checked)
		if(CountDatabases()>8)
			tmsg = tmsg + 'ERIS Reports: only 8 databases can be selected.\n';
	if(tmsg.length!=0) ErisErr = true;
	msg = msg + tmsg;

	// aerial rules ------------------------------------------------------------
	tmsg='';
	if(document.getElementById('AerialPhotos').checked)
	{
		if(!document.EnviroOrderForm.AerialPhotosType[0].checked && !document.EnviroOrderForm.AerialPhotosType[1].checked &&
		   !document.EnviroOrderForm.AerialPhotosType[2].checked && !document.EnviroOrderForm.AerialPhotosType[3].checked &&
		   !document.EnviroOrderForm.AerialPhotosType[4].checked)
			tmsg = tmsg + 'Aerial Photographs: please select a service.\n';
		else
		   ProductSelected = true;
	}
	if(tmsg.length!=0) AerialErr = true;
	msg = msg + tmsg;

	// topographic rules ------------------------------------------------------------
	tmsg='';
	if(document.getElementById('TopographicMaps').checked)
	{
		if(province=='on')
			if(!document.EnviroOrderForm.TopographicMapsType[0].checked && !document.EnviroOrderForm.TopographicMapsType[1].checked)
				tmsg = tmsg + 'Topographic Maps: please select a map type.\n';
			else
				ProductSelected = true;
		else
			if(!document.EnviroOrderForm.TopographicMapsType.checked)
				tmsg = tmsg + 'Topographic Maps: please select a map type.\n';
			else
				ProductSelected = true;
	}
	if(tmsg.length!=0) TopographicErr = true;
	msg = msg + tmsg;

	// land rules ------------------------------------------------------------
	tmsg='';
	if(document.getElementById('LandTitle').checked)
		ProductSelected = true;

	// anderson rules ------------------------------------------------------------
	tmsg='';
	if(document.getElementById('AndersonReport').checked)
		ProductSelected = true;

	// city rules ------------------------------------------------------------
	tmsg='';
	if(document.getElementById('CityDirectorySearch').checked)
	{
		if(!document.EnviroOrderForm.CityDirectoryType[0].checked &&
		   !document.EnviroOrderForm.CityDirectoryType[1].checked &&
		   !document.EnviroOrderForm.CityDirectoryType[2].checked &&
		   !document.EnviroOrderForm.CityDirectoryType[3].checked)
			tmsg = tmsg + 'City Directory Search: please select a search type.\n';
		else
			ProductSelected = true;
		if(document.EnviroOrderForm.CityDirectoryType[1].checked ||
		   document.EnviroOrderForm.CityDirectoryType[2].checked ||
		   document.EnviroOrderForm.CityDirectoryType[3].checked)
			if(document.getElementById('CityDirectoryProperties').value.length==0)
				tmsg = tmsg + 'City Directory Search: please enter adjacent properties.\n';
	}
	if(tmsg.length!=0) CityErr = true;
	msg = msg + tmsg;

	// product rules ------------------------------------------------------------
	tmsg='';
	if(document.getElementById('HeirsFIP').checked || document.getElementById('HeirsIR').checked ||
		document.getElementById('HeirsSP').checked)
		ProductSelected = true;
	if(document.EnviroOrderForm.Eris[1].checked || document.EnviroOrderForm.Eris[2].checked ||
		document.EnviroOrderForm.Eris[3].checked || document.EnviroOrderForm.Eris[4].checked)
		ProductSelected = true;
	if(!ProductSelected)
		tmsg = 'No products selected.\n';
	msg = msg + tmsg;

	if(CustomerErr) document.getElementById('CustomerErr').style.display = 'block';
	if(SiteErr) document.getElementById('SiteErr').style.display = 'block';
	if(HeirsErr) document.getElementById('HeirsErr').style.display = 'block';
	if(ErisErr) document.getElementById('ErisErr').style.display = 'block';
	if(AerialErr) document.getElementById('AerialErr').style.display = 'block';
	if(TopographicErr) document.getElementById('TopographicErr').style.display = 'block';
	if(CityErr) document.getElementById('CityErr').style.display = 'block';
	if(msg.length!=0)
		alert(msg);
	else
	{
		document.getElementById('SubmitButton').disabled = true;
		document.EnviroOrderForm.submit();
	}
}
function isValidEmail(str)
{
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(str.match(emailRegEx))
		return true;
	else
		return false;
}
/* Client-side access to querystring name=value pairs
	Version 1.3
	28 May 2008
	
	License (Simplified BSD):
	http://adamv.com/dev/javascript/qslicense.txt
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}

