document.documentElement.className = "bezDOMny";
var motywGraficzny = false;

function inicjujJs() {
	motywGraficzny 
		= (document.id(document.body).getStyle('unicode-bidi') == 'bidi-override');
	if (motywGraficzny) {
		/*** Funkcje zmieniające DOM proszę wpisywać tutaj */
		document.documentElement.className = "DOMready";
		drobnePoprawkiWygladu();
		animacjaFlash();
	}
	inputyZTekstem();
	bannerStatInit();
	czcionka();
	lightbox();
	adminModul();
}
window.addEvent('domready', inicjujJs);




/***  Domyślna wartość pól tekstowych, znikająca przy :focus */
function inputyZTekstem() {
	var pola = []; // tablica zawierająca id inputów mających tekst domyślny
	
	// Dla innych języków tekst domyślny dać w title inputa, nadpisze ten
	// zdefiniowany tutaj.
	// Np. <input id="newsletterEmail" title="Your email address" />
	pola['newsletterEmail'] = 'Twój adres e-mail';
	pola['fraza'] = 'Szukana fraza';
	
	for (var el in pola) {
		new InputyZTekstem(el,pola[el]);
	}
}


function animacjaFlash() {
	var opcje = {
		'kontener': 'animacjaFlash', // gdzie wyladuje animacja
		'swfPath': '/g/front/nazwaSerwisu.swf', // sciezka do animacji
		'swfVersionStr': '10', // minimalna wymagarsza wymagana playera
		'flashvars': {},
		'params': {
			menu: "false",
			scale: "noScale",
			allowFullscreen: "false",
			allowScriptAccess: "sameDomain",
			quality: 'high',
			loop: 'true',
			scale: 'showall',
			devicefont: 'false',
			salign: '',
			wmode: "transparent" // can cause issues with FP settings & webcam
		},
		'attributes': {
			id:"nazwaSerwisuSWF"
		}
	};

	if (document.getElementById(opcje.kontener)) {
		swfobject.embedSWF(
			opcje.swfPath,
			opcje.kontener, "101px", "93px", opcje.swfVersionStr,
			"/p/intro/expressInstall.swf",
			opcje.flashvars, opcje.params, opcje.attributes
		);
	}
}

/***  Galerie zdjęć */
function lightbox() {
	if (typeof(Milkbox) != 'undefined') {
		milkbox = new Milkbox({
			centered:true,
			overlayOpacity:0.4,
			imageOfText:'z'
		});
	}
}

/***  Powiększanie tekstu */
function czcionka() {
	new Czcionka();
}


/***  Galeria Fancybox, ikonki reprezentujące typ pliku obok odnośnika itp */
function drobnePoprawkiWygladu() {
	var opcje = {
		// Dla starszych IE. pasującemu selektorowi nada odpowiednią klasę css.
		// Trzeba poniższym klasom zdefiniować obrazek tła w motyw.css.
		'ikonkiOdnosnikow': {
			'szukajW': 'kontenerTresc',
			'selektor': { 
				'a[href^="mailto:"]': 'jsLinkEmail',
				'a[href$=".pdf"]': 'jsLinkPdf',
				'a[href$=".doc"]': 'jsLinkDoc',
				'a[href$=".docx"]': 'jsLinkDoc',
				'a[href$=".xls"]': 'jsLinkArkusz',
				'a[href$=".jpg"]': 'jsLinkObraz',
				'a[href$=".jpeg"]': 'jsLinkObraz',
				'a[href$=".gif"]': 'jsLinkObraz',
				'a[href$=".png"]': 'jsLinkObraz',
				'a[href$=".zip"]': 'jsLinkArchiwum',
				'a[href$=".gz"]': 'jsLinkArchiwum',
				'a[href$=".rar"]': 'jsLinkArchiwum'
			}
		}
		
	};
	
	/*** Dla starszych IE. pasującemu selektorowi nada odpowiednią klasę css  */
	if (document.getElementById(opcje.ikonkiOdnosnikow.szukajW)) {
		for (var tenSelektor in opcje.ikonkiOdnosnikow.selektor) {
			var odnosniki 
				= document.id(opcje.ikonkiOdnosnikow.szukajW)
				.getElements(tenSelektor);
			odnosniki.addClass(opcje.ikonkiOdnosnikow.selektor[tenSelektor]);
		}	
	}
}


