/**** This application notifies the user that he/she will be called back shortly after posting a callback ****/
function formsubmit( divid, linkPre, form )
{
  //store the data
  var s_name = form.elements['cbName'].value;
  var s_phone = form.elements['cbPhone'].value;
  var s_day = form.elements['cbDay'].value;
  var s_time = form.elements['cbTime'].value;
  
  //initially check that all the elements are filled out
  if ( s_name == "" ||
       s_phone == "" ||
       s_day == "" ||
       s_time == "" )
  {
    var message = "All the fields must be filled out.\n\nPlease try again.";
    alert( message );
    return;
  }

  
  //create a request
  var xmlhttp = new XMLHttpRequest( );
  
  //check if there weren't any problems
  if ( xmlhttp )
  {
    //show that we're waiting
    divid.innerHTML = "<img src='" + linkPre + "/Resources/Images/status_anim.gif' alt='Please wait...' />";
  }
  else
  {
    //something serious happened
    divid.innerHTML = "<div class='errormsg' style='text-align:left'>Your browser may not support this feature. It seems as though you should upgrade. This site will work with all modern browsers (IE5+, Firefox, Safari, Netscape6+, etc.).</div>";
  }
  
  //send the request
  xmlhttp.open( "POST", linkPre + "/Resources/ServerSideScripts/AJAX/CallBack.php", true );
  
  //register a "what to do while waiting" function
  xmlhttp.onreadystatechange = function( )
  {
    if ( xmlhttp.readyState == 4 )
    {
      if ( xmlhttp.status == 200 )
      {
        //server responded ok
        //check if the result is 1 or 0
        var xml_result_tag = xmlhttp.responseXML.getElementsByTagName("result");
        var xml_name_tag =   xmlhttp.responseXML.getElementsByTagName("name");
        var len = xml_result_tag.length;
	//alert(xmlhttp.responseText);//debug whole xml output
        
        //just verify that the XML document has a <result> tag
        if ( len < 1 )
        {
          //we have a problem, so exit
          divid.innerHTML = "<div class='errormsg' style='text-align:left'>Sorry, but an error has occured on our servers. Please try again later or try emailing us. We usually respond within 12 hours.<!-- server error 'bad xml' --></div>";
        }
	else
	{
		if ( xml_result_tag[0].firstChild.nodeValue == "1" )
		{
		//success
		divid.innerHTML = "<div class='okmsg' style='text-align:left;'>We will get back to you shortly, " + xml_name_tag[0].firstChild.nodeValue + ".<br /><br /></div>";
		}
		else
		{
		//some sort of server failure
		divid.innerHTML = "<div class='errormsg' style='text-align:left'>Sorry, but an error has occured on our servers. Please try again later or try emailing us. We usually respond within 12 hours.<!-- server error 'bad server script' --></div>";
		}
	}
      }
      else
      {
        divid.innerHTML = "<div class='errormsg' style='text-align:left'>Sorry, but an error has occured on our servers. Please try again later or try emailing us. We usually respond within 12 hours.<!-- server error 'non 200 response' --></div>";
      }
    }
  }
  

  
  //set some headers
  xmlhttp.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
  
  //send the request
  xmlhttp.send( "name=" + s_name + "&phone=" +
	s_phone + "&day=" + s_day +
	"&time=" + s_time );
}
