var flightInfofromPanelId;
var flightInfotoPanelId;
var flightInfofromInputName;
var flightInfotoinputname;
var flightInfohiddenToCityCode;
var flightInfohiddenToCityPartner;
var flightInfofilled = false;
var allToCities = new Array();
var primaryToCities = new Array();  
var flightInfonewSet;
var flightInfostaticTextVar=false;


function FlightInfoCityList(targetId1, targetId2, title1, title2, hiddenId1, hiddenId2,hiddenId3,hiddenId4, pIndex, dataSrc1, dataSrc2,page, form,dropdownPosX,dropdownPosY,dropdownPosX2,dropdownPosY2) 
  {
  this.panel3 = new FlightInfoFromCityPanel(targetId1, title1, hiddenId1,hiddenId3,pIndex, dataSrc1, page,form,dropdownPosX,dropdownPosY);
  this.panel3.onItemSelect.subscribe(this.filterFlightInfoToCities, this, true); 
  this.panel4 = new FlightInfoToCityPanel(targetId2, title2, hiddenId2, hiddenId4, pIndex+1, dataSrc2,page,form,dropdownPosX2,dropdownPosY2);
  }

FlightInfoCityList.prototype.filterFlightInfoToCities = function (e) {
    
    var panel3Value = this.panel3.getValue();
  
   // var panel2Value = this.panel2.getValue();
  
    var newSet = new Array();
    var searchSet = new Array();
   
    if(panel3Value != "") {
            primaryToCities.length=0;
            allToCities.length=0;
            
             $.ajax({
                      type: "GET",
                      url: "/frontier/FindToCities.do?fromCity="+panel3Value,
                      async: true,
                      dataType: 'xml', 
                      success : parseXml
               });
              
    }
    function parseXml(xml){
       
                $(xml).find('alltocities').each(function(){
                   $(this).find('citydetail').each(function(){
                            allToCities.push( [$('citycode',this).text(),$('cityname', this).text(),"",$('airtran',this).text()]);
                       });
                });
                $(xml).find('primarytocities').each(function(){
                    $(this).find('citydetail').each(function(){
                               primaryToCities.push([$('citycode',this).text(),$('cityname', this).text(),"",$('airtran',this).text()]);
                      });
                });
                primaryToCities.push(0);
                allToCities.push(0);
               // newSet = primaryToCities;
                searchSet = allToCities;
                
                //FlightInfoToCityPanel.prototype.autocomplete(e,searchSet);
         }   
   this.panel4.reset();   
 }
function FlightInfoFromCityPanel(targetId, title, hiddenId,hiddenId3,pIndex, dataSrc,page,form,dropDownPosX,dropDownPosY) 
  {
  this.target = document.getElementById(targetId);
  this.title = title;
  this.blankTitle = this.titleTemp = this.title;
  this.targetId = targetId;
  this.anchorId = targetId + "_a";
  this.hiddenId = hiddenId;
  this.hiddenId3 = hiddenId3;
  this.inputName = "flyingFrom" + pIndex;
  flightInfofromInputName = "flyingFrom" + pIndex;
  this.panelId = targetId + "_panel";
  flightInfofromPanelId = targetId + "_panel";
  this.cFlag = false;
  this.pIndex = pIndex;
  this.kbIndex = -1;
  this.dropDownPosX = dropDownPosX + "px";
  this.dropDownPosY = dropDownPosY + "px";
  this.pos = pIndex;
  this.numCols = null;
  YAHOO.util.Event.addListener(targetId, "mouseover", this.targetOnMouseover, this); 
  YAHOO.util.Event.addListener(targetId, "mouseout", this.targetOnMouseout, this); 
 
  // assign an "id" to each data item
  for(var i=0; i<dataSrc.length; i++)
    dataSrc[i][2] = i;

  this.set = dataSrc;
  this.searchSet = dataSrc;
  this.selectedItem = null;

  this.form = document.forms[form];
 
  var pWrapper = document.createElement("div");

  pWrapper.style.position = "relative";
  pWrapper.style.zIndex = 100 - pIndex;

  var anchor = document.createElement("a");
  anchor.id = this.anchorId;

  var jsInput = document.createElement("div");
  jsInput.className = "jsInput" + page;

  var input = document.createElement("input");
  input.type = "text";
  input.id = this.inputName;
  input.name = this.inputName;
  input.tabIndex = "1";
  input.setAttribute("autocomplete", "off");

  YAHOO.util.Event.addListener(input, "focus", this.inputOnFocus, this); 
  YAHOO.util.Event.addListener(input, "keypress", this.inputOnKeyPress, this); 
  YAHOO.util.Event.addListener(input, "keyup", this.inputOnKeyUp, this); 
  YAHOO.util.Event.addListener(input, "keydown", this.inputOnKeyDown, this); 


  jsInput.appendChild(input);
  anchor.appendChild(jsInput);
  pWrapper.appendChild(anchor);

  var p = document.createElement("div");
  p.id = this.panelId;
  p.className = "panel";
  YAHOO.util.Event.addListener(pWrapper, "click", this.panelOnClick, this); 

  var pbody = document.createElement("div");
  pbody.className = "panelBody";
  
//  var pFootText = document.createElement("div");
//  pFootText.id="flightinfofromFooterText";
//  pFootText.className = "panelFootText";
//
// 
//  var pElement = document.createElement("p");
//  var text = "For additional cities, please type the first three letters of the city name or airport code";
//  textNode = document.createTextNode(text);
//
//  pElement.appendChild(textNode)
//  pFootText.appendChild(pElement);
  p.appendChild(pbody);
//  p.appendChild(pFootText);
  
  pWrapper.appendChild(p);
  this.target.appendChild(pWrapper);

  this.onItemSelect = new YAHOO.util.CustomEvent("onItemSelect", this); 
  //this.render(this.searchSet);

  YAHOO.util.Event.addListener(window, "load", this.initPanEvents, this);
  YAHOO.util.Event.addListener(window,'click',this.initPanEvents,this);
  }

