//create XMLHttpRequest object to communicate to server
function createXMLHttpRequest() {

  if (typeof XMLHttpRequest != "undefined") { //for mozilla
    var httpReq=new XMLHttpRequest();
    return httpReq;
  } else {
    var arrObj=["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMHttp"];
    var oXml=null;
    for (var i=0; i<arrObj.length; i++) {
      try {
        oXml=new ActiveXObject(arrObj[i]);
        return oXml;
      } catch (e) { }     
    }
  }
}

//Makes an Ajax Call and puts the result in a Div
function AjaxToDivGet( url, divId) {

	    var xmlReq=createXMLHttpRequest();
	    xmlReq.open("GET", url , true);
	    xmlReq.onreadystatechange=function() {
                                   if (xmlReq.readyState != 4)  { return; }
                                        // alert ( xmlReq.responseText );
                                        NlsGetElementById( divId ).innerHTML =  xmlReq.responseText;
                                   }
	    xmlReq.send(null);
}

function sendCall(url){
    var xmlReq=createXMLHttpRequest();
    xmlReq.open("GET", url , true);
    xmlReq.onreadystatechange=function(){
		if(xmlReq.readyState != 4){
			return;
		}
	}
    xmlReq.send(null);
}

function AjaxToDivPost( url, divId , parameters) {

	    var xmlReq=createXMLHttpRequest();
	    xmlReq.open("POST", url , true);
		xmlReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    xmlReq.onreadystatechange=function() {
                                   if (xmlReq.readyState != 4)  { return; }
                                        //alert ( xmlReq.responseText );
                                   }
	    xmlReq.send(parameters);
}



//Makes an Ajax Call and expects the result to be pure javascript code, and it will execute the returned javascript code
function AjaxToJS( url ) {

	    var xmlReq=createXMLHttpRequest();
	    //alert ( url );
	    xmlReq.open("GET", url , true);
	    xmlReq.onreadystatechange=function() {
                                   if (xmlReq.readyState != 4)  { return; }
                                    //alert ( xmlReq.responseText );
                                        eval(xmlReq.responseText);

                                   }
	    xmlReq.send(null);
}


/**Cross browser related methods*/
function NlsGetElementById(id) {
  if (document.all) {
      return document.all(id);
  } else
  if (document.getElementById) {
      return document.getElementById(id);
  }
};

var defaultYear = '2010';
var defaultRental = 'apartment';

var curYear = defaultYear;
var curRental = defaultRental;

function initCal(){
	var url = "calendar_inner.php?year=" + defaultYear + "&rental = " + defaultRental;
	AjaxToDivGet(url,'calendar');
}

function changeRental(rental){
	curRental = rental;
	var url = "calendar_inner.php?year=" + curYear + "&rental=" + rental;
	AjaxToDivGet(url,'calendar');
}

function changeYear(year){
	curYear = year;
	var url = "calendar_inner.php?year=" + year + "&rental=" + curRental;
	AjaxToDivGet(url,'calendar');
}



// inquiry form functions

// returns true if the string is empty
function isEmpty(str){
	return (str == null) || (str.value.length == 0);
}

// returns true if the email is valid to the pattern
function isEmail(str){
	var re = /^(\w|\.)+@\w+\.((\w{3,3})|(\w{2,2}\.\w{2,2}))$/i;
	return re.test(str.value);
}

function showError(str){
	var error = NlsGetElementById('error');
	error.style.display = 'block';
	error.innerHTML = str;
}

function verifyInquiry(){
	
	var name = NlsGetElementById('name');
	var email = NlsGetElementById('email');
	var rental_apt = NlsGetElementById('rental_apt').checked;
	var rental_villa = NlsGetElementById('rental_villa').checked;
	
	if(isEmpty(name)){
		showError('Please enter your name.');
		return false;
	}else if(!isEmail(email)){
		showError('Please enter a valid email address.');
		return false;
	}else if(rental_apt == false && rental_villa == false){
		showError('Please choose your desired accommodation.');
		return false;
	}else{
		return true;
	}
	
}