﻿//konfiguracja
devMode = false; //developer mode - tworzy konsole pod IE
playerDelay = 12000; //czas odtwarzania pojedynczej pozycji playlisty
playerTransitionTime = 500; //czas przechodzenia miedzy pozycjami playera
flashPlayerRequiredVersion = 9; //wymagana wersja flasza
flashBgColor = '#000000'; //kolor tla flasza
AFlashDimensions = Array(668, 331); //wymiary flasza w pikselach
submenuToDisplay = 99; //accordion - domyslnie rozwiniete podmenu	

// ----------- do not edit below this line ---------- //
new Asset.javascript('/js/slimbox.js');

Aflashes = new Array(); //w tej tablicy bedziemy gromadzic nazwy flaszy

varPlaying = false; //domyslna wartosc dla zmiennej okreslajacej czy flasz jest wlasnie odtwarzany
intervalID = false; //domyslna wartosc dla zmiennej okreslajacej interwal pokazu slajdow
playerCurrentItem = 1; //domyslna pozycja playera; narazie nie ma mozliwosci przewijania na starcie w przypadku ustawienia wartosci innej niz 1

if (!window.console){
	var console = { log:function(comm){ if (devMode == true && $('consoleDiv')) $('consoleDiv').innerHTML = $('consoleDiv').innerHTML+"<br />\n"+comm;/*alert(comm);*/} }
}

function stopPlayingFlash(all_but_first) { //funkcja zatrzymuje flasze; arg: all_but_first (bool) - czy wszystkie oprocz pierwszego
	Aflashes.each(function(el){
		if (all_but_first == true && el == 'flash1') console.log('stopPlayingFlash: nie zatrzymuje pierwszego flasza');
		else $(el).SetVariable("varStopPlaying", "1"); //Swiff.remote (Flash Externall Interface) wywala FX!!!
	});
}

function playerNext() {
	playerScroll = $('player-content').getScroll();
	playerPos = Math.round(playerScroll.y / $('player-content').getSize().y);
	console.log('function playerNext, '+playerPos);
	if ($('play'+(playerPos+2))) el = 'play'+(playerPos+2);
	else el = 'play1';
	scrollPlayer(el);
	$('playlista').getElements('a').removeClass('current');
	$('playlista').getElement('a[href$='+playerCurrentItem+']').addClass('current');
	console.log('playerCurrentItem: '+playerCurrentItem);
}

function scrollPlayer(el) { //funkcja przewija playera; arg: el(element) - element do ktorego player ma zostac przewiniety
	stopPlayingFlash();
	console.log('scrollPlayer, el: '+el);
	playerCurrentItem = el.substr(4);
	toggleFlash(false, false);
	new Fx.Scroll('player-content', {
		'duration': playerTransitionTime/*,
		'complete': toggleFlash(true, true)*/ //NIE DZIALA
	}).toElement(el);
	injectFlashPlayer(playerCurrentItem); //wstawiamy warunkowo flasza
	(function(){
		toggleFlash(true, true); //pokazujemy flasza (linuch)
		/*if ($(el)) */if ($('flash'+playerCurrentItem)) $('flash'+playerCurrentItem).SetVariable("varStartPlaying", "1"); //Swiff.remote (Flash Externall Interface) wywala FX!!!
	}).delay(playerTransitionTime);
}
	
function timedPlayerNext() {
	if (!intervalID) intervalID = (function(){ playerNext(); }).periodical(playerDelay);
}

function timedPlayerNextImmedietaly() {
	playerNext();
	timedPlayerNext();
}

function clearTimedPlayerNext() {
	if (intervalID) $clear(intervalID);
	intervalID = false;
}

function setVarPlaying(status) {
	console.log("varPlaying: "+status);
	varPlaying = status;
}