FlightInfoFromCityPanel.prototype.targetOnMouseover = function(e, obj) {
  obj.cFlag = true; 
}

FlightInfoFromCityPanel.prototype.targetOnMouseout = function(e, obj) {
  obj.cFlag = false; 
}

FlightInfoFromCityPanel.prototype.inputOnFocus = function(e, obj) {
    var input = YAHOO.util.Event.getTarget(e);
  
    if(input.setSelectionRange)
      input.setSelectionRange(0, input.value.length);
    else
      input.select();
   
    //this.set = primarycities;
    //obj.showPanel(this.set);
    
}
FlightInfoFromCityPanel.prototype.showPanel = function(dataSrc) {
   
    var obj = document.getElementById(this.panelId);
    if(obj.style.display == "block")
      return;
 
    this.searchSet = dataSrc;
    this.render(this.searchSet);
    obj.style.display = "block";
    this.setWidth();
 } 
 
FlightInfoFromCityPanel.prototype.inputOnKeyPress = function(e) {
    if(!e) 
        e = window.event;
  if(e.keyCode==13)
      return false;
}

FlightInfoFromCityPanel.prototype.inputOnKeyUp = function(e,obj) {

    var value = document.getElementById(obj.inputName).value;
//      if(value.length <= 0){
//        this.set = primarycities;
//        flightInfostaticTextVar= true;
//      }else{
        this.set = allcities;
//        flightInfostaticTextVar= false;
//      }
      if(value.length >= 1){
      obj.autoComplete(e,this.set);
      }
}

FlightInfoFromCityPanel.prototype.panelOnClick = function(e, obj) {
      if(!e) 
        e = window.event;
   
   var target = e.target ? e.target.nodeName.toLowerCase() : e.srcElement.nodeName.toLowerCase();
      if(target == "li" || target == "div" || target == "ul" || target == "h5"){
           document.getElementById(obj.inputName).focus();
      }
             
}

FlightInfoFromCityPanel.prototype.autoComplete = function(e,dataSrc) {
    var input = YAHOO.util.Event.getTarget(e);    
   if(this.titleTemp == input.value)
      return;
  
    if(!e) 
      e = window.event;
    var results = new Array();
    var list = dataSrc;
    var value = input.value.toLowerCase();
    var text;
    var code;
    
    var parts = new Array();
    
    for(var i=0; i<list.length-1; i++) {
      text = list[i][1];
      text = text.toLowerCase();
     
        if(text.indexOf(value) == 0) {
            results[results.length] = list[i];
            continue;
      }
     
      text = list[i][0];
      text = text.toLowerCase(); 
      if(text.indexOf(value) == 0) {
         results[results.length] = list[i];
         continue;
      }
    }
  
    results[results.length] = 0;
   
    var pbody = document.getElementById(this.panelId).getElementsByTagName("div")[0];
    var obj = document.getElementById(this.panelId);
    var input = document.getElementById(this.inputName);
    if(results.length > 1) {
       
      this.searchSet = results;
      this.render(this.searchSet);
      if(e.keyCode!=13){
      obj.style.display = "block";
      this.setWidth();
      }
      if(results.length == 2)
          
           pbody.getElementsByTagName("a")[0].className =  "selected" ;
      }
    else {
      pbody.innerHTML = "<ul><li><h5>No Airports - Please backspace.</h5></li></ul>";
         if(results.length == 1){
          obj.style.display = "block";
      }
        this.setWidth();
      }
      
//      if(document.getElementById('flightinfofromFooterText') && value != " " && flightInfostaticTextVar == false){
//      var ps=document.getElementById(this.panelId);
//      var pb=document.getElementById('flightinfofromFooterText');
//      ps.removeChild(pb);
     // }
     
 }  
