document.documentElement.className += " bezDOMny";
var motywGraficzny = false;
function inicjujJs() {
	motywGraficzny = ($('body').css('unicode-bidi') == 'bidi-override');
	if (motywGraficzny) {
		document.documentElement.className = "DOMready";
		drobnePoprawkiWygladu();
		rotatory();
	}
	inputyZTekstem();
	bannerStatInit();
	ieMenuHover();
	adminModul();
	tablicaScroll();
}
jQuery(document).ready(inicjujJs);





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
	pola['newsletterEmail'] = 'Twój adres e-mail';
	pola['fraza'] = 'Wyszukaj w serwisie...';
	
	for (var el in pola) {
		new InputyZTekstem(el,pola[el]);
	}
}

function tablicaScroll() {
	var selektor = '#tablicaKorkowa';
	var elementSelektor = '#ofertyKontener';
	jQuery(jQuery.find(selektor)).each(function(index, item){
		new Scroll(selektor, elementSelektor);
	});
}


/*** obsługa rozwijanego menu pod ie (symulacja :hover dla !<a>)  */
function ieMenuHover() {
	var selektor = '.menuGlowne li';
	var klasaHover = 'hover';

	if ($.browser.msie) {
		$(selektor).each(function(index, zakladka){
			zakladka = $(zakladka);
			zakladka.mouseenter(function(e){zakladka.addClass(klasaHover);});
			zakladka.mouseleave(function(e){zakladka.removeClass(klasaHover);});
		});		
	}
}
/* /obsługa rozwijanego menu pod ie  */


function drobnePoprawkiWygladu() {
	/*** fancybox  */
	var uzyjFancyboxDla = [
		'a[rel^=galeria]',
		'a[rel^=fancybox]',
		'.boks.oferta .tytul a'
	];
	if (typeof($.fancybox) == 'function') {
		$(uzyjFancyboxDla).each(function(index, els){
			$(els).each(function(index2, el){
				$(el).fancybox({'overlayOpacity':'0.5','overlayColor':'#000'});
				// pokaż fancybox, jeśli formularz zawiera błąd
				// (wtedy link do fancybox zawiera odpowiednią klasę)
				if ($(el).hasClass('fancy-show')) {
					$(el).fancybox().trigger('click');
				}
			});
		});
	}
	/* /fancybox  */
	
	/*** po najechaniu na zdjęcie animacja  */
	var elementyGalerii = $.find('.galeria .zawartosc a');
	elementyGalerii = $(elementyGalerii);
	elementyGalerii.each(function(index,item){
		$(item).mouseenter(function(){ $(item).fadeOut(200).fadeIn(800); });
	});
}

/*** rotator treści na stronie głównej, z dużą miniaturą z boku;
 *   rotator listy komunikatów, bez animacji  */
function rotatory() {
	$('.rotator').each(function(i, rotator){
		new Rotatory(rotator);
	});
}
/* /rotator treści i listy komunkatów  */

function bannerStatInit() {
	var selektorElementow = 'a.bannerStat[rel^=banner]';
	
	$(selektorElementow).click(function(e){
		bannerStat(this.attr('rel').replace('banner', ''),this.attr('href'),false);
		e.preventDefault();
	});
}
function bannerStat(rekid, url, noweOkno) {	
	//zlicza kliknięcia bannerów i ew. przekierowuje
	$.ajax({
		type: 'GET',
		url: '/banery/statystyki/',
		data: 'id='+rekid,
		success: 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;
			}
		}
	});
}

















