/*
 * JTicker 0.5 Beta
 * By Jason Levine (http://www.jasons-toolbox.com)
 * A ticker plugin for the jquery library.
 */
$.JTickerObjArray = new Array();
$.fn.jticker = function(passedOptions) {
	var options = {
		TickerID: "",
		delay: 1000,
		newwindow: false,
		url: "tickerdata.xml",
		transition: "slide",
		speed: "slow",

		wordsnumb: 40,
		titletag: "h1",
		desctag: "p",

		contentcounter: -1,
		ArrayIndex: -1,
		dataXML: {
		},
		timerid: -1,
		setRSS: function(ArrayIndex) {
			$("#" + options.TickerID).hide();
			// Load Data
			$.get(options.url, function(data){
				options.dataXML = data;
				options.contentcounter = -1;
				options.FillSlide();
			});
		},
		FillSlide: function() {
			var Item, TickerHTML, Title, URL, Desc;
			$("#" + options.TickerID).empty();
			options.contentcounter++;
			if (options.contentcounter == $("item", options.dataXML).length) {
				options.contentcounter = 0;
			}
			Item = $("item", options.dataXML).get(options.contentcounter);
			Title = $("title", Item).text();
			URL = $("link", Item).text();
			Desc = $("description", Item).text();

			Site = $("category", Item).text();
			Site = Site.substr(0,1).toUpperCase() + Site.substr(1);


			Desc 				= jQuery.trim(Desc);
			lenghtSplit = Desc.split(" ");
			lenghtDesc 	= lenghtSplit.length;
			var nwords 	= lenghtSplit.length-(options.wordsnumb-1);

			if (lenghtDesc > options.wordsnumb) {
					finalDesc 	= "";
				for(z = 0; z < options.wordsnumb; z++) {
					finalDesc += lenghtSplit[z] + ' ';
				}

				last_word = lenghtSplit[lenghtSplit.length-nwords];
				last_lett = last_word.substring(last_word.length-1,last_word.length);
				if (last_lett.indexOf(".") == -1) {
				  finalDesc += '...';
				}

			} else {
			  	finalDesc = Desc;
			}

			TickerHTML = "<div class=\"JTickerTitle\"><" + options.titletag + " class=\"ticker_title\">";
			TickerHTML += "<a href=\"" + URL + "\"";

		if (options.newwindow) {
			TickerHTML += " onclick=\"window.open(this.href);return false\""
		}

/**
 * Aggiunto da GM il 02/07/2010 14.03.18, su richiesta di Orazio
 */
TickerHTML += " onclick=\"pageTracker._trackEvent('Blog_roll', 'one" + Site + "');\"";

			TickerHTML += ">" + Title + "</a></" + options.titletag + ">";
			TickerHTML += "<" + options.desctag + " class=\"ticker_desc\">" + finalDesc;
			TickerHTML += "</" + options.desctag + ">";
			TickerHTML += "<p class=\"bloglink\">Continua a leggere su <a href=\"" +URL+ "\"";
		if (options.newwindow) {
			TickerHTML += " onclick=\"window.open(this.href);return false\""
		}
			TickerHTML += "><strong>one" + Site + "</strong></a></p></div>";


			$("#" + options.TickerID).append(TickerHTML);
			options.EnterSlide();
		},
		ExitSlide: function() {
			if (options.contentcounter > -1) {
				clearTimeout(options.timerid);
				switch (options.transition.toLowerCase()) {
					case "slide":
						$("#" + options.TickerID).slideUp(
							options.speed,
							options.ExitSlideStep2()
						);
						break;
					default:
						$("#" + options.TickerID).fadeOut(
							options.speed,
							options.ExitSlideStep2()
						);
						break;
				}
			} else {
				options.ExitSlideStep2(ArrayIndex);
			}
		},
		ExitSlideStep2: function() {
			var tempid;

			tempid = setTimeout("$.JTickerObjArray[" + options.ArrayIndex + "].FillSlide();", 500);
		},
		EnterSlide: function() {
			var ArrayIndex = options.ArrayIndex;
			switch (options.transition.toLowerCase()) {
				case "slide":
					$("#" + options.TickerID).slideDown(
						options.speed,
						options.EnterSlideStep2()
					);
					break;
				default:
					$("#" + options.TickerID).fadeIn(
						options.speed,
						options.EnterSlideStep2()
					);
					break;
			}
		},
		EnterSlideStep2: function() {
			options.timerid = setTimeout("$.JTickerObjArray[" + options.ArrayIndex + "].ExitSlide();", options.delay);
		}
	};
	if (passedOptions) {
		$.extend(options, passedOptions);
	}

	return this.each(function(){
		options.TickerID = this.id;
		$.JTickerObjArray.push(options);
		options.ArrayIndex = $.JTickerObjArray.length - 1;
		$("#" + options.TickerID).hover(function() {
			clearTimeout(options.timerid);
		}, function() {
			options.timerid = setTimeout("$.JTickerObjArray[" + options.ArrayIndex + "].ExitSlide();", options.delay);
		});
		$.JTickerObjArray[options.ArrayIndex].setRSS(options.ArrayIndex);
	});
};