/*
 *	soubor: calendar.js
 *	 autor: Filip Krajcovic
 *	 datum: 18.05.2008
 *
 *	 popis: kalendar pro vyber datumu
 *
 *	 zmeny:
 *	27.07.2010 - pridan posun o rok
 */

var _months = new Array('leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec');

var _days = new Array(31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

var _open = new Array();

var IE = (navigator.appName == "Microsoft Internet Explorer");

function create_calendar(t_date, t_input)  {

	if (t_date != '0')  var _date = new Date(t_date);
	else  var _date = new Date();

//position:relative; 
	var c = "";
	c += "<span id='calendar_grid' style='position:absolute; width:140px; padding:5px; margin-left:4px; '>";

//  posuvniky, mesic a rok
	c += "<table width='100%' cellspacing='0' cellpadding='0' border='0'>";

	var m = _date.getMonth();
	var y = _date.getFullYear();

	//  m neni cislo mesice ale index mesice
	var prev_date_y = (m + 1) + "/01/" + (y - 1);
	var next_date_y = (m + 1) + "/01/" + (y + 1);

	if (m - 1 < 0)  var prev_date = "12/01/" + (y - 1);
	else  var prev_date = (m) + "/01/" + y;


	if (m + 1 > 11)  var next_date = "01/01/" + (y + 1);
	else  var next_date = (m + 2) + "/01/" + y;

	c += "<tr>";
	c += "<td style='width:10%'><a href=\"javascript:move_calendar('" + prev_date_y + "', '" + t_input + "');\">&laquo;</a></td>";
	c += "<td style='width:10%'><a href=\"javascript:move_calendar('" + prev_date + "', '" + t_input + "');\">&lt;</a></td>";
	c += "<td style='width:60%; text-align:center'>" + _months[m] + " " + y  + "</td>";
	c += "<td style='width:10%'><a href=\"javascript:move_calendar('" + next_date + "', '" + t_input + "');\">&gt;</a></td>";
	c += "<td style='width:10%'><a href=\"javascript:move_calendar('" + next_date_y + "', '" + t_input + "');\">&raquo;</a></td>";
	c += "</tr>";

	c += "</table>";

//  mezera
	c += "<div style='padding-top:2px; '></div>";

//  dny
	c += "<table width='100%' cellspacing='0' cellpadding='0' border='0'>";

	c += "<tr>";
	c += "<td class='days_row' style='width:15%'>Po</td>";
	c += "<td class='days_row' style='width:14%'>Út</td>";
	c += "<td class='days_row' style='width:14%'>St</td>";
	c += "<td class='days_row' style='width:14%'>Čt</td>";
	c += "<td class='days_row' style='width:14%'>Pá</td>";
	c += "<td class='days_row' style='width:14%'>So</td>";
	c += "<td class='days_row' style='width:15%'>Ne</td>";
	c += "</tr>";

	var td = new Date(m + 1 + "/01/" + y);
//	alert(td.getDay());

	c += "<tr>";

//  "prazdne" dny

	var end_day = td.getDay();
	if (end_day == 0)  end_day = 7;

	var nl = 1;
	for (var i = 0; i < end_day - 1; i++)  {
		c += "<td> </td>";
		nl++;
	}

//  unor, pekne...
	_days[1] = (((y%100!=0)&&(y%4==0))||(y%400==0))?29:28;

	var _today = new Date();

	var end_day = _days[m];
	for (var i = 1; i <= end_day; i++)  {
		var tdb = "<td>";

//  zvyrazneni aktualniho vybraneho datumu z minuleho vyberu zatim nemam
//		if (_date.getDate() == i && _date.getMonth() == m && _date.getFullYear() == y)  var tdb = "<td class='actual_day'>";
		if (_today.getDate() == i && _today.getMonth() == m && _today.getFullYear() == y)  var tdb = "<td class='today_day'>";

		c += tdb;
		c += "<a href=\"javascript:sh_caledar('" + i + "." + (m + 1) + "." + y + "', '" + t_input + "')\">" + i + "</a>";
		c += "</td>";
		if (nl >= 7)  {
			c += "</tr><tr>";
			nl = 0;
		}
		nl++;
	}

//		c += "<td>" + (i + 1) + "</td>";
	c += "</tr>";

	c += "</table>";

	c += "</span>";

	return c;
}

//  IE hack, nejde v nem array.indexOf 
function array_search(arr, val)  {
	index = -1;
	for (var i = 0; i < arr.length; i++)
		if (arr[i] == val)  {
			index = i;
			break;
		}
	return index;
}

function move_calendar(t_date, t_input)  {
	var place = document.getElementById('calendar_place_' + t_input);
	if (place)  place.innerHTML = create_calendar(t_date, t_input);	
	else  alert('nemam place');
}

function sh_caledar(t_date, t_input)  {
	if (!IE)  var ii = _open.indexOf(t_input);
	else  var ii = array_search(_open, t_input);

	if (ii == -1)  {
		var t_i = document.getElementById(t_input);
		if (t_i.value != "")  {
			var x = t_i.value.split(".");
			var t_date = x[1] + "/" + x[0] + "/" + x[2];
		} else  var t_date = '0';

		document.getElementById('calendar_place_' + t_input).innerHTML = create_calendar(t_date, t_input);	
		_open.push(t_input);
	} else  {
		var t_i = document.getElementById(t_input);
		if (t_i && t_date != '0')  t_i.value = t_date;
		document.getElementById('calendar_place_' + t_input).innerHTML = "";
		_open.splice(ii, 1);
	}
}

function make_calendar(t_input)  {
	var c = "";

	c += "<span id='calendar_" + t_input + "' style='vertical-align:middle; '><img src='pics/calendar.jpg' alt='' style='cursor:pointer; ' onclick=\"sh_caledar('0', '" + t_input + "');\"/><span id='calendar_place_" + t_input + "'></span></span>";

//	alert(c);

	document.write(c);
}


