function getXmlHttpRequestObject()
{
  if(window.XMLHttpRequest)
  {
    return new XMLHttpRequest();
  }
  else if(window.ActiveXObject)
  {
    return new ActiveXObject("Microsoft.XMLHTTP");
  }
  else
  {
    window.alert("Cannot initialize XmlHttpRequestObject");
  }
}
/** Dynamic Booking*/
  function Dyn_Friend(){
    var xmlReq_Friend = getXmlHttpRequestObject();
    if(document.getElementById('fy_name').value=="YOUR NAME*"){
      document.getElementById("send2friendMSG").style.display = "block";
      document.getElementById("send2friendMSG").style.background = "#f66";
      document.getElementById("send2friendMSG").style.border = "2px solid #600";
      document.getElementById("send2friendMSG").innerHTML = "Please input your name.";
      document.getElementById('fy_name').focus();
      return false;
    }else if(!Main_ChkMail(document.getElementById('fy_mail').value)){
      document.getElementById("send2friendMSG").style.display = "block";
      document.getElementById("send2friendMSG").style.background = "#f66";
      document.getElementById("send2friendMSG").style.border = "2px solid #600";
      document.getElementById("send2friendMSG").innerHTML = "Please check your email format.";
      document.getElementById('fy_mail').focus();
      return false;
    }else if(document.getElementById('ff_name').value=="FRIEND NAME*"){
      document.getElementById("send2friendMSG").style.display = "block";
      document.getElementById("send2friendMSG").style.background = "#f66";
      document.getElementById("send2friendMSG").style.border = "2px solid #600";
      document.getElementById("send2friendMSG").innerHTML = "Please input your friend name.";
      document.getElementById('ff_name').focus();
      return false;
    }else if(!Main_ChkMail(document.getElementById('ff_mail').value)){
      document.getElementById("send2friendMSG").style.display = "block";
      document.getElementById("send2friendMSG").style.background = "#f66";
      document.getElementById("send2friendMSG").style.border = "2px solid #600";
      document.getElementById("send2friendMSG").innerHTML = "Please check your friend email format.";
      document.getElementById('ff_mail').focus();
      return false;
    }else{
      document.getElementById("send2friendMSG").style.display = "block";
      document.getElementById("send2friendMSG").style.background = "#099";
      document.getElementById("send2friendMSG").style.border = "2px solid #033";
      document.getElementById("send2friendMSG").innerHTML = "LOADING...";
    }
    var url = "process.php?mode=ajaxfriend";
    var params = Main_GetParamiter("fy_name,fy_mail,ff_name,ff_mail,f_msg,f_pid");
    xmlReq_Friend.open("POST", url, true);
    xmlReq_Friend.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlReq_Friend.setRequestHeader("Content-length", params.length);
    xmlReq_Friend.setRequestHeader("Connection", "close");
    xmlReq_Friend.onreadystatechange = function() {
      if (xmlReq_Friend.readyState == 4 && xmlReq_Friend.status == 200)
      {
        Datas =  xmlReq_Friend.responseText;
        if(Datas=="Error:WrongKey"){
          document.getElementById("send2friendMSG").style.display = "block";
          document.getElementById("send2friendMSG").style.background = "#f66";
          document.getElementById("send2friendMSG").style.border = "2px solid #600";
          document.getElementById("send2friendMSG").innerHTML = "The enter charactor is not matched.";
          /*document.getElementById('turning').focus();*/
          return false;
        }else{
          document.getElementById("send2friendMSG").style.display = "block";
          document.getElementById("send2friendMSG").style.background = "#099";
          document.getElementById("send2friendMSG").style.border = "2px solid #033";
          document.getElementById("send2friendMSG").innerHTML = Datas;// "The enquiry has been sent.";
          return false;
        }
      }
    }
    xmlReq_Friend.send(params);
    return false;
  }
