﻿/**
  * Prace s tabulkami terminu
  * (C)2007 Drkula Ondrej, Inexes
  */

/* Globalni promenne */
var table = document.getElementById("termTable");
var months = getElementsByClass('td','noScreen');
var monthEmpty = new Array();
var rows = { items : new Array() }
var year = (new Date()).getYear();
if (getObj('yearSel').getElementsByTagName("select").length > 0)
	year = getObj('yearSel').getElementsByTagName("select")[0].options[getObj('yearSel').getElementsByTagName("select")[0].selectedIndex].value;
var pageLang = document.body.parentNode.attributes['lang'].value;
var actualMonth = 0;
var defaultHeader = getObj('termH2').innerHTML;

/* Inicializace, načtená po načtení stránky */
addEventx(window,'onload','rows.postInit();');
rows.postInit = function () {
	var d = new Date();
	actualMonth = parseInt(d.getMonth()) + 1;			
		
	//hideForm();	// schova formular
	for(var i = actualMonth; i < 12; i++) {		
		if (!monthEmpty[i+'-'+year]) {
			showMonth(i, year, getMonthName(i - 1).toLowerCase()); // zobrazi aktualni mesic
			return;
		}
	}
	showMonth(actualMonth, year, getMonthName(actualMonth - 1).toLowerCase());
}

function changeYear(control) {
	year = control.options[control.selectedIndex].value;	
	
	for(var i = 0; i < 12; i++) {
		if (!monthEmpty[(i+1)+'-'+year]) {			
			actualMonth = i+1;
			break;
		}
	}	
	
	showMonth(actualMonth, year, getMonthName(actualMonth - 1).toLowerCase());
	
	/* Zobrazi seznam mesicu s odkazy */
	var html = '<div class=\"msCleaner\">&nbsp;</div>';
	for (var i=0;i<12;i++) {
		if (!monthEmpty[(i+1) + '-' + year])
			html += '<a id="mth_' + i + '" href=\"javascript:showMonth(' + (i+1) + ", " + year + ", '" + getMonthName(i).toLowerCase() + "');\" title=\"" + getMonthName(i) + "\">" + getMonthName(i) + "</a>";
		else
			html += '<span id="mth_' + i + '">' + getMonthName(i) + "</span>";
	}
	getObj('monthSelector').innerHTML = html;
}

/* Funkce pro zjisteni nazvu mesice podle jeho cisla */
function getMonthName(num) {
    var cs = new Array(12);
    cs[0]="Leden";
    cs[1]="Únor";
    cs[2]="Březen";
    cs[3]="Duben";
    cs[4]="Květen";
    cs[5]="Červen";
    cs[6]="Červenec";
    cs[7]="Srpen";
    cs[8]="Září";
    cs[9]="Říjen";
    cs[10]="Listopad";
    cs[11]="Prosinec";
    
    var en = new Array(12);
    en[0]="January";
    en[1]="February";
    en[2]="March";
    en[3]="April";
    en[4]="May";
    en[5]="June";
    en[6]="July";
    en[7]="August";
    en[8]="September";
    en[9]="October";
    en[10]="November";
    en[11]="December";
    
    if (pageLang == "cs") {
        document.getElementById('monthSelector').className = "";
        return cs[num];
    }
    document.getElementById('monthSelector').className = "en";
    return en[num];
}

/* Funkce pro znounapozicovani paticky v IE6 (jinak by paticka zustala na stejnem miste) */
function correctFooterPosition() {
    if (browser.IE6) {
        document.getElementById("footerBox").style.position = "absolute";
        document.getElementById("footerBox").style.bottom = "0";
    }
}

