/**
 * Funkcje napisane na bazie biblioteki Prototype
 * 
 */
/**
 * Ta klasa tworzy divy z podpowiedzia, ktora pokazuje sie po najechaniu 
 * myszka na dany element (element_sledzony). Tekst, jaki pokazuje sie 
 * w podpowiedzi przekazywany do konstruktora w zmiennej tekst
 */

var Podpowiedz = Class.create({
	initialize: function(tekst, element_sledzony) {
    	this.tekst = tekst;
    	this.element_sledzony = element_sledzony;
    	this.podpowiedz;

	},
	pokaz_podpowiedz: function(evt) {
		var tutaj_byla_akcja = Event.findElement(evt);

		tutaj_byla_akcja.setStyle('cursor: help;');
		var pozycja = tutaj_byla_akcja.positionedOffset();
		var w = tutaj_byla_akcja.getWidth();
		var h = tutaj_byla_akcja.getHeight();
		var podpowiedz = new Element('div');
		tutaj_byla_akcja.insert({after:podpowiedz});

		podpowiedz.innerHTML = this.tekst;
		
		podpowiedz.addClassName('podpowiedz');
		podpowiedz.absolutize().setStyle('left: '+(pozycja[0]+w)+'px; top: '+(pozycja[1]+h)+'px; ').show();
		this.podpowiedz = podpowiedz;
	}, 
	schowaj_podpowiedz: function(evt){
		this.podpowiedz.remove();
	}
});

var Sprawdzanie = Class.create({
	initialize: function() {
		this.tresc_bledu = '';
		this.tresc_bledow = '';
		this.przycisk = '';
	},
	sprawdz_formularz: function (evt){
		if(this.przycisk == 'akcja[anuluj]' || this.przycisk == 'akcja[lista]'){
			return true;
		};
		var ok = true;
		
		var f = $$('.niepuste');
		for(var i=0; i<f.length; i++){
			ok = ok & this.sprawdz_czy_niepuste(f[i]);
			if(this.tresc_bledu){
				this.tresc_bledow+=this.tresc_bledu;
			};
		}
		
		var e = $$('.e-mail');
		for(var i=0; i<e.length; i++){
			ok = ok & this.sprawdz_czy_poprawny_email(e[i]);
			if(this.tresc_bledu){
				this.tresc_bledow+=this.tresc_bledu;
			};
		}

		if(!this.tresc_bledow){
			return true;
		}
		alert(this.tresc_bledow);

		if(!ok){
			Event.stop(evt);
		};
		return false;
	},

	sprawdz_czy_niepuste_event: function (evt){		
		var tutaj_byla_akcja = Event.element(evt);
		this.sprawdz_czy_niepuste(tutaj_byla_akcja);
		Event.stop(evt); 
	},
	sprawdz_czy_niepuste: function (tutaj_byla_akcja){
		var parents = tutaj_byla_akcja.ancestors();
		var td = parents[0];
		var th = td.siblings();
		var t = th[0];
		if(!tutaj_byla_akcja.value ){
			this.tresc_bledu = 'Pole <i><strong>' + t.innerHTML.replace(/:.*/i, "").replace(/<.*>/i, "").replace(/\*/, '') + '</strong></i> nie może być puste.<br />';
			alert(this.tresc_bledu);
			//utworz_alert(td, this.tresc_bledu);
			return false;
		} else {
			this.tresc_bledu = '';
			schowaj_alert(td);
			return true;
		}
	},
	sprawdz_czy_poprawny_email_event: function(evt){
		var tutaj_byla_akcja = Event.element(evt);
		this.sprawdz_czy_poprawny_email(tutaj_byla_akcja);
		Event.stop(evt); 
	},
	sprawdz_czy_poprawny_email: function(tutaj_byla_akcja){
		var parents = tutaj_byla_akcja.ancestors();
		var td = parents[0];
		var th = td.siblings();
		if(tutaj_byla_akcja.value && tutaj_byla_akcja.value.search(/[a-z0-9-_.]+@(([a-z0-9-_]+)\.)+[a-z]/i) == -1){
			this.tresc_bledu = 'Pole <i><strong>' + th[0].innerHTML.replace(/:.*/i, "").replace(/<.*>/i, "") + '</strong></i> zawiera niepoprawny adres e-mail<br />';
			//utworz_alert(td, this.tresc_bledu);
			alert(this.tresc_bledu);
			return false;
		} else {
			this.tresc_bledu = '';
			schowaj_alert(td);
			return true;
		}
	}
});
var Kalendarz = Class.create({
	initialize: function() {
		this.element_id = 0;
		this.kalendarz_podpowiedz;
	},
	utworz_kalendarz: function (element){
		this.element_id = element.id;
		element.setStyle({verticalAlign:'top'});
		
		if(element.next() == null || element.next().tagName!='IMG' || !element.next().src == 'http://localhost/pl/administracja/img/calendar.png'){
			// Tworzenie ikonki kalendarza
			this.kalendarz_podpowiedz = new Element('img');
			this.kalendarz_podpowiedz.src	= "/pl/administracja/img/calendar.png";
			this.kalendarz_podpowiedz.addClassName('kalendarz_podpowiedz');
			this.kalendarz_podpowiedz.setStyle({border:'1px solid #4D6185'});

		
			// Wstawianie ikonki
			element.insert({ after: this.kalendarz_podpowiedz });
			element.insert({ after: '&nbsp;' });
			
			// Tworzenie podpowiedzi aktywowanej myszką
			var podpowiedz = new Podpowiedz('Kliknij, żeby otworzyć kalendarz', this.kalendarz_podpowiedz);
			Event.observe(this.kalendarz_podpowiedz, 'mouseover', podpowiedz.pokaz_podpowiedz.bind(podpowiedz));
			Event.observe(this.kalendarz_podpowiedz, 'mouseout', podpowiedz.schowaj_podpowiedz.bind(podpowiedz));
	
			// Uwidocznienie kalendarza po najechaniu myszką 
			Event.observe(this.kalendarz_podpowiedz, 'click', this.pokaz_kalendarz.bind(this));
	
			// Sprawdzanie daty po zmianie wartości w polu input
			Event.observe(element, 'change', this.sprawdz_date.bind(this));
		}
	},
	
	// Wywołuje funkcję wyświetlającą kalendarz oraz sprawdzanie daty
	pokaz_kalendarz: function(evt){
		fPopCalendar(this.element_id);
	},
	sprawdz_date: function(evt){
		sprawdz_date(this.element_id);
		
	}
});

