dojo.require('dojo.fx');
dojo.require('dojo.fx.easing');

dojo.ready(function() {
	//set 1st page to 0, mouseover toggle to off
	var firstLoad = 0;
	var pageIndex = 0;		 
	var leftTog = 0;
	var direction = 0;
	var bullets = [];

	//Enable Features
	var arrowEnable = 1;
	var bulletEnable = 0;
	var linkEnable = 1;

	//Set Slider Defaults
	var speed = 3500;
	
	//Define pages	
	var pages = [];
		pages[0] = '/homeSlide/slides/slide1.jpg';
		pages[1] = '/homeSlide/slides/slide2.jpg';  
		pages[2] = '/homeSlide/slides/slide3.jpg';   
		pages[3] = '/homeSlide/slides/slide4.jpg';   
		pages[4] = '/homeSlide/slides/slide5.jpg';  
		pages[5] = '/homeSlide/slides/slide6.jpg'; 
		pages[6] = '/homeSlide/slides/slide7.jpg'; 
		pages[7] = '/homeSlide/slides/slide8.jpg'; 
	
	//Define Links
	var links = [];
		links[0] = '/solutions/save-energy/test-eg/';
		links[1] = '/solutions/reduce-maintenance-costs/example-1/';
		links[2] = '/solutions/save-energy/example-2/';
		links[3] = '/solutions/save-energy/optimize-lighting-controls/';
		links[4] = '/solutions/save-energy-2/example-2/';
		links[5] = '/solutions/save-energy/example-3/';
		links[6] = '/solutions/lower-maintenance-costs/example-1/';
		links[7] = '/solutions/enable-demand-response/';
	
	//Set DOM constants 
  	var slider = dojo.byId('slider'); 	  	
  	var content = dojo.byId('sliderContent');
	dojo.fadeOut({ node: content }).play();

	var leftArrow = dojo.byId('leftArrow');
	var rightArrow = dojo.byId('rightArrow');
	
	var bulletBox = dojo.byId('bulletBox');
	
	var link = dojo.byId('link');

	//Enable Link
	if(linkEnable){
	dojo.fadeOut({ node: link }).play();
	dojo.attr(link,'href',links[0]);
	}
	
	function resetLink(){
		dojo.attr(link,'href',links[pageIndex]);
	}
	
	//Enable Arrows
	if(arrowEnable){
		dojo.fadeOut({ node: leftArrow }).play();
		dojo.fadeOut({ node: rightArrow }).play();
	}


	
	//Enable Bullets
	if(bulletEnable){
		dojo.fadeOut({ node: bulletBox }).play();

		var eye = 0;
		var list = [];

		dojo.forEach(pages, function(){
			var bullet = dojo.create("a");
			dojo.attr(bullet,"class","bullet");
			dojo.attr(bullet,"rel",eye);
			dojo.place(bullet,bulletBox);
 
           		bullets.push(bullet);
           		dojo.addClass(bullets[0], "bulletOn");
           
			dojo.connect(bullet,'onclick',function(e){ 
				 if(pageIndex != dojo.attr(e.target, 'rel')){ 				  		
			  		pageIndex = dojo.attr(e.target, 'rel'); 
			  		direction = 1; 
			  		loadPage();
			  	}
			});
			eye++;
		});
	}
		
	//Bullet Controls
	function resetBullet(){
		if(bulletEnable){
			dojo.forEach(bullets, function(bullet) {
   				dojo.removeClass(bullet, "bulletOn");
  			});
			dojo.addClass(bullets[pageIndex], "bulletOn");
		}
	}	
		
	if(arrowEnable){				
		//Click Events for Arrows
	 	dojo.connect(rightArrow,'onclick',function(){pageIndex ++; direction = 1; loadPage();});
	 	dojo.connect(leftArrow,'onclick',function(){pageIndex --; direction = 0; loadPage();});
	}
	 		
//Auto Slide Timer
	autoScroll = setInterval(function(){ pageIndex ++; direction=1; loadPage(); }, speed);	
	 function resetTime(){
		clearInterval(autoScroll);
		autoScroll = setInterval(function(){ pageIndex ++; direction=1; loadPage(); }, speed);	
	}

	//Add hover state animation to arrows
	//overFadeToggle(leftArrow);
	//overRight(rightArrow);
	//overLeft(leftArrow);
	 		
	//Fade State Function
	function overRight(e){
		var anim1 = dojo.fx.slideTo({ node: e, top: '200', left: '916' }); 
		var anim2 = dojo.fx.slideTo({node: e, top: '200', left: '906' });

		dojo.connect(anim1, 'onEnd',function(){ if(leftTog)anim2.play(); });
		dojo.connect(anim2, 'onEnd',function(){ if(leftTog)anim1.play(); });	

		dojo.connect(e,'onmouseenter', function(){ leftTog=1; anim1.play(); });
   		dojo.connect(e,'onmouseleave', function(){ leftTog=0; anim1.stop(); anim2.stop(); anim2.play(); });
	}
		 	
	function overLeft(e){
		var anim1 = dojo.fx.slideTo({ node: e, top: '200', left: '0' }); 
		var anim2 = dojo.fx.slideTo({node: e, top: '200', left: '-10' });

		dojo.connect(anim1, 'onEnd',function(){ if(leftTog)anim2.play(); });
		dojo.connect(anim2, 'onEnd',function(){ if(leftTog)anim1.play(); });	

         	dojo.connect(e,'onmouseenter', function(){ leftTog=1; anim1.play(); });
   		dojo.connect(e,'onmouseleave', function(){ leftTog=0; anim1.stop(); anim2.stop(); anim2.play(); });
	}
	 	
	//Create Page IMG, add onload Event
	var myPage = dojo.create('img', { src: pages[0] }, content);

 	dojo.connect(myPage,'onload',function(){ reveal(); });
 	
 	var myPage2 = dojo.create('img', { src: pages[0] }, slider);

 

		 	
	//Define Slide Animations for Pages
	 var slideOutAniRight = dojo.fx.combine([
		dojo.fx.slideTo({ 
			node: content,
			top: '0',
			left: '200',
			easing: dojo.fx.easing.cubicIn
		}),
		dojo.fadeOut({ node: content })
	]);
	
	dojo.connect(slideOutAniRight,'onEnd',function(){ hide(); });

	var slideOutAniLeft = dojo.fx.combine([
		dojo.fx.slideTo({ 
			node: content,
			top: '0',
			left: '-200',
			easing: dojo.fx.easing.cubicIn
		}),
		dojo.fadeOut({ node: content })
	]);
	dojo.connect(slideOutAniLeft,'onEnd',function(){ hide(); });		

	var slideInAni = dojo.fx.combine([
		dojo.fx.slideTo({ node: content, top: '0', left: '0',easing: dojo.fx.easing.cubicOut}),
		dojo.fadeIn({ node: content })
	]);	

	var fadeOut = dojo.fadeOut({ node: content });
	var fadeIn = dojo.fadeIn({ node: content });
	dojo.connect(fadeOut,'onEnd',function(){ hide(); });

	//Load New Image into page onClick		 	
	function loadPage(){
	
	//Check for Browser Compatibility
		
		if(!fadeOut) direction = 9;
	
		//Reset Auto Scroll
		resetTime();
		
		//Check to make sure we're loading pages that exist
	      	if(pageIndex < 0){
			pageIndex = pages.length -1;
		}
	      	if(pageIndex > pages.length-1){
			pageIndex = 0;
		}
		
		resetBullet();
		
		if(linkEnable) resetLink();
		 
		 	dojo.attr(myPage2, { src: pages[pageIndex]});	
		 	  
		//Determine which page to load 
		switch(direction){
			case 0:
				// slideOutAniRight.play();
				fadeOut.play();
				break;
		 	 
			case 1:
				//slideOutAniLeft.play();
				fadeOut.play();
				break;
				
			case 9:
				dojo.attr(myPage, { src: pages[pageIndex]});
			
				break;
					
		 	 default:
				//slideOutAniRight.play();
				fadeOut.play();
				break;
		}
	}

	function hide(){
		//Hide Page While Loading -
		dojo.style(content,'display','none');
		//Bring Up Loading Graphic
		// dojo.style(slider,'background','url(/wp-content/themes/blanktheme/images/loader4.gif) center center no-repeat');

		//Load New Page
	
		dojo.attr(myPage, { src: pages[pageIndex]});	 
	}		 

 	function reveal(){
		if(!firstLoad){
			dojo.style(slider, 'background','none');
			dojo.style(content, 'display','block');

		 	if(arrowEnable){
				dojo.style(leftArrow, 'display','block'); 
		 		dojo.style(rightArrow, 'display','block'); 
				dojo.fadeIn({ node: leftArrow }).play();
				dojo.fadeIn({ node: rightArrow }).play();
			}

			if(bulletEnable){
				dojo.style(bulletBox, 'display','block'); 
				dojo.fadeIn({ node: bulletBox }).play();
			}
			
			if(linkEnable){
				dojo.fadeIn({ node: link }).play();
			}

			dojo.fadeIn({ node: content }).play();
			firstLoad ++;	 
		}else{	
			//Remove Loading graphic
			dojo.style(slider, 'background','none');

			//Display Page
			dojo.style(content,'left','0px');
			if(direction) {
				dojo.style(content,'left','0px');
			}
			 dojo.style(content, 'display','block');

			//Play Intro Animation
			if(firstLoad > 0)slideInAni.play();
		}
	}
});
