function addDatePickerEvents() {
	$(document.body).getElements('div[rel^=datepicker]').each(function(element) {
		initDateTimePicker(element, false);
	});
	$(document.body).getElements('div[rel^=datetimepicker]').each(function(element) {
		initDateTimePicker(element, true);
	});
};

var datePickers = Array();
var datePickerIds = Array();

function initDateTimePicker(element, showTime) {
	var inputElement = element.getElement("input");
	var imageElement = element.getElement("img");
	
	if (datePickerIds.contains(inputElement.get('id'))) {
		imageElement.addEvent('click', function(element) {
			var index = datePickerIds.indexOf(inputElement.get('id'));
			var dpe = datePickers[index];
			dpe.inputs = $H({start: document.id(inputElement)});
			dpe.stickyWin.position({
				position : 'topLeft',
				relativeTo : inputElement,
				edge : 'upperLeft',
				offset : {
					x : 0,
					y : 20
				}
			});
			dpe.show();
		});
		return;
	}
	
	var dp = new DatePicker(inputElement.get('id'), {
		additionalShowLinks : [ imageElement ],
		format : showTime ? '%d.%m.%Y %H:%M' : '%d.%m.%Y',
		showOnInputFocus : false,
		weekStartOffset : 1,
		time : showTime,
		updateOnBlur : false,
		stickyWinOptions : {
			position : 'topLeft',
			relativeTo : inputElement,
			edge : 'upperLeft',
			zIndex : 5000,
			closeOnEsc : true,
			offset : {
				x : 0,
				y : 20
			}
		}
	});
	datePickerIds.push(inputElement.get('id'));
	datePickers.push(dp);
};

window.addEvent("domready", function() {
	addDatePickerEvents();
});