FlightInfoFromCityPanel.prototype.inputOnKeyDown = function(e, obj) {
  
    obj.titleTemp = document.getElementById(obj.inputName).value;
    obj.kbListener(e);
    }

FlightInfoFromCityPanel.prototype.kbListener = function(e) {
      var list = document.getElementById(this.panelId).getElementsByTagName("div")[0].getElementsByTagName("a");
      var input = document.getElementById(this.inputName);
      var obj = document.getElementById(this.panelId);
      
      var inputValue = false;
      if(!e) 
        e = window.event;
    
//    if(input.value == "" && e.keyCode==9){
//        this.hidePanel(); 
//        }else if(input.value.length > 0 && e.keyCode==9){
//          this.hidePanel();
//        }
   var prev;
      if(e.keyCode==13) {
        e.target ? e.preventDefault() : e.returnValue = false;
       
        if(list.length == 1) 
               this.kbIndex = 0;
        
        if(this.kbIndex == -1 || list.length == 0) {
            this.kbIndex = (this.kbIndex == list.length-1) ? 0 : this.kbIndex+1;
            this.onclickWrap(list[this.kbIndex]);
        }else 
          this.onclickWrap(list[this.kbIndex]);
        
       // input.blur();
        
        }
      else if((e.shiftKey && e.keyCode==9) || e.keyCode==38) {
       
        if(list.length == 0) 
          return;
         
        e.target ? e.preventDefault() : e.returnValue = false;
        this.kbIndex = (this.kbIndex==0 || this.kbIndex==-1) ? list.length-1 : this.kbIndex-1;
        list[this.kbIndex].className = "selected";
        prev = (this.kbIndex == list.length-1) ? 0 : this.kbIndex+1;
        list[prev].className = ((this.selectedItem && (this.selectedItem.id == list[prev].id)) || this.kbIndex==prev) ? "" : ""; //"commented "selected" for the first option by damu on 22/06/09
       
        }

      else if(e.keyCode==9 || e.keyCode==40) {
         
        if(list.length == 0) 
            return;
        if(list.length == 1 && input.value.length >=1){
           for(var i = 0;i <allcities.length;i++){
                        if(allcities[i][1] == input.value){
                                inputValue = true;
                        }}
           if(inputValue == false){
              this.kbIndex = (this.kbIndex == list.length-1) ? 0 : this.kbIndex+1;
              this.onclickWrap(list[this.kbIndex]);
              return;
           }
         return;
        }
        if(obj.style.display == "block"){
        e.target ? e.preventDefault() : e.returnValue = false;
        this.kbIndex = (this.kbIndex == list.length-1) ? 0 : this.kbIndex+1;
        list[this.kbIndex].className = "selected";
        prev = (this.kbIndex == 0) ? list.length-1 : this.kbIndex-1;
        list[prev].className = ((this.selectedItem && (this.selectedItem.id == list[prev].id)) || this.kbIndex==prev) ? "" : "";
        }
       
      }
      else if(e.keyCode==27) {
        
        e.target ? e.preventDefault() : e.returnValue = false;
        this.hidePanel();
        input.blur();
      }
       else if(e.keyCode == 8 && input.value.length<=1){
       this.hidePanel(); 
      }
}

FlightInfoFromCityPanel.prototype.cityClick= function(e, obj) {
    var elTarget = YAHOO.util.Event.getTarget(e);
    
    while (elTarget.id != obj.targetId) { 
      if(elTarget.nodeName.toUpperCase() == "A") 
        {
        obj.onclickWrap(elTarget);
        break;
        }
      else 
        elTarget = elTarget.parentNode; 
      }   
 }
