﻿//THIS CONTROLLER IS FOR KEYPRESS EVENTS TO FILL IN THE VILLA DROP DOWN ON KEY PRESS
function js_controllerKeys(sender, evt) {
  try {
    var ddVillas = document.forms[0].selVillas;
    if (evt.keyCode >= 65 && evt.keyCode <= 90 || evt.keyCode == 8) {
      if (sender.id == "txtVilla") {
        if (Trim(document.forms[0].txtVilla.value).length > 0) {
          clearInterval(ival);
          traverseArray(document.forms[0].txtVilla.value, evt);
          var obj = getAnchorPosition('txtVilla');
          var objLst = document.getElementById('selVillas');
          with (objLst) {
            style.display = "";
            style.visibility = "visible";
            style.top = obj.y + 22 + "px";
            style.left = obj.x + "px";
          }
        }
        else {
          ClearDropDown('selVillas');
          hideDD();
        }
      }
    }
    if (evt.keyCode == 40 || evt.keyCode == 38) {
      clearInterval(ival);
      if (sender.id == "txtVilla");
      {
        if (ddVillas.length > 0) {
          ddVillas.focus();
          if (ddVillas.selectedIndex >= 0) {
            document.forms[0].txtVilla.value = ddVillas.options[ddVillas.options.selectedIndex].text;
          }
          else {
            ddVillas.options.selectedIndex = 0;
            document.forms[0].txtVilla.value = ddVillas.options[ddVillas.options.selectedIndex].text;
          }
        }
      }
    }
    if (evt.keyCode == 13 && sender.id == "selVillas") {
      hideDD();
    }
    if (evt.type == "click" && sender.id == "selVillas") {
      document.forms[0].txtVilla.value = ddVillas.options[ddVillas.options.selectedIndex].text;
      hideLayer("selVillas");
      clearInterval(ival);
    }
    if (evt.type == "blur") {
      ival = setInterval('hideDD()', 1000);
    }
  }
  catch (e) { }
}

//Used flag to check mouse pointer is out or over on villa drop down list
var chkSelectFocus = false;
function chkSelVillasDrpFocus(event) {
  if (event == 'mouseout') {
    chkSelectFocus = false;
  }
  else {
    chkSelectFocus = true;
  }
}
//SUPPORT FUNCTIONS FOR KEY PRESS EVENTS
var ival;
function hideDD() {
  if (chkSelectFocus) {
    clearInterval(ival);
    ival = setInterval('hideDD()', 1000);
  }
  else {
    hideLayer("selVillas");
    clearInterval(ival);
  }
}
function traverseArray(strVal, evt) 
{
    var stp = arrV.length;
    var currentVilla;
    var currentCentreName;
    //Fix for Villa ale of corfu 
    var splCharVillaName ="#";
    if (Trim(strVal).toLowerCase() == "ale") 
    {
        splCharVillaName = "alé"+ " (corfu)";
    }
    ClearDropDown('selVillas');
    for (var ctr = 0; ctr < stp; ctr++) 
    {
        currentCentreName = GetCentreName_2(arrV[ctr][2]);
        currentVilla = Trim(arrV[ctr][0]).toLowerCase() + " (" + currentCentreName.toLowerCase() + ")";
        if (currentVilla.indexOf(Trim(strVal).toLowerCase()) == 0 || currentVilla.indexOf(Trim(splCharVillaName).toLowerCase()) == 0) 
        {
            var optn = document.createElement("OPTION");
            optn.text = arrV[ctr][0] + " (" + GetCentreName_2(arrV[ctr][2]) + ")";
            optn.value = arrV[ctr][1];
            document.forms[0].selVillas.options.add(optn);
        }
    }
}


