// JavaScript Document
function pickService(selectField) 
{
	document.mtrForm.INFO_ADDRESS.disabled=true;
	document.mtrForm.INFO_ADDRESS.style.backgroundColor="#E3E3E3";
	document.mtrForm.INFO_METERSIZE.disabled=true;
	document.mtrForm.INFO_METERSIZE.style.backgroundColor="#E3E3E3";
    document.mtrForm.INFO_ENLARGEMENT.disabled=true;
	document.mtrForm.INFO_ENLARGEMENT.style.backgroundColor="#E3E3E3";
	
	if (selectField.selectedIndex != 0) 
	{
		if (selectField.value == "Separation")
		{
		document.mtrForm.INFO_ADDRESS.disabled=false;
		document.mtrForm.INFO_ADDRESS.style.backgroundColor="#FFFFFF";
		document.mtrForm.INFO_METERSIZE.disabled=false;
		document.mtrForm.INFO_METERSIZE.style.backgroundColor="#FFFFFF";
		}
		else if (selectField.value == "Enlargement")
		{
    	document.mtrForm.INFO_ENLARGEMENT.disabled=false;
		document.mtrForm.INFO_ENLARGEMENT.style.backgroundColor="#FFFFFF";
		}
		else if ((selectField.value == "New Meter") || (selectField.value == "Irrigation"))
		{
		document.mtrForm.INFO_METERSIZE.disabled=false;
		document.mtrForm.INFO_METERSIZE.style.backgroundColor="#FFFFFF";
		}	
	}
}

function agree(cbox)
{
	document.mtrForm.Submit.disabled=true;
	if (cbox.checked)
	{
	 	document.mtrForm.Submit.disabled=false;
	}
}

function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validRequired(formField,fieldLabel)
{
	var result = true;
	
	if (formField.value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	
	return result;
}

function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function validEmail(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
	{
		alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		formField.focus();
		result = false;
	}
   
  return result;

}

function validNum(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}


function validInt(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var num = parseInt(formField.value);
 		if (isNaN(num))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}

function validCheckbox(cboxvar, fieldLabel)
{
   var result = true;
   var count = 0;
   for (var i = 0 ; i < cboxvar.length ; ++i) {
     if (cboxvar[i].checked) { ++count; }
   }
   if (count == 0) {
     alert('Please check at least one box for "' + fieldLabel +'".');
	 cboxvar[0].focus();
	 result = false;	   	
	}
   return result;
}

function validSelect(formField, fieldLabel)
{

var result = true;
	
	if (formField.selectedIndex == 0)
	{
		alert('Please select a value from the "' + fieldLabel +'" list.');
		formField.focus();
		result = false;
	}
	
	return result;
}


function validDate(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var elems = formField.value.split("/");
 		
 		result = (elems.length == 3); // should be three components
 		
 		if (result)
 		{
 			var month = parseInt(elems[0],10);
  			var day = parseInt(elems[1],10);
 			var year = parseInt(elems[2],10);
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && (day > 0) && (day < 32) &&
					 allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
 		}
 		
  		if (!result)
 		{
 			alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
			formField.focus();		
		}
	} 
	
	return result;
}

function validateForm(theForm)
{
	// Call Validation Functions

	// Start ------->
	
	if (!validSelect(theForm.CLASS,"Class of Service Request"))
		return false;
	
	if (!validRequired(theForm.OWNERFIRST,"First Name"))
		return false;
	
	if (!validRequired(theForm.OWNERLAST,"Last Name"))
		return false;

	if (!validRequired(theForm.OWNERPHONE1,"Owner's Phone Number"))
		return false;
			
	if (!validRequired(theForm.SERV_STREETNO,"Service Address Street Number"))
		return false;
		
	if (!validRequired(theForm.SERV_STREETNAME,"Service Address Street Name"))
		return false;
		
	if (!validRequired(theForm.SERV_CITY,"Service Address City"))
		return false;
		
	if (!validRequired(theForm.SERV_STATE,"Service Address State"))
		return false;
		
	if (!validRequired(theForm.SERV_ZIP,"Service Address Zip Code"))
		return false;
		
	if (!validRequired(theForm.BILL_STREETNO,"Billing Address Street Number"))
		return false;
		
	if (!validRequired(theForm.BILL_STREETNAME,"Billing Address Street Name"))
		return false;
		
	if (!validRequired(theForm.BILL_CITY,"Billing Address City"))
		return false;
		
	if (!validRequired(theForm.BILL_STATE,"Billing Address State"))
		return false;
		
	if (!validRequired(theForm.BILL_ZIP,"Billing Address Zip Code"))
		return false;
		
	if (!validEmail(theForm.EMAIL,"Contact Email",true))
		return false;
		
	if (!validRequired(theForm.INFO_PROJNO,"Project Number"))
		return false;
	
	if (!validSelect(theForm.INFO_PLUMBER,"Plumber"))
		return false;
		
	
	if (!validSelect(theForm.INFO_SERVICE,"Type of Service"))
		return false;
		
	if (document.mtrForm.INFO_ADDRESS.disabled == false) {
			if (!validRequired(theForm.INFO_ADDRESS,"Separate Address"))
			return false;
		}
		
	if (document.mtrForm.INFO_METERSIZE.disabled == false) {
			if (!validSelect(theForm.INFO_METERSIZE,"Meter Size and Price"))
			return false;
		}
		
	if (document.mtrForm.INFO_ENLARGEMENT.disabled == false) {
			if (!validSelect(theForm.INFO_ENLARGEMENT,"Enlargement and Price"))
			return false;
		}

	// <--------- End
	
	return true;
}