(function(Utils){
	// Carousel Object - basic slide + btns. No-jquery-zone
	var Carousel=function(){
		var carouselHolder=document.getElementById("carouselHolder"),
			carouselSlide=document.getElementById("carouselSlide"),
			carouselFrame=document.getElementById("carouselFrame"),
			slides = carouselSlide.getElementsByTagName("a"),
			isOnSlide=carouselSlide.style.left=0,
			slideWidth=slides[0].offsetWidth*1,
			isPlaying=false,
			invertvalSec=9,
			slideTimer,
			navBtns = carouselHolder.getElementsByTagName("ul")[0],
			btns = navBtns.getElementsByTagName("li");
		carouselSlide.style.width=(slides[0].offsetWidth*slides.length)+"px";
		// Methods
		var _moveToSlide=function(num){
			var _upcomingSlide=isOnSlide + num;
			if(_upcomingSlide>slides.length-1)
				_upcomingSlide=0;
			if(_upcomingSlide==(slides.length-1) && num>0)
				btns[1].className="disabled";
			else if(_upcomingSlide==0 && num<0)
				btns[0].className="disabled";
			else
				btns[0].className=btns[1].className="";
			var speed=(num>0 && _upcomingSlide==0)?450:90,
				left=_upcomingSlide*slideWidth*-1;
			Utils.Anim.tween(carouselSlide,"left",left,speed, function(){
				isOnSlide = _upcomingSlide;
			});
		}
		var _play=function(doPlay){
			if(isPlaying==true && doPlay==false) {
				clearInterval(slideTimer);
				isPlaying=false;
			} else if(isPlaying==false) {
				clearInterval(slideTimer);
				slideTimer = setInterval(function(){
					_moveToSlide(1);
				},invertvalSec*1000);
				isPlaying=true;
			}
		};
		// Events
		for(var i=0; i<btns.length; i++) {
			btns[i].unselectable ="on";
			btns[i].onmousedown=function(){
				if(this.className!="disabled")
					_moveToSlide(this.getAttribute("dir")*1);
			}
		}
		navBtns.onmouseover=function(e){
			_play(false);
		}
		navBtns.onmouseout=function(e){
			_play();
		}
		// Public Methods
		return {play:_play}
	}();
	Utils.addEvent(window,"load",function(){
		// Carousel launch
		Carousel.play();
		Utils.addEvent(window, "blur", function(){Carousel.play(false);});
		Utils.addEvent(window, "focus", function(){Carousel.play();});
		// Vote button fixes
		var pollForms=document.getElementById("poll2011").getElementsByTagName("form");
		if(pollForms.length>0)
			pollForms[0].getElementsByTagName("button")[0].onclick=function(){
				this.innerHTML="";
				var choices=pollForms[0].getElementsByTagName("input"),
					choice=false;
				for(var i=0; i<choices.length; i++) {
					if(choices[i].checked)
						choice=choices[i].value;
				}
				if(choice==false) {
					if(!this.errMsg){
						this.errMsg=document.createElement("p");
						this.errMsg.style.className=this.errMsg.className="errMsg";
						pollForms[0].appendChild(this.errMsg);
						this.errMsg.innerHTML="Please choose from one of the options above...";
					}
					this.errMsg.style.display="block";
				}
				return choice;
			}
	});
})(AOL.Search.Helpers);
