/**
 * AJAX code to fill search field with server items
 */

var gp_div, gp_hidden;
var req; 



/**
 * send request
 */
function getprice_prefetch(id)
{
  //getprice_init();
  var regform = document.getElementById('registerform');
  var sels = regform.getElementsByTagName('select');
  var sub_ids = '';
  for( i=0; i<sels.length; i++)
  {
    var reg = "subevent(\\d+)";
    var regex = new RegExp(reg, "i");
 
    if( sels[i].id.match(regex) && sels[i].options[sels[i].selectedIndex].value ) 
      sub_ids += '&sub_id[]=' + sels[i].options[sels[i].selectedIndex].value;
  }

  //req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');    // needed in case of POST (not GET) only
  req.open('GET','http://www.workingoffice.de/cato_calcprice.php?id=' + id + sub_ids, true);
  req.onreadystatechange = process_gpprefetch;   // call it AFTER open() to make it work in f**king IE
  req.send(null);
}


/**
 * handle response
 */
function process_gpprefetch()
{
  if( req.readyState == 4 )   // XHR-state 'complete'
  {
    if( req.status == 200 )   // want HTTP status code 'OK' only
    {
      var resp_arr = req.responseText.split("\n");
      gp_hidden.value = gp_div.innerHTML = resp_arr[0];
      if( resp_arr[1] == '1' )
        alert("Achtung: Ihre Buchungen überschneiden sich!");
    }  
    else
      alert("There was a problem retrieving the XML data:\n" + req.statusText);
  }
}



/**
 * init funcs
 */
function getprice_init()
{
  if( typeof gp_div == 'undefined' )      
    gp_div = document.getElementById('totalprice_div');
  if( typeof gp_hidden == 'undefined' )      
    gp_hidden = document.getElementById('totalprice');
  if( typeof req == 'undefined' )      
    req = createXMLHttpRequest();
}

function createXMLHttpRequest()
{
  var myreq = null;

  if( window.XMLHttpRequest )      // Mozilla, Safari, ...
    myreq = new XMLHttpRequest();
  else if( window.ActiveXObject )  // IE
    myreq = new ActiveXObject("Microsoft.XMLHTTP");

/*  var req = null;
  try 
  {
    req = new ActiveXObject("MSXML2.XMLHTTP");
  }
  catch( err_MSXML2 )
  {
    try
    {
      req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch( err_Microsoft )
    {
      if( typeof XMLHttpRequest != "undefined" ) 
        req = new XMLHttpRequest;
    }
  } */

  return myreq;
}



