function sendRequest(file,id) {
	var http_request = false;
	var XMLResponse;


    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/html');

        }
    } else if (window.ActiveXObject) { // IE
	    try {
	        http_request  = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch(e) {
	        try {
	            http_request  = new ActiveXObject("Microsoft.XMLHTTP");
	        } catch(e) {
	            http_request  = null;
	        }
	    }
    }

    if (!http_request) {
        return false;
    }
    var jetzt = new Date();
    file = file + '&rnd=' + jetzt.getTime();
    
    http_request.open('GET', file, true);
    
    
	http_request.onreadystatechange = function () {
         if (http_request.readyState == 4) {
         	
			if (http_request.status == 200) {
				
			    document.getElementById(id).innerHTML = http_request.responseText;

			}         	
            
         }
     };
	http_request.send(null);

}

function change_font(size)
{
	document.body.style.fontSize = size + "em";
	var url = "/_ajax/set_font.php?size=" + size;
	new Ajax(url, {
		method: 'get',
		onComplete: function() {
			//location.reload();
		}
	}).request();
}

function druck(){
	document.body.focus();
    self.print();
}




var opensub = new Array();
var opensubg = new Array();
opensub[1] = 0;
opensub[2] = 0;
opensubg[1] = 0;
opensubg[2] = 0;
var timeout	= 500;
var closetimer	= 0;
var closetimer2	= 0;

function showSubmenu(parentNode,id,lvl) {
	
	
	if(document.getElementById('subnav'+lvl+'_' + id)){
		
		mcancelclosetime();
		mcancelclosetime2();

		if(opensub[lvl] && opensub[lvl] != document.getElementById('subnav'+lvl+'_' + id)) {
			opensub[lvl].style.display = 'none';
			opensubg[lvl].style.display = 'none';
			if(lvl == 1){
				if(opensub[2]){
			  opensub[2].style.display = 'none';
			  opensubg[2].style.display = 'none';
				}
			}
		}
		
		opensub[lvl] = document.getElementById('subnav'+lvl+'_' + id);
		opensubg[lvl] = document.getElementById('subnav'+lvl+'bg_' + id);
		
		if (lvl > 1)
		  var width = parentNode.offsetWidth+1;
	 else
		  var width = 0;
	 
		document.getElementById('subnav'+lvl+'_' + id).style.left = (parentNode.offsetLeft+width) + 'px';
    if (lvl > 1)
      document.getElementById('subnav'+lvl+'_' + id).style.top = (parentNode.firstChild.offsetTop-5) + 'px';
		document.getElementById('subnav'+lvl+'_' + id).style.display = 'block'; 
		document.getElementById('subnav'+lvl+'bg_' + id).style.left = (parentNode.offsetLeft+width) + 'px'; 
		if (lvl > 1)
      document.getElementById('subnav'+lvl+'bg_' + id).style.top = (parentNode.firstChild.offsetTop-5) + 'px';
		document.getElementById('subnav'+lvl+'bg_' + id).style.display = 'block'; 
		document.getElementById('subnav'+lvl+'bg_' + id).style.width = document.getElementById('subnav'+lvl+'_' + id).offsetWidth + "px";		
		document.getElementById('subnav'+lvl+'bg_' + id).style.height = document.getElementById('subnav'+lvl+'_' + id).offsetHeight + "px";	
		
		
	}
	return false;
}

// close showed layer
function mclose1()
{

	if(opensub[1]) {
		opensub[1].style.display = 'none';
		opensubg[1].style.display = 'none';

	}
	mclose2();
}
function mclose2()
{

	if(opensub[2]) {
		opensub[2].style.display = 'none';
		opensubg[2].style.display = 'none';

	}
}

