
var Calendar = {
	calendars : [],	
	isPageLoaded : false,
	
	init : function() {
		var $ = Calendar, $u = Utilities;
		
		YAHOO.util.Event.addListener(window, 'load', Calendar.pageLoaded);
		
		var loader = $u.loadYUIScripts(['calendar'], $.init_ScriptsLoaded);
		
		loader.insert();
	},
	
	dispose : function() {
	
	},
	
	pageLoaded : function() {
    Calendar.isPageLoaded = true;
  },
	
	init_ScriptsLoaded : function() {
	  if (Calendar.isPageLoaded) {
	   Calendar.event_PageLoad();
    } else {
      YAHOO.util.Event.addListener(window, 'load', Calendar.event_PageLoad);
    }
	},
	
	event_PageLoad : function() {
		var $ = Calendar, $u = Utilities, cal, html, link, container, els, inputs, i, j, numOfCals = 1;
		
		if (document.body.className.indexOf('yui-skin-sam') == -1) {
			document.body.className += ' yui-skin-sam'; 
		}
		
		els = YAHOO.util.Dom.getElementsByClassName('inputDateLi', 'li');
		
		for (i = 0; i < els.length; i++) {
			inputs = YAHOO.util.Dom.getElementsByClassName('inputDate', 'input', els[i]);
			
			for (j = 0; j < inputs.length; j++) {
				html = $u.createFormElement(null, 'span', [], '', '');
				link = $u.createFormElement(html, 'a', [{name:'href',value:'javascript:void(0);'}], 'calendar-link', '');
				$u.createFormElement(link, 'span', [], 'offleft', 'View calendar');
				container = $u.createFormElement(html, 'span', [{name:'style',value:'display:none'}], '', '');
				
				$u.insertNodeAfter(inputs[j], html);
				
				cal = new YAHOO.widget.Calendar('cal' + (numOfCals++), container, {title:'Choose a date:', close:true})
				cal.render();
				//cal.hide();
				
				YAHOO.util.Event.addListener(link, 'click', $.event_ShowCalendar, {textbox:inputs[j], calendar:cal});
				
				cal.selectEvent.subscribe($.event_DateSelected, {textbox:inputs[j], calendar:cal});
				
				$.calendars.push(cal);
			}
		}
	},

	event_ShowCalendar : function(type, args, obj) {
		args.calendar.show();
	},
	
	event_DateSelected : function(type, args, obj) {
		var $ = Calendar, $u = Utilities, date, dateString;
		
		date = $u.convertYUICalendarReturnToDate(args);
		dateString = $u.convertDateTimeToString(date, '_dd/_MM/_yyyy');
		obj.textbox.value = dateString;
		
		obj.calendar.hide();
	}
};

Calendar.init();

