//////////////////////////////////////////////////////////////////////////////
// PCS Metadata Calendar Dialog      Current $Revision: 0.1 $  $State: Exp $
// Copyright 2007 Perfect Computer Solutions www.perfectcomputersolutions.com
// Last modified by    $Author: dave $   On   $Date: 2008/08/05 04:16:24 $
// currently locked by $Locker: dave $
// www.perfectcomputersolutions.com
//////////////////////////////////////////////////////////////////////////////
// $Log: calendardialog.js,v $
// Revision 0.1  2008/08/05 04:16:24  dave
// *** empty log message ***
//
//////////////////////////////////////////////////////////////////////////////
var Calendars = new Array(0);
var CalendarDialogs = new Array(0);
var DateIDs = new Array(0);

function insertCalendar(tf) {
    var i = DateIDs.length;
    DateIDs[i] = tf;
    document.write('<button type="button" class="calendarButton" id="ShowCalendar['+i+']" title="Select from Calendar"><img src="http://www.PerfectComputerSolutions.com/yui/examples/calendar/assets/calbtn.gif" width="18" height="18" alt="Select" /></button><div id="CalendarContainer['+i+']" class="hiddenContainer"><div class="hd">Calendar</div><div class="bd"><div class="cal" id="Calendar['+i+']"></div></div></div>');
}

function calendarOKHandler() {
    if (this.Calendar.getSelectedDates().length > 0) {

        var selDate = this.Calendar.getSelectedDates()[0];

        var wStr = this.Calendar.cfg.getProperty("WEEKDAYS_LONG")[selDate.getDay()];
        var dStr = selDate.getDate();
        var mStr = selDate.getMonth();
        var mnStr = this.Calendar.cfg.getProperty("MONTHS_LONG")[mStr];
        var yStr = selDate.getFullYear();

        // Pretty Date Output, using Calendar's Locale values: Friday, 8 February 2008
	// this.TextField.value = wStr + ", " + dStr + " " + mnStr + " " + yStr;

        // Standard Date Output, using Calendar's Locale values: February 8, 2008
        this.TextField.value = mnStr + " " + dStr + ", " + yStr;

        // MySQL-style Date Output, using Calendar's Locale values: 2008-02-08, 
	// if (dStr.length == 1) { dStr = "0"+dStr; }
	// if (mStr.length == 1) { mStr = "0"+mStr; }
 	// this.TextField.value = yStr + "-" + mStr + "-" + dStr;

    } else {
        this.TextField.value = "";
    }
    this.Calendar.hide();
    this.hide();
}
        
function calendarCancelHandler() {
    this.Calendar.hide();
    this.hide();
}

function showCalendar() {
    this.show();
    this.Calendar.show();
    if (YAHOO.env.ua.opera && document.documentElement) {
       // Opera needs to force a repaint
       document.documentElement.style += "";
    } 
}

YAHOO.util.Event.onDOMReady(function(){

    for (var i = 0; i < DateIDs.length; i++) {
        var d = DateIDs[i];

        Calendars[i] = new YAHOO.widget.Calendar("Calendar["+i+"]", {
            iframe:false,          // Turn iframe off, since container has iframe support.
            hide_blank_weeks:true  // Enable, to demonstrate how we handle changing height, using changeContent
        });

        CalendarDialogs[i] = new YAHOO.widget.Dialog("CalendarContainer["+i+"]", {
            context:["ShowCalendar["+i+"]", "tl", "tl"],
            buttons:[ {text:"Select", isDefault:true, handler: calendarOKHandler}, 
                      {text:"Cancel", handler: calendarCancelHandler}],
            width:"16em",  // Sam Skin dialog needs to have a width defined (7*2em + 2*1em = 16em).
            draggable:true,
            close:true,
	    underlay:"none",
	    modal:false,
	    dragOnly:true,
	    visible:false
        });
        Calendars[i].render();
        CalendarDialogs[i].render();

	CalendarDialogs[i].TextField = YAHOO.util.Dom.get(d);

	CalendarDialogs[i].Calendar = Calendars[i];
	Calendars[i].Dialog = CalendarDialogs[i];

        // Using dialog.hide() instead of visible:false is a workaround for an IE6/7 container known issue with border-collapse:collapse.
        Calendars[i].hide();
        CalendarDialogs[i].hide();

        Calendars[i].renderEvent.subscribe(function() {
            // Tell Dialog it's contents have changed, Currently used by container for IE6/Safari2 to sync underlay size
            this.Dialog.fireEvent("changeContent");
        });

        YAHOO.util.Event.on("ShowCalendar["+i+"]", "click", showCalendar, i, CalendarDialogs[i]);

    }

});
