if (typeof fly == "undefined" || !fly) 
{
    var fly = new Object();
}

function namespace(namespace_str)
{
	var namespace_arr = namespace_str.split(".");
	var i;
	var namespacePart_str;
	var namespace_obj = fly;
	
	for (i = 0; i < namespace_arr.length; i++)
	{
		namespacePart_str = namespace_arr[i];
		
		if (namespacePart_str != "fly")
		{
			namespace_obj[namespacePart_str] = namespace_obj[namespacePart_str] || new Object();
			namespace_obj = namespace_obj[namespacePart_str];
		}
	}
	
	return namespace_obj;
}

namespace("fly.TICC2.modules.widget.inputCalendar");

var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;

fly.TICC2.modules.widget.inputCalendar.onDOMReady = function()
{
	// this if statement checks if the calendar-min widget script is included.
	if(YAHOO.widget.Calendar)
	{
		// This function creates the calendar holder after input elements with the class calendarField
		var fields_arr = Dom.getElementsByClassName("calendarField","input");
		var i;
		var fieldsLength = fields_arr.length;
		var newNode;
		for(i = 0; i < fieldsLength; i++)
		{
			var calendarIdentifier = fields_arr[i].id
			newNode = document.createElement("div");
			Dom.addClass(newNode,"calendar");
			newNode.innerHTML = "<a href='/' id='" + calendarIdentifier + "CalendarBtn'><img src='cal.jpg' /></a><div style='position:absolute;' id='" + calendarIdentifier + "CalendarContainer'></div>";
			fields_arr[i].parentNode.insertBefore(newNode,fields_arr[i].nextSibling);			
			fly.TICC2.modules.widget.inputCalendar.init(fields_arr[i]);
		}
	}	
}

fly.TICC2.modules.widget.inputCalendar.init = function(node) 
{
	var propertyName_str = node.id;
	var textInput = document.getElementById(node.id); 
    //var calendar = fly.TICC2.modules.widget.inputCalendar[propertyName_str] = new YAHOO.widget.Calendar(propertyName_str, propertyName_str + "CalendarContainer");



	var calendar = fly.TICC2.modules.widget.inputCalendar[propertyName_str] = new YAHOO.widget.Calendar(propertyName_str, propertyName_str + "CalendarContainer");

	// Correct formats for Germany: dd.mm.yyyy, dd.mm, mm.yyyy

	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("DATE_FIELD_DELIMITER", "/");

	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("MDY_DAY_POSITION", 1);
	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("MDY_MONTH_POSITION", 2);
	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("MDY_YEAR_POSITION", 3);

	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("MD_DAY_POSITION", 1);
	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("MD_MONTH_POSITION", 2);

	// Date labels for German locale

	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("MONTHS_SHORT",   ["jan", "feb", "maa", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"]);
	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("MONTHS_LONG",    ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"]);
	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("WEEKDAYS_1CHAR", ["Z", "M", "D", "W", "D", "V", "Z"]);
	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("WEEKDAYS_SHORT", ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"]);
	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("WEEKDAYS_MEDIUM",["Zon", "Maa", "Din", "Woe", "Don", "Vri", "Zat"]);
	fly.TICC2.modules.widget.inputCalendar[propertyName_str].cfg.setProperty("WEEKDAYS_LONG",  ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"]);


    var extraArguments = new Object();
    	extraArguments.textInput = textInput;
    	extraArguments.calendar = calendar;
	calendar.selectEvent.subscribe(fly.TICC2.modules.widget.inputCalendar.handleSelect, extraArguments, false);
	
    calendar.render();
    calendar.hide();
	Event.on(propertyName_str + "CalendarBtn", "click", fly.TICC2.modules.widget.inputCalendar.showCalendar, calendar);
}

fly.TICC2.modules.widget.inputCalendar.showCalendar = function(e, calendar)
{
	Event.preventDefault(e);
	calendar.show();
}

fly.TICC2.modules.widget.inputCalendar.handleSelect = function(eventType, calendarArguments, extraArguments) 
{
	var dates = calendarArguments[0]; 
	var date = dates[0]; 
	var year = date[0], month = date[1], day = date[2]; 
	var txtDate = extraArguments.textInput; 
	txtDate.value = day + "/" + month + "/" + year;
	extraArguments.calendar.hide();
}

Event.onDOMReady(fly.TICC2.modules.widget.inputCalendar.onDOMReady);