var ElementZwijany = Class.create({
	initialize: function(zwijany, kontrolka, nazwa_grupy, nazwa_domyslna, rodzaj){
		this.zwijany = zwijany;
		this.kontrolka = kontrolka;
		this.nazwa_grupy = nazwa_grupy;
		this.nazwa_domyslna = nazwa_domyslna; // czy uzywamy nazwy domyslnej, typu 'Zwin liste', czy nazwy grupy
		this.rodzaj = rodzaj;
	},
	zwin_element: function(evt){
		this.kontrolka.stopObserving('click');
		Effect.SlideUp(this.zwijany.id);
		this.kontrolka.innerHTML = '';
		if(this.nazwa_domyslna){
			if(this.rodzaj == 1 || this.rodzaj == 2){
				this.nazwa_grupy = 'Rozwiń listę zdjęć';
			} else {
				this.nazwa_grupy = 'Rozwiń listę załączników';
			};
		};
		this.kontrolka.insert('<img src="/pl/administracja/img/lista+.png" />&nbsp;').insert('<strong>'+this.nazwa_grupy+'</strong>');
		this.kontrolka.observe('click', this.rozwin_element.bind(this));
		return true;
	},
	rozwin_element: function(evt){
		this.kontrolka.stopObserving('click');
		Effect.SlideDown(this.zwijany.id);
		this.kontrolka.innerHTML = '';
		if(this.nazwa_domyslna){
			if(this.rodzaj == 1 || this.rodzaj == 2){
				this.nazwa_grupy = 'Zwiń listę zdjęć';
			} else {
				this.nazwa_grupy = 'Zwiń listę załączników';
			};
		};
		this.kontrolka.insert('<img src="/pl/administracja/img/lista-.png" />&nbsp;').insert('<strong>'+this.nazwa_grupy+'</strong>');		
		this.kontrolka.observe('click', this.zwin_element.bind(this));
		return true;	
	}
});

Event.observe(window, 'load', page_loaded, false);
function page_loaded(evt) {
	if(document.getElementById) {
		window.alert = function(tresc) {
			pokaz_okno_z_bledami(tresc);
		};
	}
	/*
	 * TODO: własne styl dla confirm box
	 * if(document.getElementById) {
		  window.confirm = function(tresc) {
			  pokaz_okno_z_bledami(tresc);
		  };
	}*/

	var sprawdzanie = new Sprawdzanie();
	//utworz_divy_na_komunikaty();
	var alerty = new Array('blad', 'ostrzezenie', 'informacja', 'potwierdzenie');
	alerty.each(
			function(name){
				if($(name)){
					var p_handles = $(name).getElementsByClassName('handle');
					if(p_handles.length == 1){
						var handle = p_handles[0];
					} else {
						alert('Błąd w javascript gabaPrototypeScripts, linia 174');
					}
					handle.setStyle('cursor:move');
					new Draggable(name, {handle: handle});
					wycentruj($(name));
					
					var p_zamkniecia = $(name).getElementsByClassName('zamkniecie');
					if(p_zamkniecia.length == 1){
						var zamkniecie = p_zamkniecia[0];
					}

					if(zamkniecie){
						zamkniecie.observe('mouseover', function(event) {
							this.addClassName('mouseover');
						});
						
						zamkniecie.observe('mouseout', function(event) {
							this.removeClassName('mouseover');
						});

						zamkniecie.observe('mousedown', function(event) {
							this.setStyle({backgroundImage:'url(/pl/administracja/img/przyciski/Zamknij_.png)'});
						});
						
						zamkniecie.observe('click', function(event) {
							hideLayer(name);
						});
					}
				}
			});
	
	
	$$('.zaznacz_radio_button').each(function(item) {
		item.observe('change', przestaw_radio_button);
	});
	
	$$('.niepuste').each(function(item) {
		item.observe('change', sprawdzanie.sprawdz_czy_niepuste_event.bind(sprawdzanie));
	});
	
	$$('.e-mail').each(function(item) {
		item.observe('blur', sprawdzanie.sprawdz_czy_poprawny_email_event.bind(sprawdzanie));
	});

	$$('.kalendarz').each(function(item) {
		var kalendarz = new Kalendarz();
		kalendarz.utworz_kalendarz(item);
	});
	
	$$('.zwin_tabele').each(function(item){
		zwin_tabele(item);
	});
	
	$$('.zajawka_wyrownanie').each(function(item){
		item.observe('change', zmien_wyrownanie_w_zajawce);
	});
	$$('.zajawka_zdjecie').each(function(item){
		item.observe('change', wstaw_zdjecie_do_zajawki);
	});
	
	var w = $$('.wierszListy');
	for(var i=0; i<w.length; i++){
		Event.observe(w[i], 'mouseover', zaznacz_wiersz);
		Event.observe(w[i], 'mouseout', odznacz_wiersz);
	}
	
	var p = $$('.przycisk');
	var whichPressed;
	for(var i=0; i<p.length; i++){
		if(p[i].disabled){
			p[i].setStyle('cursor: no-drop');
		} else {
			p[i].setStyle('cursor: pointer');
		}
		Event.observe(p[i], 'mouseover', function(event) {
			if(this.disabled){
				this.setStyle('cursor: no-drop');
			} else {
				this.setStyle('cursor: pointer');
			}
		});
		Event.observe(p[i], 'mouseout', function(event) {
			this.setStyle({borderColor:'#C4C6C8',borderBottomColor:'#C4C6C8',borderTopColor:'#E8EAEC'});
		});
		Event.observe(p[i], 'mousedown', function(event) {
			this.src = this.src.replace(/.png/i, '_.png');
			
		});
		Event.observe(p[i], 'mouseup', function(event) {
			this.src = this.src.replace(/_.png/i, '.png');
		});
		Event.observe(p[i], 'click', function(event) {
			sprawdzanie.tresc_bledu = '';
			sprawdzanie.tresc_bledow = '';
			sprawdzanie.przycisk = this.name;
		});
	}
	
	if($('post')){
		Event.observe($('post'), 'submit', sprawdzanie.sprawdz_formularz.bind(sprawdzanie));
	}
	
	var p = $$('.zielony');
	for(var i=0; i<p.length; i++){
		Event.observe(p[i], 'mouseover', function(event) {
			this.setStyle({borderColor:'#6DB773',borderTopColor:'#87BE99',borderBottomColor:'#008100'});
		});
	};
	var p = $$('.czerwony');
	for(var i=0; i<p.length; i++){
		Event.observe(p[i], 'mouseover', function(event) {
			this.setStyle({borderColor:'#D57460',borderTopColor:'#D68D89',borderBottomColor:'#A00600'});
		});
	};
	
	var p = $$('.szary');
	for(var i=0; i<p.length; i++){
		Event.observe(p[i], 'mouseover', function(event) {
			this.setStyle({borderColor:'#B1B1B1',borderTopColor:'#C4C4C4',borderBottomColor:'#626262'});
		});
	};

	if($('swf_zalaczniki')){
		if($('swf_zalaczniki').value){
			var zmienne = $('swf_zalaczniki').value.split('_');
		};
		swfu_zalaczniki = swf_upload('zalaczniki', zmienne);
	};
	
	if($('swf_zdjecia')){
		if($('swf_zdjecia').value){
			var zmienne = $('swf_zdjecia').value.split('_');
		};
		swfu_zdjecia = swf_upload('zdjecia', zmienne);
	};
	
	$$('.podglad').each(function(item){
		var first = item.firstDescendant();
		item.observe('mouseover', function(evt){	
			var offset = item.positionedOffset();
			offset[0]+=66;
			first.setStyle('left:'+offset[0]+'px');
			first.setStyle('top:'+offset[1]+'px');
			first.setStyle('display: block');

		});
		item.observe('mouseout', function(evt){
			first.hide();
		});
	});
	
	// CKEditor jest ladowany wg. klasy textarea
	var cke = $$('.ckeditor');
	if (typeof CKEDITOR != 'undefined'){
		for(var i=0; i<cke.length; i++){
			CKEDITOR.replace(cke[i], {
				toolbar : 'Standard',
				filebrowserBrowseUrl : '/pl/CKFinder/ckfinder.html',
		        filebrowserImageBrowseUrl : '/pl/CKFinder/ckfinder.html?Type=Images',
		        filebrowserFlashBrowseUrl : '/pl/CKFinder/ckfinder.html?Type=Files'
			});
		}
	}

	// CKEditor jest ladowany wg. klasy textarea
	var cke_s = $$('.ckeditor_simplest');
	var cke_a = $$('.ckeditor_admin');
	
	if (typeof CKEDITOR != 'undefined'){
		for(var i=0; i<cke_s.length; i++){
			CKEDITOR.replace(cke_s[i], {
		        toolbar : 'Simplest', 
				height: '100px',
				resize_enabled: true
		    });
		}
	}
	
	if (typeof CKEDITOR != 'undefined'){
		for(var i=0; i<cke_a.length; i++){
			CKEDITOR.replace(cke_a[i], {
				toolbar : 'Admin',
				filebrowserBrowseUrl : '/pl/CKFinder/ckfinder.html',
		        filebrowserImageBrowseUrl : '/pl/CKFinder/ckfinder.html?Type=Images',
		        filebrowserFlashBrowseUrl : '/pl/CKFinder/ckfinder.html?Type=Files'
	
		    });
		} 
	}
};

