var cal1;
var over_cal = false;
var currentDateField;
function init() {
    cal1 = new YAHOO.widget.Calendar("cal1","cal1Container");
    cal1.selectEvent.subscribe(getDate, cal1, true);
    cal1.renderEvent.subscribe(setupListeners, cal1, true);
    var nodes = YAHOO.util.Selector.query('input.date');
    YAHOO.util.Event.on(nodes, 'focus', showCal);
    YAHOO.util.Event.on(nodes, 'blur', hideCal);
    cal1.render();
}
function setupListeners() {
    YAHOO.util.Event.addListener('cal1Container', 'mouseover', overCal);
    YAHOO.util.Event.addListener('cal1Container', 'mouseout', outCal);
}
function getDate() {
    var calDate = this.getSelectedDates()[0];
    calDate = (calDate.getMonth() + 1) + '/' + calDate.getDate() + '/' + calDate.getFullYear();
    YAHOO.util.Dom.get(currentDateField).value = calDate;
    over_cal = false;
    hideCal();
}
function showCal() {
    //alert(this.id);
    currentDateField = this.id;
    var xy = YAHOO.util.Dom.getXY(currentDateField);
    var date = YAHOO.util.Dom.get(currentDateField).value;
    cal1.cfg.setProperty('field', this);
    date = date.replace(/[a-z]/gi,"");
    if (date) {
        cal1.cfg.setProperty('selected', date);
        cal1.cfg.setProperty('pagedate', new Date(date), true);
        cal1.render();
    }
    YAHOO.util.Dom.setStyle('cal1Container', 'display', 'block');
    xy[1] = xy[1] + 20;
    YAHOO.util.Dom.setXY('cal1Container', xy);
}
function hideCal() {
    if (!over_cal) {
        YAHOO.util.Dom.setStyle('cal1Container', 'display', 'none');
    }
}
function overCal() {
    over_cal = true;
}
function outCal() {
    over_cal = false;
}
YAHOO.util.Event.addListener(window, 'load', init);
