
function disableFields()
{
	if(document.forms[0].irregular_area)
		{
		document.forms[0].irregular_area.disabled = true;
		}
	if(document.forms[0].sprinkler_temp)
		{
		document.forms[0].sprinkler_temp.disabled = true;
		}
	
}
var days=Array('Any','Weekends','Weekdays','Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
var alertType = 1; //Change to something other than 1 to use the alert() function
function errorMsg(msg, multiline) //Send an empty string to clear the alert
{
  	if(alertType == 1)
		{
		if(multiline)
			 {
			if(msg == undefined)
				{
				 document.getElementById ("alert").innerHTML = '';	
				}
			else
			 	{
			    var output = "Please correct the following items:<ul>";
			    for(i = 0; i < msg.length; i++)
			   		  {
			    	  output += "<li>"+msg[i]+"</li>";
			  		  }
				output += "</ul>";
				document.getElementById ("alert").innerHTML = output;
				}
			
			}
		else
			{
			 if(msg == undefined)
				{
				 document.getElementById ("alert").innerHTML = '';	
				}
			else
				{
				document.getElementById ("alert").innerHTML = msg;
				}
			}
		}
	else
		{
		 	if(msg != "")
				  {
				  alert(msg);
				  
				  }
		}
}

function DayName(i)
{
  return 'day['+days[i]+']';
}
function DayElement(i)
{
  return document.document.forms[0].elements[DayName(i)];
}
function validfire()
{
  var i=0;
  i+=document.document.forms[0].elements['firetype[a]'].checked?1:0;
  i+=document.document.forms[0].elements['firetype[b]'].checked?1:0;
  i+=document.document.forms[0].elements['firetype[c]'].checked?1:0;
  if(i==0)
  {
    alert('You must choose at least one fire type.');
    return false;
  }
  return true;
}
function ajaxFunction()
  {
  var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      catch (e)
        {
        return false;
        }
      }
    }
return xmlHttp;	
}
function checkAddress(addr, showMsg)
{
var showMsg = (showMsg == null) ? true : showMsg;
	if(addr.value == '' || !addr.value.match(/[\d]{1,8}[\s][\w+]/i))
		{
		if(showMsg == true)
			{
			errorMsg('Please enter a valid address.');
			addr.focus();
			}
		return false;
		}
	return true;
}
function checkCity(city, showMsg)
{
var showMsg = (showMsg == null) ? true : showMsg;
	if(city.value == '' || !city.value.match(/[\w]{3}/i))
		{
		if(showMsg == true)
			{
			errorMsg('Please enter a valid city.');
			city.focus();
			}
		return false;
		}
	return true;
}
function checkState(state, showMsg)
{
var showMsg = (showMsg == null) ? true : showMsg;
	if(state.value == '' || !state.value.match(/[\w]{2}/i))
		{
		if(showMsg == true)
			{
			errorMsg('Please enter a valid state.');
			state.focus();
			}
		return false;
		}
	return true;
}
function validEmail(email, showMsg)
{
var showMsg = (showMsg == null) ? true : showMsg;
	if(email.value == '' || !email.value.match(/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i))
		{
		if(showMsg == true)
			{
			errorMsg('Please enter a valid email address.');
			email.focus();
			}
		return false;
		}
	else
		{
		xmlHttp = ajaxFunction();
		xmlHttp.onreadystatechange=function()
    		{
     			if(xmlHttp.readyState==4)
        			{
       				 if(xmlHttp.responseText != "VALID")
					 	{
						if(showMsg == true)
							{
							errorMsg('Unable to verify email address.');
							email.focus();
							}
						return false;
						}
					 else
					 	{
						 return true;
						}
        			}
   			 }
  		 xmlHttp.open("GET","validemail.php?email="+email.value, true);
   		 xmlHttp.send(null);
		 errorMsg();
		 return true;
		}
}	
function validForm()
{
var alertMsg = Array();
var i=0;
	if(document.forms[0].contact_name.value == '' || document.forms[0].contact_name.value == undefined)
		{
		alertMsg[i] =  "Contact name is required.";
		i++;
		}
 	if(!validPhone(document.forms[0].phone, false))
		{
		alertMsg[i] = "Please enter a valid phone number.";
		i++;
		} 
 	if(!validFax(document.forms[0].fax, false))
		{
		alertMsg[i] = "Please enter a valid fax number.";
		i++;
		}
	if(!checkDays())
		{
		alertMsg[i] = "Please select at least one day for us to contact you.";
		i++;
		}
	if((document.forms[0].ftime.value > 12) || (document.forms[0].ttime.value > 12) ||( document.forms[0].ftime.value < 1) || (document.forms[0].ttime.value < 1) || ((document.forms[0].ftime.value == document.forms[0].ttime.value) && (document.forms[0].fampm.value == document.forms[0].tampm.value)))
		{
		alertMsg[i] = "Please enter a valid range of time for us to contact you.";
		i++;
		}
	if(!validEmail(document.forms[0].email, false))
		{
		alertMsg[i] = "Your email address is not in the proper form or does not exist.";
		i++;
		}
	/*if(!verifyAddr(false))
		{
		alertMsg[i] = "Unable to verify your address.  Please ensure that it has been entered correctly and all fields have been filled in.";
		i++;
		}*/
	if(!validZip(document.forms[0].zip, false))
		{
		alertMsg[i] = "Please verify that your zip code is in the proper form.";
		i++;
		}
	if(alertMsg[0])
		{
		errorMsg(alertMsg, true);
		return false;
		}
	else
		{
		return true;
		}		  		 
}		

