(function() { var Dom = YAHOO.util.Dom, Event = YAHOO.util.Event, cal1, over_cal = false, cur_field = ''; var init = function() { cal1 = new YAHOO.widget.Calendar("cal1","cal1Container", { pagedate: "07/2010", mindate: "07/30/2010" }); cal1.cfg.setProperty("MDY_DAY_POSITION", 1); cal1.cfg.setProperty('start_weekday', 1); cal1.cfg.setProperty("MDY_MONTH_POSITION", 2); cal1.cfg.setProperty("MDY_YEAR_POSITION", 3); cal1.selectEvent.subscribe(getDate, cal1, true); cal1.renderEvent.subscribe(setupListeners, cal1, true); Event.addListener(['cal1Date1', 'cal1Date2', 'cal1Date3'], 'focus', showCal); Event.addListener(['cal1Date1', 'cal1Date2', 'cal1Date3'], 'blur', hideCal); cal1.render(); } var setupListeners = function() { Event.addListener('cal1Container', 'mouseover', function() { over_cal = true; }); Event.addListener('cal1Container', 'mouseout', function() { over_cal = false; }); } var getDate = function() { var calDate = this.getSelectedDates()[0]; var day = calDate.getDate(); if (day<10) day = "0" + day; var month = calDate.getMonth() + 1; var month2 = calDate.getMonth() + 2; if (month<10) month = "0" + month; if (month2<10) month2 = "0" + month2; var year = calDate.getFullYear(); if (document.getElementById('date2')) document.getElementById('date2').value = day + '-' + (month2) + '-' + year; calDate = day + '-' + month + '-' + year; cur_field.value = calDate; over_cal = false; hideCal(); } var showCal = function(ev) { var tar = Event.getTarget(ev); cur_field = tar; var xy = Dom.getXY(tar), date = Dom.get(tar).value; if (date) { cal1.cfg.setProperty('selected', date); var dateBits = date.split('-'); date = dateBits[1]+'/'+dateBits[0]+'/'+dateBits[2]; cal1.cfg.setProperty('pagedate', new Date(date), true); } else { cal1.cfg.setProperty('selected', ''); } cal1.render(); Dom.setStyle('cal1Container', 'display', 'block'); xy[1] = xy[1] + 25; Dom.setXY('cal1Container', xy); } var hideCal = function() { if (!over_cal) { Dom.setStyle('cal1Container', 'display', 'none'); } } Event.addListener(window, 'load', init); })();