(function($){
	
    $.newsticker = function(el, options){
        var base = this;
        
        base.$el = $(el);
        base.el = el; 
        
        base.$el.data("newsticker", base);
        
        base.init = function(){
            base.options = $.extend({},$.newsticker.defaultOptions, options);
            
            base.itemCount = 0;
            base.currentItem = 0;
            base.nextItem = base.currentItem + 1;
            base.timeout = "";
            base.hasPager = false;
            
            $.ajax({
            	type: "GET",
            	url: "/xml/default.asp?type=news&sid="+base.options.sid+"&id="+base.options.gid,
            	dataType: "xml",
            	success: function(xml) {
				
            	    
            	    base.$ul = $(document.createElement("ul"))
            	    			.appendTo(base.$el);
            	    
            	    $(xml).find('item').each(function(){
            	    	$(document.createElement("li"))
            	    	.attr("id","item_"+base.itemCount)
            	    	.html("<a href='/podium/default.aspx?t=204&nid="+$(this).find("id").text()+"'>"+$(this).find("title").text()+"</a>")
            	    	.appendTo(base.$ul);
            	    	
            	    	base.itemCount++;
            	    });
            	},
            	complete: function(){
            		if(base.itemCount > 1){
            			base.tickerActions();
            		}
					//added check if none, found hide the div
					if(base.itemCount < 1){
					$("#announcement").css("display","none");
				}
            	},
            	error: function(request,tStatus,eThrown){
            		//$.log("Error loading XML: "+eThrown);
            	}
            });
        }
        
		base.tickerActions = function(){
			//adding a refrence to all the li tags
			base.$items = base.$ul.children();
			
			//some basic CSS so the transitions look ok
			base.$ul.css("position","relative");
			base.$items.css({"position":"absolute","top":"0px","left":"0px"});
						
			base.$ul.children(":not(:first)").addClass("hidden");
			
			//build pager
			if(base.options.pager != null){
				base.buildPager();
				
			}
			
			//start animations
			base.timeout = setTimeout(function(){base.advance();},base.options.speed);
			
			base.$items.hover(function(){
				clearTimeout(base.timeout);
			},function(){
				base.timeout = setTimeout(function(){base.advance();},base.options.speed);
			});
		}
		
		base.buildPager = function(){
			base.hasPager = true;
			base.$pager = $(document.createElement("ul"))
			var browser=navigator.appName;

			switch(base.options.pager.charAt(0)){
				case "#":
					base.$pager.attr("id",base.options.pager.split("#")[1]);
					//CSP sdb 111609 added browser check so as to a class for non IE
					if(browser != "Microsoft Internet Explorer"){
						base.$pager.attr("class","sdb");
					}
					break;
				case ".":
					base.$pager.addClass(base.options.pager.split(".")[1]);
					break;
				default:
					base.$pager.attr("id",base.options.pager);
					break;
			}
			
			base.$pager.appendTo(base.$el);
			
			for(var i = 0; i < base.itemCount; i++){
				var myClass = "";
				if(i == 0){
					myClass = " class='on'";
				}
				
				$(document.createElement("li"))
				.addClass("pager-item")
				.html("<a href='#'"+myClass+" id='pitem_"+i+"'>"+(i+1)+"</a>")
				.appendTo(base.$pager);
			}
			
			base.buildPagerActions();
		}
		
		base.buildPagerActions = function(){
			base.$pager.children("li").children("a").click(function(event){
				clearTimeout(base.timeout);
				var next = $(this).attr("id").split("_")[1];
				
				base.nextItem = next;
			
				base.advance();
				event.preventDefault();
			});
		}
		
		base.advance = function(){
			base.animate(base.nextItem);
			base.timeout = setTimeout(function(){base.advance();},base.options.speed);
			
			base.currentItem = base.nextItem;
			base.nextItem++;
			
			if(base.hasPager){
				base.$pager.children("li").children("a").removeClass("on");
				$("#pitem_"+base.currentItem).addClass("on");
			}
			
			if(base.nextItem == base.itemCount){
				base.nextItem = 0;
			}
		}
		
		base.animate = function(next){
			$("#item_"+base.currentItem).fadeOut();
			$("#item_"+next).fadeIn();
		}
        
        base.init();
    }
	
    $.newsticker.defaultOptions = {
        gid: 0,
        sid: 0,
        speed:5000,
        pager:null
    }

    $.fn.newsticker = function(options){
        return this.each(function(){
            (new $.newsticker(this, options));
        });
    }

	
})(jQuery);