function toggleFlash(toShow, all_but_current){ //ukrywa lub pokazuje flasze; arg: toShow(bool) - czy pokazac czy ukryc, all_but_current(bool) - czy wszystkie za wyjatkiem aktualnie widocznego (w przypadku ukrywania)/czy tylko biezacy (przy pokazywaniu)
	if (Browser.Platform.linux || (Browser.Platform.mac && Browser.Engine.presto)) { //tylko dla linucha oraz opery pod makowa
		Aflashes.each(function(el){
			li = 'play'+el.substr(5); //id nadrzednego elementu li
			if (toShow == true) { 
				if (all_but_current == true) {
					if (el == 'flash'+playerCurrentItem) $(li).setStyle('visibility', 'visible');						
				} else $(li).setStyle('visibility', 'visible');
			} else {
				if (all_but_current == true) {
					if (el != 'flash'+playerCurrentItem) $(li).setStyle('visibility', 'hidden');
				} else $(li).setStyle('visibility', 'hidden');
			}
		});
	}
}
	
function injectFlashPlayer(i) { //funkcja warunkowo wstawia flasza, sprawdzajac czy li ma atrybut title i czy takiego flasza jeszcze nie ma; arg: i(int) - numer pozycji playlisty w ktory ma byc wstawiony
	
	if ($('playlista')) playlistaHeight = $('playlista').getSize().y;
	else playlistaHeight = 24;
	if (Browser.Platform.linux) { 
		AFlashDimensions = Array(Math.round((AFlashDimensions[1]-playlistaHeight)/(AFlashDimensions[1]/AFlashDimensions[0])),AFlashDimensions[1]-playlistaHeight); 
		$('player-content').setStyle('padding-top', playlistaHeight); 
	} //aby player pod linuksem nie zaslanial playlisty
	el = $('play'+i);
	//$$('#player-content li').each(function(el, i) {
			//i = 1; //aby numeracja flaszy szla jak pozycji playlisty
			if ($chk(el.getProperty('title')) && !$('flash'+i) && Browser.Plugins.Flash.version >= flashPlayerRequiredVersion/*&& !Browser.Platform.linux*/) {
				if (Browser.Engine.trident) var rnd = Math.random(); //wymuszanie odswiezania wrappera dla IE
				else var rnd = 1;
				if (i == 1) var varStopPlaying = 0;
				else var varStopPlaying = 1; //zatrzymujemy wszystkie oprocz pierwszego na starcie
				window['flash'+i] = new Swiff('/swf/player-wrapper.swf?'+rnd, {
					container: el,
					id:'flash'+i,
					name:'flash'+i, //pozwala na dzialanie flash+i.setVariable!!!
					width: AFlashDimensions[0],
					height: AFlashDimensions[1],
					params: {
						'bgcolor': flashBgColor,
						'allowFullScreen': 'true'
					},
					vars: {
						'movie': el.getProperty('title'),
						'varStopPlaying': varStopPlaying
					}
				});
				Aflashes.push('flash'+i); //dokladamy nazwe biezacego flasza do tablicy nazw flaszy
				console.log('Aflashes: '+Aflashes);
				el.removeProperty('title');
				clearTimedPlayerNext();
				//blur na flaszu pod FX - zostawia brzydka obwodke po kliknieciu
				if (!Browser.Engine.trident) Aflashes.each(function(el){
					$(el).addEvent('click', function() {
						$(el).blur();
					});
				});
			}
	//});
	
	toggleFlash(false, true); //ukrywamy wszystkie flasze oprocz pierwszego
	
}
	
