var RealTimeSpot = function(postsContainerId, postDivId, visibleFor, horizontal) {
	/*
	 * Costanti per il metodo di passaggio dei dati via AJAX
	 */
	var GET = "GET";
	var POST = "POST";
	
	/*
	 * Costanti per lo scorrimento dei post
	 */
	var HORIZONTAL = false;
	var VERTICAL = true;
	
	/* 
	 * Id del div che contiene i post
	 * default: "news"
	 */
	var postsContainerId = postsContainerId ? postsContainerId : "news";
		
	/* 
	 * Id del div che contiene un singolo post
	 * default: "scrolling_news"
	 */
	var postDivId = postDivId ? postDivId : "scrolling_news";
	
	/* 
	 * Tempo in millisecondi di visibilità del post fermo
	 * default: 5
	 */
	var visibleFor = (visibleFor ? visibleFor : 5) * 1000;
	
	/* 
	 * Direzione dello scorrimento (HORIZONTAL | VERTICAL)
	 * default: VERTICAL
	 */
	var direction = horizontal ? HORIZONTAL : VERTICAL;
		
	// Array contenente i post da mostrare
	var posts = new Array();

	// Campo privato per tenere traccia del post attualmente visualizzato
	var nowOnScreen = 0;
	
	var appendNodeTo = function (node) {
		var posts_container = document.createElement("div");
		// YAHOO.util.Dom.setAttribute(posts_container, "id", postsContainerId);
		
		posts_container.setAttribute("id", postsContainerId);
		
		node.appendChild(posts_container);
		// YAHOO.util.Dom.get(postsContainerId).appendTo(node);
	};
	
	this.loadNotify = function (notify) {
		if(YAHOO.util.Dom.get("rts")) {
			if(!notify) posts[posts.length] = '<p class="welcome">Benvenuto in <b>The Club</b>!</p>';
			else posts[posts.length] = notify.rtsFormat();
			if(posts.length == 1) initialize();
		}
	};
	
	var initialize = function () {
		// appendNodeTo(document.body);
		appendNodeTo(YAHOO.util.Dom.get("rts"));
		showPosts();
	};
	
	var showPosts = function () {
		// Una volta mostrato l'ultimo post, ricomincia dal primo
		if(nowOnScreen == posts.length) nowOnScreen = 0;
		
		var post_div = document.getElementById(postDivId);
		
		if(post_div != null)
			document.getElementById(postsContainerId).removeChild(post_div);
		
		post_div = document.createElement("div");
		post_div.setAttribute("id", postDivId);
		post_div.setAttribute("class", postDivId + ((direction == VERTICAL) ? "_v" : "_h"));
		
		post_div.innerHTML += posts[nowOnScreen];
		document.getElementById(postsContainerId).appendChild(post_div);
		
		animate();
		
		nowOnScreen++;
	};
	
	var animate = function () {
		var animInAtts, animOutAtts;
		
		if(direction == VERTICAL) {
			animInAtts = { top: { to: -25 } };
			animOutAtts = { top: { to: -50 } };
		}
		
		else {
			animInAtts = { left: { to: -450 } };
			animOutAtts = { left: { to: -950 } };
		}
		
		// Internet Explorer versione precedente alla 8
		if(window.navigator.appName == "Microsoft Internet Explorer" && window.navigator.appVersion.substr(window.navigator.appVersion.indexOf("MSIE") + 5, 1) < 8) {
			var newsDiv = YAHOO.util.Dom.get(postDivId);
			
			if(direction == VERTICAL) {
				animInAtts = { top: { to: 0 } };
				animOutAtts = { top: { to: -40 } };
			}
		}
		
		var anim = new YAHOO.util.Anim(postDivId, animInAtts, 1);
		anim.onComplete.subscribe(function () {
			window.setTimeout(function () {
	  				var animOut = new YAHOO.util.Anim(postDivId, animOutAtts, 1);
					animOut.onComplete.subscribe(function () { showPosts(); });
					animOut.animate();
				},
			visibleFor);
		});
		
		anim.animate();
	};
};