/**
 * Funkcje napisane na bazie biblioteki Prototype
 * 
 */

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;
		}
	}
});
		

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);
	});
	


	
	
	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));
	}
	if($('filtr') && $('panel')){
		if($('uz_jednostka_pdp')){
			Event.observe($('uz_jednostka_pdp'), 'click', wyszukiwanie);
		};
		var f = $('filtr').getElements();
		var txt = '';
		var tmp = '';
		
		for(var i=0; i<f.length; i++){
			if(f[i].name.match(/filtr/) || f[i].name == 'and_or'){
				if(f[i].type == 'text'){
					Event.observe(f[i], 'keyup', wyszukiwanie);
				}
				if(f[i].type == 'checkbox'){
					Event.observe(f[i], 'click', wyszukiwanie);
					Event.observe(f[i], 'change', wyszukiwanie);
				}
				if(f[i].type == 'radio'){
					Event.observe(f[i], 'click', wyszukiwanie);
				}
				if(f[i].tagName.toLowerCase() == 'select'){
					Event.observe(f[i], 'change', wyszukiwanie);
				}
			} else if(f[i].name.match(/having/)){
				if(f[i].type == 'checkbox'){
					Event.observe(f[i], 'click', wyszukiwanie);
					Event.observe(f[i], 'change', wyszukiwanie);
				}
			}	
		}
		
	}
	
	
	
	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
	/*
	 * Uwaga: CKEditor musi byc wlaczony w pliku index.php (biblioteka CKEditor jest dolaczana do okreslonych skryptow
	 */
	
	
	if (typeof CKEDITOR != 'undefined'){
		var cke 	= $$('.ckeditor_usual');
		var cke_s 	= $$('.ckeditor_simplest');
		var cke_a 	= $$('.ckeditor_admin');
		
		if(cke){
			for(var i=0; i<cke.length; i++){
				CKEDITOR.replace(cke[i], {
					toolbar : 'Usual',
					filebrowserBrowseUrl : '/pl/CKFinder/ckfinder.html',
			        filebrowserImageBrowseUrl : '/pl/CKFinder/ckfinder.html?Type=Images',
			        filebrowserFlashBrowseUrl : '/pl/CKFinder/ckfinder.html?Type=Files',
			        filebrowserImageWindowWidth : '640',
			        filebrowserImageWindowHeight : '480'
	
				});
			}
		}

		if(cke_s){
			for(var i=0; i<cke_s.length; i++){
				CKEDITOR.replace(cke_s[i], {
			        toolbar : 'Simplest', 
					height: '100px',
					resize_enabled: true
			    });
			}
		}

		if(cke_a){
			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 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;
		}
	}
}

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 {
		if(!serverData){
			alert('Brak danych JSON. Zapewne błędne ustawienia w pliku upload.php');
		} 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){
    //console.log("DumpVar: %o", obiekt);
    console.debug('obiekt:   ',obiekt);

	switch(obiekt.nazwa_tabeli){
		case 'akty_normatywne':
			funkcja = obiekt.nazwa_tabeli;
			obiekt.kod_obiektu = 3;
			break;
		case 'wydarzenie':
			funkcja = obiekt.nazwa_tabeli;
			obiekt.kod_obiektu = 2;
			break;
		case 'kom':
			funkcja = 'komunikat';
			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;
            console.debug('identyfikator_tabeli:   ', identyfikator_tabeli);
            console.debug('identyfikator_obiektu:   ', identyfikator_obiektu);
            console.debug('src:   ', src);
			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.width = '100%';
		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 /><br />';
		div.innerHTML = '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.defaultChecked = true;
		//listuj.checked = true;
		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.setStyle({
			display:'none',
			borderWidth:'1px'
		});

		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);
		}
		
		// Usuwanie
		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);
		};
	};
}

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 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: *";
	}
}