function dane_wyslane(evt){
	var f = $$('.niepuste');
	for(var i=0; i<f.length; i++){
		Event.observe(f[i], 'click', item_clicked);
	}
}

function zaznacz_wiersz(evt){
	var tutaj_byla_akcja = Event.findElement(evt, '.wierszListy');
	var tds = tutaj_byla_akcja.childElements();
	tutaj_byla_akcja.tlo = tds[0].getStyle('background-color');
	tds.each(function(td){
		td.setStyle('background-color: #E8FDD0; cursor: pointer');
	});
}

function odznacz_wiersz(evt){
	var tutaj_byla_akcja = Event.findElement(evt, '.wierszListy');
	var tds = tutaj_byla_akcja.childElements();
	tds.each(function(td){
		if(tutaj_byla_akcja.tlo){
			td.setStyle('background-color: '+tutaj_byla_akcja.tlo);
		} else {
			td.setStyle('background-color: transparent');
		};
	});
}
function utworz_alert(element, tekst){
	var y = element.descendants();
	if(y.length > 1){
		if (y[1].className == 'spann'){
			x = y[1];
		}
	} else {
		x = new Element('div');
		//x.id="uwaga";
		x.addClassName('uwaga');
		x.innerHTML = '<div><img src=\"/pl/administracja/img/uwaga1.png\" /></div>  <div>'+tekst+'</div>';
		element.insert(x);
		x.setStyle('min-height: 30');
		x.addClassName('spann');
	}
}
function schowaj_alert(element){
	var x = element.descendants();
	if(x.length > 1){
		if (x[1].tagName == 'DIV'){
			x[1].remove();
		}
	};
}
// funkcja dla selektów
function ustaw_zdejmij_blokade_select(nazwa_elementu_blokowanego, element_blokujacy, numer_opcji){
	var element_blokowany = $(nazwa_elementu_blokowanego);
	if(element_blokujacy.options[numer_opcji].selected){
		element_blokowany.disabled = false;
	} else {
		element_blokowany.disabled = true;
		
		for(var i=0; i<element_blokowany.length; i++){
			element_blokowany.options[i].selected = false;
		}
	}
}
// funkcja dla dowolnych elementów
function ustaw_zdejmij_blokade(lista_nazw_elementow_blokowanych, element_blokujacy){
	if(element_blokujacy.checked){
		for(var i=0; i<lista_nazw_elementow_blokowanych.length; i++){
			$(lista_nazw_elementow_blokowanych[i]).disabled = false;
			$(lista_nazw_elementow_blokowanych[i]).stopObserving('mouseover');
			$(lista_nazw_elementow_blokowanych[i]).stopObserving('mouseout'); 
			if(lista_nazw_elementow_blokowanych[i].search(/data/i) > -1){
				var kalendarz = new Kalendarz();
				kalendarz.utworz_kalendarz($(lista_nazw_elementow_blokowanych[i]));
			};
		};
	} else {
		for(var i=0; i<lista_nazw_elementow_blokowanych.length; i++){
			$(lista_nazw_elementow_blokowanych[i]).disabled = true;
			$(lista_nazw_elementow_blokowanych[i]).value = '';
			if(lista_nazw_elementow_blokowanych[i].search(/data/i) > -1){
				var x = $(lista_nazw_elementow_blokowanych[i]).next('.kalendarz_podpowiedz',0).hide();
			};
		};
	};
}