FlightInfoFromCityPanel.prototype.render = function(dataSrc) {
        this.kbIndex = -1;
       
        var area = document.getElementById(this.panelId).firstChild;
        area.innerHTML = "";
        var total = dataSrc.length - 1;
       
        var numCols = (this.numCols) ? this.numCols : Math.ceil(total / 20);
        var start = 0;
        var width = 0;
        var startTemp, end, ul, li, a, text, textNode;
        this.searchSet = dataSrc;
        
        var container = document.createElement("div");
        container.id = "listItems" + this.pIndex;
        //container.style ="overflow:scroll";
        
        while (start < total) {
            ul = document.createElement("ul");
            
  
            startTemp = start;
            end = Math.ceil((total - start) / numCols);
            for (var i = start; i < startTemp + end; i++) {
                a = document.createElement("a");
                
                a.id = this.pos + "-" + this.targetId + "_" + start;
                a.href = "javascript:void(0)";
                
                a.className = (this.selectedItem && (this.selectedItem.id == a.id)) ? "selected" : "";
                
                text = this.searchSet[i][1];
                
                    textNode = document.createTextNode(text);
                    a.appendChild(textNode);
                    li = document.createElement("li");
                    if(i%2==0){
                          li.style.background="#ffffff";
                    }else{
                      li.style.background="#efefef";  
                    }
                    li.appendChild(a);
                    ul.appendChild(li);
               
                start++;
            }
            numCols--;
            container.appendChild(ul);
  
        }
        area.appendChild(container);
//       if(document.getElementById('flightinfofromFooterText')== null || document.getElementById(this.inputName).value == " " ){
//            var pFootText = document.createElement("div");
//            pFootText.id="flightinfofromFooterText";
//            pFootText.className = "panelFootText";
//            var p=document.getElementById(this.panelId);
//
//            var pElement = document.createElement("p");
//            var text = "For additional cities, please type the first three letters of the city name or airport code";
//            textNode = document.createTextNode(text);
//
//            pElement.appendChild(textNode)
//            pFootText.appendChild(pElement);
//            p.appendChild(area);
//            p.appendChild(pFootText);
//           
//        
//      }
        YAHOO.util.Event.addListener(container.id, "mousedown", this.cityClick, this);
        this.setWidth();
       

}

FlightInfoFromCityPanel.prototype.onclickWrap = function(a) {
   
      this.highlight(a);
      this.setField(a.innerHTML);
      this.hidePanel();
      this.onItemSelect.fire(); 
     
}
  
FlightInfoFromCityPanel.prototype.highlight = function(a) {
  
  if(this.selectedItem)
    this.selectedItem.className = "";
    this.selectedItem = a;
    
    document.getElementById(this.selectedItem.id).className = "selected";
}
  
FlightInfoFromCityPanel.prototype.hideAll = function() {
    for(var i=0; i<allPanels.length; i++) {
      if(document.getElementById(allPanels[i].panelId).style.display == "block")
        hidePanel(allPanels[i]);
      }
}
FlightInfoFromCityPanel.prototype.setWidth = function() {
   
    var p = document.getElementById(this.panelId);
    if(p.style.display != "block")
      return;
   p.style.width = "700px";
    var width = 35;
    var uls = p.getElementsByTagName("ul");
    for(var i=0; i<uls.length; i++) {
      width += (uls[i].offsetWidth + 3);
    }
    p.style.width = width + "px";
}

FlightInfoFromCityPanel.prototype.hidePanel = function() {
   
    var obj = document.getElementById(this.panelId);
    if(obj.style.display != "block")
      return;
    obj.style.display = "none";
    this.cFlag = false;
    
}

FlightInfoFromCityPanel.prototype.setField = function(text) {
   
     var list = this.searchSet;
     document.getElementById(this.inputName).value = text;
     //document.getElementById(this.hiddenId).value = list[this.selectedItem.id.split("_")[1]][0]; 
     for(var i = 0;i <allcities.length;i++)
                    {
                        
                        if(allcities[i][1] == text){
                           
                          
                            document.getElementById(this.hiddenId).value = allcities[i][0];
                            
                            }
                    }
}

FlightInfoFromCityPanel.prototype.panOffClick = function(e, obj) {
   
      
//      var panelpopup= document.getElementById(flightInfofromPanelId);
//      var list = document.getElementById(flightInfofromPanelId).getElementsByTagName("div")[0].getElementsByTagName("a");
//      var pbody = document.getElementById(flightInfofromPanelId).getElementsByTagName("div")[0];
//      var flag = false;
//      
//     if(panelpopup.style.display == "block"){
//        for(var i=0; i<list.length; i++) {
//      if(pbody.getElementsByTagName("a")[i].className == "selected" && flag==false){
//         this.kbIndex = i;
//         flag = true;
//         }
//      }
//      if(!obj.cFlag && flag==true){
//         obj.onclickWrap(list[this.kbIndex]);
//      } 
//     }
     
    if(!obj.cFlag){
        obj.hidePanel();
    }
      
}