function validZip(zip)
{
if(zip.value.match(/[\d]{5}/) || zip.value.match(/[\d]{5}-[\d]{4}/))
		return true; 
else
	return false;
}

function validPhone(number, showMsg)
{
var showMsg = (showMsg == null) ? true : showMsg;
	if(number.value.match(/[\d]{3}-[\d]{3}-[\d]{4}/))
		{
			return true; 	
		}
		else										   
		{
		 	if(showMsg == true)
					{
					errorMsg("Please enter a valid phone number."); 
					}
			return false;
		} 			 
}

function validFax(number, showMsg)
{
 	if(validPhone(number, false))
		 {
		 return true;
		 }
	else 
		 {
		 if(showMsg == true)
		 		{
				errorMsg("Please enter a valid fax number.");
				}
		return false;		
		 }
}

function validTime(time, showMsg)
{
var showMsg = (showMsg == null) ? true : showMsg;
 	   return true;
}

function checkDays()
{
 for(var i in days)
    {
      if(DayElement(i).checked)
        return true;
    }
    return false;
}
function IsWeekends()
{
  if(DayElement(3).checked && DayElement(days.length-1).checked)
    return true;
  return false;
}
function IsWeekdays()
{
  for(i=4;i<days.length-1;i++)
    if(DayElement(i).checked==false)
      return false;
  return true;
}
function IsAnyDay()
{
  if((DayElement(2).checked || IsWeekends()) && (DayElement(1).checked || IsWeekdays()))
    return true;
  return false;
}
function ResetAnyDay()
{
  DayElement(0).checked=false;
}
function ResetAllDays()
{
  for(var i =1;i<days.length;i++)
    DayElement(i).checked=false;
}
function SetAnyDay()
{
  DayElement(0).checked=true;
  ResetAllDays();
}
function ResetWeekends()
{
  DayElement(2).checked=false;
}
function ResetWeekendDays()
{
  DayElement(3).checked=false;
  DayElement(9).checked=false;
}
function ResetWeekdays()
{
  DayElement(1).checked=false;
}
function ResetWeekdayDays()
{
  for(var i=4;i<days.length-1;i++)
    DayElement(i).checked=false;
}
function SetWeekdays()
{
  DayElement(1).checked=true;
  ResetWeekdayDays();
}
function SetWeekends()
{
  DayElement(2).checked=true;
  ResetWeekendDays();
}
function CheckDays()
{
  if(IsAnyDay())
  {
    SetAnyDay();
    return;
  }
  if(IsWeekends())
  {
    SetWeekends();
    return;
  }
  if(IsWeekdays())
  {
    SetWeekdays();
    return;
  }
}
function OnAnyDay()
{
  for(var i =1;i<days.length;i++)
    DayElement(i).checked=false;
  CheckDays();
}
function OnWeekdays()
{
  ResetAnyDay();
  ResetWeekdayDays();
  CheckDays();
}
function OnWeekends()
{
  ResetAnyDay();
  ResetWeekendDays();
  CheckDays();
}
function OnDayOfWeekday()
{
  ResetAnyDay();
  ResetWeekdays();
  CheckDays();
}
function OnDayOfWeekend()
{
  ResetAnyDay();
  ResetWeekends();
  CheckDays();
}
function verifyAddr(showMsg)
{
var showMsg = (showMsg == null) ? true : showMsg;
if(document.forms[0].address2.value != '' && document.forms[0].city.value != '' && document.forms[0].state.value != '')
	{
	///////////////////////////////////
	xmlHttp = ajaxFunction();
		xmlHttp.onreadystatechange=function()
    		{
     			if(xmlHttp.readyState==4)
        			{
       				 if(xmlHttp.responseText != "Address not found")
					 	{
					
						//document.getElementById ("alert").innerHTML = "";
						if(showMsg == true)
						  {
						  	var addrParts = xmlHttp.responseText.split("|");
							document.forms[0].address2.value = addrParts[0];
							document.forms[0].address1.value = '';
							document.forms[0].city.value = addrParts[1];
							document.forms[0].state.value = addrParts[2];
						 	document.forms[0].zip.value = addrParts[3];
						 	errorMsg("");
						  }
						return true;
						}
					else
						{
						//document.getElementById ("alert").innerHTML = "Address not found";
						if(showMsg == true)
						  {
						  errorMsg("Address not found.");
						  document.forms[0].address2.focus();
						  }
						 return false;
						}
										 
        			}
   			 }
  		 xmlHttp.open("GET","addr.php?address2="+escape(document.forms[0].address2.value)+"&address1="+escape(document.forms[0].address1.value)+"&city="+escape(document.forms[0].city.value)+"&state="+document.forms[0].state.value, true);
   		 xmlHttp.send(null);
	}
else
	{
	return false;
	}
}
function notIrreg()
	{
	document.forms[0].irregular_area.disabled = true;
	document.forms[0].irregular_area.value='';
	document.forms[0].length_a.disabled=false;
	document.forms[0].length_b.disabled=false;
	document.forms[0].length_c.disabled=false;
	document.forms[0].length_d.disabled=false;
	}