function pokaz_okno_z_bledami(tresc){
	if(!$('blad')){
		utworz_divy_na_komunikaty();
	};
	var p_tresci = $('blad').getElementsByClassName('tresc');
	if(p_tresci.length == 1){
		var tresc_div = p_tresci[0];
	} else {
		alert('Błąd w javascript gabaPrototypeScripts, brak warstwy na komunikaty z błędami');
	}
	tresc_div.innerHTML = tresc;
	$('blad').setStyle('visibility:visible');
}

/**
 * Pokazuje diva, w którym widoczne są komunikaty o błędach. 
 * To taki sam div, jak ten używany przez moje funkcje PHP
 * @return
 */

function utworz_divy_na_komunikaty(rodzaj){
	/* FIXME: sprawdzanie rodzaju */
	if(!$('blad')){
		var body = document.getElementsByTagName("body")[0];

		przeslona = new Element('div');
		przeslona.absolutize();
		przeslona.id = 'przeslona';
		h = document.documentElement.scrollHeight*1 + 500;
		przeslona.setStyle('width: 100%;height:'+h+ "px");
		przeslona.setStyle('background-color: #1A2F44');
		przeslona.setStyle('opacity: 0.3');

		document.getElementsByTagName("body")[0].appendChild(przeslona);


		var element = $('zawartoscSrodkaStrony');
		blad = new Element('div');
		blad.id = 'blad';
		
		h2 = new Element('h2');
		h2.innerHTML = 'BŁĄD';
		
		handle = new Element('div');
		handle.addClassName('handle');
		handle.setStyle('cursor:move');
		
		tresc = new Element('div');
		tresc.addClassName('tresc');
		
		zamkniecie = new Element('div');
		zamkniecie.addClassName('zamkniecie');
		zamkniecie.observe('mouseover', function(event) {
			this.addClassName('mouseover');
		});
		
		zamkniecie.observe('mouseout', function(event) {
			this.removeClassName('mouseover');
		});

		zamkniecie.observe('mousedown', function(event) {
			this.setStyle({backgroundImage:'url(/pl/administracja/img/przyciski/Zamknij_.png)'});
		});
		
		zamkniecie.observe('click', function(event) {
			$(blad.id).remove();
			$(przeslona.id).remove();
		});
		
		
		blad.insert(handle).insert(h2).insert(tresc).insert(zamkniecie);
		blad.setStyle('visibility: hidden');
		element.insert(blad);
		wycentruj(blad);
		new Draggable(blad, {handle: handle});
	};
}
var potwierdzenie_wygenerowane = 0;

function generuj_potwierdzenie(usuwany, inputt) {
	if($('potwierdzenie')){
		var potwierdzenie = $('potwierdzenie');
	} else {
		var potwierdzenie = new Element('div');
	};
	
	if(!potwierdzenie_wygenerowane){
		potwierdzenie_wygenerowane++;
		
		// Budowanie przyciskow i ich zachowan
		var tak = new Element('input');
		tak.name = inputt.name;
		var nie = new Element('input');
		tak.setStyle({cursor:'pointer'});
		nie.setStyle({cursor:'pointer'});
		tak.src = '/pl/administracja/img/przyciski/Usun.png';
		nie.src = '/pl/administracja/img/przyciski/Anuluj.png';
		tak.type = nie.type = 'image';
		tak.addClassName('przycisk');
		nie.addClassName('przycisk');

		Event.observe(tak, 'mouseover', function(event) {
			this.setStyle({borderColor:'#D57460',borderTopColor:'#D68D89',borderBottomColor:'#A00600'});
		});
		Event.observe(nie, 'mouseover', function(event) {
			this.setStyle({borderColor:'#6DB773',borderTopColor:'#87BE99',borderBottomColor:'#008100'});
		});
		
		Event.observe(tak, 'mouseout', function(event) {
			this.setStyle({borderColor:'#C4C6C8',borderBottomColor:'#C4C6C8',borderTopColor:'#E8EAEC'});
		});
		Event.observe(nie, 'mouseout', function(event) {
			this.setStyle({borderColor:'#C4C6C8',borderBottomColor:'#C4C6C8',borderTopColor:'#E8EAEC'});
		});
		Event.observe(tak, 'mousedown', function(event) {
			this.src = this.src.replace(/.png/i, '_.png');
		});
		Event.observe(tak, 'mouseup', function(event) {
			this.src = this.src.replace(/_.png/i, '.png');
		});
		Event.observe(nie, 'mousedown', function(event) {
			this.src = this.src.replace(/.png/i, '_.png');
		});
		Event.observe(nie, 'mouseup', function(event) {
			this.src = this.src.replace(/_.png/i, '.png');
		});
		Event.observe(tak, 'click', function(event) {		
			potwierdzenie.style.visibility = "hidden";
		});
		Event.observe(nie, 'click', function(event) {
			potwierdzenie.style.visibility = "hidden";
			Event.stop(event);
		});
		var handle = new Element('div');
		handle.addClassName('handle');
		
		// Wypelnienie potwierdzenia trescia i wstawienie przyciskow
		potwierdzenie.insert(handle);
		potwierdzenie.insert('<br />Czy na pewno chcesz usunąć <strong>'+usuwany+'</strong>? <br /><br />');
		potwierdzenie.insert(tak);
		potwierdzenie.insert('&nbsp;&nbsp;');
		potwierdzenie.insert(nie);	

		// Style dla potwierdzenia
		potwierdzenie.id = 'potwierdzenie';
		potwierdzenie.setStyle('visibility:visible');
		
		//var h = potwierdzenie.getHeight();
		handle.setStyle('cursor:move');
		new Draggable(potwierdzenie, {handle: handle});

		// Wstawianie potwierdzenia do HTMLa, przed input
		inputt.insert({before: potwierdzenie});	
	} else {
		potwierdzenie.setStyle('visibility:visible;cursor:move;');
	}
	potwierdzenie.setStyle('position:absolute;');
	wycentruj(potwierdzenie);
	return false;
}