window.addEvent("domready", function() {

	//tworzenie #consoleDiv
	if (Browser.Engine.trident && devMode == true) new Element('div',{'id':'consoleDiv'}).setStyles({'position':'absolute','z-index':'99','top':'0','left':'0','background':'#fff','color':'#000'}).inject($('container'), 'before').appendText('consoleDiv');

	//czyszczenie flash warning
	if (Browser.Plugins.Flash.version >=flashPlayerRequiredVersion) {
		$$('#player-content li').each(function(el) {
			if ($chk(el.getProperty('title'))) el.empty();
		});
	}
	
	// ie bg fix 
	try {
		document.execCommand('BackgroundImageCache', false, true);
	} catch(e) {}
	
	//ukrywanie elementow menu
	$('menu').getElements('ul ul').each(function(el){
		//el.setStyles({'overflow' : 'hidden', 'height' : '0'});
	});
	
	//zaznaczanie biezacej strony
	$('menu').getElements('a').each(function(el){
		href = el.getProperty('href').replace(window.location.protocol+'//'+window.location.host+'','');
		url = window.location.href.replace(window.location.protocol+'//'+window.location.host+'','');
		if (href == url) {
			el.addClass('current');
			//rozwijanie aktywnego podmenu
			if (el.getParent().getParent().hasClass('accordion')) {
				$$('.accordion').each(function(el2, index){
					if (el2 == el.getParent().getParent()) submenuToDisplay = index;
				});
			}
		}
	});
	
	//accordion
	var myAccordion = new Accordion($$('.toggle'), $$('.accordion'), { 
		display: submenuToDisplay,
		alwaysHide: true,
		fps:50,
		opacity: false/*,
		duration: 0*/
	});
	
	$$('.toggle').each(function(el){
		//obsluga hovera dla ie
		if (Browser.Engine.trident == true) {
			el.addEvent('mouseover',function(event){
				el.setStyle('background', 'url(/style/img/menu-hover.png)')				
			});
			el.addEvent('mouseout',function(event){
				el.setStyle('background', 'none')
			});
		}
		//strzalki
		el.getParent().addClass('right');
		el.addEvent('click',function(event){
			$$('.arr').addClass('right');
			if (el.getNext().getSize().y == 0) el.getParent().removeClass('right');
		});
				
	});
	
	//zaznaczanie aktywnego jezyka
	if (window.location.href.indexOf('/en/') != -1) lang = 'en'; 
	else lang = 'pl';
	$(lang).addClass('active');
	
	//powiekszanie gornego marginesu pierwszego akapitu z #content
	//if ($('content').getElement('p') && $('content').getElement('p').getPrevious().get('tag') != 'h2') $('content').getElement('p').addClass('first');
	
	if ($('playlista')) {
	
		//playlista - dodawanie klasy .first do pierwszej pozycji
		$('playlista').getElement('li').addClass('first');
		
		//player - wstawianie obrazkow do tla, lightbox, ...
		$('player-content').getElements('img').each(function(el){
			//lightbox
			if (el.getParent().get('tag') == 'a') {
				if (lang == 'pl') zoomText = 'powiększ';
				else zoomText = 'enlarge';
				el.getParent().addClass('zoom').appendText(zoomText);
				var parent = el.getParent().getParent(); //potrzebne do wstawiania do tla
			}
			else var parent = el.getParent();
			parent.setStyle('background', 'url('+el.getProperty('src')+')');
			el.destroy();
		});
		
		//player - przewijanie
		if ($('playlista')) $('playlista').getElements('a').each(function(el){
			el.addEvent('click',function(event){
				new Event(event).stop();
				scrollPlayer(el.getProperty('href').substr(el.getProperty('href').indexOf('#')+1));
				$('playlista').getElements('a').removeClass('current');
				el.addClass('current');
				el.blur();
			});
		});
		$('playlista').getElements('a[href$=play1]').addClass('current'); //zaznaczanie pierwszego a na starcie
		
		//zawieszanie wykonywania przewijania gdy kursor znajduje sie na playerze
		$('player').addEvent('mouseenter', function() {
			clearTimedPlayerNext();
		})
		$('player').addEvent('mouseleave', function() {
			if (varPlaying == false) timedPlayerNext();
		})
		
		//uruchamianie playera, osadzanie flasza
		timedPlayerNext();
	
	} //koniec if player
	
	injectFlashPlayer(1); 
	
}); //koniec ondomready
