var cfg = {};

cfg.imgUrl = "/images/design/";

/**
 * jQuery UI datepicker config
 */
/* Czech initialisation for the jQuery UI date picker plugin. */
/* Written by Tomas Muller (tomas@tomas-muller.net). */	
cfg.datepicker = {
	buttonImageUrl: cfg.imgUrl + "kalendar.gif",
	buttonText: "Vyberte datum",
	language: 'cs',
	translation: {
		clearText: 'Vymazat', clearStatus: 'Vymaže zadané datum',
		closeText: 'Zavřít',  closeStatus: 'Zavře kalendář beze změny',
		prevText: 'Dříve', prevStatus: 'Přejít na předchozí měsí',
		nextText: 'Později', nextStatus: 'Přejít na další měsíc',
		currentText: 'Nyní', currentStatus: 'Přejde na aktuální měsíc',
		monthNames: ['leden','únor','březen','duben','květen','červen',
	    'červenec','srpen','září','říjen','listopad','prosinec'],
		monthNamesShort: ['leden','únor','březen','duben','květen','červen',
		'červenec','srpen','září','říjen','listopad','prosinec'],
		monthStatus: 'Přejít na jiný měsíc', yearStatus: 'Přejít na jiný rok',
		weekHeader: 'Týd', weekStatus: 'Týden v roce',
		dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
		dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
		dayNamesMin: ['ne','po','út','st','čt','pá','so'],
		dayStatus: 'Nastavit DD jako první den v týdnu', dateStatus: '\'Vyber\' DD, M d',
		dateFormat: 'dd.mm.yy', firstDay: 1, 
		initStatus: 'Vyberte datum',
		isRTL: false
	},
	today: "dnes",
	next7days: "nadcházejících 7 dní",
	next30days: "nadcházejících 30 dní",
	term: "první pololetí 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 dp = dateText.split(".");
				if (dp.length > 2) {
					var dt = new Date(dp[2], dp[1]-1, dp[0]);
					$("#" + getDayId(inst.id)).attr("value", dt.getDate());
					$("#" + getMonthId(inst.id)).attr("value", dt.getMonth()+1);
					$("#" + getYearId(inst.id)).attr("value", dt.getFullYear());
					updateInputField(inst.id);
				}
				$("#" + inst.id).hide();
			},
			beforeShow: function(input) {
				alert('beforeShow');
			},
			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;
}