/** Dynamic Booking*/
  function Dyn_Book(){
    var xmlReq_Book = getXmlHttpRequestObject();
    if(document.getElementById('b_name').value=="YOUR NAME*"){
      document.getElementById("bookingMSG").style.display = "block";
      document.getElementById("bookingMSG").style.background = "#f66";
      document.getElementById("bookingMSG").style.border = "2px solid #600";
      document.getElementById("bookingMSG").innerHTML = "Please input your name.";
      document.getElementById('b_name').focus();
      return false;
    }else if(!Main_ChkMail(document.getElementById('b_mail').value)){
      document.getElementById("bookingMSG").style.display = "block";
      document.getElementById("bookingMSG").style.background = "#f66";
      document.getElementById("bookingMSG").style.border = "2px solid #600";
      document.getElementById("bookingMSG").innerHTML = "Please check your email format.";
      document.getElementById('b_mail').focus();
      return false;
    }else{
      document.getElementById("bookingMSG").style.display = "block";
      document.getElementById("bookingMSG").style.background = "#099";
      document.getElementById("bookingMSG").style.border = "2px solid #033";
      document.getElementById("bookingMSG").innerHTML = "LOADING...";
    }

    var url = "process.php?mode=ajaxbook";
    var params = Main_GetParamiter("b_name,b_tel,start_book,end_book,b_mail,b_msg,b_pid");
    xmlReq_Book.open("POST", url, true);
    xmlReq_Book.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlReq_Book.setRequestHeader("Content-length", params.length);
    xmlReq_Book.setRequestHeader("Connection", "close");
    xmlReq_Book.onreadystatechange = function() {
      if (xmlReq_Book.readyState == 4 && xmlReq_Book.status == 200)
      {
        Datas =  xmlReq_Book.responseText;
        if(Datas=="Error:WrongKey"){
          document.getElementById("bookingMSG").style.display = "block";
          document.getElementById("bookingMSG").style.background = "#f66";
          document.getElementById("bookingMSG").style.border = "2px solid #600";
          document.getElementById("bookingMSG").innerHTML = "The enter charactor is not matched.";
          /*document.getElementById('turning').focus();*/
          return false;
        }else{
          document.getElementById("bookingMSG").style.display = "block";
          document.getElementById("bookingMSG").style.background = "#099";
          document.getElementById("bookingMSG").style.border = "2px solid #033";
          document.getElementById("bookingMSG").innerHTML = Datas;// "The enquiry has been sent.";
          return false;
        }
      }
    }
    xmlReq_Book.send(params);
    return false;
  }

/** Dynamic Subscribe*/
  function Dyn_Subscribe1(){
    if(document.getElementById('subname').value=="Name :"){
      alert("Please input your name.");
      document.getElementById('subscribe1').style.display='block';
      document.getElementById('subscribe2').style.display='none';
      document.getElementById('subname').focus();
      return false;
    }else if(!Main_ChkMail(document.getElementById('submail').value)){
      alert("Please check your email format.");
      document.getElementById('subscribe1').style.display='block';
      document.getElementById('subscribe2').style.display='none';
      document.getElementById('submail').focus();
      return false;
    }else if(document.getElementById('turning').value==""){
      document.getElementById('subscribe1').style.display='none';
      document.getElementById('subscribe2').style.display='block';
      document.getElementById('turning').focus();
      return false;
    }else{
      var xmlReq_Subscribe = getXmlHttpRequestObject();
      var url = "process.php?mode=ajaxsubscribe";
      var params = Main_GetParamiter("subname,submail,turning");
      xmlReq_Subscribe.open("POST", url, true);
      xmlReq_Subscribe.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      xmlReq_Subscribe.setRequestHeader("Content-length", params.length);
      xmlReq_Subscribe.setRequestHeader("Connection", "close");
      xmlReq_Subscribe.onreadystatechange = function() {
        if (xmlReq_Subscribe.readyState == 4 && xmlReq_Subscribe.status == 200)
        {
          Datas =  xmlReq_Subscribe.responseText;
          if(Datas=="Error:WrongKey"){
            document.getElementById('subscribe1').style.display='none';
            document.getElementById('subscribe2').style.display='block';
            alert("The enter charactor is not matched.");
            document.getElementById('turning').focus();
            return false;
          }else{
            alert(Datas);
            document.getElementById('subname').value = "Name :";
            document.getElementById('submail').value = "Email :";
            document.getElementById('turning').value = "";
            document.getElementById('subscribe1').style.display='block';
            document.getElementById('subscribe2').style.display='none';
            return false;
          }
        }
      }
      xmlReq_Subscribe.send(params);
      return false;
    }
    return false;
  }