var zapytanie_wygenerowane = 0;

function generuj_zapytanie(file, hak) {
	if($('potwierdzenie')){
		var zapytanie = $('potwierdzenie');
	} else {
		var zapytanie = new Element('div');
	};
	if(!zapytanie_wygenerowane){
		zapytanie_wygenerowane++;
		
		// Budowanie przyciskow i ich zachowan
		var tak = new Element('input');
		tak.name = 'tak';
		var nie = new Element('input');
		nie.name = 'nie';
		tak.setStyle({cursor:'pointer'});
		nie.setStyle({cursor:'pointer'});
		tak.src = '/pl/administracja/img/przyciski/Modyfikuj.png';
		nie.src = '/pl/administracja/img/przyciski/Anuluj.png';
		tak.type = nie.type = 'image';
		tak.addClassName('przycisk');
		nie.addClassName('przycisk');

		Event.observe(tak, 'mouseover', function(event) {
			this.setStyle({borderColor:'#D57460',borderTopColor:'#D68D89',borderBottomColor:'#A00600'});
		});
		Event.observe(nie, 'mouseover', function(event) {
			this.setStyle({borderColor:'#6DB773',borderTopColor:'#87BE99',borderBottomColor:'#008100'});
		});
		
		Event.observe(tak, 'mouseout', function(event) {
			this.setStyle({borderColor:'#C4C6C8',borderBottomColor:'#C4C6C8',borderTopColor:'#E8EAEC'});
		});
		Event.observe(nie, 'mouseout', function(event) {
			this.setStyle({borderColor:'#C4C6C8',borderBottomColor:'#C4C6C8',borderTopColor:'#E8EAEC'});
		});
		Event.observe(tak, 'mousedown', function(event) {
			this.src = this.src.replace(/.png/i, '_.png');
		});
		Event.observe(tak, 'mouseup', function(event) {
			this.src = this.src.replace(/_.png/i, '.png');
		});
		Event.observe(nie, 'mousedown', function(event) {
			this.src = this.src.replace(/.png/i, '_.png');
		});
		Event.observe(nie, 'mouseup', function(event) {
			this.src = this.src.replace(/_.png/i, '.png');
		});
		Event.observe(tak, 'click', function(event) {			
			zapytanie.style.visibility = "hidden";
			Event.stop(event);
			file.confirmation = true;
			//swfu_zalaczniki.addFileParam(file.id, "confirmation", true);
			try{
				swfu_zalaczniki.uploadStart(file);
				//swfu_zalaczniki.startUpload(file.id);
			}catch(ex){
				alert(ex);
			}
			//$H(swfu_zalaczniki.settings).toArray().each(function(name){alert(name);});
			//alert(swfu_zalaczniki.upload_url);
			//zapisz_plik(zalaczniki);
		});
		Event.observe(nie, 'click', function(event) {
			zapytanie.style.visibility = "hidden";
			Event.stop(event);
		});

		var handle = new Element('div');
		handle.addClassName('handle');
		
		// Wypelnienie potwierdzenia trescia i wstawienie przyciskow
		zapytanie.insert(handle);
		zapytanie.insert('<br />Na serwerze już istnieje plik <strong>'+file.name+'</strong>. Czy chcesz go nadpisać? <br /><br />');
		zapytanie.insert(tak);
		zapytanie.insert('&nbsp;&nbsp;');
		zapytanie.insert(nie);	

		// Style dla potwierdzenia
		zapytanie.id = 'potwierdzenie';
		zapytanie.absolutize().setStyle('visibility:visible');
		
		//var h = zapytanie.getHeight();
		handle.setStyle('cursor:move');
		new Draggable(zapytanie, {handle: handle});
		
		// Wstawianie potwierdzenia do HTMLa, przed input
		hak.insert({before: zapytanie});	
	} else {
		zapytanie.absolutize().setStyle('visibility:visible;cursor:move');
	}
	wycentruj(zapytanie);
	return false;
}
/**
 * Funkcja sprawdzająca poprawność daty. Prawidłowy format: YYYY-MM-DD
 * W wypadku wystąpienia błędu jest generowany komunikat o błędzie.
 * @param id
 * @return boolean
 */
function sprawdz_date(id){
	if(id === null || !id){
		alert('Pusty identyfikator');
		return false;
	};
	if($(id).isUndefined){
		alert('Pusty identyfikator');
		return false;
	}

	var komunikat = ' <strong><i>'+ id.replace(/_/g, ' ').capitalize() +'</i></strong>: '+ $(id).value +'. <br />Prawidłowy format daty to YYYY-MM-DD';
	var data = $(id).value.split('-');
	if(data.length != 3){
		alert('Nieprawidłowy format daty' + komunikat);
		return false;
	}
	if(data[0].search('^[0-9]{4}$')){
		alert('Nieprawidłowy format <strong>roku</strong>' + komunikat);
		return false;
	}
	if(data[1].search('^[0-9]{2}$')){
		alert('Nieprawidłowy format <strong>miesiąca</strong>' + komunikat);
		return false;
	}
	if(data[2].search('^[0-9]{2}$')){
		alert('Nieprawidłowy format <strong>dnia<strong/>' + komunikat);
		return false;
	}
	if(data[0] < 1900 && data[0] > 2100){
		alert('Nieprawidłowy <strong>rok</strong>' + komunikat);
		return false;
	}
	if(data[1] > 12){
		alert('Nieprawidłowy <strong>miesiąc</strong>' + komunikat);
		return false;
	}
	var liczbaDniWMiesiacu = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if (data[1] == 2 && (data[0] % 400 == 0 || (data[0] % 4 == 0 && data[0] % 100 !=0))){
		liczbaDniWMiesiacu[1] = 29;
	}
	if(data[2] > liczbaDniWMiesiacu[data[1]-1]){
		alert('Nieprawidłowy <strong>dzień</strong>' + komunikat);
		return false;
	}
	
	if(id.search(/do$/i) > -1){
		var id_od = id.replace(/do$/i, 'od');
		var id_do = id;
		
	}else if(id.search(/od$/i) > -1){
		var id_do = id.replace(/od$/i, 'do');
		var id_od = id;
	};
	
	if($(id_od) && $(id_od).value && $(id_do).value && $(id_od).value>$(id_do).value){
		alert('<strong><i>'+ id_od.replace(/_/g, ' ').capitalize() +'</i></strong> późniejsza niż <strong><i>'+ id_do.replace(/_/g,' ').capitalize() +'</i></strong>.');
		return false;
	}
	
	return true;
}

