<!--
var requester = null;

function onsubmitInstantQuote(sURL)
{
 //first validate input
 if (!valInput())
 {
	 return false;
 }

 /* Check for running connections */
 if (requester != null && requester.readyState != 0 && requester.readyState != 4)
 {
   requester.abort();
 }

 try
 {
   requester = new XMLHttpRequest();
 }
 catch (error)
 {
   try
   {
     requester = new ActiveXObject("Microsoft.XMLHTTP");
   }
   catch (error)
   {
     requester = null;
	 alert('Could not initialize connection to server.  Error: '+error);
     return false;
   }
 }

 toggle('quoteLoading',''); //show the loader
 toggle('quoteForm','none'); //hide the form

 requester.onreadystatechange = onreadystatechangeInstantQuote;

 requester.open("POST", sURL, true);
 //requester.send(null);
 requester.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 requester.send(getFormData());

 return true;
}

function onreadystatechangeInstantQuote()
{
 /* If XMLHR object has finished retrieving the data */
 if (requester.readyState == 4)
 {
//alert(requester.status);
   /* If the data was retrieved successfully */
   if (requester.status == 200)
   {
//alert('in here');
     processResponse();
   }
   /* IE returns a status code of 0 on some occasions, so ignore this case */
   else if (requester.status != 0)
   {
     alert("There was an error while retrieving the URL: " + requester.statusText);
	 toggle('quoteLoading','none'); //hide the loader
	 toggle('quoteForm',''); //show the form
   }
 }

 return true;
}

function getFormData()
{
	if (document.getElementById) {
		var objForm = document.getElementById('instantQuoteForm');
		if (String(objForm)==''||String(objForm)=='null'||String(objForm)=='undefined')
		{
			alert('Could not process user input');
			return false;
		}
	}

	//get the data from the form to be sent in the post
	var employees = objForm.employees.value;
	var payperiod = objForm.payperiod.options[objForm.payperiod.selectedIndex].value;
	var email = trimstr(objForm.email.value);
	var username = trimstr(objForm.username.value);
	var company = trimstr(objForm.company.value);
	var phone = trimstr(objForm.phone.value);
	var state = objForm.state.options[objForm.state.selectedIndex].value;
	var numtaxstates = trimstr(objForm.numtaxstates.value);
	var numlocaltaxstates = trimstr(objForm.numlocaltaxstates.value);
	var empperc = trimstr(objForm.empperc.value);
	if (objForm.checksigning.checked) var checksigning = trimstr(objForm.checksigning.value);
	else var checksigning = '0';
	if (objForm.checkstuffing.checked) var checkstuffing = trimstr(objForm.checkstuffing.value);
	else var checkstuffing = '0';
	var deliveryoptions = objForm.deliveryoptions.options[objForm.deliveryoptions.selectedIndex].value;
	var comments = trimstr(objForm.comments.value);

	var sStr = 'employees='+employees+'&'+'payperiod='+payperiod+'&'+'email='+email+'&'+'username='+username+'&'+'company='+company+'&'+'phone='+phone+'&'+'state='+state+'&'+'numtaxstates='+numtaxstates+'&'+'numlocaltaxstates='+numlocaltaxstates+'&'+'empperc='+empperc+'&'+'checksigning='+checksigning+'&'+'checkstuffing='+checkstuffing+'&'+'deliveryoptions='+deliveryoptions+'&'+'comments='+comments

//alert(sStr);

	return sStr;
}

function processResponse()
{
//alert('process response');
	//process the response
	toggle('quoteLoading','none'); //hide the loader

	var sResponseXML = requester.responseXML;
//alert(sResponseXML);
	var nodelistSummary = sResponseXML.getElementsByTagName("QuoteResponse")[0].childNodes;
	var bErr = false;
	for (var i=0; i<nodelistSummary.length; i++)
	{
		var nodeItem = nodelistSummary[i];
//alert(i+' '+nodeItem.nodeName+' '+nodeItem.firstChild.nodeValue+' '+nodeItem.nodeType);
		if (document.getElementById) {
			var objItem = document.getElementById(nodeItem.nodeName);
			if (String(objItem)!=''&&String(objItem)!='null'&&String(objItem)!='undefined')
			{
				var nodeValue = nodeItem.firstChild.nodeValue;
				if (nodeItem.nodeName=='Err')
				{
					if (nodeValue != '')
					{
						bErr = true;
						objItem.innerHTML = nodeValue;
						objItem.style.display = ''; //show the error
					}
				}
				else if (nodeItem.nodeName=='UserEmail')
				{
					if (nodeValue != '')
					{
						objItem.innerHTML = nodeValue;
					}
				}
				else
				{
					if (nodeValue == '1')
					{
						bErr = true;
						objItem.style.display = ''; //show the error
					}
					else
					{
						objItem.style.display = 'none'; //hide the error
					}
				}
			}
		}
	}
	//now if there is an error show the form again
	if (bErr)
	{
		toggle('quoteForm',''); //show the form
	}
	else
	{
		toggle('quoteSuccess',''); //show the form
	}
}

