/**
 * 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,
	
	user_logged :null,
	lang :null,

	/* operacje wykonywane po załadowaniu dokumentu */
	init_common : function(){
		// bazowy URL strony
		this.base_url = location.href.match(/^(https?:\/\/[^\/]*\/)/)[1];
	
		// konfiguracja AJAX-a
		$.ajaxSetup({
			cache :false
		});
	
		$(document).ready( function(){
			$('#nav').droppy({speed:100});
		});		

	
	
		this.init();
	},
	
	/**
	 * Ta metoda jest wywoływana zawsze po init_common. Metodę nadpisujemy w
	 * rozszerzeniach poprzez: jQuery.extend( _config, { init: { <tutaj kod> } } );
	 */
	init : function(){
	}
};

/**
 * 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();

		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(){				
		$('a.inactive, a.empty').bind('click',function(){ return false; });
		$('#search_frase').inputHint();		
		$('#polec_znajomemu_a666').bind('click',function(){						
			komunikaty.pokaz('polec-znajomemu', '', '');
			$('#polecenie .button').bind('mouseover',function(){ $(this).addClass('hover'); }).bind('mouseout',function(){ $(this).removeClass('hover'); });
			$('#polecenie .button a').bind('click', _main.polec_znajomemu);
			$('#polecenie .button_en').bind('mouseover',function(){ $(this).addClass('hover'); }).bind('mouseout',function(){ $(this).removeClass('hover'); });
			$('#polecenie .button_en a').bind('click', _main.polec_znajomemu);			
			return false;
		});			
		$('#newsletter').bind('click',function(){						
			komunikaty.pokaz('newsletter', '', '');
			$('#polecenie .button').bind('mouseover',function(){ $(this).addClass('hover'); }).bind('mouseout',function(){ $(this).removeClass('hover'); });
			$('#polecenie .button a').bind('click', _main.newsletter);
			$('#polecenie .button_en').bind('mouseover',function(){ $(this).addClass('hover'); }).bind('mouseout',function(){ $(this).removeClass('hover'); });
			$('#polecenie .button_en a').bind('click', _main.newsletter);			
			return false;
		});			

		// ogolne submity
		$('#submit').bind('click',function(){
			$(this).parents('form:first').submit();
			return false;
		});
		
		// przycisk wyszukiwarki
		$('#transparent_button').bind('click',function(e){
			e.preventDefault();
			document.getElementById('form_wyszukiwarka').submit();			
			//return false;
		});
		// klikniecie entera w polu wyszukiwarki
		$('#search_frase').bind('keypress',function(e){
			if($.browser.msie && (window.event && window.event.keyCode == 13)){
				document.getElementById('form_wyszukiwarka').submit();
			}
		});		
		
		
		
	},

	// przewija stronę na samą górę (bez użycia "#")
	scrollToTop : function(){
		$(document).scrollTop(0);
	},

	polec_znajomemu : function(){			
		var dane = {
			 'rodzaj_akcji'		: 'polec-znajomemu'
			,'email_odbiorcy'	: document.getElementById('email_odbiorcy').value
			,'imie_nazwisko'	: document.getElementById('imie_nazwisko').value
			,'email_nadawcy'	: document.getElementById('email_nadawcy').value
			,'tresc'			: document.getElementById('tresc').value
		}			
		$.post(_config.base_url + "polec.html", dane, function(data){
			if(!data.ok){			
				for(x in data.bledy){
					//alert( x + ': ' + data.bledy[x] );
					$('#'+x+'_error').css('display','block').text(data.bledy[x]);
				}
			}else{		
				$('#polecenie span').not('.button').html('').css('display','none');
				document.getElementById('polec-naglowek').innerHTML = _t('polec.wyslana'); //'Wiadomość wysłana pomyślnie';
				document.getElementById('polecenie').innerHTML = '<p style="text-align:left;padding-left:44px;margin-top:8px;">'+_t('polec.dziekujemy')+'</p>';
			}
		}, 'json');
		return false;
	},	
	newsletter : function(){			
		var dane = {
			 'rodzaj_akcji'		: 'newsletter'
			,'newsletter_email'	: document.getElementById('newsletter_email').value
		}						
		$.post(_config.base_url + "polec.html", dane, function(data){
			
			if(!data.ok){			
				for(x in data.bledy){
					$('#'+x+'_error').css('display','block').text(data.bledy[x]);
				}
			}else{				
				$('#polecenie span').not('.button').html('').css('display','none');
				$('#polecenie span').not('.button_en').html('').css('display','none');				
				document.getElementById('polec-naglowek').innerHTML = _t('polec.wyslana');
				$('#polec-tekst').css('display','none');
				document.getElementById('polecenie').innerHTML = '<p style="text-align:left;padding-left:44px;margin-top:8px;">'+_t('newsletter.aktywuj')+'</p>';
			}
		}, 'json');
		return false;
	},		
	
	
	/* 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();
	$('#nav').bgiframe();
});

/**
 * Komunikaty
 */