function wycentruj(x){
	var scr_w = window.innerWidth;
	var scr_h = window.innerHeight;
	if(!scr_w || !scr_h){
		scr_w = screen.availWidth;
		scr_h = screen.availHeight;
	}

	var w = x.getWidth();
	var h = x.getHeight();
	var s = x.cumulativeScrollOffset();
	if(w>0 && h>0){
		var t = (scr_h-h)/2+s[1];
		var l = (scr_w-w)/2+s[0];
	}
	if(t<10){
		t = 10;
	}
	if(l<10){
		l = 10;
	}
	x.setStyle('top: '+t+'px;left:'+l+'px;');
}

function swf_upload(rodzaj, zmienne){
	if(zmienne.length != 3){
		alert('Błędne zmienne dla funkcji swf upload');
	}
	var file_types = "*.*";
	if(rodzaj == 'zdjecia'){
		file_types = "*.jpg;*.gif;*.bmp;*.png;";
	}
	return new SWFUpload({ 
		upload_url : "/pl/administracja/ajax.php?funkcja=komunikat&ajax_fun=upload",
		flash_url  : "/pl/SWFUpload/Flash/swfupload.swf",

		file_post_name : rodzaj+'[0]',
		post_params : {
			"swfupload_id" : zmienne[0],
			"swfupload_obiekt" : zmienne[1],
			"swfupload_rodzaj" : zmienne[2]
		},
		use_query_string : false,
		requeue_on_error : false,
		http_success : [201, 202],
		assume_success_timeout : 0,
		file_types : file_types,
		file_types_description: rodzaj+" - opis",
		file_size_limit : "10 MB",
		file_upload_limit : 10,
		file_queue_limit : 10,

		debug : false,
		
		prevent_swf_caching : false,
		preserve_relative_urls : false,
		
		button_placeholder_id : "swf_"+rodzaj,
		button_image_url : "/pl/administracja/img/przyciski/Przegladaj.png",
		button_width : 148,
		button_height : 24,
		button_text : "",
		button_text_style : ".redText { color: #FF0000; }",
		button_text_left_padding : 0,
		button_text_top_padding : 0,
		button_action : SWFUpload.BUTTON_ACTION.SELECT_FILES,
		button_disabled : false,
		button_cursor : SWFUpload.CURSOR.HAND,
		button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT,
		
		file_queued_handler : fileQueued,
		file_queue_error_handler : fileQueueError,
		file_dialog_complete_handler : fileDialogComplete,
		upload_start_handler : uploadStart,
		upload_progress_handler : uploadProgress,
		upload_error_handler : uploadError,
		upload_success_handler : uploadSuccess,
		upload_complete_handler : uploadComplete,
		queue_complete_handler : queueComplete,	// Queue plugin event
		
		custom_settings : {
			divStatus 		: "divStatus_"+rodzaj,
			progressTarget 	: "fsUploadProgress_"+rodzaj,
			cancelButtonId 	: "btnCancel_"+rodzaj
		}	
	}); 
}

function obsluga_przegranych_plikow(file, serverData){
	if(serverData.isJSON()){
		var dane = serverData.evalJSON();

		if(dane.warning){
			alert(dane.warning);
			//generuj_zapytanie(file, $('wszystkie_zalaczniki'));
			return false;
		}
		if(dane.error){
			alert(dane.error);
			return false;
		}
		
	} else {
		alert(serverData);
		return false;
	}
	if(dane.zalaczniki != undefined){
		wstaw_przegrany_plik(dane, 'zalaczniki');
	};
	
	if(dane.zdjecia != undefined){
		wstaw_przegrany_plik(dane, 'zdjecia');
	};
}

