/**
 * Zestaw parametrów i metod konfiguracyjnych
 *
 * Rozszerzalny poprzez:
 * jQuery.extend( _config, { nazwa_elementu: { <tutaj kod> } } );
 *
 */
var _config = {
	/* adres bazowy strony - wartość ustawiana w init */
	base_url: null,
	/* kontroler i akcja (wypełniane w head) */
	controller: null,
	action: null,

	/* 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: function() { <tutaj kod> } } );
	 *
	 */
	init: function() {
	}	
}


/**
 * Główny zestaw metod
 *
 * Rozszerzalny poprzez:
 * jQuery.extend( _main, { nazwa_elementu: { <tutaj kod> } } );
 *
 */
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: function() { <tutaj kod> } } );
	 *
	 */
	init: function() {
	},
	
	// 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) {}
