
function GetXmlHttpObject()
  { 
    var objXMLHttp=null
    if (window.XMLHttpRequest)
			{
        objXMLHttp=new XMLHttpRequest()
      }
			else if (window.ActiveXObject)
			{
        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
			}
      return objXMLHttp
  }

function request_json(url, data, div){
    var inputs = getElementsByClass('button-loader',null,'input');
    var loaders = getElementsByClass('loader-image',null,'img');

    for(var i=0, max = inputs.length; i < max; i++){
        inputs[i].style.display = 'none';
    }

    for(var j=0, maxj = loaders.length; j < maxj; j++){
        loaders[j].style.display = 'block';
    }

    xmlHttp = GetXmlHttpObject();

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null)
    {
        alert ("Browser does not support HTTP Request");
        return;
    }
    xmlHttp.onreadystatechange = function (){
        if (xmlHttp.readyState == 4 || xmlHttp.readyState=="complete"){
            var json=new Function("return " + xmlHttp.responseText)();
            
            $(div).innerHTML = json.body;
            setForm();
            hide_calendar();
            date_chooser_init();
            date_chooser_call();

            if(json.result == '1'){
                clearForms();
            }

            for(var i=0, max = inputs.length; i < max; i++){
                inputs[i].style.display = 'block';
            }

            for(var j=0, maxj = loaders.length; j < maxj; j++){
                loaders[j].style.display = 'none';
            }

        }
    }

    if(data){
        xmlHttp.open('POST', url, true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", data.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(data);
    } else {
        xmlHttp.open("GET", url, true);
        xmlHttp.send(null);
    }
}

function sendReservas(){
    var formElements = $('reserva_form_id').elements,
        query = '';

    $('reservas_habitacion').value = $('reserva_tip_hab').options[$('reserva_tip_hab').selectedIndex].value;

    for(var i=0, max = formElements.length; i < max; i++){
        if(formElements[i].name != ''){
            query += formElements[i].name +'='+ formElements[i].value;

            if(max != (i + 1))
                query += '&';
        }

    }

    request_json($('reserva_form_id').action, query, 'reserva');
}

function sendContact(){
    var formElements = $('contact_form_id').elements,
        query = '';

    for(var i=0, max = formElements.length; i < max; i++){
        query += formElements[i].name +'='+ formElements[i].value;

        if(max != (i + 1))
            query += '&';
    }

    request_json($('contact_form_id').action, query, 'contact');
}


function load_content(div, url, poststr, upload)
{
		if(!div || !url)
			{
				return;
			}
		id(div).innerHTML = '<span class="loading">Loading..</span>';
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
			alert ("Browser does not support HTTP Request");
			return;
		}
		xmlHttp.onreadystatechange = function ()
			{
				if (xmlHttp.readyState == 4 || xmlHttp.readyState=="complete")
					{
						id(div).innerHTML = xmlHttp.responseText;
						setForm();
						hide_calendar();
  						date_chooser_init();
  						date_chooser_call();
					} 
			}
		if(poststr)
			{
				xmlHttp.open('POST', url, true);
				xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				xmlHttp.setRequestHeader("Content-length", poststr.length);
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.send(poststr);	
			}
		else
			{
				xmlHttp.open("GET", url, true);
				xmlHttp.send(null);
			}
}

 function clearForms(){

   // declare element type
   var type = null;
   // loop through forms on HTML page
   for (var x=0; x<document.forms.length; x++){
     // loop through each element on form
     for (var y=0; y<document.forms[x].elements.length; y++){
       // define element type
       type = document.forms[x].elements[y].type
       // alert before erasing form element
       //alert('form='+x+' element='+y+' type='+type);
       // switch on element type
       switch(type){
         case "text":
         case "textarea":
         case "password":
         //case "hidden":
           document.forms[x].elements[y].value = "";
           break;
         case "radio":
         case "checkbox":
           document.forms[x].elements[y].checked = "";
           break;
         case "select-one":
           document.forms[x].elements[y].options[0].selected = true;
           break;
         case "select-multiple":
           for (z=0; z<document.forms[x].elements[y].options.length; z++){
             document.forms[x].elements[y].options[z].selected = false;
           }
         break;
       }
     }
   }
 }