FlightInfoFromCityPanel.prototype.getInputValue = function() {
  return document.getElementById(this.inputName).value;
  }

FlightInfoFromCityPanel.prototype.getValue = function() {
  return document.getElementById(this.hiddenId).value;
}

FlightInfoFromCityPanel.prototype.getName = function() {
  return this.hiddenId;
}

FlightInfoFromCityPanel.prototype.initPanEvents = function(e, obj) {
  YAHOO.util.Event.addListener(document.body, "click", obj.panOffClick, obj);
}
FlightInfoFromCityPanel.prototype.reset = function() {
document.getElementById(this.inputName).value = this.blankTitle;
this.form[this.hiddenId].value = "";
this.selectedItem = null;
}

function FlightInfoToCityPanel(targetId, title, hiddenId,hiddenId3,pIndex, dataSrc,page,form,dropDownPosX,dropDownPosY) 
  {
  this.target = document.getElementById(targetId);
  this.title = title;
  this.blankTitle = this.titleTemp = this.title;
  this.targetId = targetId;
  this.anchorId = targetId + "_a";
  this.hiddenId = hiddenId;
  flightInfohiddenToCityCode = hiddenId;
  this.hiddenId3 = hiddenId3;
  flightInfohiddenToCityPartner = hiddenId3;
  this.inputName = "flyingTo" +pIndex;
  flightInfotoinputname = "flyingTo" + pIndex;
  this.panelId = targetId + "_panel";
  flightInfotoPanelId = targetId + "_panel";
  this.cFlag = false;
  this.pIndex = pIndex;
  this.kbIndex = -1;
  this.dropDownPosX = dropDownPosX + "px";
  this.dropDownPosY = dropDownPosY + "px";
  this.pos = pIndex;
  this.numCols = null;
  YAHOO.util.Event.addListener(targetId, "mouseover", this.targetOnMouseover, this); 
  YAHOO.util.Event.addListener(targetId, "mouseout", this.targetOnMouseout, this); 

    // assign an "id" to each data item
  for(var i=0; i<dataSrc.length; i++)
    dataSrc[i][2] = i;

  this.set = dataSrc;
  this.searchSet = dataSrc;
  this.selectedItem = null;
  flightInfonewSet = dataSrc;
  this.form = document.forms[form];
  var pWrapper = document.createElement("div");

  pWrapper.style.position = "relative";
  pWrapper.style.zIndex = 100 - pIndex;

  var anchor = document.createElement("a");
  anchor.id = this.anchorId;

  var jsInput = document.createElement("div");
  jsInput.className = "jsInput"+ page;

  var input = document.createElement("input");
  input.type = "text";
  input.id = this.inputName;
  input.name = this.inputName;
  input.tabIndex = "2";
  input.setAttribute("autocomplete", "off");

  YAHOO.util.Event.addListener(input, "focus", this.inputOnFocus, this); 
  YAHOO.util.Event.addListener(input, "keypress", this.inputOnKeyPress, this); 
  YAHOO.util.Event.addListener(input, "keyup", this.inputOnKeyUp, this); 
  YAHOO.util.Event.addListener(input, "keydown", this.inputOnKeyDown, this); 


  jsInput.appendChild(input);
  anchor.appendChild(jsInput);
  pWrapper.appendChild(anchor);

  var p = document.createElement("div");
  p.id = this.panelId;
  p.className = "panel";
  YAHOO.util.Event.addListener(pWrapper, "click", this.panelOnClick, this); 

  var pbody = document.createElement("div");
  pbody.className = "panelBody";
  
//  var pFootText = document.createElement("div");
//  pFootText.id="flightinfofromFooterTexttoFooterText";
//  pFootText.className = "panelFootText";
//
// 
//  var pElement = document.createElement("p");
//  var text = "For additional cities, please type the first three letters of the city name or airport code";
//  textNode = document.createTextNode(text);
//
//  pElement.appendChild(textNode)
//  pFootText.appendChild(pElement);
  p.appendChild(pbody);
 // p.appendChild(pFootText);
  pWrapper.appendChild(p);

  this.target.appendChild(pWrapper);

  this.onItemSelect = new YAHOO.util.CustomEvent("onItemSelect", this); 
  //this.render(this.searchSet);

  YAHOO.util.Event.addListener(window, "load", this.initPanEvents, this);
  YAHOO.util.Event.addListener(window,'click',this.initPanEvents,this);
  }

