var Utils = {};
Utils.map_date = [ "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" ];

Utils.data = {};

//{{{ getElementsByClass ( searchClass, node, tag )
Utils.getElementsByClass = function ( searchClass, tag, node )
{
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els;

	els = node.getElementsByTagName ( tag );
	return Utils._find_class_elem ( els, RegExp( searchClass ) );
};
//}}}
//{{{ getElementsById ( searchId, node, tag )
Utils.getElementsById = function ( searchId, tag, node )
{
	var elements = new Array();
	var els;

	if ( node == null ) node = document;
	if ( tag == null ) tag = '*';

	els = node.getElementsByTagName ( tag );
	return Utils._find_id_elem ( els, RegExp ( "^" + searchId ) );
};
//}}}
//{{{ _find_id_elem ( elems, pattern )
Utils._find_id_elem = function ( elems, pattern )
{
	var elements = new Array();
	var i, l = elems.length;
	for ( i = 0; i < l; i++ )
		if ( pattern.test ( elems[i].id ) ) elements.push( elems [ i ] );

	return elements;
};
//}}}
//{{{ _find_class_elem ( elems, pattern )
Utils._find_class_elem = function ( elems, pattern )
{
	var classElements = new Array();
	var i, l = elems.length;
	for ( i = 0; i < l; i++ )
		if ( pattern.test ( elems[i].className ) ) classElements.push( elems [ i ] );

	return classElements;
};
//}}}
//{{{ hide_nodes ( container )
//Permette di nascondere i div che non ci stanno all'interno del div container_txt ( per ora non la usiamo
//  perchè il div ha overflow auto )
Utils.hide_nodes = function ( cnt )
{
	var div;
	for ( t = cnt.childNodes.length - 1; t >= 0; t-- )
	{
		div = cnt.childNodes [ t ];
		if ( div.offsetTop + div.clientHeight > cnt.clientHeight ) div.style.visibility = 'hidden';
	}
};
//}}} 
//{{{ get_it_full_nowdate ( sep )
Utils.get_it_full_nowdate = function ( sep )
{
	var s, d = new Date();
	if ( sep )
		s = d.getDate() + sep + Utils.map_date [ d.getMonth() ] + sep + d.getFullYear();
	else
		s = d.getDate() + "&nbsp;" + Utils.map_date [ d.getMonth() ] + "&nbsp;" + d.getFullYear();

	return s;
}
//}}}
//{{{ get_DB_nowdate ( sep )
Utils.get_DB_nowdate = function ( sep )
{
	var s, d = new Date();
	if ( sep )
		s = d.getFullYear() + sep + ( d.getMonth() + 1 )  + sep + d.getDate();
	else
		s = d.getFullYear() + "&nbsp;" + ( d.getMonth() + 1 ) + "&nbsp;" + d.getDate();

	return s;
}
//}}}
//{{{ change_sep_date ( date, curr_sep, newsep )
Utils.change_sep_date = function ( date, curr_sep, newsep ) 
{
	var s = '';

	if ( date )
	{
		if ( curr_sep && newsep )
		{
			s = date.split ( curr_sep );
			s = s [ 0 ] + newsep + s [ 1 ] + newsep + s [ 2 ];
		}
	}

	return s;
};
//}}}
//{{{ order_date ( date, sep, order )
Utils.order_date = function ( date, sep, order )
{
	var s = '';

	if ( date )
	{
		if ( order == "IT" && sep )
		{
			s = date.split ( sep );
			s = s [ 2 ] + sep + s [ 1 ] + sep + s [ 0 ];
		}
	}
	return s;
};
//}}}

Utils.create_frame  = function ( url )
{
	var s = '<iframe src="' + url + '" ';
	var b = $( "block_main_empty" );

	// Utils.show_block_empty ( false );

	Utils.show_block_empty ( true );
	s += 'style="border: 0px; width: ' + b.clientWidth + 'px; height: ' + b.clientHeight + 'px;"><\/iframe>';
	$( "block_main_empty" ).innerHTML = s;
};

Utils.show_block_empty = function ( show )
{
	if ( show )
	{
		$( "block_main" ).style.display = "none";
		$( "block_main_empty" ).style.display = "block";
	} else {
		$( "block_main" ).style.display = "block";
		$( "block_main_empty" ).style.display = "none";
	}
};

Utils.show_static = function ( name )
{
	am.request ( "/cgi-bin/AjaxCmd", { "command": "dump_html", "fname": name }, Utils.show_static_done, true );
};


Utils.show_static_done = function ( vars )
{
	$( "block_main" ).style.display = "none";
	$( "block_main_empty" ).style.display = "block";
	$( "block_main_empty" ).innerHTML = vars [ "content" ];
};

Utils.add_ssckey = function ()
{
	var a = document.getElementsByTagName ( 'a' );
	var l, t;
	var lnk;

	l = a.length;
	for ( t = 0; t < l; t ++ )
	{
		lnk = a [ t ];
		if ( ! lnk.href.match ( /FulShow.*KEY=/ ) ) continue;

		if ( Utils.data [ 'ssckey' ] )
			lnk.href += "&SSCKEY=" + Utils.data [ 'ssckey' ];
	}
};