/***  Linki o klasie "popup" otworzą się zgadnijcie jak */
function popup() {
	var opcje = {
		'selektor': '.popup',
		'name': 'okno_pomocy',
		'parametry': 'menubar=0,scrollbars=0,resizable=1,width=773,height=650'
	};
	
	$$(opcje.selektor).each(function(item){
		item = document.id(item);
		item.addEvents({
			'click': function(ec){
				window.open(item.get('href'), opcje.name, opcje.parametry);
				ec.preventDefautlt();
			}
		});
	});
}

function noweOkno(link,name,x,y) {
	var opcje = {
		'parametry': 'menubar=0,scrollbars=1,resizable=1,width=850,height=600'
	};
	
	window.open(link, name, opcje.parametry);
}





/***  Wyróżnienie obszaru w którym doda się moduł. */
var adminModul = function() {
	var opcje = {
		'selektor': 'img.adminModulNowy',
		'bg': '#ffffdb url(/g/root/adminModul.gif)'
	};
	
	$$(opcje.selektor).each(function(item, index){
		// temu rodzicowi podmienia się tło
		var el = document.id(item).getParent('span.adminModul').getParent();
		// zapisanie domyślnego tła css rodzica
		el.bg
			= (el.getStyle('background') == 'undefined')
			? '' 
			: el.getStyle('background');
		document.id(item).addEvents({
			// po najechaniu myszką na "+" podmienia się tło rodzica
			'mouseenter': function(me){
				el.setStyle('background', opcje.bg);
			},
			// po zjechaniu myszką z elementu, tło rodzica wraca do domyślnego
			'mouseleave': function(ml){
				el.setStyle('background', el.bg);
			}
		});
	});
}


/***  Domyślna wartość pól tekstowych, znikający przy :focus */
var InputyZTekstem = function(elementId,jsValue) {
	// klasa inputa o pustym value (z value ustawionym przez skrypt)
	var klasaNieaktywnego = 'inputNieaktywny';
	
	if (document.getElementById(elementId)) {
		var element = document.getElementById(elementId);
		// jeśli input ma tytuł, to on zostanie użyty zamiast podpowiedzi
		jsValue 
			= (document.id(element).get('title'))
			? document.id(element).get('title') 
			: jsValue;
		
		// na starcie ustawia inputowi value podpowiedzi
		if (element.value == '' || element.value == jsValue) {
			element.value = jsValue;
			document.id(element).addClass(klasaNieaktywnego);
		}
		element = document.id(element);

		element.addEvents({
			// aktywując input usuwa się tekst podpowiedzi
			'focus': function(ef){
				if (element.get('value') == jsValue) { 
					element.set('value', '');
					element.removeClass(klasaNieaktywnego); 
				}
			},
			// opuszczając input, dodany zostaje tekst podpowiedzi
			'blur': function(eb){
				if (element.get('value') == '') {
					element.set('value', jsValue);
					element.addClass(klasaNieaktywnego);
				}
			}
		});
		
		// zapobiega próbie np. wyszukania frazy "szukana fraza..."
		if (element.getParent('form')) {
			element.getParent('form').addEvent('submit', function(eps) {
				element.fireEvent('focus', element);
			});
		}
	}
}


/*** podpina bannerom funkcję bannerStat do zdarzenia onclick */
function bannerStatInit() {
	var opcje = {
		'selektor': 'a.bannerStat[rel^=banner]'
	};
	
	$$(opcje.selektor).addEvents({
		'click': function(ec) {
			bannerStat(
				this.get('rel').replace('banner', ''), 
				this.get('href'),false
			);
			ec.preventDefault();
		}
	});
}


/*** zlicza kliknięcia bannerów i ewentualnie przekierowuje */
function bannerStat(rekid, url, noweOkno) {	
	//zlicza kliknięcia bannerów i ew. przekierowuje
	var myRequest = new Request({
		method: 'get', 
		url: '/bannery/statystyki/',
			onSuccess: function( responseText ) {
				if(noweOkno) {
					var form = document.createElement("form");
					form.method = "GET";
					form.action = url;
					form.target = "_blank";
					document.body.appendChild(form);
					form.submit();
				} else {
					document.location.href = url;
				}
			}
	}).send('id='+rekid); 
}