FlightInfoToCityPanel.prototype.targetOnMouseover = function(e, obj) {
  obj.cFlag = true; 
}

FlightInfoToCityPanel.prototype.targetOnMouseout = function(e, obj) {
  obj.cFlag = false; 
}

FlightInfoToCityPanel.prototype.inputOnFocus = function(e, obj) {
    var input = YAHOO.util.Event.getTarget(e); 
    if(input.setSelectionRange)
      input.setSelectionRange(0, input.value.length);
    else
      input.select();
   //obj.showPanel(this.set);
}

FlightInfoToCityPanel.prototype.inputOnKeyPress = function(e) {
    if(!e) 
        e = window.event;
     if(e.keyCode==13)
      return false;
    }
  
  FlightInfoToCityPanel.prototype.inputOnKeyUp = function(e,obj) {
       var value = document.getElementById(obj.inputName).value;
     
//      if(value.length <= 0){
//        this.set = primaryToCities;
//        flightInfostaticTextVar= true;
//      }else{
        this.set = allToCities;
//        flightInfostaticTextVar= false;
//      }
      var fromInput = document.getElementById(flightInfofromInputName).value;
    if(fromInput != ""){
     if(value.length >=1){
      obj.autoComplete(e,this.set);
     }
    }else if(value.length >=1){
          obj.autoComplete(e,allcities);  
     }////else{
//         obj.autoComplete(e,flightInfonewSet);
//     }
}
  
  FlightInfoToCityPanel.prototype.inputOnKeyDown = function(e, obj) {
    obj.titleTemp = document.getElementById(obj.inputName).value;
    obj.kbListener(e);
    }
FlightInfoToCityPanel.prototype.showPanel = function(dataSrc) {
    var obj = document.getElementById(this.panelId);
    if(obj.style.display == "block")
      return;
    this.searchSet = dataSrc;
   
    if(!flightInfofilled) {
    this.render(this.searchSet);
    }
    obj.style.display = "block";
    this.setWidth();
} 
 
  FlightInfoToCityPanel.prototype.panelOnClick = function(e, obj) {
      if(!e) 
        e = window.event;
   var target = e.target ? e.target.nodeName.toLowerCase() : e.srcElement.nodeName.toLowerCase();
      if(target == "li" || target == "div" || target == "ul" || target == "h5")
        document.getElementById(obj.inputName).focus();
}

FlightInfoToCityPanel.prototype.cityClick= function(e, obj) {
    var elTarget = YAHOO.util.Event.getTarget(e);
   
   while (elTarget.id != obj.targetId) { 
      if(elTarget.nodeName.toUpperCase() == "A") 
        {
        obj.onclickWrap(elTarget);
        break;
        }
      else 
        elTarget = elTarget.parentNode; 
      }   
 }
