/*
 * JTicker 0.5 Beta
 * By Jason Levine (http://www.jasons-toolbox.com)
 * A ticker plugin for the jquery library.
 * Modified by TS:Fivesite 
 * - Different display format
 * - Added pause button
 */
$.JTickerObjArray = new Array();
$.fn.jticker = function(passedOptions) {
	var options = {
	    TickerID: "",
		delay: 1000,
		newwindow: false,
		url: "tickerdata.xml",
		transition: "fade",
		speed: "slow",
		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, NewsDate;
			$("#" + 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();
			NewsDate = $("pubDate", Item).text();
			Desc = $("description", Item).text();
			
			TickerHTML = "<a href=\"" + URL + "\""
			if (options.newwindow) {
				TickerHTML += " target=\"_blank\""
			}
			TickerHTML += ">" + Title + "</a>";
			
			$("#" + 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);
		});
		
		/** Pause button functionality **/
		$("#pausebutton").click(function() {
			var buttonText = $(this).html();
			
			if(typeof options.timerid == "number") {
				clearTimeout(options.timerid);	
				options.timerid = null;
				$("#pausebutton").attr("src","gfx/btn_play.gif");
			} 
			else {
				options.timerid = setTimeout("$.JTickerObjArray[" + options.ArrayIndex + "].ExitSlide();", options.delay);
				$("#pausebutton").attr("src","gfx/btn_pause.gif");
			}
			
		});
		
		$.JTickerObjArray[options.ArrayIndex].setRSS(options.ArrayIndex);
	});
};


/** Converts an RFC date to a normal style **/
function RFCtoNormal(rfcDate) {

	var arr = rfcDate.split(" ");
	
	var day = arr[1];
	var month;
	var year = arr[3];
	
	switch(arr[2])
	{
		case "Jan":
			month = "01";
			break    
		case "Feb":
			month = "02";
			break    
		case "Mar":
			month = "03";
			break    
		case "Apr":
			month = "04";
			break    
		case "May":
			month = "05";
			break    
		case "Jun":
			month = "06";
			break    
		case "Jul":
			month = "07";
			break    
		case "Aug":
			month = "08";
			break    
		case "Sep":
			month = "09";
			break    
		case "Oct":
			month = "10";
			break    
		case "Nov":
			month = "11";
			break    
		case "Dec":
			month = "12";
			break    
		default:
			month = arr(2);
	}
	
	return(day + "/" + month + "/" + year);

}