/**
 * PHP kalendar
 * --------------------------------------
 * This source file is subject to the GNU GPL license.
 * Tento zdrojovy soubor je pod GNU GPL licenci.
 * 
 * @link       http://kaviarovetoasty.com/PHP-kalendar.html
 * @author     Tom?? Bedrn?k <beda@kaviaroveotasty.com>
 * @copyright  Copyright (c) 2006 Tom?? Bedrn?k
 * @license    GNU GENERAL PUBLIC LICENSE v2
 * @package    PHP kalendar
 * @version    1.0 beta1
 */
//kdyz tuhle promennou dal neprepis, znamena to, ze to pojede bez ajaxu
var ajax = false;

//funkce pro prepis spatne adresy na aktualni datum
//nejspis ji smazu, musi se to vyresit uz v php
function prepis_adresy(datum){
	var adresa = "http://" + window.location.host + window.location.pathname;
	window.location.href = adresa + "?stat=den&den=" + datum;
}

//metoda pro hledani v poli
Array.prototype.hledej = function (s)
{
for(var i=0;i<this.length;i++)
if(this[i] == s) return true; 
return false;
}

function prepsat_odkazy(){
	
	var pocet_odkazu = document.links.length;
	if(navigator.appName == "Microsoft Internet Explorer")
		var ie = true;
	else
		var ie = false;


	for (i=0;i<pocet_odkazu;++i){
		var odkaz = document.links[i];
		if(odkaz.parentNode.tagName == 'TD' && odkaz.parentNode.parentNode.parentNode.parentNode.getAttribute('id') == 'kalendar'){
			if(ie){
				odkaz.onclick = function (){
					return klik(this,event);
				}
			}
			else{
				odkaz.onmousedown = function (event){
					klik(this,event);
				}
			}
		}
	}
}

function zrus_kliknuti_ne_ie(odkaz){
	odkaz.removeAttribute('href');
}