FlightInfoToCityPanel.prototype.render = function(dataSrc) {
    
        this.kbIndex = -1;
        var area = document.getElementById(flightInfotoPanelId).firstChild;
        area.innerHTML = "";
        var total = dataSrc.length - 1;
        
        var numCols = (this.numCols) ? this.numCols : Math.ceil(total / 20); 
        var start = 0;
        var width = 0;
        var startTemp, end, ul, li, a, text, textNode;
        this.searchSet = dataSrc;
        this.selectedItem = "";
      
        var container = document.createElement("div");
        container.id = "listItems" + this.pIndex;
        while (start < total) {
            ul = document.createElement("ul");
  
            startTemp = start;
            end = Math.ceil((total - start) / numCols);
            for (var i = start; i < startTemp + end; i++) {
                a = document.createElement("a");
                
                a.id = this.pos + "-" + "flyingTo" + "_" + start;
                a.href = "javascript:void(0)";
                
                a.className = (this.selectedItem && (this.selectedItem.id == a.id)) ? "selected" : "";
                
                text = this.searchSet[i][1];
                
                    textNode = document.createTextNode(text);
                    a.appendChild(textNode);
                    li = document.createElement("li");
                    if(i%2==0){
                          li.style.background="#ffffff";
                    }else{
                      li.style.background="#efefef";  
                    }
                    li.appendChild(a);
                    ul.appendChild(li);
               
                start++;
            }
            numCols--;
            container.appendChild(ul);
            flightInfofilled = true;
        }
        area.appendChild(container);
//         if(document.getElementById('flightinfofromFooterTexttoFooterText')== null || document.getElementById(toinputname).value == " " ){
//            var pFootText = document.createElement("div");
//            pFootText.id="flightinfofromFooterTexttoFooterText";
//            pFootText.className = "panelFootText";
//            var p=document.getElementById(flightInfotoPanelId);
//
//            var pElement = document.createElement("p");
//            var text = "For additional cities, please type the first three letters of the city name or airport code";
//            textNode = document.createTextNode(text);
//
//            pElement.appendChild(textNode)
//            pFootText.appendChild(pElement);
//            p.appendChild(area);
//            p.appendChild(pFootText);
//           
//        
//      }
        YAHOO.util.Event.addListener(container.id, "mousedown", this.cityClick, this);
        this.setWidth();
      
          
}

 FlightInfoToCityPanel.prototype.autoComplete = function(e,dataSrc) {
    var input = YAHOO.util.Event.getTarget(e);    
   if(this.titleTemp == input.value)
      return;
 
    if(!e) 
      e = window.event;
  
    var results = new Array();
   
   
    var list = dataSrc;
    var value = input.value.toLowerCase();
    var text;
    var code;
    var parts = new Array();
   
    for(var i=0; i<list.length-1; i++) {
      text = list[i][1];
      text = text.toLowerCase();
      
      if(text.indexOf(value) == 0) {
        results[results.length] = list[i];
        continue;
      }
     
      text = list[i][0];
      text = text.toLowerCase(); 
      if(text.indexOf(value) == 0) {
        results[results.length] = list[i];
        continue;
      }
    }
  
    results[results.length] = 0;
  
    var pbody = document.getElementById(flightInfotoPanelId).getElementsByTagName("div")[0];
    var obj = document.getElementById(this.panelId);
    if(results.length > 1) {
      this.searchSet = results;
      this.render(this.searchSet);
       if(e.keyCode!=13){
      obj.style.display = "block";
      this.setWidth();
      }
      if(results.length == 2)
        pbody.getElementsByTagName("a")[0].className = "selected";
      }
    else {
      pbody.innerHTML = "<ul><li><h5>No Airports - Please backspace.</h5></li></ul>";
      obj.style.display = "block";
      this.setWidth();
      }
//      if(document.getElementById('flightinfofromFooterTexttoFooterText') && value != " " && flightInfostaticTextVar == false){
//      var ps=document.getElementById(flightInfotoPanelId);
//      var pb=document.getElementById('flightinfofromFooterTexttoFooterText');
//      ps.removeChild(pb);
     // }
}
  
  FlightInfoToCityPanel.prototype.kbListener = function(e) {
      var list = document.getElementById(flightInfotoPanelId).getElementsByTagName("div")[0].getElementsByTagName("a");
      var input = document.getElementById(this.inputName);
      var obj = document.getElementById(this.panelId);
      var inputValue = false;
      if(!e) 
        e = window.event;
//        if(input.value.length > 0 && e.keyCode==9){
//          this.hidePanel();
//        }
   var prev;
      if(e.keyCode==13) {
        e.target ? e.preventDefault() : e.returnValue = false;
      
        if(list.length == 1) 
          this.kbIndex = 0;
     
        if(this.kbIndex == -1 || list.length == 0){ 
          this.kbIndex = (this.kbIndex == list.length-1) ? 0 : this.kbIndex+1;
          this.onclickWrap(list[this.kbIndex]);
        }else 
          this.onclickWrap(list[this.kbIndex]);
        //input.blur();
        }
      else if((e.shiftKey && e.keyCode==9) || e.keyCode==38) {
        if(list.length == 0) 
          return;
        
        e.target ? e.preventDefault() : e.returnValue = false;
        this.kbIndex = (this.kbIndex==0 || this.kbIndex==-1) ? list.length-1 : this.kbIndex-1;
        list[this.kbIndex].className = "selected";
        prev = (this.kbIndex == list.length-1) ? 0 : this.kbIndex+1;
        list[prev].className = ((this.selectedItem && (this.selectedItem.id == list[prev].id)) || this.kbIndex==prev) ? "" : "";
        }
      else if(e.keyCode==9 || e.keyCode==40) {
        if(list.length == 0) return;
        
        if(list.length == 1 && input.value.length >=1){
           
           for(var i = 0;i <allToCities.length;i++){
                        if(allToCities[i][1] == input.value){
                                inputValue = true;
                        }}
           if(inputValue == false){
              this.kbIndex = (this.kbIndex == list.length-1) ? 0 : this.kbIndex+1;
              this.onclickWrap(list[this.kbIndex]);
              return;
           }
         return;
        }
        if(obj.style.display == "block"){
        e.target ? e.preventDefault() : e.returnValue = false;
        this.kbIndex = (this.kbIndex == list.length-1) ? 0 : this.kbIndex+1;
        list[this.kbIndex].className = "selected";
        prev = (this.kbIndex == 0) ? list.length-1 : this.kbIndex-1;
        list[prev].className = ((this.selectedItem && (this.selectedItem.id == list[prev].id)) || this.kbIndex==prev) ? "" : "";
        }
      }
      else if(e.keyCode==27) {
         
        e.target ? e.preventDefault() : e.returnValue = false;
        this.hidePanel();
        input.blur();
      }else if(e.keyCode == 8 && input.value.length<=1){
        this.hidePanel(); 
      }
    }

