/*
  Misc UI related functions. 
  Steaven Woyan
*/

var _smw_Selects = new Array();

//menu stuff
function setupMenu() {
  var oMenuBar = new YAHOO.widget.MenuBar("mainmenu", { lazyload: true, autosubmenudisplay: true });
  oMenuBar.render();  
  
  //fix for IE cause, well it's stupid IE.
  document.getElementById("mainmenu").style.visibility = "visible";

}

//callendar stuff
var _smw_LastField;
var _smw_cal;

function setupCalendar(divname) {
  _smw_cal = new YAHOO.widget.Calendar("_smw_cal", "cal_div", {title:"Make a selection:", close:true } ); 
  _smw_cal.selectEvent.subscribe(calendarSelect, null, false);
  _smw_cal.render();
}

function showCalendar(whichdatefield, title) {
  _smw_LastField = document.getElementById(whichdatefield);
  //set the calendar to the last fields value if any
  var v = "" + _smw_LastField.value;
  if(!v.isUSADate()) {
    v = getTodayUSA();
  }
  _smw_cal.selectEvent.unsubscribe(calendarSelect, null);
  _smw_cal.select(v);
  _smw_cal.selectEvent.subscribe(calendarSelect, null, false);
  var selectedDates = _smw_cal.getSelectedDates();
  if(selectedDates.length > 0) {
    var firstDate = selectedDates[0];
    _smw_cal.cfg.setProperty("pagedate", (firstDate.getMonth()+1) + "/" + firstDate.getFullYear());    
  } 		  
  _smw_cal.cfg.setProperty("title", title);    
  _smw_cal.render();          
  _smw_cal.show();    
}

//call back from yahoo calendar:
function calendarSelect(evtname, dates, obj) {
  var sdate = dates[0][0];
  _smw_LastField.value = (dates[0][0][1] < 10 ? "0" : "") + dates[0][0][1] + "/" + (dates[0][0][2] < 10 ? "0" : "") + dates[0][0][2] + "/" + dates[0][0][0]; 
  _smw_cal.hide();  
}

//add a key handler to a select
function addSelectKeyHandler(id) {
  var o = document.getElementById(id);
  if(id == null || !o) {
    return;
  }
  if(_smw_Selects[id] != null) {
    return;
  }
  _smw_Selects[id] = "";  
  YAHOO.util.Event.addListener(id, "keyup", smwSelectKeyUp(id));   
}

//call back from yahoo event handler
function smwSelectKeyUp(id) {
  return function(e) {
    YAHOO.util.Event.preventDefault(e); 
    _smw_Selects[id] += "" + String.fromCharCode(e.which);
    var o = document.getElementById(id);
    var s;
    var t;
    for(var x = 0; x < o.options.length; x++) {
      s = o.options[x].text.trim();
      t = _smw_Selects[id];
      if(s.length >= t.length) {
        s = s.substr(0, t.length);
      } 
      else {
        t = t.substr(0, s.length);
      }
      if(t.toLowerCase() == s.toLowerCase()) {
        o.selectedIndex = x;
        o.options[x].selected = true;
        break;
      }
    }
    
    setTimeout("smwSelectTimeout('" + id + "');", 3000);
  };
} 

//clear a selects key strokese
function smwSelectTimeout(id) {
  _smw_Selects[id] = "";
}