var Scroll = function(rodzic, element) {
	var suwakHtml = '<div id="scroll"><div><a href="#"></a></div></div>'; // wrap + sam suwak
	var suwak;
	var ratio;
	var self = this;
	
	this.inicjuj = function() {
		this.rodzic = jQuery(jQuery.find(rodzic));
		this.element = jQuery(this.rodzic.find(element));
		// Jeżeli scroll jest w ogóle potrzebny, to
		if (this.element.height() - jQuery(this.element.parent()).height() > 0) {
			this.suwak = jQuery(suwakHtml);
			this.suwak.appendTo(this.rodzic);
			this.suwak = jQuery(this.suwak.find('a'));
			this.dodajZdarzenia();
			this.obliczRatio();		
		}
	};
	
	this.obliczRatio = function(pozycjaSuwaka) {
		var obszarSuwaka = jQuery(self.suwak.parent()).height() - self.suwak.height();
		var obszarTresci = this.element.height() - jQuery(this.element.parent()).height();
		return (pozycjaSuwaka / obszarSuwaka) * obszarTresci;
	};
	
	this.dodajZdarzenia = function() {
		this.suwak.bind('click', function(e){
			e.preventDefault();
		});
		this.suwak.draggable({
			axis:'y',
			containment: this.suwak.parent(),
			scroll: false,
			drag: function(event, ui){
				self.ustawScroll( self.obliczRatio(ui.position.top) );
			}
		});
		this.element.bind('mousewheel', function(e, delta) { // wymagany plugin mousewheel
			e.preventDefault();
			var y = 0;
			y = parseInt(self.suwak.css('top')) - delta*10;
			if (
				( delta < 0 && (parseInt(self.suwak.css('top')) < jQuery(self.suwak.parent()).height()-10-self.suwak.height()) )
				|| 
				( delta > 0 && (parseInt(self.suwak.css('top')) > 10 ) )
			) {
				self.suwak.css('top', parseInt(self.suwak.css('top'))-delta*10)
					
			} else {
				if (delta < 0) {
					self.suwak.css('top',jQuery(self.suwak.parent()).height()-self.suwak.height());
				} else {
					self.suwak.css('top',0);
				}
			}
			self.ustawScroll( self.obliczRatio(parseInt(self.suwak.css('top'))) );
		});
	};
	
	this.ustawScroll = function(pozycja) {
		self.element.css('top','-'+pozycja+'px');
	};
	
	this.inicjuj();	
}


var RotatoryCommon = function() {
	// klasa nadawana aktywnej zakładce na liście paginacji
	var jsKlasaAktywnej = 'aktywna';
	this.ustawWysokoscRodzica = function (tablicaDzieci) {
		var y = 0;
		$(tablicaDzieci).each(function(index, item) {
			y = ($(item).outerHeight(true) > y) ? $(item).outerHeight(true) : y;
		});
		$(tablicaDzieci[0]).parent().css('height', y+'px');
	};
	this.pokazZakladke = function (index, rotator) {
		$(rotator.paginacja).removeClass(jsKlasaAktywnej);
		$(rotator.zakladki).fadeOut('slow');
		
		$(rotator.paginacja[index]).addClass(jsKlasaAktywnej);
		$(rotator.zakladki[index]).fadeIn('slow');
	};
}

/*** rotator treści  */
var Rotatory = function(rotator) {
	var zakladki = '.boks'; // selektor zakładek do znalezienia
	
	var opoznienie = $(rotator).attr('title') 
		? $(rotator).attr('title').split(',')[0] 
		: 4500;
	var self = this, interval;
	
	
	this.inicjuj = function(rotator){
		self.rotatoryCommon = new RotatoryCommon();
		
		// odnośnik do rotatora
		self.rotator = rotator;
		$(self.rotator).removeAttr('title');
		
		// startowa zakładka
		self.rotator.widoczna = self.rotator.startowa = 0;
		
		// lista zakładek
		self.rotator.zakladki = $(self.rotator).find(zakladki);
		
		// ustawia wysokość rotatora na równą wysokości najwyższej zakładki
		self.rotatoryCommon.ustawWysokoscRodzica($(self.rotator.zakladki));
		
		
		// dodaje zdarzenia myszy do zakładek w paginacji i
		//  zatrzymuje animację po kliknięciu
		stworzPaginacje().each(function(index,zakladka){
			$(zakladka).click(function(e){
				self.rotatoryCommon.pokazZakladke(index, self.rotator);
				self.rotacjaStop();
				self.rotator.widoczna = index;
				e.preventDefault();
			});
		});
		
		// odsłania startową zakładkę
		self.rotatoryCommon.pokazZakladke(self.rotator.startowa, self.rotator);
		
		// uruchamia rotowanie zakładek
		if (self.rotator.zakladki.length > 1) {
			$(window).ready(function(){
				self.rotacjaStop();
				self.rotacjaStart();
			});
			$(window).blur(self.rotacjaStop);
			$(window).focus(function(){
				self.rotacjaStop();
				self.rotacjaStart();
			});
			$(self.rotator).mouseenter(function(){
				self.rotacjaStop().addClass('jsHover');
			});
			$(self.rotator).mouseleave(function(){
				self.rotacjaStart().removeClass('jsHover');
			});
		}
	};
	
	// przełączanie zakładek
	var stworzPaginacje = function() {
		$($(self.rotator).find('.zawartosc')[0])
			.append($('<ul class="paginacja"></ul>'));
		$(self.rotator.zakladki).each(function(index, zakladka){
			var i = index+1;
			$($(self.rotator)
				.find('.zawartosc .paginacja')[0])
				.append($('<li><a href="#">'+ i +'</a></li>'));
		});
		self.rotator.paginacja = $($(self.rotator).find('.paginacja li a'));
		return self.rotator.paginacja;
	};
	
	// animacja
	this.rotacjaStart = function(){
		self.rotacjaStop();
		this.interval = setInterval(function(){
			if (self.rotator.widoczna+1 < self.rotator.zakladki.length) {
				self.rotator.widoczna++;
			} else {
				self.rotator.widoczna = self.rotator.startowa;
			}
			self.rotatoryCommon.pokazZakladke(self.rotator.widoczna, self.rotator);
		}, opoznienie);	
		return $(self.rotator);
	};
	
	// zatrzymanie animacji
	this.rotacjaStop = function(){
		clearInterval(self.interval);
		self.interval = null;
		return $(self.rotator);
	};
	
	// uruchomienie rotatora
	this.inicjuj(rotator);

}
/* /rotator treści  */


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);
		// dla innych języków tekst domyślny dać w title inputa
		jsValue = ($(element).attr('title')) ? $(element).attr('title') : jsValue;
		
		if (element.value == '' || element.value == jsValue) {
			element.value = jsValue;
			$(element).addClass(klasaNieaktywnego);
		}
		element = $(element);
		element.focus(function(){
			if (element.attr('value') == jsValue) { 
				element.removeClass(klasaNieaktywnego); 
				element.attr('value', '');
			}
		});
		element.blur(function(){
			if (element.attr('value') == '') {
				element.addClass(klasaNieaktywnego);
				element.attr('value', jsValue);
			}
		});
		if (element.parents('form')) {
			element.parents('form').submit(function(){
				element.trigger('focus');
			});
		}
	}
}