FlightInfoToCityPanel.prototype.onclickWrap = function(a) {
      this.highlight(a);
      this.setField(a.innerHTML);
      this.hidePanel();
}
  
FlightInfoToCityPanel.prototype.highlight = function(a) {
    if(this.selectedItem)
      this.selectedItem.className = "";
    this.selectedItem = a;
    document.getElementById(this.selectedItem.id).className = "selected";
}
  
FlightInfoToCityPanel.prototype.hideAll = function() {
    for(var i=0; i<allPanels.length; i++) {
      if(document.getElementById(allPanels[i].panelId).style.display == "block")
        hidePanel(allPanels[i]);
      }
}
FlightInfoToCityPanel.prototype.setWidth = function() {
     
    var p = document.getElementById(flightInfotoPanelId);
    if(p.style.display != "block")
      return;
   p.style.width = "700px";
    var width = 35;
    var uls = p.getElementsByTagName("ul");
    for(var i=0; i<uls.length; i++) {
      width += (uls[i].offsetWidth + 3);
    }
    p.style.width = width + "px";
}

FlightInfoToCityPanel.prototype.hidePanel = function() {
    var obj = document.getElementById(flightInfotoPanelId);
    if(obj.style.display != "block")
      return;
    obj.style.display = "none";
    this.cFlag = false;
   
   
}

FlightInfoToCityPanel.prototype.setField = function(text) {
   
     var list = this.searchSet;
     document.getElementById(flightInfotoinputname).value = text;
     var fromInput = document.getElementById(flightInfofromInputName).value;
     if(fromInput != ""){
         for(var i = 0;i <allToCities.length;i++)
                    {
                        if(allToCities[i][1] == text){
                             document.getElementById(hiddenToCityCode).value = allToCities[i][0];
                             document.getElementById(hiddenToCityPartner).value = allToCities[i][3];
                            }
                    }
        
     }
 }

FlightInfoToCityPanel.prototype.panOffClick = function(e, obj) {
    
//    var paneltopopup= document.getElementById(flightInfotoPanelId);
//    var list = document.getElementById(flightInfotoPanelId).getElementsByTagName("div")[0].getElementsByTagName("a");
//    var pbody = document.getElementById(flightInfotoPanelId).getElementsByTagName("div")[0];
//    var flag = false;
//      
//     if(paneltopopup.style.display == "block"){
//        for(var i=0; i<list.length; i++) {
//      if(pbody.getElementsByTagName("a")[i].className == "selected" && flag==false){
//         this.kbIndex = i;
//         flag = true;
//         }
//      }
//      if(!obj.cFlag && flag==true){
//         obj.onclickWrap(list[this.kbIndex]);
//      } 
//     }
    
  if(!obj.cFlag)
    obj.hidePanel();
  }

FlightInfoToCityPanel.prototype.getInputValue = function() {
  return document.getElementById(this.inputName).value;
  }

FlightInfoToCityPanel.prototype.getValue = function() {

  return this.form[this.hiddenId].value;
  }

FlightInfoToCityPanel.prototype.getName = function() {
  return this.hiddenId;
  }

FlightInfoToCityPanel.prototype.initPanEvents = function(e, obj) {
  YAHOO.util.Event.addListener(document.body, "click", obj.panOffClick, obj);
}
  
FlightInfoToCityPanel.prototype.reset = function() {
  document.getElementById(this.inputName).value = this.blankTitle;
  this.form[this.hiddenId].value = "";
  this.selectedItem = null;
}
