homePage = {
	init : function() {
		var isCarousel = false;
		var heroArr = YUD.getElementsByClassName("heroItem", "div", $('heroDiv'));
		var randomHero = Math.floor(Math.random() * heroArr.length );
		
		if(heroArr.length <= 1 || !isCarousel) {
			YUD.setStyle(YUD.getElementsByClassName("heroBtn"), 'display', 'none');
		}
	},
	
	setHero : function(heroObj) {
		var showImmediately = true;
		if(this.getHero()) {
			showImmediately = false;
			var fadeOut = new YUA(YUD.getFirstChild(YUD.getFirstChild(this.getHero())), { opacity:{ to:0, from:1 } }, 1.0 );
			var fadeOHandler = function() {
				
				fadeIn.animate();
			}
			fadeOut.onComplete.subscribe(fadeOHandler);
			fadeOut.animate();
		}
		
		var fadeIn = new YUA(YUD.getFirstChild(YUD.getFirstChild(heroObj)), { opacity:{ to:1, from:0 } }, 1.0 );
		var fadeIHandler = function() {
			YUD.removeClass(YUD.getChildren($('heroDiv')), "heroActive");
			YUD.addClass(heroObj, "heroActive");
		}
		fadeIn.onStart.subscribe(fadeIHandler);
		
		if(showImmediately) {
			fadeIn.animate();
			showImmediately = false;
		}			
	},
	
	getHero : function() {
		return YUD.getElementsByClassName("heroActive", "", $('heroDiv'))[0];
	},
	
	nextHero : function() {
		this.setHero( (YUD.hasClass(YUD.getNextSibling(this.getHero()), "heroItem")) ? YUD.getNextSibling(this.getHero()) : YUD.getFirstChild($('heroDiv')) );
	},
	
	prevHero : function() {
		this.setHero( (YUD.hasClass(YUD.getPreviousSibling(this.getHero()), "heroItem")) ? YUD.getPreviousSibling(this.getHero()) : YUD.getLastChild($('heroDiv')) );
	},
	
	startSlideShow : function(delay) {
		var d = delay || 2500;
		homePage.nextHero();

		setTimeout( function () {
			homePage.startSlideShow(d);
		}, d);
	}
}

YUE.on(window, 'load', homePage.init);