
function addEvent(elm, evType, fn, useCapture)
// addEvent and removeEvent
// cross-browser event handling for IE5+,  NS6 and Mozilla
// By Scott Andrew
{
  if (elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent){
    var r = elm.attachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
} 

var allYUICalendars = {};


function initYUICalendar (name)
{
    var theCalendar = new YAHOO.widget.Calendar(name, name + "CalendarContainer", { title:"Choose a date:", close:true } );
    
    theCalendar.render ();
    YAHOO.util.Event.addListener(name + "CalendarPicker", "click", theCalendar.show, theCalendar, true);
    theCalendar.selectEvent.subscribe(handleYUICalendarSelect, theCalendar, true);

    YAHOO.util.Event.addListener([name + "DAY", name + "MONTH", name + "YEAR"], "change", function () { updateYUICalendarFromFields (theCalendar); });
    YAHOO.util.Event.onDOMReady (function () { updateYUICalendarFromFields(theCalendar); });
    allYUICalendars[name] = theCalendar;
    
    return theCalendar;
}


function handleYUICalendarSelect (type,args,obj)
{
    var dates = args[0];
    var date = dates[0];

    $('#' + obj.id + 'DAY').val("" + date[2]);
    $('#' + obj.id + 'MONTH').val("" + date[1]);
    $('#' + obj.id + 'YEAR').val("" + date[0]);

    obj.hide ();
}


function updateYUICalendarFromFields (obj)
{
    var selDay = $('#' + obj.id + 'DAY').val();
    var selMonth = $('#' + obj.id + 'MONTH').val();
    var selYear = $('#' + obj.id + 'YEAR').val();
    updateYUICalendarFromParts (obj, parseInt(selDay), parseInt(selMonth), parseInt(selYear));
}
    
    
function updateYUICalendarFromParts (obj, day, month, year)
{
    if (! isNaN(month) && ! isNaN(day) && ! isNaN(year)) 
    {
        var date = month + "/" + day + "/" + year;

        obj.select(date);
        obj.cfg.setProperty("pagedate", month + "/" + year);
        obj.render();
    }
}


function eachInitYUIDate(index, domElement) 
{ 
    var dateTagID = domElement.id;
    var yuiPicker = "<img id='" + dateTagID + "CalendarPicker' src='images/caloff.gif' alt='Select Date'><div class='dateCalendarContainerHolder'><div class='dateCalendarContainer' id='" + dateTagID + "CalendarContainer'></div></div>";

    $("." + dateTagID).after (yuiPicker);    
    initYUICalendar (dateTagID);
}


function debugMessage (message)
{
    if (window.console)
    {
        console.debug (message);
    }
}
    

if (window.YAHOO)
{
    YAHOO.util.Event.onDOMReady (function () { $(".yui-date").each (eachInitYUIDate) });
}
    
