/*
 dm, 25.5.2009
 - helper funcs for adding js RichCalendar to text fields
 - usage:
 
 	TextFieldCalendar.create({
		textField: 'some_textFieldId',
		position: "adj_left-bottom",
		dateTimeFormat: '%d.%m.%Y',
		show_time: false,
		language: 'hr',
		showOnClickElements: ['some_textFieldId', 'some_textField_Button_or_Image_Id']
	});
 

*/


var TextFieldCalendar = {
	calendars: new Array(),
	
	create: function(opt) {
		var cal = new RichCalendar();
		cal.__textField = opt.textField;
		cal.__dateTimeFormat = opt.dateTimeFormat ? opt.dateTimeFormat : '%d.%m.%Y';
		cal.__position = opt.position ? opt.position : "adj_left-bottom";
		
		cal.start_week_day = 1;
		cal.show_time = opt.show_time ? show_time : false;
		cal.language = opt.language ? opt.language : 'en';
		cal.user_onchange_handler = TextFieldCalendar.onChange;
		cal.user_onclose_handler = TextFieldCalendar.onClose;
		cal.auto_close = true;
		cal.user_onautoclose_handler = TextFieldCalendar.onAutoclose;
		
		for (var i = 0; i < opt.showOnClickElements.length; i++) {
			RichCalendar.attach_event(document.getElementById(opt.showOnClickElements[i]), 'click', function () {TextFieldCalendar.show(cal)});
			RichCalendar.attach_event(document.getElementById(opt.showOnClickElements[i]), 'focus', function () {TextFieldCalendar.show(cal)});
		}
		
		TextFieldCalendar.calendars.push(cal);
		
	},
	
	show: function (cal) {
		if (!cal || cal.iframe_obj) return;
		TextFieldCalendar.hideOtherCalendars(cal);
		var textFieldEl = document.getElementById(cal.__textField);
		cal.parse_date(textFieldEl.value, cal.__dateTimeFormat);
		cal.show_at_element(textFieldEl, cal.__position);
	},
	
	// user defined onchange handler
	onChange: function (cal, object_code) {
		if (object_code == 'day') {
			document.getElementById(cal.__textField).value = cal.get_formatted_date(cal.__dateTimeFormat);
			cal.hide();
		}
	},
	
	// user defined onclose handler
	onClose: function (cal) {
		cal.hide();
	},
	
	// user defined onclose handler (used in pop-up mode - when auto_close is true)
	onAutoclose: function (cal) {
		//cal.hide();
	},
	
	// hides all others
	hideOtherCalendars: function (cal) {
		for (var i = 0; i < TextFieldCalendar.calendars.length; i++) {
			var otherCal = TextFieldCalendar.calendars[i];
			if (otherCal != cal && otherCal.iframe_obj) {
				otherCal.hide();
			}
		}
		//cal.hide();
	}
}