if (getObj('yearSel').getElementsByTagName("select").length > 0) {
	for (var i = 1; i < 13; i++) {	
			for(var j = 0; j < getObj('yearSel').getElementsByTagName("select")[0].options.length; j++) {			
				monthEmpty[i+'-'+getObj('yearSel').getElementsByTagName("select")[0].options[j].value] = true;
			}		
		}
	for (var i=0; i<months.length; i++) 
		monthEmpty[months[i].innerHTML] = false;
	
} else {
	for(var i = 1; i < 13; i++) 
		monthEmpty[i+'-'+year] = true;	
	
	for (var i=0; i<months.length; i++) 
		monthEmpty[months[i].innerHTML+'-'+year] = false;
} 
	

/* Zobrazi seznam mesicu s odkazy */
document.writeln("<div id=\"monthSelector\"><div class=\"msCleaner\">&nbsp;</div>");
for (var i=0;i<12;i++) {		
	if (!monthEmpty[(i+1) + '-' + year])
		document.write("<a id=\"mth_" + i + "\" href=\"javascript:showMonth(" + (i+1) + ", " + year + ", '" + getMonthName(i).toLowerCase() + "');\" title=\"" + getMonthName(i) + "\">" + getMonthName(i) + "</a>");
	else
		document.write("<span id=\"mth_" + i + "\">" + getMonthName(i) + "</span>");
}
document.writeln("</div>");

/* Funkce pro zobrazeni jen jednoho mesice podle jeho cisla */
function showMonth(number, year, name) {

	actualMonth = number;

    if (!browser.IE6) {
        //hideForm();	// schova formular
    }
    
	for (var i=0; i<months.length; i++) {
		if (months[i].innerHTML == number+'-'+year || months[i].innerHTML == number) {
			if (browser.IE) {
			    months[i].parentNode.style.display = "block";
			} else {
                months[i].parentNode.style.display = "table-row";
            }
            
			var url = location.href.replace(/#reserve/, "");
			var rCount = months[i].parentNode.getElementsByTagName("td").length;


			if ((months[i].parentNode.getElementsByTagName("td")[1].innerHTML == '1' || months[i].innerHTML.indexOf('-') == -1) && months[i].parentNode.getElementsByTagName('input')[1].value == 'true')
				months[i].parentNode.getElementsByTagName("td")[rCount - 1].innerHTML = '<a href="' + url + '#reserve" onclick="prepaireForm(\'' + months[i].parentNode.getElementsByTagName("td")[2].innerHTML.replace(/\n/, "") + '\', ' + (months[i].parentNode.getElementsByTagName('input').length > 0 ? months[i].parentNode.getElementsByTagName('input')[0].value : 0) + ');" title="' + (pageLang == "cs" ? "Rezervovat" : "Reserve") + '">' + (pageLang == "cs" ? "Rezervovat" : "Reserve") + '</a>';
		} else {
			months[i].parentNode.style.display = "none";
		}
	}
	
	for (var j=1;j<=12;j++) {
		if (j == number) {
		    document.getElementById('mth_'+(j-1)).className = "active";
		} else {
		    document.getElementById('mth_'+(j-1)).className = "";
		}
	}
	if (getObj('termH2'))
		getObj('termH2').innerHTML = (defaultHeader + " - " + name + ' ' + year);
	else
		table.parentNode.parentNode.getElementsByTagName("h2")[0].innerHTML = (defaultHeader + " - " + name + ' ');
}

/* Funkce pro zobrazeni rezervacniho formulare a predvyplneni terminu */
function prepaireForm(term, id) {
	if (document.getElementById("reservationTable")) {
		if (document.getElementById("divResForm"))
			document.getElementById("divResForm").style.display = "block";
		document.getElementById("reservationTable").style.display = "block";
		term = term.toLowerCase().replace(/<br>/, "");
		term = term.replace(/<br \/>/, "");
		document.getElementById("reservationTable").getElementsByTagName("input")[0].value = term;
		correctFooterPosition();
    } else {
		popup.open((pageLang != "cs" ? "en/" : "") + 'Reservation.aspx?TID=' + id,500,600,true);
    }
}

/* Funkce pro schovani formulare */
function hideForm() {
    document.getElementById("reservationTable").style.display = "none";
    document.getElementById("reservationHeader").innerHTML = "";
}

