/** ******************************************************************
* JavaScript per il controllo del browser
*
* Elenco delle funzioni:
* - ct_reload		ricarica la pagina
* - ct_back			torna alla pagina precedente
* - ct_back2		torna alla pagina precedente della precedente
* - ct_favorites	aggiunge la pagina ai preferiti
* - ct_print		stampa la pagina
* - ct_get_query	reperisce i parametri dalla query
* - ct_set_query	imposta i parametri della query
* - ct_add_query	aggiunge un parametro alla query
* - ct_area_go		va all'area
* - ct_menu_go		va alla voce di menu
*
* @package	ct.base
* @author	ConsulTes info@consultes.it
* ***************************************************************** */

	/** ******************************************************************
	* ricarica la pagina
	* @param	NULL
	* @return	NULL
	* ***************************************************************** */
	function ct_reload()
	{
		history.go(0);
	}

	/** ******************************************************************
	* Torna alla pagina precedente
	* @param	NULL
	* @return	NULL
	* ***************************************************************** */
	function ct_back()
	{
		history.back();
	}

	/** ******************************************************************
	* Torna alla pagina precedente della precedente
	* @param	NULL
	* @return	NULL
	* ***************************************************************** */
	function ct_back2()
	{
		history.go(-2);
	}

	/** ******************************************************************
	* Aggiunge la pagina ai preferiti
	* @param	string	$p_url	URL
	* @param	string	$p_text	testo
	* @return	NULL
	* ***************************************************************** */
	function ct_favorites($p_url, $p_text)
	{
		window.external.AddFavorite($p_url, $p_text);
	}

	/** ******************************************************************
	* Stampa la pagina
	* @param	NULL
	* @return	NULL
	* ***************************************************************** */
	function ct_print()
	{
		$browser_version = parseInt(navigator.appVersion);
		if ($browser_version >= 4) window.print();
	}

	/** ******************************************************************
	* Reperisce i parametri dalla query
	* @param	string	$p_key		chiave
	* @return	string o array 	valore del parametro o tutti
	* ***************************************************************** */
	function ct_get_query($p_key)
	{
		// Scompone gli elementi della querystring
		var $querystring = location.search;
		var $pairs = $querystring.substring(1).split("&");
		var $splitPair;
		var $query = {};
		for (var $i = 0; $i < $pairs.length; $i++) {  
	    	$splitPair = $pairs[$i].split("=");  
	    	$query[$splitPair[0]] = $splitPair[1];  
		}
		// Restituisce il valore del parametro o tutti
		if ($p_key != '*') {
			return $query[$p_key];
		} else {
			return $query;
		}
	}

	/** ******************************************************************
	* Imposta i parametri della query
	* @param	array	$p_query	elementi della query
	* @return	string	querystring
	* ***************************************************************** */
	function ct_set_query($p_query)
	{
		// Ricompone la querystring
		var $querystring = "";  
		var $separator   = "?";  
		for (var $key in $p_query) {  
			if ($key) {
				$querystring += $separator + $key + "=" + $p_query[$key];
				$separator = "&";
			}
		}
		// Restituisce la querystring
		return $querystring;
	}

	/** ******************************************************************
	* Aggiunge un parametro alla query
	* @param	string	$p_key		chiave
	* @param	string	$p_value	valore
	* @return	NULL
	* ***************************************************************** */
	function ct_add_query($p_key, $p_value)
	{
		// Scompone gli elementi della querystring
		var $query = ct_get_query('*');
		// Aggiunge il parametro
		$query[$p_key] = $p_value;
		// Ricompone la querystring
		var $querystring = ct_set_query($query);
		// Applica la querystring modificata
		location.search = $querystring;
	}

	/** ******************************************************************
	* Va alla pagina
	* @param	string	$p_to		url di destinazione
	* @return	NULL
	* ***************************************************************** */
	function ct_go($p_to) {
		document.location = $p_to;
	}

	/** ******************************************************************
	* Va all'area
	* @param	string	$p_to		url di destinazione
	* @param	string	$p_where	target
	* @return	NULL
	* ***************************************************************** */
	function ct_area_go($p_to, $p_where) {
		if ($p_to) {
			if (!$p_where || $p_where == '_self') {
				document.location = $p_to;
			} else {
				window.open($p_to);
			}
		}
	}

	/** ******************************************************************
	* Va alla voce di menu
	* @param	string	$p_to		url di destinazione
	* @param	string	$p_where	target
	* @return	NULL
	* ***************************************************************** */
	function ct_menu_go($p_to, $p_where) {
		if ($p_to) {
			if (!$p_where || $p_where == '_self') {
				document.location = $p_to;
			} else {
				window.open($p_to);
			}
		}
	}