var adminModul = function() {
	$($.find('img.adminModulNowy')).each(function(index, item){
		var el = $($(item).parents('span.adminModul').parent());
		item.jsBgColor
			= (el.css('background') == 'undefined')
			? 'transparent none' 
			: el.css('background');
		$(item).mouseenter(function(){el.css('background', '#ffffdb');});
		$(item).mouseleave(function(){el.css('background', item.jsBgColor);});
	});
}



/*** pasek informacyjny z przewijanym komunikatem tekstowym  */
var Marquee = function(element) {
	var krok = -1; // krok scrollowania
	var marqueeSelektor = '.zawartosc'; // selektor elementu scrollowanego
	var opoznienie = 30; // szybkość animacji (1 - maks)
	
	var pozycja = marqueeSzerokosc = 0;
	var self = this;
	
	
	this.inicjuj = function() {
		self.element = $(element);
		// szuka elementu scrollowanego wewnątrz $(element)
		self.marquee = $(self.element.find(marqueeSelektor));
		// szerokość rodzica elementu scrollowanego (położenie marquee się
		// resetuje, gdy osiągnie -szerokość rodzica (wartość ujemną);
		self.szerokosc = this.ustawSzerokosc();
		// uruchomienie animacji i dodanie zdarzeń myszy (stop dla mouseenter)
		this.scrolluj().dodajZdarzeniaMyszy();
	};
	
	this.ustawSzerokosc = function() {
		//startowa pozycja elementu scorllowanego
		self.pozycja = parseInt(self.element.css('width').replace('px', ''));
		//  szerokość elementu scrollowanego
		self.marqueeSzerokosc = parseInt(self.marquee.css('width').replace('px', ''));
		// ustawia marquee tuż za krawędzią rodzica
		self.marquee.css('left', self.pozycja);
		return self.pozycja;
	};
	
	this.scrolluj = function() {
		self.interval = setInterval(function(){
			if ( self.pozycja >= -self.marqueeSzerokosc ) {
				self.pozycja = self.pozycja + krok;
			} else {
				self.pozycja = self.szerokosc;
			}
			self.marquee.css('left', self.pozycja);
		}, opoznienie);	
		return self;
	};
	
	this.dodajZdarzeniaMyszy = function() {
		self.marquee.mouseenter(function(e){ clearInterval(self.interval); });
		self.marquee.mouseleave(function(e){ self.scrolluj(); });
		return self;
	};
	
	this.inicjuj();
}
/* /pasek informacyjny  */