function valInput()
{
	if (document.getElementById) {
		var objForm = document.getElementById('instantQuoteForm');
		if (String(objForm)==''||String(objForm)=='null'||String(objForm)=='undefined')
		{
			alert('Could not process user input');
			return false;
		}
	}

	if (trimstr(objForm.employees.value)==''||isNaN(Number(objForm.employees.value))||Number(objForm.employees.value)<=0) { alert('Please enter a valid number of employees'); objForm.employees.focus(); return false; }
	if (objForm.payperiod.options[objForm.payperiod.selectedIndex].value=='') { alert('Please select a pay period'); objForm.payperiod.focus(); return false; }
	if (!checkEmail(trimstr(objForm.email.value))) { objForm.email.focus(); return false; }
	if (trimstr(objForm.username.value)=='') { alert('Please enter your name'); objForm.username.focus(); return false; }
	if (trimstr(objForm.company.value)=='') { alert('Please enter your company name'); objForm.company.focus(); return false; }
	if (objForm.state.options[objForm.state.selectedIndex].value=='') { alert('Please select a state'); objForm.state.focus(); return false; }
	if (trimstr(objForm.numtaxstates.value)!=''&&(isNaN(Number(objForm.numtaxstates.value))||Number(objForm.numtaxstates.value)<0)) { alert('Please enter a valid number of tax states'); objForm.numtaxstates.focus(); return false; }
	if (trimstr(objForm.numlocaltaxstates.value)!=''&&(isNaN(Number(objForm.numlocaltaxstates.value))||Number(objForm.numlocaltaxstates.value)<0)) { alert('Please enter a valid number of local tax states'); objForm.numlocaltaxstates.focus(); return false; }
	if ((trimstr(objForm.numlocaltaxstates.value)!='' && Number(trimstr(objForm.numlocaltaxstates.value))>0) && (trimstr(objForm.numtaxstates.value)=='' || trimstr(objForm.numtaxstates.value)=='0')) { alert('You have selected the tax service, so please tell us how many states you pay federal taxes in.'); objForm.numtaxstates.focus(); return false; }
	if (trimstr(objForm.empperc.value)!=''&&(isNaN(Number(objForm.empperc.value))||Number(objForm.empperc.value)<0)) { alert('Please enter a valid employee percentage'); objForm.empperc.focus(); return false; }
//	if (trimstr(objForm.empperc.value)=='100' && (objForm.checksigning.checked)) { alert('If all your employees are using the direct deposit option, selecting check signing is incorrect'); return false; }
	return true;
}

function setDeliveryOptions(objField)
{
	var bCourierOption = false;
	for (var i=0;i<document.instantQuoteForm.deliveryoptions.options.length;i++) if (document.instantQuoteForm.deliveryoptions.options[i].value=='Courier - Next Day') { bCourierOption=true; break; }
	if (objField.options[objField.selectedIndex].value != 'PA' && objField.options[objField.selectedIndex].value != 'NJ' && objField.options[objField.selectedIndex].value != 'DE')
	{
		if (bCourierOption) document.instantQuoteForm.deliveryoptions.options[i]=null;
	}
	else if (!bCourierOption)
	{
		newdeliveryopt = new Option("Courier - Next Day", "Courier - Next Day", false, false);
		document.instantQuoteForm.deliveryoptions.options[document.instantQuoteForm.deliveryoptions.options.length] = newdeliveryopt;
	}
}

function toggle(targetId, sAction){
//alert('toggling '+targetId+' '+sAction);
	if (document.getElementById) {
		if (String(targetId)!=''&&String(targetId)!='null'&&String(targetId)!='undefined')
		{
			var target = document.getElementById( targetId );
			target.style.display = sAction;
		}
	}
}

//-->