/*

* Rich HTML Ticker- by JavaScript Kit (http://www.javascriptkit.com)

* Freeware. Created Sept 13th, 08'

* This credit must stay intact for use

*/



var richhtmlticker={

loadingtext: '<em>Fetching Ticker Contents. Please wait...</em>', //Loading text if content is being fetched via Ajax



getajaxcontent:function($, config){

	config.$ticker.html(this.loadingtext)

	$.ajax({

		url: config.msgsource,

		error:function(ajaxrequest){

			config.$ticker.html('Error fetching content.<br />Server Response: '+ajaxrequest.responseText)

		},

		success:function(content){

			config.$ticker.html(content)

			richhtmlticker.setupticker(config)

		}

	})

},



rotate:function(config){

	if (config.$ticker.get(0)._hoverstate=="over"){

		setTimeout(function(){richhtmlticker.rotate(config)}, config.rotatespeed)

	}

	else{

		config.$messages.eq(config.currentmsg).fadeOut(config.animateduration, function(){

			config.currentmsg=(config.currentmsg<config.$messages.length-1)? config.currentmsg+1 : 0

			config.$messages.eq(config.currentmsg).fadeIn(config.animateduration, function(){

				setTimeout(function(){richhtmlticker.rotate(config)}, config.rotatespeed)

			})

		})

	}

},



getCookie:function(Name){ 

	var re=new RegExp(Name+"=[^;]+", "i") //construct RE to search for target name/value pair

	if (document.cookie.match(re)) //if cookie found

		return document.cookie.match(re)[0].split("=")[1] //return its value

	return null

},



setCookie:function(name, value){

	document.cookie = name+"="+value

},



setupticker:function(config){

	config.$messages=config.$ticker.find('div.'+config.msgclass).hide()

	config.currentmsg=Math.min(parseInt(richhtmlticker.getCookie(config.id) || 0), config.$messages.length-1)

	config.$messages.hide().eq(config.currentmsg).fadeIn(config.animateduration)

	setTimeout(function(){richhtmlticker.rotate(config)}, config.rotatespeed)

	$(window).bind('unload', function(){richhtmlticker.cleanup(config)})

},



define:function(config){

  jQuery(document).ready(function($){

		config.$ticker=$('#'+config.id)

		if (config.$ticker.length==0)

			return

		config.$ticker.css({overflow:'hidden'}).hover(

			function(){this._hoverstate="over"},

			function(){this._hoverstate="out"}

		)

		if (config.msgsource=="inline"){

			richhtmlticker.setupticker(config)

		}		

		else{

			richhtmlticker.getajaxcontent($,config)

		}

	})

},



cleanup:function(config){

	this.setCookie(config.id, config.currentmsg)

}



} //end richhtmlticker object





//////////// Declare instance of Rich HTML Ticker (invoked when page has loaded): ///////////////////////////



richhtmlticker.define({

	id: "myhtmlticker", //main ticker DIV id

	msgclass: "messagediv", //CSS class of DIVs containing each ticker message

	msgsource: "inline", //Where to look for the messages: "inline", or "path_to_file_on_your_server"

	rotatespeed: 6000, //pause in milliseconds between rotation

	animateduration: 2000 //duration of fade animation in milliseconds 

})