// go close timer
function mclosetime1()
{
	closetimer = window.setTimeout(mclose1, timeout);
}
function mclosetime2()
{
	closetimer2 = window.setTimeout(mclose2, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

function mcancelclosetime2()
{
	if(closetimer2)
	{
		window.clearTimeout(closetimer2);
		closetimer2 = null;
	}
}


function searchNow(){
	if($('searchstring').value.length > 2) {
		
		WaitKeyPress.tick(GetRandom(1,9999),1);
		
	}
	
}

press_id = 0;
search_time = 1;
var WaitKeyPress = function() {
  var birthtime = new Date();
  /* private attributes */ 
  var _created = new Date(); 
  /* private methods */ 
  var _calculateAge = function() 
  { 
  	return new Date().getTime() - _created.getTime(); 
  }
  
  return {
	time  : 2,
	test  : false,
	tick  : function(id,status)
	{
	  this.test = this.test+"id: "+id+" press_id: "+press_id+" status: "+status+"\n";
	  if(status == 1) {
	  	press_id = id;
	  	search_time = 2;
	  	$('search_results').innerHTML = '<div id="ajax_loader"></div>';
	  }
	  if(press_id == id){
	  	search_time--;
	  	if(search_time >= 0) setTimeout('WaitKeyPress.tick('+id+',0);',350);
	    else {
	      //alert("Time is: "+search_time+" and Date: " + birthtime.toLocaleString());
	      press_id = 0;
	      search_time = 2;
	      //alert(this.test);
	      get_searchresults();
	    }

	  }
	  
	  
	},
	tellAge:function() { alert('I am '+_calculateAge()+'ms old.'); }
  }
}();


function GetRandom( min, max ) {
  if( min > max ) {
    return( -1 );
  }
  if( min == max ) {
    return( min );
  }
  return min + parseInt( Math.random() * ( max-min+1 ))
}


function get_searchresults()
{
	var searchstring = $('searchstring').value;
	var url = "/_ajax/search_results.php?searchstring=" + searchstring;
	new Ajax(url, {
		method: 'get',
		update: $('search_results')
	}).request();
}

function handle_reservation(httpRequest) {
  
  if (httpRequest.readyState == 4)
    if (httpRequest.status == 200) {
      
      var root = httpRequest.responseXML;
      
      if (root.firstChild.nodeName == 'addreservation') {
        var addreservation = root.firstChild;
        var status = addreservation.childNodes[1].firstChild.textContent;
      } else {
        var addreservation = root.childNodes[1];
        var status = addreservation.firstChild.firstChild.nodeValue;
      }
      
      if (status == 'error') {
        if (addreservation.childNodes[1].nodeName=='error')
          var errors = addreservation.childNodes[1];
        else
          var errors = addreservation.childNodes[3];
        
        for(var i=0;i<errors.childNodes.length;i++)
          
          if (errors.childNodes[i].nodeName == 'item') {
            if (errors.childNodes[i].firstChild.textContent != undefined)
              alert('ERROR: ' + errors.childNodes[i].firstChild.textContent);
            else
              alert('ERROR: ' + errors.childNodes[i].firstChild.nodeValue);
          }
        
      } else
        alert(status);
    } else
      alert('ERROR: '+req.status);

  
}

function make_reservation()
{
  if ($('personen').value > 0) {
    if ($('nachname').value.length > 0 && $('vorname').value.length > 0) {
      var date = document.getElementById('datum').value;
      var zeit = document.getElementById('hour').value + document.getElementById('minute').value;
      var datum = date.split('.');
      var datumzeit = datum[2]+datum[1]+datum[0]+zeit+'00';
    	var url = "/_ajax/make_reservation.php?restaurantID="+$('restaurantID').value+'&nachname='+$('nachname').value+'&vorname='+$('vorname').value+'&email='+$('email').value+'&telefon='+$('telefon').value+'&mobile='+$('mobile').value+'&strasse='+$('strasse').value+'&plz='+$('plz').value+'&ort='+$('ort').value+'&datumzeit='+datumzeit+'&personen='+$('personen').value+'&bemerkungen='+$('bemerkungen').value;
    	
    	new Ajax.Request(url,
      {
        method:'get',
        onSuccess: function(transport){
          handle_reservation(transport);
        },
        onFailure: function(){ alert('Something went wrong...') }
      });

    } else
      alert('Es muss einen Vor- und Nachnamen angegeben werden!');
  } else
    alert('Es muss für mindestens eine Person reserviert werden!');
  
}

