/* ---------------- elementy -------------- */
function RaCMSElementPrzesun(element,kierunek) {
	if (kierunek == 'g') {
		if (element.prev().children("th").length > 0) { return false; }
		element.insertBefore(element.prev());
	}
	else if (kierunek == 'd') {
		element.insertAfter(element.next());
	}
}
function RaCMSElementUsun(element) {
	element.remove();
}
/* ---------------- elementy -------------- */
/* ------- wysylanie formularza ------- */
function RaCMSWyslijFormsa (klik,nazwa,wartosc,pyt) {
	if (pyt) {
		var odp = confirm(pyt);
		if (odp) {
			var formularz = klik.form;
			var newBox = document.createElement('input');
			newBox.type = 'hidden';
			newBox.name = nazwa;
			newBox.value = wartosc;
			formularz.appendChild(newBox);
			formularz.submit();
		}
		else { return false; }
	} 
	else {
		var formularz = klik.form;
		var newBox = document.createElement('input');
		newBox.type = 'hidden';
		newBox.name = nazwa;
		newBox.value = wartosc;
		formularz.appendChild(newBox);
		formularz.submit();
	}
	return true;
}
/* ------- wysylanie formularza ------- */
/* ---------- wykonywacz kodu --------- */
/* 
uzyte jeszcze w module przepisy 
*/
function RaCMSWykonywacz (opcje) {
	if (!opcje.Adres) { return false; }
	if (!opcje.Docelowy) { return false; }
	if (opcje.RodzajPolaczenia != 'POST' && opcje.RodzajPolaczenia != 'GET') { opcje.RodzajPolaczenia = 'GET'; }
	$.ajax({
		type: opcje.RodzajPolaczenia,
		url: opcje.Adres,
		data: opcje.Dane,
		dataType: 'xml',
		success: function(dane) {
			if ($("blad",dane).length > 0) {
				alert($("blad",dane).text());
			}
			else if ($("dane",dane).length > 0) {
				$('#' + opcje.Docelowy).append($("dane",dane).text());
			}
		}
	});
}
/* ---------- wykonywacz kodu --------- */
/* ------------ wycentruj ------------- */
/*
uzytw w module oferta
*/
function RaCMSWycentruj(szer,wys) {
	var obiekt = new Object();
	if (szer > 0) { obiekt.lewa = (jQuery(window).width() - szer) / 2; }
	else { obiekt.lewa = 0; }
	if (wys > 0) { obiekt.gora = (document.documentElement[ 'scrollTop' ] ? document.documentElement[ 'scrollTop' ] : 0) + (((window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body.clientHeight) - wys) / 2); }
	else { obiekt.gora = 0; }
	if (obiekt.gora < 0) { obiekt.gora =  document.documentElement[ 'scrollTop' ] ? document.documentElement[ 'scrollTop' ] : 0; }
	return obiekt;
}
/* ------------ wycentruj ------------- */
/* ----------- okno z danymi ---------- */
/*
przerobic na obiekt jquery
standardowo ma sie jedynie pojawic obok obiektu w ktory sie kliknie, lub ma zwrocic informacje w okienku z tlem etc 
*/
function RaCMSOkienko(element,opcje) {
	if (!element) { return false; }
	if (!opcje.Adres) { return false; }
	opcje.Szerokosc = (opcje.Szerokosc) ? opcje.Szerokosc : 250;
	opcje.Wysokosc = (opcje.Wysokosc) ? opcje.Wysokosc : 'auto';
	opcje.Docelowy = (opcje.Docelowy) ? opcje.Docelowy : 'RamkaInformacyjna';
	opcje.CzasUkrycia = (opcje.CzasUkrycia) ? opcje.CzasUkrycia : 1500;
	var offset = jQuery(element).offset();
	if (jQuery('body').height() < (offset.top + opcje.Wysokosc)) {
		offset.top -= 100;
	}	
	if (jQuery('body').width() < (offset.left + opcje.Szerokosc)) {
		offset.left -= opcje.Szerokosc + 10;
	}	
	jQuery.ajax({
		type: "POST",
		url: opcje.Adres,
		data: opcje.Dane,
		dataType: 'xml',
		success: function(dane) {
			jQuery('<div id="' + opcje.Docelowy + '">').css({ 
				'position': 'absolute',
				'z-index': 1000,
				'top': offset.top,
				'left': offset.left,
				'width': opcje.Szerokosc,
				'height': opcje.Wysokosc 
			})
			.append($("dane",dane).text()).appendTo("body").fadeIn();
			setTimeout(function() {
				jQuery('#' + opcje.Docelowy).remove();
			}, opcje.CzasUkrycia);
		}
	});
}
/* funkcje natywne zależne od jQuery */
(function($) {
/* -------------- ramka --------------- */
	$.fn.RaCMSRamka = function(opcje) {
		var opcje = $.extend({}, $.fn.RaCMSRamka.defaults, opcje);		
		var Flashe, Tlo, Ladowacz, Ramka, Komunikat;
		function WygladTloPokaz() {
			if ($('#' + opcje.IdRamkaTlo).length > 0) { Tlo = $('#' + opcje.IdRamkaTlo); }
			else { Tlo = $('<div id="' + opcje.IdRamkaTlo + '">').appendTo("body"); }
			Flashe = $("object:visible, embed:visible").css('visibility','hidden');
			if (typeof document.body.style.maxHeight === "undefined") { //if IE 6 
			    $("body","html").css({height: "100%", width: "100%"}); $("html").css("overflow","hidden"); 
			}
		}
		function WygladTloUsun() {
			if (typeof document.body.style.maxHeight === "undefined") { //if IE 6 
			    $("body","html").css({height: "auto", width: "auto"}); $("html").css("overflow",""); 
			}
			Flashe.css('visibility','visible'); 
			Tlo.remove();
			$(document).unbind("keydown");
		}
		function WygladLadowaczPokaz() {
			if ($('#' + opcje.IdRamkaLaduje).length > 0) { Ladowacz = $('#' + opcje.IdRamkaLaduje); }
			else { Ladowacz = $('<div id="' + opcje.IdRamkaLaduje + '">').show().appendTo("body"); }
		}
		function WygladLadowaczUsun() { Ladowacz.remove(); }
		function WygladRamkaUtworz() {
			var Naglowek = $('<div class="Zamknij">Zamknij</div>').click(function() { WygladRamkaUsun(); WygladTloUsun(); });
			Ramka = $('<div id="' + opcje.IdRamkaDiv + '">').append(Naglowek).appendTo("body");
		}
		function WygladRamkaPokaz() { Ramka.fadeIn(); $(document).unbind("keydown"); $(document).keydown(function(event) { if (event.keyCode == 27) { WygladRamkaUsun(); WygladTloUsun(); } }); }
		function WygladRamkaUkryj() { Ramka.fadeOut(); }
		function WygladRamkaUsun() { Ramka.remove(); }
		function WygladKomunikatTworz(dane,ramka) {
			if (ramka) {
				Komunikat = $('<div id="' + opcje.IdRamkaKomunikat + '">').append(dane).append($('<button type="button">Zamknij</button>').click(function() { WygladKomunikatUsun(); WygladRamkaPokaz(); })).appendTo("body").fadeIn();
				var KomWys = (typeof document.body.style.maxHeight === "undefined") ? ($(window).scrollTop() + (($(window).height() - Komunikat.height()) / 2)) : (($(window).height() - Komunikat.height()) / 2);
				Komunikat.css({ top: KomWys });
				$(document).unbind("keydown"); $(document).keydown(function(event) { if (event.keyCode == 27) { WygladKomunikatUsun(); WygladRamkaPokaz(); } });
				$('button',Komunikat).focus();
			}
			else {
				Komunikat = $('<div id="' + opcje.IdRamkaKomunikat + '">').append(dane).append($('<button type="button">Zamknij</button>').click(function() { WygladKomunikatUsun(); WygladRamkaUsun(); WygladTloUsun(); })).appendTo("body").fadeIn();
				var KomWys = (typeof document.body.style.maxHeight === "undefined") ? ($(window).scrollTop() + (($(window).height() - Komunikat.height()) / 2)) : (($(window).height() - Komunikat.height()) / 2);
				Komunikat.css({ top: KomWys });
				$(document).unbind("keydown"); $(document).keydown(function(event) { if (event.keyCode == 27) { WygladKomunikatUsun(); WygladRamkaUsun(); WygladTloUsun(); } });
				$('button',Komunikat).focus();
			}
		}
		function WygladKomunikatUsun() { Komunikat.remove(); $(document).unbind("keydown"); }
		function WygladRamkaWypelnij(dane) {
			Ramka.append($("dane",dane).text());
			var StrSzer = $(window).width(); var StrWys = $(window).height(); var DivSzer = Ramka.width(); var DivWys = Ramka.height();
			var DivMaksSzer = StrSzer - 50; var DivMaksWys = StrWys - 50;
			if (DivSzer > DivMaksSzer) {
				DivSzer = DivMaksSzer;
				Ramka.css("overflow","scroll");
			} 
			if (DivWys > DivMaksWys) {
				DivWys = DivMaksWys;
				Ramka.css("overflow","scroll");
			}
			var DivLewa = ((StrSzer - DivSzer) / 2); var DivGora = ((StrWys - DivWys) / 2);
			if (typeof document.body.style.maxHeight === "undefined") { //if IE 6
				DivGora = $(window).scrollTop() + ((StrWys - DivWys) / 2); 
			}
			Ramka.css({ left: DivLewa, top: DivGora, width: DivSzer, height: DivWys });
			if (opcje.Reakcja.length > 0) {
				var KodHtml;
				if (opcje.KodHtml.length > 0) { KodHtml = '&kodhtml=' + opcje.KodHtml; }
				for (var z = 0; z < opcje.Reakcja.length; z++) {
					var tmp = opcje.Reakcja[z]; 
					$('#' + tmp.Nazwa).click(function() {
						if (confirm('Czy wykonać?')) {
							WygladRamkaUkryj();
							WygladLadowaczPokaz();
							$.ajax({
								type: "POST",
								url: tmp.Adres,
								dataType: 'xml',
								data: $("form",Ramka).serialize() + '&' + $(this).attr('id') + '=1' + KodHtml,
								success: function(dane) {
									WygladLadowaczUsun();
									$("zmiany zmiana",dane).each(function() {
										$('#' + $('id',this).text()).replaceWith($('dane',this).text());
									});
									if ($("bledy",dane).text().length > 0) {
										WygladKomunikatTworz($("bledy",dane).text(),1);
									}
									else if ($("info",dane).text().length > 0) {
										WygladKomunikatTworz($("info",dane).text(),0);
									}
									else { 
										WygladRamkaPokaz(); 
									}
								},
								error: function() {
									WygladLadowaczUsun();
									WygladRamkaPokaz();
								}
							});
						}
					});
				}
			}
		}

		return this.each(function() {
			var Adres = this.href;
			if (Adres.lenght == 0) { return false; }
			$(this).click(function() {
				this.blur();
				WygladTloPokaz();
				WygladLadowaczPokaz();
				$.ajax({
					type: "GET",
					url: Adres,
					dataType: 'xml',
					success: function(dane) {
						WygladRamkaUtworz();
						WygladRamkaWypelnij(dane);
						WygladLadowaczUsun();
						WygladRamkaPokaz();
					},
					error: function() {
						WygladLadowaczUsun();
						WygladTloUsun();
					}
				});
				return false;
			});
		});
	}
	$.fn.RaCMSRamka.defaults = {
		IdRamkaDiv: 'RaCMSRamkaDiv'
		,IdRamkaTlo: 'RaCMSRamkaTlo'
		,IdRamkaLaduje: 'RaCMSRamkaLaduje'
		,IdRamkaKomunikat: 'RaCMSRamkaKomunikat'
		,Reakcja: []
		,KodHtml: ''
	};
})(jQuery);
/* -------------- ramka --------------- */
/* ---------- ramka zdjecia ----------- */
(function($) {
	$.fn.RaCMSPokazZdjecie = function(opcje) {
		var opcje = $.extend({}, $.fn.RaCMSPokazZdjecie.defaults, opcje);		
		return this.each(function() {
			var Adres = this.href;
			if (Adres.lenght == 0) { return false; }
			var Tytul = this.title || '';
			$(this).click(function() {
				if (typeof document.body.style.maxHeight === "undefined") { //if IE 6 
				    $("body","html").css({height: "100%", width: "100%"}); 
				    $("html").css("overflow","hidden"); 
				} 
				var Flashe = $("object:visible, embed:visible").css('visibility','hidden');
				var Tlo = $('<div id="RaCMSZdjecieTlo">').click(function(){ Zamknij(); }).appendTo("body");
				var Ladowacz = $('<div id="RaCMSZdjecieLaduje">').show().appendTo("body");
				var Div = $('<div id="RaCMSZdjecieDiv">').appendTo("body");
				this.blur();
				$(document).keydown(function(event) {
					if (event.keyCode == 27) {
						Zamknij();
					}
				});
				Zamknij = function() {
					$(document).unbind("keydown");
					Flashe.css('visibility','visible'); 
					Div.remove();
					Ladowacz.remove();
					Tlo.remove();
					if (typeof document.body.style.maxHeight === "undefined") { //if IE 6 
					    $("body","html").css({height: "auto", width: "auto"}); $("html").css("overflow",""); 
					}
				}
				var Zdjecie = new Image();
				Zdjecie.onload = function() {
					var StrSzer = $(window).width();	var StrWys = $(window).height();
					var ZdjSzer = Zdjecie.width; var ZdjWys = Zdjecie.height;
					var ZdjMaksSzer = StrSzer - 50; var ZdjMaksWys = StrWys - 70;
					if (ZdjSzer > ZdjMaksSzer) {
						ZdjWys = ZdjWys * (ZdjMaksSzer / ZdjSzer); ZdjSzer = ZdjMaksSzer; 
						if (ZdjWys > ZdjMaksWys) {	ZdjSzer = ZdjSzer * (ZdjMaksWys / ZdjWys); ZdjWys = ZdjMaksWys; }
					} else if (ZdjWys > ZdjMaksWys) { 
						ZdjSzer = ZdjSzer * (ZdjMaksWys / ZdjWys); ZdjWys = ZdjMaksWys; 
						if (ZdjWys > ZdjMaksWys) { ZdjWys = ZdjWys * (ZdjMaksSzer / ZdjSzer); ZdjSzer = ZdjMaksSzer; }
					}
					var DivLewa = ((StrSzer - ZdjSzer) / 2); var DivGora = ((StrWys - ZdjWys - 60) / 2);
					if (typeof document.body.style.maxHeight === "undefined") { //if IE 6
						DivGora = $(window).scrollTop() + ((StrWys - ZdjWys - 60) / 2); 
					}
					Ladowacz.hide();
					var Obrazek = $('<img src="' + Zdjecie.src + '" width="'  + ZdjSzer + '" height="' + ZdjWys + '" alt="' + Tytul + '" />').click(function() { Zamknij(); });
					Div.css({ 'left': DivLewa, 'top': DivGora }).append(Obrazek).append('<div class="Podpis">' + Tytul + '</div>').fadeIn();
				}
				Zdjecie.src = Adres;
				return false;				
			});
		});
	}
	$.fn.RaCMSPokazZdjecie.defaults = {
	};
})(jQuery);
/* ---------- ramka zdjecia ----------- */
/* --------- wybor przez select ------- */
(function($) {
	$.fn.RaCMSWybieranie = function(opcje) {
		var opcje = $.extend({}, $.fn.RaCMSWybieranie.defaults, opcje);		
		return this.each(function() {
			if (!opcje.Adres) { return false; }
			if (!opcje.Docelowy) { return false; }
			if (!opcje.NazwaEl) { return false; }
			var pole = $(this);
			//przyciski musza usuwac dany
			$('#' + opcje.Docelowy + ' button').click(function(){
				$(this).parent().remove();
				if ($('#' + opcje.Docelowy + ' input[type=hidden]').length < opcje.IloscMaks) { pole.show(); }
			});
			if ($('#' + opcje.Docelowy + ' input[type=hidden]').length >= opcje.IloscMaks) { pole.hide(); }
			
			pole.change(function() {
				//pobieramy jakie sa elementy 
				var Elementy = [];
				$('#' + opcje.Docelowy + ' input[type=hidden]').each(function(){
					Elementy.push($(this).val());
				});
				$.ajax({
					type: "POST",
					url: opcje.Adres,
					dataType: 'xml',
					data: 'nr=' + pole.val() + '&elementy=' + Elementy,
					success: function(dane) {
						if ($('wybrany', dane).length > 0) {
							$('#' + opcje.Docelowy).append($("wybrany",dane).text());
							$('#' + opcje.Docelowy + ' button:last').click(function(){ 
								$(this).parent().remove(); 
								if ($('#' + opcje.Docelowy + ' input[type=hidden]').length < opcje.IloscMaks) { pole.show(); }
							}).focus();
							if ($('#' + opcje.Docelowy + ' input[type=hidden]').length >= opcje.IloscMaks) {	pole.hide(); }
						}
						pole.empty();
						pole.append($('elementy', dane).text());
					}
				});
				//koniec ajaxa
			});
		});
	}
	$.fn.RaCMSWybieranie.defaults = {
		IloscMaks: 1
	};
})(jQuery);
/* --------- wybor przez select ------- */
/* ------------- ocenianie ------------ */
(function($) {
	$.fn.RaCMSOcenianie = function(opcje) {
		var opcje = $.extend({}, $.fn.RaCMSOcenianie.defaults, opcje);		
		return this.each(function() {
			RaCMSOcenianieDzialaj($(this), opcje);
		});
	}
	$.fn.RaCMSOcenianie.defaults = {
		GrafikaWla: '/szablony/standard/grafika/ocena_wla.gif',
		GrafikaWyl: '/szablony/standard/grafika/ocena_wyl.gif',
		GrafikaAkt: '/szablony/standard/grafika/ocena_akt.gif',
		GrafikaKlasa: 'Ocena'
	};
	function RaCMSOcenianieDzialaj (Cel,opcje) {
		if (!opcje.Adres) { return false; }
		if (!opcje.Id) { return false; }
		var Dane = [];
		var Oceny = $('img.' + opcje.GrafikaKlasa ,Cel);
		Oceny.each(function() {
			var indeks = Oceny.index(this) + 1;
			Dane[indeks] = this.src;
		});
		function Podswietl(ocena) {
			Oceny.slice(0,ocena).each(function() {
				this.src = opcje.GrafikaAkt;
			});
		}
		function Zresetuj () {
			Oceny.each(function() {
				var indeks = Oceny.index(this) + 1;
				this.src = Dane[indeks];
			});
		}
		Oceny.mouseover(function() {
			var indeks = Oceny.index(this) + 1;
			Podswietl(indeks);
		}).mouseout(function() {
			Zresetuj();
		}).click(function() {
			var indeks = Oceny.index(this) + 1;
			$.ajax({
				type: "POST",
				url: opcje.Adres,
				data: 'element=' + opcje.Id + '&ocena=' + indeks,
				dataType: 'xml',
				success: function(dane) {
					Cel.empty().append($("dane",dane).text());
				}
			});
		});
	}
/* ------------- ocenianie ------------ */
/* -------------- uploader ------------ */
	$.fn.RaCMSUploader = function(opcje) {
		var opcje = $.extend({}, $.fn.RaCMSUploader.defaults, opcje);		
		return this.each(function() {
			RaCMSUploaderDzialaj($(this), opcje);
		});
	}
	$.fn.RaCMSUploader.defaults = {
		Opoznienie: 1500,
		Ramka: 'UploaderIframka',
		Docelowy: 'PlikPodglad',
		Zrodlowy: 'PlikWgrywanie',
		SelektorDanych: "div[class='Dane']",
		SelektorBledow: "div[class='Blad']",
		Ladowanie: "<p>wgrywam...</p>"
	};
	function RaCMSUploaderDzialaj (pole, opcje) {
		if (!opcje.Adres) { return false; }
		var Rodzic = $('.' + opcje.Docelowy);
		var formek = pole.parents('form');
 		FormularzAction = formek.attr('action') ? formek.attr('action') : '';
		FormularzTarget = formek.attr('target') ? formek.attr('target') : '';
		FormularzMethod = formek.attr('method') ? formek.attr('method') : ''; 
		FormularzEnctype = formek.attr('enctype') ? formek.attr('enctype') : '';
		pole.change(function () {
			Rodzic.empty().append(opcje.Ladowanie);
 			formek.attr('action',opcje.Adres).attr('target',opcje.Ramka).attr('method','post').attr('enctype','multipart/form-data');
	 		var iframek = $('<iframe id="' + opcje.Ramka + '" name="' + opcje.Ramka + '" src="about:blank" />').css({'display': 'block' }).appendTo('body').load(function() {
				if ($(this).contents().find(opcje.SelektorDanych).length > 0) { 
					Rodzic.empty().append($(this).contents().find(opcje.SelektorDanych).html()); 
				}
	 			else if ($(this).contents().find(opcje.SelektorBledow).length > 0) {
	 				Rodzic.empty();
	 				alert($(this).contents().find(opcje.SelektorBledow).html()); 
	 			}
				setTimeout( function () {
 					iframek.remove();
	 			}, opcje.Opoznienie);
				pole.attr('value','');
				formek.attr('action',FormularzAction).attr('target',FormularzTarget).attr('method',FormularzMethod).attr('enctype',FormularzEnctype);
			});
			formek.submit();
			pole.blur();
		});
	}
})(jQuery);
/* -------------- uploader ------------ */
/* ------------ Wybor elementu ------------- */
(function($) {
	$.fn.RaCMSWyborElementu = function(opcje) {
		var opcje = $.extend({}, $.fn.RaCMSWyborElementu.defaults, opcje);		
		return this.each(function() {
			RaCMSWyborElementuDzialaj($(this), opcje);
		});
	}
	$.fn.RaCMSWyborElementu.defaults = {
		MinLiczbaZnakow: 2,
		Opoznienie: 500,
		Docelowy: '',
		Lista: '',
		KlasaLadowania: 'AjaxLadowanie',
		KlasaWybrany: 'podswietlone',
		Prefiks: 'p'
	};
	//prywatne funkcje
	function RaCMSWyborElementuDzialaj (pole, opcje) {
		var KLAWISZ = {
			GORA: 38,
			DOL: 40,
			LEWA: 37,
			PRAWA: 39,
			DEL: 46,
			TAB: 9,
			ENTER: 13,
			ESC: 27
		};
		var $pole = $(pole).attr("autocomplete", "off");
		var timeout;
		var PoleAktywne = 0;
		var ElementAktywny;
		var OstatniKlawisz;
		var OstatniaWartosc = '';
		var ElementyListy = [];
		if (!opcje.Adres) { return; }
		var $lista = $('#' + opcje.Lista);
		if (!$lista) { 
			return; 
		}
		var $docelowy = $('#' + opcje.Docelowy);
		if (!$docelowy) { 
			return; 
		}
		if ($('#' + opcje.Docelowy + ' > p').length > 0) {
			$('#' + opcje.Wybor).hide();
			$docelowy.find('button').click(function() { 
				$('#' + opcje.Wybor).show();
				$docelowy.empty();
				$pole.focus();
			});
		}
		else {
			$('#' + opcje.Docelowy).hide();
		}

		$pole.keydown(function(event) {
			OstatniKlawisz = event.keyCode;
			switch(OstatniKlawisz) {
				case KLAWISZ.GORA:
					event.preventDefault();
					if ($lista.is(':visible')) {
						//przesuwamy
						ElementAktywny--;
						if (ElementAktywny < 0) { ElementAktywny = $("p",$lista).size() - 1; }
						$("p",$lista).removeClass(opcje.KlasaWybrany).eq(ElementAktywny).addClass(opcje.KlasaWybrany);
					}
					else {
						return;
					}
					break;
				case KLAWISZ.DOL:
					event.preventDefault();
					if ($lista.is(':visible')) {
						ElementAktywny++;
						if (ElementAktywny >= $("p",$lista).size()) { ElementAktywny = 0; }
						$("p",$lista).removeClass(opcje.KlasaWybrany).eq(ElementAktywny).addClass(opcje.KlasaWybrany);
					}
					else {
						return;
					}
					break;
				case KLAWISZ.ENTER:
					event.preventDefault();
					//musimy wybrac element - zapisac jego wartosc
					if ($lista.is(':visible')) {
						//wybieramy
						Dopisz($("p",$lista).eq(ElementAktywny).attr('id').replace(opcje.Prefiks,''));
					}
					else {
						return;
					}
					break;
				case KLAWISZ.TAB:
					return;
					break;
				case KLAWISZ.ESC:
					clearTimeout(timeout);
					timeout = setTimeout(ListaUkryj, 200);
					break;
				default:
					clearTimeout(timeout);
					timeout = setTimeout(Zmieniamy, opcje.Opoznienie);
					break;
			}
		}).keypress(function() {
			//pusty dla opery
		}).focus(function(){
			PoleAktywne = 1;
		}).blur(function() {
			PoleAktywne = 0;
			clearTimeout(timeout);
			timeout = setTimeout(ListaUkryj, 200);
		});

		function Zmieniamy() {
			if(OstatniKlawisz == KLAWISZ.DEL || OstatniaWartosc == $pole.val() || PoleAktywne == 0) {
				$lista.hide();
				return;
			}
			var ObecnaWartosc = $pole.val();
			OstatniaWartosc = ObecnaWartosc;
			$lista.empty();
			if (ObecnaWartosc.length >= opcje.MinLiczbaZnakow) {
				LadowanieStart();
				$.ajax({
					type: "POST",
					url: opcje.Adres,
					dataType: 'xml',
					data: 'nazwa=' + ObecnaWartosc,
					success: function(dane) {
						Parsuj(dane);
						LadowanieStop();
					}
				});
	  		}
	  		else {
	  			$lista.hide();
	  			LadowanieStop();
	  		}
  		}
		function Parsuj(dane) {
			if (PoleAktywne == 0) { return; }
			ElementAktywny = 0;
			if ($('element', dane).length == 0) { return; }
			$('element', dane).each( function() {
				var id = $("id",this).text();
				var nazwa = $("nazwa",this).text();
				ElementyListy[id] = { 'id': id, 'nazwa': nazwa, 'dane': $("dane",this).text() };
				var element = jQuery('<p id="' + opcje.Prefiks + id + '">' + nazwa + "</p>").mouseover( function() {
					$(this).addClass(opcje.KlasaWybrany);
				}).mouseout( function() {
					$(this).removeClass(opcje.KlasaWybrany);
				}).click( function() {
					Dopisz(id);
				});
				$lista.append(element);
			} );
			$("p:first",$lista).addClass(opcje.KlasaWybrany);
			$lista.show();
		}
		function Dopisz(id) {
			$lista.hide();
			$pole.val('');
			$docelowy.empty();
			$docelowy.append(ElementyListy[id].dane);
			$docelowy.show();
			$('#' + opcje.Wybor).hide();
			$docelowy.find('button:last').click(function() { 
				$('#' + opcje.Wybor).show();
				$docelowy.empty(); $docelowy.hide();
				$pole.focus();
			}).focus();
			try { 
				if (opcje.Zakoncz) { 
					opcje.Zakoncz(); 
				}
			} catch(e){}
			OstatniaWartosc = '';
		}
		function LadowanieStop() {
			$pole.removeClass(opcje.KlasaLadowania);
		}
		function LadowanieStart() {
			$pole.addClass(opcje.KlasaLadowania);
		} 
		function ListaUkryj() {
			$lista.hide();
			clearTimeout(timeout);
			LadowanieStop();
		}
	}
})(jQuery);
/* ------------ Wybor elementu ------------- */
/* --------------- Lista wyboru------------- */
(function($) {
	$.fn.RaCMSListaWyboru = function(opcje) {
		var opcje = $.extend({}, $.fn.RaCMSListaWyboru.defaults, opcje);		
		return this.each(function() {
			RaCMSListaWyboruDzialaj($(this), opcje);
		});
	}
	$.fn.RaCMSListaWyboru.defaults = {
		MinLiczbaZnakow: 2,
		Duplikaty: 0,
		Opoznienie: 500,
		Docelowy: '',
		Lista: '',
		KlasaLadowania: 'AjaxLadowanie',
		KlasaWybrany: 'podswietlone',
		Prefiks: 'p'
	};
	//prywatne funkcje
	function RaCMSListaWyboruDzialaj (pole, opcje) {
		var KLAWISZ = {
			GORA: 38,
			DOL: 40,
			LEWA: 37,
			PRAWA: 39,
			DEL: 46,
			TAB: 9,
			ENTER: 13,
			ESC: 27
		};
		var $pole = $(pole).attr("autocomplete", "off");
		var timeout;
		var PoleAktywne = 0;
		var ElementAktywny;
		var OstatniKlawisz;
		var OstatniaWartosc = '';
		var ElementyListy = [];
		if (!opcje.Adres) { return; }
		var $lista = $('#' + opcje.Lista);
		if (!$lista) { 
			return; 
		}
		var $docelowy = $('#' + opcje.Docelowy);
		if (!$docelowy) { 
			return; 
		}
		$pole.keydown(function(event) {
			OstatniKlawisz = event.keyCode;
			switch(OstatniKlawisz) {
				case KLAWISZ.GORA:
					event.preventDefault();
					if ($lista.is(':visible')) {
						//przesuwamy
						ElementAktywny--;
						if (ElementAktywny < 0) { ElementAktywny = $("p",$lista).size() - 1; }
						$("p",$lista).removeClass(opcje.KlasaWybrany).eq(ElementAktywny).addClass(opcje.KlasaWybrany);
					}
					else {
						return;
					}
					break;
				case KLAWISZ.DOL:
					event.preventDefault();
					if ($lista.is(':visible')) {
						ElementAktywny++;
						if (ElementAktywny >= $("p",$lista).size()) { ElementAktywny = 0; }
						$("p",$lista).removeClass(opcje.KlasaWybrany).eq(ElementAktywny).addClass(opcje.KlasaWybrany);

					}
					else {
						return;
					}
					break;
				case KLAWISZ.ENTER:
					event.preventDefault();
					//musimy wybrac element - zapisac jego wartosc
					if ($lista.is(':visible')) {
						//wybieramy
						Dopisz($("p",$lista).eq(ElementAktywny).attr('id').replace(opcje.Prefiks,''));
						$pole.focus();
					}
					else {
						return;
					}
					break;
				case KLAWISZ.TAB:
					//musimy wybrac element - zapisac jego wartosc
					if ($lista.is(':visible')) {
						//wybieramy
						Dopisz($("p",$lista).eq(ElementAktywny).attr('id').replace(opcje.Prefiks,''));
						$pole.focus();
					}
					else {
						return;
					}
					break;
				case KLAWISZ.ESC:
					clearTimeout(timeout);
					timeout = setTimeout(ListaUkryj, 200);
					break;
				default:
					clearTimeout(timeout);
					timeout = setTimeout(Zmieniamy, opcje.Opoznienie);
					break;
			}
		}).keypress(function() {
			//pusty dla opery
		}).focus(function(){
			PoleAktywne = 1;
		}).blur(function() {
			PoleAktywne = 0;
			clearTimeout(timeout);
			timeout = setTimeout(ListaUkryj, 200);
		});

		function Zmieniamy() {
			if(OstatniKlawisz == KLAWISZ.DEL || OstatniaWartosc == $pole.val() || PoleAktywne == 0) {
				$lista.hide();
				return;
			}
			var ObecnaWartosc = $pole.val();
			OstatniaWartosc = ObecnaWartosc;
			$lista.empty();
			if (ObecnaWartosc.length >= opcje.MinLiczbaZnakow) {
				LadowanieStart();
				$.ajax({
					type: "POST",
					url: opcje.Adres,
					dataType: 'xml',
					data: 'nazwa=' + ObecnaWartosc,
					success: function(dane) {
						Parsuj(dane);
						LadowanieStop();
					}
				});
	  		}
	  		else {
	  			$lista.hide();
	  			LadowanieStop();
	  		}
  		}
		function Parsuj(dane) {
			if (PoleAktywne == 0) { return; }
			ElementAktywny = 0;
			if ($('element', dane).length == 0) { return; }
			$('element', dane).each( function() {
				var id = $("id",this).text();
				var nazwa = $("nazwa",this).text();
				ElementyListy[id] = { 'id': id, 'nazwa': nazwa, 'dane': $("dane",this).text() };
				var element = jQuery('<p id="' + opcje.Prefiks + id + '">' + nazwa + "</p>").mouseover( function() {
					$(this).addClass(opcje.KlasaWybrany);
				}).mouseout( function() {
					$(this).removeClass(opcje.KlasaWybrany);
				}).click( function() {
					Dopisz(id);
					$pole.focus();
				});
				$lista.append(element);
			} );
			$("p:first",$lista).addClass(opcje.KlasaWybrany);
			$lista.show();
		}
		function Dopisz(id) {
			$lista.hide();
			$pole.val('');
			var Dodaj = 1;
			if (opcje.Duplikaty == 0) {
				$("input",$docelowy).each( function() {
					if ($(this).attr('value') == id) { Dodaj = 0; }
				});
			}
			if (Dodaj == 1) {
				$docelowy.append(ElementyListy[id].dane);
				try { 
					if (opcje.Zakoncz) { 
						opcje.Zakoncz(); 
					}
				} catch(e){}
			}
			OstatniaWartosc = '';
		}
		function LadowanieStop() {
			$pole.removeClass(opcje.KlasaLadowania);
		}
		function LadowanieStart() {
			$pole.addClass(opcje.KlasaLadowania);
		} 
		function ListaUkryj() {
			$lista.hide();
			clearTimeout(timeout);
			LadowanieStop();
		}
	}
})(jQuery);
/* --------------- Lista wyboru------------- */
/* --------------- Uzupelnij------------- */
(function($) {
	$.fn.RaCMSUzupelnij = function(opcje) {
		var opcje = $.extend({}, $.fn.RaCMSUzupelnij.defaults, opcje);		
		return this.each(function() {
			RaCMSUzupelnijDzialaj($(this), opcje);
		});
	}
	$.fn.RaCMSUzupelnij.defaults = {
		MinLiczbaZnakow: 2,
		Opoznienie: 500,
		Lista: '',
		KlasaLadowania: 'AjaxLadowanie',
		KlasaWybrany: 'podswietlone'
	};
	//prywatne funkcje
	function RaCMSUzupelnijDzialaj (pole, opcje) {
		var KLAWISZ = {
			GORA: 38,
			DOL: 40,
			LEWA: 37,
			PRAWA: 39,
			DEL: 46,
			TAB: 9,
			ENTER: 13,
			ESC: 27
		};
		var $pole = $(pole).attr("autocomplete", "off");
		var timeout;
		var PoleAktywne = 0;
		var ElementAktywny;
		var OstatniKlawisz;
		var OstatniaWartosc = '';
		var ElementyListy = [];
		if (!opcje.Adres) { return; }
		var $lista = $('#' + opcje.Lista);
		if (!$lista) { 
			return; 
		}
		$pole.keydown(function(event) {
			OstatniKlawisz = event.keyCode;
			switch(OstatniKlawisz) {
				case KLAWISZ.GORA:
					event.preventDefault();
					if ($lista.is(':visible')) {
						//przesuwamy
						ElementAktywny--;
						if (ElementAktywny < 0) { ElementAktywny = $("p",$lista).size() - 1; }
						$("p",$lista).removeClass(opcje.KlasaWybrany).eq(ElementAktywny).addClass(opcje.KlasaWybrany);
					}
					else {
						return;
					}
					break;
				case KLAWISZ.DOL:
					event.preventDefault();
					if ($lista.is(':visible')) {
						ElementAktywny++;
						if (ElementAktywny >= $("p",$lista).size()) { ElementAktywny = 0; }
						$("p",$lista).removeClass(opcje.KlasaWybrany).eq(ElementAktywny).addClass(opcje.KlasaWybrany);
					}
					else {
						return;
					}
					break;
				case KLAWISZ.ENTER:
					event.preventDefault();
					//musimy wybrac element - zapisac jego wartosc
					if ($lista.is(':visible')) {
						//wybieramy
						$pole.val($("p",$lista).eq(ElementAktywny).text());
						clearTimeout(timeout);
						timeout = setTimeout(ListaUkryj, 200);
					}
					else {
						return;
					}
					break;
				case KLAWISZ.TAB:
					//musimy wybrac element - zapisac jego wartosc
					if ($lista.is(':visible')) {
						//wybieramy
//						$pole.val($("p",$lista).eq(ElementAktywny).text());
						clearTimeout(timeout);
						timeout = setTimeout(ListaUkryj, 200);
					}
					else {
						return;
					}
					break;
				case KLAWISZ.ESC:
					clearTimeout(timeout);
					timeout = setTimeout(ListaUkryj, 200);
					break;
				default:
					clearTimeout(timeout);
					timeout = setTimeout(Zmieniamy, opcje.Opoznienie);
					break;
			}
		}).keypress(function() {
			//pusty dla opery
		}).focus(function(){
			PoleAktywne = 1;
		}).blur(function() {
			PoleAktywne = 0;
			clearTimeout(timeout);
			timeout = setTimeout(ListaUkryj, 200);
		});

		function Zmieniamy() {
			if(OstatniKlawisz == KLAWISZ.DEL || OstatniaWartosc == $pole.val() || PoleAktywne == 0) {
				$lista.hide();
				return;
			}
			var ObecnaWartosc = $pole.val();
			OstatniaWartosc = ObecnaWartosc;
			$lista.empty();
			if (ObecnaWartosc.length >= opcje.MinLiczbaZnakow) {
				LadowanieStart();
				$.ajax({
					type: "POST",
					url: opcje.Adres,
					dataType: 'xml',
					data: 'nazwa=' + ObecnaWartosc,
					success: function(dane) {
						Parsuj(dane);
						LadowanieStop();
					}
				});
	  		}
	  		else {
	  			$lista.hide();
	  			LadowanieStop();
	  		}
  		}
		function Parsuj(dane) {
			if (PoleAktywne == 0) { return; }
			ElementAktywny = 0;
			if ($('nazwa', dane).length == 0) { return; }
			$('nazwa', dane).each( function() {
				var nazwa = $(this).text();
				var element = jQuery('<p>' + nazwa + '</p>').mouseover( function() {
					$(this).addClass(opcje.KlasaWybrany);
				}).mouseout( function() {
					$(this).removeClass(opcje.KlasaWybrany);
				}).click( function() {
					$pole.val(nazwa);
					$pole.focus();
				});
				$lista.append(element);
			} );
			$("p:first",$lista).addClass(opcje.KlasaWybrany);
			var offset = $pole.offset(); var gora = offset.top + $pole.height() + 5;
			$lista.css({ position: 'absolute', left: offset.left, top: gora, width: '200px' }); 
			$lista.show();
		}
		function LadowanieStop() {
			$pole.removeClass(opcje.KlasaLadowania);
		}
		function LadowanieStart() {
			$pole.addClass(opcje.KlasaLadowania);
		} 
		function ListaUkryj() {
			$lista.hide();
			clearTimeout(timeout);
			LadowanieStop();
		}
	}
/* --------------- Uzupelnij------------- */
})(jQuery);
/* koniec funkcji natywnych */
/* --------- dodatkowe okienka ------- */
//uzywane przez modul SMS
function PokazOkno(adres,szerokosc,wysokosc) {
	args = 'width=' + szerokosc + ',height=' + wysokosc + ',menubar=no,location=no,resizable=yes,scrollbars=no,status=no';
	if (window.screen)  { 
	var xcen = (screen.availWidth - szerokosc) / 2; 
	var ycen = (screen.availHeight - wysokosc) / 2;
	args += ',left=' + xcen + ',screenX=' + xcen;
	args += ',top=' + ycen + ',screenY=' + ycen;  
	}
	window.open(adres,'',args);
}
/* --------- dodatkowe okienka ------- */
//USUNACPONIZEJ TEJ LINII (uzyte jeszcze w module subskrypcja
/* ----- wylaczanie obiektow --------- */
function WylaczanieObiektow(rodzic,rodzaj) {
	var obiekt = document.getElementById(rodzic);
	var rodzaje = new Array('INPUT','TEXTAREA','BUTTON','SELECT');
	for (var x = 0; x < rodzaje.length; x++) {
		var dzieci = obiekt.getElementsByTagName(rodzaje[x]);
		if (dzieci.length > 0) {
			for (var a = 0; a < dzieci.length; a++) {
				if (rodzaj == 1) {
//					dzieci[a].disabled = false;
					dzieci[a].className = dzieci[a].className.replace(new RegExp(" ?wylaczone\\b"), "");
				}
				else {
//					dzieci[a].disabled = true;
					dzieci[a].className = dzieci[a].className.replace(new RegExp(" ?wylaczone\\b"), "");
					dzieci[a].className += " wylaczone";
				}
			}
		}
	}
	if (rodzaj == 1) { obiekt.style.display = 'block'; }
	else { obiekt.style.display = 'none'; }
}
/* ----- wylaczanie obiektow --------- */