/*** Powiększanie tekstu */
var Czcionka = function() {
	var self = this;
	this.opcje = {
		'selektor': 'body', // temu elementowi nadajemy klase css
		'insertAfter': '#linkiGorne .topMapa', // zmiana czcionki dziala w js, wiec tu tworzymy linki
		'klasaMin': 'czcionkaMin', 'klasaMid': 'czcionkaMid', 'klasaMax': 'czcionkaMax',
		'html': {
			'klasaMin': 'Normalna czcionka',
			'klasaMid': 'Powiększona czcionka',
			'klasaMax': 'Maksymalnie powiększona czcionka'
		}
	}
	
	this.init = function() {
		self.element = $$(self.opcje.selektor)[0];
		self.element = document.id(self.element);
		self.klasaCss = self.opcje.klasaMid; // domyslna klasa css
		self.insertAfter = document.id($$(self.opcje.insertAfter)[0]);
		if (self.insertAfter) {
			self.buduj();
			self.dodajZdarzenia();
		}
		self.ustawCzcionke();
	}

	this.buduj = function() {
		var _li = new Element('li', {'class': 'topCzcionka'});
		var _a = new Element('a', {'href': '#', 'html': ''});
		
		var li = _li.clone().inject(self.insertAfter, 'after')
			.addClass(self.opcje.klasaMin);
		self.czcionkaMin = _a.clone().inject(li)
			.set('html', self.opcje.html.klasaMin);
		
		var li = _li.clone().inject(self.czcionkaMin.getParent('li'), 'after')
			.addClass(self.opcje.klasaMid);
		self.czcionkaMid = _a.clone().inject(li)
			.set('html', self.opcje.html.klasaMid);
			
		var li = _li.clone().inject(self.czcionkaMid.getParent('li'), 'after')
			.addClass(self.opcje.klasaMax);
		self.czcionkaMax = _a.clone().inject(li)
			.set('html', self.opcje.html.klasaMax);
	};
	
	this.dodajZdarzenia = function() {
		self.czcionkaMin.addEvent('click', function(e1){
			e1.preventDefault(); self.ustawCzcionke(self.opcje.klasaMin);
		});
		
		self.czcionkaMid.addEvent('click', function(e2){
			e2.preventDefault(); self.ustawCzcionke(self.opcje.klasaMid);
		});
		
		self.czcionkaMax.addEvent('click', function(e3){
			e3.preventDefault(); self.ustawCzcionke(self.opcje.klasaMax);
		});
	};
	
	this.ustawCzcionke = function(klasaCss) {
		if (!klasaCss) {
			klasaCss = Cookie.read('czcionka') 
				? Cookie.read('czcionka') 
				: self.opcje.klasaMin;
		} else {
			self.reset();
		}
		self.klasaCss = klasaCss;
		self.element.addClass(self.klasaCss);
		self.piekarnik(self.klasaCss);

	};
	
	this.reset = function() {
		self.element.removeClass(self.klasaCss);
	};
	
	this.piekarnik = function(klasaCss) {
		return Cookie.write('czcionka', klasaCss, {duration: 14});
	};

	this.init();
}


/***  rotator zdjec na gorze strony */
var Rotator = function(zdjecia, predkoscAnimacji) {
	var self = this;
	this.opcje = {
		'rodzicId': 'fotki',
		'predkosc': 5000
	}
	predkosc 
		= (typeof(predkoscAnimacji) != 'undefined') 
		? predkoscAnimacji 
		: this.opcje.predkosc;
		
	new UI(this, this.opcje.rodzicId);
	
	this.init = function(zdjecia) {
		this.zdjecia = zdjecia;
		this.animujInit();
		this.dodajZdarzenia();
	};
	

	this.animujInit = function() {
		this.zdjecia.fade('hide');
		this.zdjecia[0].fade('show');
		this.animuj();
	};
	
	this.dodajZdarzenia = function(){};
	
	this.pokazZdjecie = function(i) {
		this.zdjecia.fade('out');
		this.zdjecia[i].fade('in');
	};
	
	this.animuj = function() {
		this.zakladka = 0;
		this.rotacja = function() {
			this.zakladka++;
			if (this.zakladka == this.zdjecia.length) {this.zakladka = 0;}
			this.pokazZdjecie(this.zakladka);
		}.bind(this);
		this.period = this.rotacja.periodical(predkosc); 
	}
	
	this._gotowy(); // z UI()
	this.init(zdjecia);
};

/*** 
 * Funkcje wspolne wszystkim elementom zmieniającym DOM lub wygląd na taki, który
 * bez js jest nieczytelny.
*/
var UI = function(parent, element) {
	parent._toElement = function() {
		return document.id(element);
	};
	var element = parent._toElement() || null;
	parent._gotowy = function() {
		if (element) {
			document.id(element).addClass('UI');
		}
	};
	parent._ustawWysokosc = function(elementy) {
		var y = 0;
		$$(elementy).each(function(item, index) {
			var yfoo = document.id(item).offsetHeight;
			y = (yfoo > y) ? yfoo : y;
		});
		document.id(elementy[0]).getParent().setStyle('height', y+'px');
	};
};
