/* 
 * Scrolling Ads that supports Image as well as textual data 
 *
 * Based on 'jQuery Image Scroller' by Dan Wellman
 * 
 * For documentation refer to http://net.tutsplus.com/tutorials/javascript-ajax/building-a-jquery-image-scroller/
 * 
 * customized by : Prashanth Kamath
 * 
 * Version: 0.1
 */
(function($) {
         $.fn.scrollAds = function(o) {
        	 o = $.extend({
        		 containerheight:30,
        		 direction: "rtl"	//right to left(rtl) or left to right(ltr)
        	    }, o || {});

		  //remove js-disabled class
			//$("#scrollingAdsViewer").removeClass("js-disabled");
		
		  //create new container for images
			$("<div>").attr("id", "playlistAdsContainer").css({ position:"absolute", 'white-space':'nowrap', width:'auto'}).height(o.containerheight).appendTo("div#scrollingAdsViewer");
		  	
			//add images to container
			$(".scrollingAdsWrapper").each(function() {
				$(this).appendTo("div#playlistAdsContainer");
			});
			
			//work out duration of anim based on number of images
			var duration = $(".scrollingAdsWrapper").length * 13000;
			
			//store speed for later (distance / time)
			var speed = (parseInt($("div#playlistAdsContainer").width()) + parseInt($("div#scrollingAdsViewer").width())) / duration;
							
			//set direction
			var direction = o.direction;

			//set initial position and class based on direction
			(direction == "rtl") ? $("div#playlistAdsContainer").css("left", $("div#scrollingAdsViewer").width()).addClass("rtl") : $("div#playlistAdsContainer").css("left", 0 - $("div#playlistAdsContainer").width()).addClass("ltr") ;
			
			//animator function
			var animator = function(el, time, dir) {
			 
				//which direction to scroll
				if(dir == "rtl") {
				  
				  //add direction class
					el.removeClass("ltr").addClass("rtl");
				 		
					//animate the el
					el.animate({ left:"-" + el.width() + "px" }, time, "linear", function() {
											
						//reset playlistAdsContainer position
						$(this).css({ left:$("div#scrollingAdsScroller").width(), right:"" });
						
						//restart animation
						animator($(this), duration, "rtl");
					});
				} else {
				
				  //add direction class
					el.removeClass("rtl").addClass("ltr");
				
					//animate the el
					el.animate({ left:$("div#scrollingAdsViewer").width() + "px" }, time, "linear", function() {
											
						//reset playlistAdsContainer position
						$(this).css({ left:0 - $("div#playlistAdsContainer").width() });
						
						//restart animation
						animator($(this), duration, "ltr");
		
					});
				}
			}
			
			//start anim
			animator($("div#playlistAdsContainer"), duration, direction);
			
			//pause on mouseover
			$("a.scrollingAdsWrapper").live("mouseover", function() {
				//stop anim
				$("div#playlistAdsContainer").stop(true);
			});
			
			//restart on mouseout
			$("a.scrollingAdsWrapper").live("mouseout", function(e) {
				
				//work out total travel distance
				var totalDistance = parseInt($("div#playlistAdsContainer").width()) + parseInt($("div#scrollingAdsViewer").width());
													
				//work out distance left to travel
				var distanceLeft = ($("div#playlistAdsContainer").hasClass("ltr")) ? totalDistance - (parseInt($("div#playlistAdsContainer").css("left")) + parseInt($("div#playlistAdsContainer").width())) : totalDistance - (parseInt($("div#scrollingAdsViewer").width()) - (parseInt($("div#playlistAdsContainer").css("left")))) ;
				
				//new duration is distance left / speed)
				var newDuration = distanceLeft / speed;
			
				//restart anim
				animator($("div#playlistAdsContainer"), newDuration, $("div#playlistAdsContainer").attr("class"));
			});
		};
   })(jQuery);