function isIrreg()
	{
	document.forms[0].irregular_area.disabled = false;
	document.forms[0].length_a.disabled=true;
	document.forms[0].length_a.value='';
	document.forms[0].length_b.disabled=true;
	document.forms[0].length_b.value='';
	document.forms[0].length_c.disabled=true;
	document.forms[0].length_c.value='';
	document.forms[0].length_d.disabled=true;
	document.forms[0].length_d.value='';
	}
function checkTemp(showMsg)
{
var showMsg = (showMsg == null) ? true : showMsg;
if(document.forms[0].sprinkler_temp.disable == false && (document.forms[0].sprinkler_temp.value < 100 ||  document.forms[0].sprinkler_temp.value > 650))
		{
		if(showMsg == true)
				{
				errorMsg("Please enter a valid demployment temperature for your sprinklers."); 
				}
			return false;
		}
else
	{
	return true;
	}
}
	
function checkDoorsAndTemp()
{
var msg = new array();
var i=0;
if(!checkDoors(false))
	{
	msg[i] = "Please enter a valid number of doors.";
	i++;
	}
if(!checkTemp(false))
	{
	msg[i] = "Please enter a valid demployment temperature for your sprinklers.";
	i++; 
	}			
if(alertMsg[0])
		{
		errorMsg(alertMsg, true);
		return false;
		}
	else
		{
		return true;
		}		  		 
}
function checkDoors(showMsg)
{
	var showMsg = (showMsg == null) ? true : showMsg;
	if(document.forms[0].reg_doors != '' && document.forms[0].double_doors != '')
	{
		if(isNaN(document.forms[0].reg_doors.value) || isNaN(document.forms[0].double_doors.value))
		{
			if(showMsg == true)
				{
				errorMsg("Please enter only digits for the number of doors."); 
				}
			return false;
		}
		else if(document.forms[0].reg_doors.value + document.forms[0].double_doors.value < 1)
		{
			if(showMsg == true)
				{
				errorMsg("You must have at least 1 door.");
				}
			return false;
		}
	}
	if(showMsg == true)
				{
				errorMsg("");
				}
return true;
}