function wstaw_przegrany_plik(obiekt, rodzaj){
	if(obiekt.nazwa_tabeli == 'wydarzenie');
	switch(obiekt.nazwa_tabeli){
		case 'wydarzenie':
			obiekt.kod_obiektu = 2;
			break;
		case 'kom':
			obiekt.kod_obiektu = 1;
			break;
	}
	switch(rodzaj){		
		case 'zalaczniki': 
			var rodzaj_skrot = 'zal';
			var identyfikator_tabeli = 'wszystkie_zal';
			var przegrany = obiekt.zalaczniki[0];
			var identyfikator_obiektu = przegrany.id_zalacznik;
			var src = obiekt.sciezka_do_ikon+przegrany.ikonka_pliku;
			break;
		case 'zdjecia':
			var rodzaj_skrot = 'zd';
			var identyfikator_tabeli = 'wszystkie_zd';
			var przegrany = obiekt.zdjecia[0];
			var identyfikator_obiektu = przegrany.id_zdjecie;
			var src = obiekt.katalog_images_url+'mini/'+przegrany.nazwa_pliku;
			break;
	}

	if(!$(identyfikator_tabeli)){
		var table  = new Element('table');
		var tbody = new Element('tbody');
		table.id = identyfikator_tabeli;
		table.insert(tbody);
		$(identyfikator_tabeli+'_k').insert(table);
	};
	
	var istniejacy = $(identyfikator_tabeli).getElementsBySelector('input[name="'+obiekt.nazwa_tabeli+'['+rodzaj+']['+identyfikator_obiektu+'][grupa]"]');
	if(istniejacy.length > 0){			
		istniejacy = istniejacy[0];
		var a  = istniejacy.ancestors();
	}

	// plik jest juz uwzgledniony na liscie i zostaje nadpisany, wiec tylko podswietlamy wiersz z plikiem
	if(a){	
		tr = a[1];
		tr.setStyle('background-color:#63A2E8');
		
	// plik nie istnieje na liscie, wiec dostawiamy nowy wiersz
	} else {
		var tr  = new Element('tr');
		tr.setStyle('background-color:#63A2E8');
		var td1 = new Element('td');
		var img = new Element('img');
		img.src= src;
		td1.insert(img);
		var td2 = new Element('td');
		var div = new Element('div');
		div.addClassName('smallfont');
		td2.innerHTML = przegrany.nazwa_pliku+'<br />';
		div.innerHTML = 'plik dodany: '+przegrany.czas_dodania+'<br />';
		div.innerHTML+= 'wielkość pliku: ['+przegrany.wielkosc_pliku+' kB]<br />';
		switch(rodzaj){		
			case 'zalaczniki': 
				div.innerHTML+= '<a href=\"'+obiekt.katalog_files_url+przegrany.nazwa_pliku+'\" class=\"smallfont link-swiat\">pobierz</a>';
				break;
			case 'zdjecia':
				div.innerHTML+= '<a href=\"'+obiekt.katalog_images_url+przegrany.nazwa_pliku+'\" class=\"smallfont link-swiat\">pobierz</a>';
				break;
		}
		td2.insert(div);
		var td3 = new Element('td');
		var opis = new Element('input');
		opis.type = "text";
		var opis_tytul = new Element('label');
		opis_tytul.addClassName('smallfont').addClassName('left');
		switch(rodzaj){
			case 'zalaczniki':
				opis_tytul.innerHTML = 'Opis pliku: ';
				opis.name = obiekt.nazwa_tabeli+'['+rodzaj+']['+identyfikator_obiektu+'][opis_zalacznika]';			
				break;
			case 'zdjecia':
				opis_tytul.innerHTML = 'Podpis: ';
				opis.name = obiekt.nazwa_tabeli+'['+rodzaj+']['+identyfikator_obiektu+'][podpis]';
				var autor = new Element('input');
				autor.type = "text";
				autor.addClassName('clear');
				autor.setStyle({float:'left',width:'100%'});
				autor.name = obiekt.nazwa_tabeli+'['+rodzaj+']['+identyfikator_obiektu+'][autor]';
				break;
		}
		var grupa = new Element('input');
		grupa.addClassName("grupa");
		grupa.id = "grupa_"+rodzaj_skrot+"_"+identyfikator_obiektu;
		grupa.type = "text";
		grupa.name = obiekt.nazwa_tabeli+'['+rodzaj+']['+identyfikator_obiektu+'][grupa]';
		

		var listuj = new Element('input');
		listuj.id = "listuj_"+rodzaj_skrot+"_"+identyfikator_obiektu;
		listuj.type = "checkbox";
		listuj.value = 1;
		listuj.checked = "checked";
		listuj.name = obiekt.nazwa_tabeli+'['+rodzaj+']['+identyfikator_obiektu+'][listuj]';
		listuj.setStyle({float:'left'});
		var listuj_opis = new Element('label');
		listuj_opis.addClassName('smallfont').addClassName('left');
		switch(rodzaj){
		case 'zalaczniki':
			listuj_opis.innerHTML = 'Plik na liście';
			break;
		case 'zdjecia':
			listuj_opis.innerHTML = 'Zdjęcie na liście';
			break;
		}
		
		var pdp = new Element('div');
		pdp.id = "grupa_pdp_"+rodzaj_skrot+"_"+identyfikator_obiektu;
		pdp.addClassName("autocomplete");
		td3.insert(opis_tytul).insert(opis);
		if(autor){
			var autor_opis = new Element('label');
			autor_opis.addClassName('smallfont').addClassName('left').addClassName('clear');
			autor_opis.innerHTML = 'Autor zdjęcia:';
			td3.insert(autor_opis).insert(autor);
		}
		var grupa_opis = new Element('label');
		grupa_opis.addClassName('smallfont').addClassName('left').addClassName('clear');
		grupa_opis.innerHTML = 'Grupa:';
		td3.insert(grupa_opis).insert(grupa).insert(pdp).insert(listuj).insert(listuj_opis);
		if(obiekt.nazwa_tabeli == 'wydarzenie' && rodzaj == 'zdjecia'){
			
			var zajawka_label = new Element('label');
			zajawka_label.addClassName('clear').addClassName('left');
			
			var zajawka 	= new Element('input');
			zajawka.type 	= "radio";
			zajawka.name 	= "wydarzenie[zajawka_zdjecie]";
			zajawka.value 	= identyfikator_obiektu;
			zajawka.id   	= przegrany.nazwa_pliku;
			zajawka.addClassName("zajawka_zdjecie").addClassName('clear').addClassName('left');
			zajawka.observe('change', wstaw_zdjecie_do_zajawki);
			
			var zajawka_opis = new Element('strong');
			zajawka_opis.addClassName('wyroznienie_pomaranczowy').addClassName('smallfont').addClassName('left');
			zajawka_opis.innerHTML = ' Zdjęcie do zajawki';
			
			zajawka_label.insert(zajawka).insert(zajawka_opis);
			td3.insert('<br />').insert(zajawka_label);
		}
		var td4 = new Element('td');
		var usun = new Element('input');
		usun.type = 'image';
		usun.name = 'usun';
		usun.addClassName('przycisk').addClassName('czerwony');
		usun.src = '/pl/administracja/img/przyciski/Usun.png';
		usun.observe('click', function(evt){
			switch(rodzaj){		
				case 'zalaczniki': 
					zmien_zalaczniki('usun', identyfikator_obiektu, obiekt.id, obiekt.kod_obiektu, 1);
					break;
				case 'zdjecia':
					zmien_zalaczniki('usun', identyfikator_obiektu, obiekt.id, obiekt.kod_obiektu, 2);
					break;
			}
		});
		td4.insert(usun);
		
		// montowanie calosci
		tr.insert(td1).insert(td2).insert(td3).insert(td4);
		
		if($(identyfikator_tabeli).childElements()[0].tagName == 'TBODY'){
			$(identyfikator_tabeli).childElements()[0].insert(tr);
		} else {
			$(identyfikator_tabeli).insert(tr);
		};

		var x = new Ajax.Autocompleter(grupa.id, pdp.id,
				ajax_url + 'jednostka&ajax_fun=grupa&rodzaj=zdjecie', {
					parameters: 'id='+$('id_zdjec').value+'&nazwa_tabeli='+$('nazwa_tabeli').value
				});
		$(pdp.id).setStyle("display:block");
	};
}

