// Modal Window Stuff
var winModalWindow;
var manager = new Object ();
var contextRoot = null;

function IgnoreEvents(e)
{
  return false;
}

function HandleFocus()
{
    if (winModalWindow)
    {
        if (!winModalWindow.closed)
        {
          winModalWindow.focus()
        }
        else
        {
          //window.top.releaseEvents (Event.CLICK|Event.FOCUS)
          window.top.onclick = ""
          window.top.onfocus=""
        }
    }

    return false
}

function ShowModalWindow(page, callback, width, height)
{
    //window.top.captureEvents (Event.CLICK|Event.FOCUS)
    window.top.onclick=IgnoreEvents
    window.top.onfocus=HandleFocus
    winModalWindow = window.open (page,"_blank", "dependent=yes,width=" + width + ",height=" + height + ",location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no")
    //winModalWindow.modalParent = this;
    manager.callBack = callback;
    winModalWindow.focus()
}

function devNull () {}



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 = {};
daySuffix = ["DAY", "Date"];
monthSuffix = ["MONTH", "Month"];
yearSuffix = ["YEAR", "Year"];


function initYUICalendar (name, suffixIndex)
{
    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(function (type,args,obj) { handleYUICalendarSelect(type,args,obj, suffixIndex) }, theCalendar, true);

    YAHOO.util.Event.addListener([name + daySuffix[suffixIndex], name + monthSuffix[suffixIndex], name + yearSuffix[suffixIndex]], "change", function () { updateYUICalendarFromFields (theCalendar, suffixIndex); });
    allYUICalendars[name] = theCalendar;
    
    return theCalendar;
}


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

    $('#' + obj.id + daySuffix[suffixIndex]).val("" + date[2]);
    $('#' + obj.id + monthSuffix[suffixIndex]).val("" + date[1]);
    $('#' + obj.id + yearSuffix[suffixIndex]).val("" + date[0]);

    obj.hide ();
}


function updateYUICalendarFromFields (obj, suffixIndex)
{
    var selDay = $('#' + obj.id + daySuffix[suffixIndex]).val();
    var selMonth = $('#' + obj.id + monthSuffix[suffixIndex]).val();
    var selYear = $('#' + obj.id + yearSuffix[suffixIndex]).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='" + (contextRoot != null ? contextRoot : ".") + "/images/caloff.gif' alt='Select Date'><div class='dateCalendarContainerHolder'><div class='dateCalendarContainer' id='" + dateTagID + "CalendarContainer'></div></div>";

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


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

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


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