/**
 * Funzioni Javascript condivise.
 * Viene creato un namespace dove vari moduli possono innestare le loro funzioni
 * senza collisioni.
 * Sono presenti i vari stati riportati in Javasctipt e funzioni di creazione dell'url
 */

/**
 * Variabile globale del framework.
 */
var fwk = fwk || {
	'settings' : {},
	'behaviors' : {},
	'themes' : {},
	'locale' : {}
};

fwk.jsEnabled = document.getElementsByTagName && document.createElement
		&& document.createTextNode && document.documentElement
		&& document.getElementById;

fwk.status = {
	'archived' : 1,
	'submitted' : 2,
	'approved' : 3,
	'frontpage' : 4,
	'focuson' : 5
};

/**
 * Wrapper della funzione url presente in php nel framework.
 * 
 * @param Module
 * @param Class
 * @param Event
 * @param Params
 * @returns string
 */
fwk.url = function(Module, Class, Event, Params) {
	Query = null;
	if (Module != null) {
		Query = "module=" + Module.toLowerCase();
		if (Class) {
			Query += "&class=" + Class.toLowerCase();
		} else {
			Query += "&class=" + Module.toLowerCase();
		}
		if (Event) {
			Query += "&event=" + Event;
		} else {
			Query += "&event=" + "__default";
		}
	}
	Query = document.location.href.slice(0,
			window.location.href.indexOf('?') + 1)
			+ "l=" + fwk.urlvars()['l'] + "&" + Query;
	for ( var i in Params) {
		Query += "&" + i + "=" + Params[i];
	}
	return Query;
};

/**
 * Ritorna come array le variabili presenti nell'indirizzo della pagina
 * corrente.
 * 
 * @returns
 */
fwk.urlvars = function() {
	var vars = [], hash;
	var hashes = window.location.href.slice(
			window.location.href.indexOf('?') + 1).split('&');
	for ( var i = 0; i < hashes.length; i++) {
		hash = hashes[i].split('=');
		vars.push(hash[0]);
		vars[hash[0]] = hash[1];
	}
	return vars;
};

$(document).ready(function() {
	/**
	 * Aggiunge/rimuove la classe "collapsed" dal link all'interno dei <fieldset> "collapsible".
	 * Viene usato per comprimere ed espandere un'area all'interno di un <fieldset>
	 */
	$("fieldset.collapsible legend a").click(function() {
		$(this).parents("fieldset").toggleClass("collapsed");
	});
	$("div.collapsible .title a.collapse").click(function() {
		$(this).parents("div.collapsible").toggleClass("collapsed");
	});
});

/**
 * Funzione chiamate con ExternalCall dal flash banner della testata
 * per comprimere l'area del banner.
 */
function CollapseFlashLayer() {
	$(function() {
		$("#header-flashlayer").css( {
			height : 110
		});
	});
};
/**
 * Funzione chiamate con ExternalCall dal flash banner della testata
 * per espandere l'area del banner.
 */
function ExpandFlashLayer(height) {
	$(function() {
		$("#header-flashlayer").css( {
			height : height
		});
	});
};
