/**
 * Zestaw parametr�w i metod konfiguracyjnych
 *
 */
var _config = {
	/* adres bazowy strony - warto�� ustawiana w init */
	base_url: null,
	/* kontroler i akcja (wype�niane w head) */
	controller: null,
	action: null,
	lang: null,
	langurl: null,
	
	
	wpisano_fraze: false,
	

	/* operacje wykonywane po za�adowaniu dokumentu */
	init_common: function() {
		// bazowy URL strony
		this.base_url = location.href.match(/^(http:\/\/[^\/]*\/)/)[1];
	
		// konfiguracja AJAX-a
		$.ajaxSetup({
			cache: false
		});
		
		this.init();
	},
	
	/**
	 * Ta metoda jest wywo�ywana zawsze po init_common.
	 *
	 * Metod� nadpisujemy w rozszerzeniach poprzez:
	 *
	 * jQuery.extend( _config, { init: { <tutaj kod> } } );
	 *
	 */
	init: function() {
		
		// reklamy lzk/ftk
		var r = Math.random();
		if (r >= 0.5)
		{
			$('#reklama_ftk').hide();
		}
		else
		{
			$('#reklama_lzk').hide();
		}

		// pojedyncze zdjecia
		$('a.lightbox').each(function(a){
			$(this).lightBox({
				//overlayBgColor: '#FFF',
				//overlayOpacity: 0.6,
				imageLoading: '/img/lightbox/lightbox-ico-loading.gif',
				imageBtnClose: '/img/btn-zamknij-szary-'+_config.lang+'.gif',
				imageBtnPrev: '/img/lightbox/lightbox-btn-prev.gif',
				imageBtnNext: '/img/lightbox/lightbox-btn-next.gif',
				imageBlank: '/img/lightbox/lightbox-blank.gif',			
				//containerResizeSpeed: 350,
				txtImage: '',
				txtOf: '/'				
			}); 
		});
		
		// galeria (prev-next przy zdjeciu)
		$('a.lightboxGallery').lightBox({
			//overlayBgColor: '#FFF',
			//overlayOpacity: 0.6,
			imageLoading: '/img/lightbox/lightbox-ico-loading.gif',
			imageBtnClose: '/img/btn-zamknij-szary-'+_config.lang+'.gif',
			imageBtnPrev: '/img/lightbox/lightbox-btn-prev.gif',
			imageBtnNext: '/img/lightbox/lightbox-btn-next.gif',
			imageBlank: '/img/lightbox/lightbox-blank.gif',			
			//containerResizeSpeed: 350,
			txtImage: '',
			txtOf: '/'				
		}); 		
		
		// warstwa z biletami
		$('a.otworzWarstweBiletow').bind('click', function(){
			_main.otworzWarstweBiletow();
		});
		
		$('#rezerwacja-biletow-zamknij').bind('click', function(){
			$('#rezerwacja-biletow').hide();
			$('.jsUkryjFlesze').css('visibility', 'visible');
		});
		
		// wyszukiwarka		
		$('#query').bind('focus', function(){
			if (!_config.wpisano_fraze)
			{
				this.value = '';
			}
		});
		$('#query').bind('blur', function(){
			if (this.value.length < 1)
			{
				_config.wpisano_fraze = false;
				this.value = _lang['wyszukaj w serwisie'];				
			}
			else
			{
				_config.wpisano_fraze = true;
			}			
		});
		$('#mainsearch').bind('submit', function(){
			return $('#query').val().length < 2 ? false : true;
		});
		
		$('#jsPopupPrezentacja').bind('click', function(){
			var n = 'popupwindow';
			var w = 820;
			var h = 500;
            var t = (screen.height - h) / 2;
            var l = (screen.width - w) / 2;
            var o = 'location=' + this.href + '&width=' + w + '&height=' + h + '&screenX=' + l + '&screenY=' + t;
            
            window.open(this.href, name, o);            
            return false;
		});
		
		// komunikat systemowy globalny		
		$('#zamknijKomunikatGlobalny').unbind('click');
		$('#zamknijKomunikatGlobalny').bind('click', function(){
			$('#boxKomunikatGlobalny').hide();
			$.cookie('wylaczKomunikat', true)
			return false;
		});
		
		if ($.cookie('wylaczKomunikat') == "true")
		{
			$('#boxKomunikatGlobalny').hide();
		}
		
	}
}


/**
 * G��wny zestaw metod
 *
 */
var _main = {
	_this: null,

	/* operacje wykonywane po za�adowaniu dokumentu */
	init_common: function() {
		/* nadanie linkom zewnetrznym atrybutu target="_blank" */
		this.external_links();
		
		/* otwarcie warstwy biletow na podstawie adresu strony */
		if (location.href.match(/#tickets$/)) {
			this.otworzWarstweBiletow();
		}
		/* zabezpieczenie - jesli link z #tickets jest taki sam, jak adres aktualnej strony, to zmieniamy go na pelny adres glownej */
		$("a[href$='#tickets']").each(function() {
			if (this.href.match(/^([^#]*)/)[1] == location.href.match(/^([^#]*)/)[1] || !this.href.match(/^http:\/\//)) {
				this.href = $(".logo a").attr("href")+"#tickets";
			}
		});
		
		this.init();
		
		/* inicjalizacja kodu dla kontrolera i akcji */
		var controller = _config.controller.charAt(0).toUpperCase() + _config.controller.substr(1).replace(/-[a-z]/ig, function(s) {return s.substr(1,1).toUpperCase()});
		if ( typeof(window[controller]) == "object" ) {
		
			this._this = window[controller];
		
			var action = _config.action.replace(/-[a-z]/ig, function(s) {return s.substr(1,1).toUpperCase()}) + "Action";
			
			if (typeof(window[controller]["init"]) == "function") {
				window[controller]["init"]();
			}
			if (typeof(window[controller][action]) == "function") {
				window[controller][action]();
			}
		}
	},
	
	/**
	 * Ta metoda jest wywo�ywana zawsze po init_common (ale przed wywo�aniem akcji kontrolera).
	 *
	 * Metod� nadpisujemy w rozszerzeniach poprzez:
	 *
	 * jQuery.extend( _main, { init: { <tutaj kod> } } );
	 *
	 */
	init: function() {
	},
	
	otworzWarstweBiletow: function() {
		// scroll na gore
		window.location = '#';
		if ($('#jsBiletyIframe').html().length < 10)
		{
			var gtltravel_lang = _config.lang == 'pl' ? 'pl' : 'en'; 
			$('#jsBiletyIframe').html('<iframe frameborder="0" src="http://sirius.amadeus.com.pl/s3air/gtltravel'+gtltravel_lang+'/airstart.aspx" border=0></iframe>');
		}
		$('.jsUkryjFlesze').css('visibility', 'hidden');
		$('#rezerwacja-biletow ').show();
		return false;
	},
	
	// przewija stron� na sam� g�r� (bez u�ycia "#")
	scrollToTop: function() {
		$(document).scrollTop(0);
	},
	
	/* nadanie linkom zewnetrznym atrybutu target="_blank" */
	external_links: function() {
		$("a[rel='external']").each( function(i) {
			this.target = "_blank";
		});
	}
};

$(document).ready(function() {
	_config.init_common();
	_main.init_common();
});

try {document.execCommand('BackgroundImageCache', false, true);} catch(e) {}