/** Dynamic ContactUs*/
  function Dyn_ContactUs(){
    var xmlReq_ContactUs = getXmlHttpRequestObject();
    if(document.getElementById('conname').value=="Name:"){
      document.getElementById("contactMSG").style.display = "block";
      document.getElementById("contactMSG").style.background = "#f66";
      document.getElementById("contactMSG").style.border = "2px solid #600";
      document.getElementById("contactMSG").innerHTML = "Please input your name.";
      document.getElementById('conname').focus();
      return false;
    }else if(!Main_ChkMail(document.getElementById('conmail').value)){
      document.getElementById("contactMSG").style.display = "block";
      document.getElementById("contactMSG").style.background = "#f66";
      document.getElementById("contactMSG").style.border = "2px solid #600";
      document.getElementById("contactMSG").innerHTML = "Please check your email format.";
      document.getElementById('conmail').focus();
      return false;
    }else{
      document.getElementById("contactMSG").style.display = "block";
      document.getElementById("contactMSG").style.background = "#099";
      document.getElementById("contactMSG").style.border = "2px solid #033";
      document.getElementById("contactMSG").innerHTML = "LOADING...";
    }

    var url = "process.php?mode=ajaxcontact";
    var params = Main_GetParamiter("conname,conmail,contel,conmessage");
    xmlReq_ContactUs.open("POST", url, true);
    xmlReq_ContactUs.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlReq_ContactUs.setRequestHeader("Content-length", params.length);
    xmlReq_ContactUs.setRequestHeader("Connection", "close");
    xmlReq_ContactUs.onreadystatechange = function() {
      if (xmlReq_ContactUs.readyState == 4 && xmlReq_ContactUs.status == 200)
      {
        Datas =  xmlReq_ContactUs.responseText;
        if(Datas=="Error:WrongKey"){
          document.getElementById("contactMSG").style.display = "block";
          document.getElementById("contactMSG").style.background = "#f66";
          document.getElementById("contactMSG").style.border = "2px solid #600";
          document.getElementById("contactMSG").innerHTML = "The enter charactor is not matched.";
          /*document.getElementById('turning').focus();*/
          return false;
        }else{
          document.getElementById("contactMSG").style.display = "block";
          document.getElementById("contactMSG").style.background = "#099";
          document.getElementById("contactMSG").style.border = "2px solid #033";
          document.getElementById("contactMSG").innerHTML = Datas;// "The enquiry has been sent.";
          return false;
        }
      }
    }
    xmlReq_ContactUs.send(params);
    return false;

  }

  function Dyn_Calendar(ppt,n,Y,ctype){
    var xmlReq_Calendar = getXmlHttpRequestObject();
    var url = "process.php?mode=ajaxcalendar";
    if(ctype=="Y-1"){
      Y = Y-1;
    }else if(ctype=="n-1"){
      n = n-1;
    }else if(ctype=="n+1"){
      n = n+1;
    }else if(ctype=="Y+1"){
      Y = Y+1;
    }
    var params = "ppt_id="+ppt+"&n="+n+"&Y="+Y;
    xmlReq_Calendar.open("POST", url, true);
    xmlReq_Calendar.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlReq_Calendar.setRequestHeader("Content-length", params.length);
    xmlReq_Calendar.setRequestHeader("Connection", "close");
    xmlReq_Calendar.onreadystatechange = function() {
      if (xmlReq_Calendar.readyState == 4 && xmlReq_Calendar.status == 200)
      {
        Datas =  xmlReq_Calendar.responseText;
        document.getElementById("availability").innerHTML = Datas
      }
    }
    xmlReq_Calendar.send(params);
    return false;
  }

/** Dynamic quick search */
  function Dyn_Qsearch()
  {
    var xmlReq_Qsearch = getXmlHttpRequestObject();
    var url = "process.php?mode=ajaxsearch";
    var params = Main_GetParamiter("search_type,search_country,search_area,search_subarea,search_price,search_bedrooms");
    xmlReq_Qsearch.open("POST", url, true);
    xmlReq_Qsearch.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlReq_Qsearch.setRequestHeader("Content-length", params.length);
    xmlReq_Qsearch.setRequestHeader("Connection", "close");
    xmlReq_Qsearch.onreadystatechange = function() {
      if (xmlReq_Qsearch.readyState == 4 && xmlReq_Qsearch.status == 200)
      {
        Datas =  xmlReq_Qsearch.responseText;
        document.getElementById("wrapSearch").innerHTML = Datas;
      }
    }
    xmlReq_Qsearch.send(params);
    return false;
  }

/**
 *Get paramiters
 *
 * @param string Params is set of paramiter.
 *
 */
  function Main_GetParamiter(Params){
    var Paramsplit = Params.split(",");
    var params = "mode=ajax";
    for(i=0; i<Paramsplit.length; i++){
      params += "&"+Paramsplit[i]+"="+document.getElementById(Paramsplit[i]).value;
    }
    return params;
  }

/**
 *Check Email format
 *
 * @param string Email address.
 *
 */
  function Main_ChkMail(val){
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if (!filter.test(val)){
      return false;
    } else{
      return true;
    }
  }