var komunikaty = {
	/* inicjalizacja komunikatu wyświetlonego przez skrypt po stronie serwera */
	init : function(){
		this.ustaw_przyciski();
	},

	/* wyświetla komunikat danego rodzaju */
	pokaz : function(rodzaj, tytul, tresc, link_ok, link_anuluj){
		//alert("rodzaj="+rodzaj+"\n"+tytul+"\n"+tresc);		
		
		
		if (document.komunikaty_tpl[rodzaj]) {
			if (typeof (link_ok) == "undefined") {
				link_ok = location.href;
			}
			if (typeof (link_anuluj) == "undefined") {
				link_anuluj = location.href;
			}			
			/* pobranie szablonu komunikatu */			
			var komunikat = document.komunikaty_tpl[rodzaj];			
			//var komunikat = document.komunikaty_tpl['polec-znajomemu'];			
			/* ustawienie treści */
			komunikat = komunikat.replace('{TYTUL}', tytul).replace('{TRESC}',
					tresc).replace('{LINK_OK}', link_ok).replace(
					'{LINK_ANULUJ}', link_anuluj);

			/* usunięcie poprzedniego komunikatu, jeśli istnieje */
			if ($('#warstwa')[0]) {
				komunikaty.usun();
			}

			/* wyświetlenie komunikatu */			
			$("body").prepend('<div id="over" class="overlay"></div>');
			$("body").prepend(komunikat);
			//$("#warstwa").pngfix();

			$('#over').css({'height':$(document).height(), 'opacity':'0.8' });
			_main.scrollToTop();
			var szerokosc = ( $(document).width() - $('#warstwa').width() ) / 2;
			$('#warstwa').css({'left':szerokosc});

			/* oprogramowanie przycisków */
			komunikaty.ustaw_przyciski();					
			return true;
		}
		
		return false;
	},

	/* zamyka komunikat */
	usun : function(){
		if (o = document.getElementById('warstwa')) $(o).remove();
		if (o = document.getElementById('warstwa_')) $(o).remove();
		if (o = document.getElementById('over')) $(o).remove();
	},

	/* domyślne ustawienie przycisków */
	ustaw_przyciski : function(){
		if (!$(".kom_anuluj")[0]) {
			$('.kom_close,.kom_ok').each( function(i){
				this.onclick = function(e){
					if(typeof this.href != undefined && this.href != location.href){
						//alert(location.href+"\n"+this.href);
						location.href = this.href;
					}
					komunikaty.usun();
					return false;
				};
			});
		} else {
			$('.kom_anuluj').each( function(i){
				this.onclick = function(){
					komunikaty.usun();
					return false;
				};
			});
		}
	}
};




try { document.execCommand('BackgroundImageCache', false, true); } catch (e) {}