/**
 * Chowa i pokazuje warstwe tabele (w domysle tabele z zalacznikami)
 * Tworzy tez przy tytule nad tabela, umieszczonym w znaczniku STRONG, 
 * odpowiedni maly obrazek + lub -
 * @param string item - obiekt typu tabela
 * @return boolean
 */
function zwin_tabele(item){
	var rodzaj = 0;
	var a = item.ancestors();
	for(var i=0; i<a.length; i++){
		if(a[i].tagName == "DIV" && a[i].id == 'zdjecia'){
			rodzaj = 1;
			break;
		};
		if(a[i].tagName == "TD" && a[i].id == 'wszystkie_zd_k'){
			rodzaj = 2;
			break;
		}
	}

	var ilosc_wierszy = 1;

	if(rodzaj == 1){
		ilosc_wierszy = item.getElementsBySelector('td').length;
	} else {
		ilosc_wierszy = item.getElementsBySelector('tr').length;
	}
	
	var tabele = item.getElementsBySelector('table');
	var napis = '';
	var nazwa_domyslna = false;
	if( !(napis = tabele[0].summary)){
		if(rodzaj == 1 || rodzaj == 2){
			napis = 'Zwiń listę zdjęć';
		} else {
			napis = 'Zwiń listę załączników';
		}
		nazwa_domyslna = true;
	}

	var s = item.siblings();
	for(var i=0; i<s.length; s++){
		if(s[i].tagName == 'STRONG'){
			var strong = s[i];
		}
	}

	if(!strong){
		var strong = new Element('strong');
		strong.innerHTML = napis;
		item.insert({before: strong});
	}
	strong.insert({top:'<img src="/pl/administracja/img/lista-.png" />&nbsp;'});
	strong.setStyle('cursor:pointer');
	
	if(rodzaj == 1 || rodzaj == 2){
		switch(ilosc_wierszy){
			case 1: z = 'zdjęcie'; break;
			case 2:
			case 3:
			case 4: z = 'zdjęcia'; break;
			default: z = 'zdjęć';
		}
	} else {
		switch(ilosc_wierszy){
			case 1: z = 'załącznik'; break;
			case 2:
			case 3:
			case 4: z = 'załączniki'; break;
			default: z = 'załączników';
		}
	}
	var div = new Element('div');
	div.insert('<br /><span class="ilosc">'+ilosc_wierszy+'</span> '+z);
	item.insert({before: div});
	element_zwijany = new ElementZwijany(item, strong, napis, nazwa_domyslna, rodzaj);
	strong.observe('click', element_zwijany.zwin_element.bind(element_zwijany));
	return true;
}

function pomoc(element, tresc){
	var div = new Element('div');
	div.innerHTML = tresc;
	div.addClassName('pomoc_pdp');

	var o = element.cumulativeOffset();
	var t = o[1] + 1;
	var l = o[0] + 16;
	div.setStyle('top: '+t+'px;left:'+l+'px;');

	element.observe('mouseout', function(evt){
		div.remove();
	});
	element.insert({after: div});	
}
function lista(element, tresc){
	var div = new Element('div');
	div.innerHTML = tresc;
	div.addClassName('lista');

	var o = element.cumulativeOffset();
	var t = o[1] + 1;
	var l = o[0] + 16;
	div.setStyle('top: '+t+'px;left:'+l+'px;');

	element.observe('mouseout', function(evt){
		div.remove();
	});
	element.insert({after: div});	
}
function zmien_wyrownanie_w_zajawce(evt){
	var tutaj_byla_akcja = Event.findElement(evt, 'input');
	if($('zdjecie_w_zajawce')){
		$('zdjecie_w_zajawce').align = tutaj_byla_akcja.value;
	}
}
function wstaw_zdjecie_do_zajawki(evt){
	var tutaj_byla_akcja = Event.findElement(evt, 'input');
	if($('zdjecie_w_zajawce')){
		if(tutaj_byla_akcja.id){
			$('zdjecie_w_zajawce').src = $('katalog_do_zdjec').innerHTML+tutaj_byla_akcja.id;
			$$('.zajawka_wyrownanie').each(function(item){
				if(item.checked){
					img.align = item.value;
				};
			});
		} else {
			$('zdjecie_w_zajawce').remove();
		};	
	} else if($('zajawka_podglad')) {
		var x = '';
		var div = $('zajawka_podglad');
		var img = new Element('img');
		img.id = 'zdjecie_w_zajawce';
		img.src = $('katalog_do_zdjec').innerHTML+tutaj_byla_akcja.id;
		$$('.zajawka_wyrownanie').each(function(item){
			if(item.checked){
				img.align = item.value;
			};
		});
		div.insert({top: img});
	};
}

function zaznacz_radiobutton(radiobutton_id){
	$(radiobutton_id).checked = 'checked';
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

/**
 * Zmienia opis w polu z Promotor na Recenzent w zależności od wybranej opcji w selekcie
 * @author Ewa Jaros
 * @param $tytul - wybrana w selekcie opcja
 */
function typ_tytulu($tytul) {
// 1. jeśli się zmieniło na "doktor habilitowany", to pokaż wszystkie ukryte pola
// 2. jeśli zmieniło się na "doktor", to ukryj
	$('przedtem');	
	$('promotor');
	
	if ($tytul == 1) {
		$('przedtem').style.visibility = 'visible';	
		$('promotor').value = "Promotor";
		$('promotor').textContext = "Promotor: *";
		$('promotor').innerHTML = "Promotor: *";
	}else if ($tytul == 2) {
		$('przedtem').style.visibility = 'hidden';	
		$('promotor').value = "Recenzent: *";
		$('promotor').textContext = "Recenzent: *";
		$('promotor').innerHTML = "Recenzent: *";
	}
}