function init()
{
	// interrompi se questa funzione è stata già chiamata
	if (arguments.callee.done)
		return;
	// contrassegna questa funzione in modo da non fare due volte la stessa cosa
	arguments.callee.done = true;
	// interrompi il timer
	if (_timer)
		clearInterval(_timer);

	// esegui
	if(user_function)
		user_function();
};

	
/* per Mozilla/Opera9 */
if (document.addEventListener)
{
	document.addEventListener("DOMContentLoaded", init, false);
}
/* per Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
	document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
	var script = document.getElementById("__ie_onload");
	script.onreadystatechange = function() {
		if (this.readyState == "complete") {
			init(); // call the onload handler
		}
	};
/*@end @*/
/* per Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			init(); // call the onload handler
		}
	}, 10);
}

/* per gli altri browser */
window.onload = init;