[].indexOf || (Array.prototype.indexOf = function(v,n){ 
  n = (n==null)?0:n; var m = this.length; 
  for(var i = n; i < m; i++) 
    if(this[i] == v) 
       return i; 
  return -1; 
});

function newsTicker(settings) {
	settings = jQuery.extend({fadeSpeed: 'slow', cycle: true, delay: 10000, annIDs: []}, settings);
	var selectedID = "";
	var selectedIndex = "";
	var nextID = "";
	var nextIndex = "";
	var intval = "";
    	
	// get all the newsNav links
	var $a = jQuery("#newsNav a");
	
	$a.click(function(){});
					  
	if($a != null) {
		// set the initial selected id
		if(settings.annIDs != "" && settings.annIDs != undefined) {
			selectedID = settings.annIDs[0];
			selectedIndex = settings.annIDs.indexOf(selectedID);
			nextIndex = selectedIndex + 1;
			nextID = settings.annIDs[nextIndex];			
			if(nextID == undefined) {
				nextID = settings.annIDs[0];
			}			
			if(settings.cycle) {
				intval = window.setInterval(function(){startNewsCycle();},settings.delay);
			}
		}
				
		// define each click
		$a.click(function(){						  
			// if in slideshow mode, stop cycle
			if(intval!=""){
				window.clearInterval(intval);
			}						  
			// remove the selected class from all the newsNav links
			$a.removeClass('selected');					
			// get the id from the links rel attribute
			var annID = jQuery(this).attr("rel");
			selectedID = annID;			
			// store the selected index and figure out the next id
			if(settings.annIDs != "" && settings.annIDs != undefined) {
				selectedIndex = settings.annIDs.indexOf(selectedID);
				nextIndex = selectedIndex + 1;
				nextID = settings.annIDs[nextIndex];
				if(nextID == undefined) {
					nextID = settings.annIDs[0];
				}
			}			
			var url = "../getAnnouncement.php?annID="+annID;			
			// add the selected class to the clicked link
			jQuery(this).addClass("selected");			
			// clear the current News Item
			jQuery("#newsItem #innerNews").fadeOut(settings.fadeSpeed, function () {
				// load the new data into the news area
				jQuery("#newsItem #innerNews").load(url, "", function () {
					jQuery(this).fadeIn(settings.fadeSpeed, function() {
						$(this).css('filter','');
						// Animation complete
						reinitialiseScrollPane();
					});
				});
			});				
			return false;
		});		
		
		function startNewsCycle() {				
			// remove the selected class from all the newsNav links
			$a.removeClass('selected');
			nextID = settings.annIDs[nextIndex];
			if(nextID == undefined) {
				// reset the index
				nextID = settings.annIDs[0];
				nextIndex = 0;
			}
			// add the selected class to the relevant link
			$a.eq(nextIndex).addClass("selected");
			var url = "../getAnnouncement.php?annID="+nextID;			
			// clear the current News Item
			jQuery("#newsItem #innerNews").fadeOut(settings.fadeSpeed, function () {
				// load the new data into the news area
				jQuery("#newsItem #innerNews").load(url, "", function () {
					jQuery(this).fadeIn(settings.fadeSpeed, function() {
						$(this).css('filter','');
						// Animation complete
						reinitialiseScrollPane();
					});
				});
			});
			// move the index on
			nextIndex = nextIndex + 1;
			return false;
		}
	}
}