function klik(odkaz,udalost){
	if(navigator.appName == "Microsoft Internet Explorer")
		var ie = true;
	else
		var ie = false;

	//alert(P_aktivni_dny.join(";"));
	//zjisti jestli bylo kliknuto s ctrl nebo shift
	//1 - ctrl i shift
	//2 - ctrl
	//3 - shift
	var multivyber = false;
	if(udalost.button==0 && udalost.ctrlKey==true && udalost.shiftKey==true){
		var klavesa = 1;
		var multivyber = true;
	}
	else if(udalost.button==0 && udalost.ctrlKey==true){
		var klavesa = 2;
		var multivyber = true;
	}
	else if(udalost.button==0 && udalost.shiftKey==true){
		var klavesa = 3;
		var multivyber = true;
	}

	var den = Number(odkaz.getAttribute("href").match(/den=(\d+)/)[1]);
	var statistika = odkaz.getAttribute("href").match(/stat=([a-z]+)/)[1];
	
	if(predat_statistika_aktivni != '')
		statistika_aktivni = predat_statistika_aktivni;
	else
	{
		if(window.location.search.match(/stat=([a-z_]+).*/) != null)
			statistika_aktivni = window.location.search.match(/stat=([a-z_]+).*/)[1];	
		else
			statistika_aktivni = "den";
	}

	var adresa = "http://" + window.location.host + window.location.pathname;
	var pocet_aktivnich_dnu = P_aktivni_dny.length;
	var P_prevod_dne_bez_diakritiky =new Array("po","ut","st","ct","pa","so","ne");
	
	var P_dny = Array();
	var P_vsechny_dny_vyberu = Array();
	var P_nevybrane_dny_vyberu = Array();
	var pridat = false;


	if(!ie && ajax){
		zrus_kliknuti_ne_ie(odkaz);
	}

	//zruseni kliku jen kdyz pouzivam ajax, kdyz ne-e zrusim klik jen u multivyberu
	if(multivyber){
		if(!ie && !ajax){
			zrus_kliknuti_ne_ie(odkaz);
		}
		//kdyz nejsou vybrany vsechny dny vyberu(tydne,dne v tydnu, celeho kalendare), tak to vybere cely P_vsechny_dny_vyberu, jinak ho odznaci
		//zaroven to dny ktery nejsou oznaceny zapis do pole 'P_nevybrane_dny_vyberu'
		if(statistika == "den"){
			//ctrl
			if(klavesa==2){
				P_vsechny_dny_vyberu[0] = den;
			}
			//shift a shift + ctrl
			else{
				P_vsechny_dny_vyberu[0] = P_aktivni_dny[P_aktivni_dny.length-1];
	 			if(P_vsechny_dny_vyberu[0] < den){
					for(var i=1;P_vsechny_dny_vyberu[i-1] < den;i++){
						P_vsechny_dny_vyberu[i] = Number(P_vsechny_dny_vyberu[i-1]) + 24*60*60;
					}
	 			}
	 			else{
					for(var i=1;P_vsechny_dny_vyberu[i-1] > den;i++){
						P_vsechny_dny_vyberu[i] = Number(P_vsechny_dny_vyberu[i-1]) - 24*60*60;
					}
					P_vsechny_dny_vyberu.reverse();
	 			}
			}
		}

		else if(statistika == "tyden"){
			if(klavesa==2){
				for(var i=0;i< 7;i++){
					P_vsechny_dny_vyberu[i] = den + (i*(24*60*60));
				}
			}
			else{
	 			if(statistika_aktivni == "tyden"){
	 				P_vsechny_dny_vyberu[0] = P_aktivni_dny[0];
	 			}
	 			else{
	 				P_vsechny_dny_vyberu[0] = P_aktivni_dny[P_aktivni_dny.length-1];
	 			}
	 			if(P_vsechny_dny_vyberu[0] < den){
					for(var i=1;P_vsechny_dny_vyberu[i-1] < (den + 6*24*60*60);i++){
						P_vsechny_dny_vyberu[i] = Number(P_vsechny_dny_vyberu[i-1]) + 24*60*60;
					}
	 			}
	 			else{
	 				P_vsechny_dny_vyberu[0] = P_aktivni_dny[P_aktivni_dny.length-1];
					for(var i=1;P_vsechny_dny_vyberu[i-1] > den;i++){
						P_vsechny_dny_vyberu[i] = Number(P_vsechny_dny_vyberu[i-1]) - 24*60*60;
					}
					P_vsechny_dny_vyberu.reverse();
	 			}
			}
		}
		//den v tydnu
		else if(P_prevod_dne_bez_diakritiky.hledej(statistika)){
			if(klavesa==2){
				for(var i=0;i<pocet_zobrazenych_tydnu;i++){
					P_vsechny_dny_vyberu[i] = den + (i*(7*24*60*60));
				}
			}
			else{
				//kdyz se ma zacit pocitat od dne v tydnu
	 			if(P_prevod_dne_bez_diakritiky.hledej(statistika_aktivni)){
					P_vsechny_dny_vyberu[0] = P_aktivni_dny[0];
				}
				//zacina se od jineho dne
				else{
					P_vsechny_dny_vyberu[0] = P_aktivni_dny[P_aktivni_dny.length-1];
				}
				
				//vypocitam, na jaky pozici je prvni den
				var kolikatej_od_zacatku = (P_vsechny_dny_vyberu[0]-prvni_den_na_strance)/(24*60*60)+1;
				var radek_k_pocitani = Math.ceil(kolikatej_od_zacatku/7);
				var sloupec = kolikatej_od_zacatku%7;
				if(sloupec == 0) var sloupec = 7;
				var prvni_den_sloupce = Number(prvni_den_na_strance)+(sloupec-1)*24*60*60;

				//den od kteryho se pocita je pred dnem v tydnu do kteryho se ma pocitat
				if(prvni_den_sloupce < den){
	 				var pocet_sloupcu_k_pocitani = (den - prvni_den_sloupce)/(24*60*60)+1;
					var x = 0;
	 				for(var y=0;y < pocet_sloupcu_k_pocitani;y++){
						if(y==0){
							radek_od_kteryho_zacit = radek_k_pocitani-1
						}
						else{
							radek_od_kteryho_zacit=0;
						}
						
						for(var i=radek_od_kteryho_zacit;i < pocet_zobrazenych_tydnu;i++){
							P_vsechny_dny_vyberu[x] = Number(prvni_den_sloupce) + i*7*24*60*60 + y*24*60*60;
							x++;
						}
	 				}
	 			}
	 			else{
					var pocet_sloupcu_k_pocitani = (prvni_den_sloupce-den)/(24*60*60)+1;
	 				var x = 0;
					for(var y=pocet_sloupcu_k_pocitani-1;y >= 0;y--){
						if(y==0 && !P_prevod_dne_bez_diakritiky.hledej(statistika_aktivni)){
							radek_do_kteryho_pocitat = radek_k_pocitani;
						}
						else{
							radek_do_kteryho_pocitat=pocet_zobrazenych_tydnu;
						}
						for(var i=0;i < radek_do_kteryho_pocitat;i++){
							P_vsechny_dny_vyberu[x] = Number(prvni_den_sloupce) + i*7*24*60*60 - y*24*60*60;
							x++;
						}
	 				}
	 			}
			}
		}
		
		
		
	
		
		//kdyz je zmacknutej shift
		if(klavesa==3){
			var datumy_v_adrese = P_vsechny_dny_vyberu.join(";");
		}
		//shift a shift + ctrl
		else{
			//vybere jen neaktivni dny z vyberu
			var delka = P_vsechny_dny_vyberu.length;
			for(var i=0;i<delka;i++){
				if(!P_aktivni_dny.hledej(P_vsechny_dny_vyberu[i])){
					P_nevybrane_dny_vyberu = P_nevybrane_dny_vyberu.concat(P_vsechny_dny_vyberu[i]);
					var pridat = true;
				}
			}
			
			//prida dny do vyberu
			if(pridat){
				var datumy_v_adrese = P_aktivni_dny.concat(P_nevybrane_dny_vyberu).join(";");
			}
			//neudela nic, kdyz by zustal prazdny vyber
			//smaze dny z vyberu
			else{
				var datumy_v_adrese = "";
				for(var i=0;i<pocet_aktivnich_dnu;i++){
					if(!P_vsechny_dny_vyberu.hledej(P_aktivni_dny[i])){
						datumy_v_adrese  += P_aktivni_dny[i]+";";
					}
				}
				if(!datumy_v_adrese){
					var datumy_v_adrese = P_aktivni_dny.join(";");
				}
			}
		
		}
		
		//kdyz je pouzitej ajax, pouziju funkci na obsluhu ajaxu
		if(ajax){
			ajax_klik("stat=vic_dni&den=" + datumy_v_adrese);
		}
		//kdyz neni pouzitej ajax, presmeruju to na novou stranku s novou adresou
		else{
			window.location.href = adresa + "?stat=vic_dni&den=" + datumy_v_adrese;
		}
	if(!ajax)
		return false;
	}
	//jedna se o normalni klik s pouzitim ajaxu
	else if(ajax){
		ajax_klik("stat="+statistika+"&den=" + den);
	}
	if(ajax)
		return false;
}

window.onload = prepsat_odkazy;

