var cfg = {};

cfg.imgUrl = "/images/design/";

/**
 * jQuery UI datepicker config
 */

/* Written by Tomas Muller (tomas@tomas-muller.net). */	
cfg.datepicker = {
	buttonImageUrl: cfg.imgUrl + "kalendar.gif",
	buttonText: "Calendar",
	language: 'en',
	translation: null,
	today: "today",
	next7days: "next 7 days",
	next30days: "next 30 days",
	term: "first half of 2009"
};


$(document).ready(function(){
	if (cfg.datepicker.translation) {
		$.datepicker.regional[cfg.datepicker.language] = cfg.datepicker.translation; 
		$.datepicker.setDefaults($.datepicker.regional[cfg.datepicker.language]);
	}

	mti = document.getElementsByTagName('title')[0].innerHTML.split(" | ");
	if (mti[0].substr(0,6) == "Vyhled") {
		if ( cssCheck() ) {
			$("#dategroupfrom").append(datefrom);
			$("#dategroupto").append(dateto);
		}
		else {
			$("#dategroupfrom").append(dayfrom);
			$("#dategroupfrom").append(monthfrom);
			$("#dategroupfrom").append(yearfrom);
			$("#dategroupfrom").append(datefrom);
			$("#dategroupfrom").append(datepicker);
			$("#dategroupto").append(dayto);
			$("#dategroupto").append(monthto);
			$("#dategroupto").append(yearto);
			$("#dategroupto").append(dateto);
			$("#dategroupto").append(datepicker);
		}
	}

	$("div.dategroup").show();

	var mtf = new Array( "from", "to");
	
	$("div.dategroup select[name^='day']").each(function(i) {
		$(this).attr("id", i + "_dp_day");
		var mds = getUrlVars()["date" + mtf[i]];
		if ( !(mds) ) {
			$(this).val(getUrlVars()["day" + mtf[i]]);
		} else {
			$(this).val(mds.split(".")[0]);
		}
	});

	$("div.dategroup select[name^='month']").each(function(i) {
		$(this).attr("id", i + "_dp_month");
		var mds = getUrlVars()["date" + mtf[i]];
		if ( !(mds) ) {
			$(this).val(getUrlVars()["month" + mtf[i]]);
		} else {
			$(this).val(mds.split(".")[1]);
		}
	});

	$("div.dategroup select[name^='year']").each(function(i) {
		$(this).attr("id", i + "_dp_year");
		var mds = getUrlVars()["date" + mtf[i]];
		if ( !(mds) ) {
			$(this).val(getUrlVars()["year" + mtf[i]]);
		} else {
			$(this).val(mds.split(".")[2]);
		}
	});

	$("div.dategroup input[type='text']").attr("id", function(i) {
		return i + "_dp_date";
	});

	$("div.dategroup select[name^='day']").change(function() {
		updateInputField(this.id);
	});
	$("div.dategroup select[name^='month']").change(function() {
		updateInputField(this.id);
	});
	$("div.dategroup select[name^='year']").change(function() {
		updateInputField(this.id);
	});
	$("div.dategroup div.datepicker").each(function(i) {
		var oDatePicker;
		this.id = i + "_dp";
		oDatePicker = $("#" + this.id);
		oDatePicker.before('<img class="ui-datepicker-trigger" src="' + cfg.datepicker.buttonImageUrl + '" alt="' + cfg.datepicker.buttonText + '" title="' + cfg.datepicker.buttonText + '"/>');
		oDatePicker.hide();
		oDatePicker.datepicker({
			onSelect: function(dateText, inst) {
				var dt = new Date(inst.currentYear, inst.currentMonth, inst.currentDay);
				$("#" + getDayId(inst.id)).attr("value", dt.getDate());
				$("#" + getMonthId(inst.id)).attr("value", dt.getMonth()+1);
				$("#" + getYearId(inst.id)).attr("value", dt.getFullYear());
				$("#" + inst.id).hide();
			},
			showButtonPanel: true,
			showOtherMonths: true,
			changeMonth: true,
			changeYear: true
		});
	});
	$("img.ui-datepicker-trigger").attr("id", function(i) {
		return i + "_dp_trigger";
	});
	$("img.ui-datepicker-trigger").click(function() {
		var sId = getDatePickerId(this.id)
		var oDatePicker = $("#" + sId);
		if (oDatePicker.css("display") == "none") {
			var sDay = ($("#" + getDayId(this.id)).val());
			var sMonth = ($("#" + getMonthId(this.id)).val());
			var sYear = ($("#" + getYearId(this.id)).val());
			if ((sDay != "-1") && (sMonth != "-1") && (sYear != "-1")) {
				var dt = new Date(Number(sYear), Number(sMonth)-1, Number(sDay));
				oDatePicker.datepicker('setDate', dt);
			}
		}
		hideDatePicker(sId);
		oDatePicker.css("left",this.offsetLeft);
		oDatePicker.css("top",this.offsetTop + this.offsetHeight);
		oDatePicker.toggle("normal");
	});
});

$(document).mousedown(function(event) {
	var $target = $(event.target);
	if (($target.parents('div.datepicker').length == 0) &&
		!$target.hasClass($.datepicker._triggerClass))
		hideDatePicker('');
});


function getUrlVars()
{
	var vars = [], hash;
	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	for(var i = 0; i < hashes.length; i++)
		{
			hash = hashes[i].split('=');
			vars.push(hash[0]);
			vars[hash[0]] = hash[1];
		}
		return vars;
}

function updateInputField(sId) {
	var sDay = ($("#" + getDayId(sId)).val());
	var sMonth = ($("#" + getMonthId(sId)).val());
	var sYear = ($("#" + getYearId(sId)).val());
	if ((sDay != "-1") && (sMonth != "-1") && (sYear != "-1")) {
		$("#" + getDateId(sId)).attr("value", sDay + "." + sMonth + "." + sYear);
	}
}

function getBaseId(sFromId) {
	return sFromId.substr(0, sFromId.search("_"));
}

function getDatePickerId(sFromId) {
	return getBaseId(sFromId) + "_dp";
}

function getDayId(sFromId) {
	return getBaseId(sFromId) + "_dp_day";
}

function getMonthId(sFromId) {
	return getBaseId(sFromId) + "_dp_month";
}

function getYearId(sFromId) {
	return getBaseId(sFromId) + "_dp_year";
}

function getDateId(sFromId) {
	return getBaseId(sFromId) + "_dp_date";
}

function hideDatePicker(sExceptId) {
	$("div.dategroup div.datepicker").each(function(i) {
		if (this.id != sExceptId) {
			$("#" + this.id).hide();
		}
	});
}

function cssCheck() {
	var cssdisabled = false;
	var testcss = document.createElement('div');
	testcss.style.position = 'absolute';
	document.getElementsByTagName('body')[0].appendChild(testcss);
	if (testcss.currentStyle) var currstyle = testcss.currentStyle['position'];
	else if (window.getComputedStyle) var currstyle = document.defaultView.getComputedStyle(testcss, null).getPropertyValue('position');
	var cssdisabled = (currstyle == 'static') ? true : false;
	document.getElementsByTagName('body')[0].removeChild(testcss);
	return cssdisabled;
}

