/*--------------------------------------------------------------------------*
 * 
 * Copyright (C) 2009 Brand Labs LLC
 * 
 *--------------------------------------------------------------------------*/
var HomePageBanners = {
	BANNERS: null,
	BUTTONS_CONTAINER_ID: 'bannernumbers',
	BUTTONS: null,
	BUTTONS_PATH: '/v/vspfiles/files/flash/images/',
	BUTTON_ON_FILE_NAME_TEMPLATE: new Template('/v/vspfiles/files/flash/images/#{index}active.png'),
	BUTTON_OFF_FILE_NAME_TEMPLATE: new Template('/v/vspfiles/files/flash/images/#{index}inactive.png'),
	NEXT_BTN: null,
	PREV_BTN: null,
	PAUSE_BTN: null,
	PLAY_BTN: null,
	IS_PLAYING: true,
	
	load: function() {
		//Setup banners
		HomePageBanners.BANNERS = hmpgBanners; 
		
		//Add listener
		HomePageBanners.BANNERS.addListener(HomePageBanners.change);

		//Setup controls once loaded		
		Event.observe(window, 'load', HomePageBanners.postLoad);
	},
	
	postLoad: function() {
		try {
			//Get the buttons		
			HomePageBanners.BUTTONS = $(HomePageBanners.BUTTONS_CONTAINER_ID).select('img');
			
			//Add click event for each
			if (HomePageBanners.BUTTONS != null) {
				HomePageBanners.BUTTONS.each(function(element, index){
					Event.observe(element, 'click', function(){
						HomePageBanners.BANNERS.execute(index);
					});
				});
			}
			
			/* Add listeners for controls */
			HomePageBanners.NEXT_BTN = $('banner_next_btn');
			HomePageBanners.PREV_BTN = $('banner_prev_btn');
			HomePageBanners.PAUSE_BTN = $('banner_pause_btn');
			Event.observe(HomePageBanners.PREV_BTN, 'click', HomePageBanners.back);
			Event.observe(HomePageBanners.PAUSE_BTN, 'click', HomePageBanners.toggle);
			Event.observe(HomePageBanners.NEXT_BTN, 'click', HomePageBanners.foward);
			/* Preload play btn */
			
			HomePageBanners.PLAY_BTN = new Element('img',{
				src: '/v/vspfiles/files/flash/images/play_btn.png',
				id: 'banner_play_btn',
				alt: 'play',
				title: 'play'			
			}).addClassName('alphafix');
			Event.observe(HomePageBanners.PLAY_BTN, 'click', HomePageBanners.toggle);
			
			
		}
		catch(e) {/*No-op*/}
	},
	
	/*Control Functions*/
	foward: function(){
		try{
			HomePageBanners.BANNERS.execute((HomePageBanners.BANNERS.currentPosition + 1) % HomePageBanners.BANNERS.banners.size());
		}
		catch(e){/*ignore*/}
	
	},
	
	back: function(){
		try{
			var prev = HomePageBanners.BANNERS.currentPosition % HomePageBanners.BANNERS.banners.size() || (HomePageBanners.BANNERS.banners.size());
			HomePageBanners.BANNERS.execute(prev - 1);
		}
		catch(e){/*ignore*/}		
	},
	
	toggle: function(){
		if(HomePageBanners.IS_PLAYING){
			HomePageBanners.PAUSE_BTN.replace(HomePageBanners.PLAY_BTN);
			HomePageBanners.stop();
			HomePageBanners.IS_PLAYING = false;
		}
		else{
			HomePageBanners.PLAY_BTN.replace(HomePageBanners.PAUSE_BTN);
			HomePageBanners.play();
			HomePageBanners.IS_PLAYING = true;			
		}
	},
	
	stop: function(){
		HomePageBanners.BANNERS.stop();		
	},
	
	play: function(){
		HomePageBanners.foward();
		HomePageBanners.BANNERS.start();
	},
	
	change: function(index) {
		//If nothing available, exit
		if(HomePageBanners.BUTTONS == null) {
			return;
		}
		
		//Turn off all other buttons
		HomePageBanners.BUTTONS.each(function(element, elementIndex){
			if(index == elementIndex) {
				return;
			}
			
			element.src = HomePageBanners.BUTTON_OFF_FILE_NAME_TEMPLATE.evaluate(
				{index: (elementIndex+1)}
			);			
		});
		
		//Turn on current button
		HomePageBanners.BUTTONS[index].src = HomePageBanners.BUTTON_ON_FILE_NAME_TEMPLATE.evaluate(
			{index: (index+1)}
		);		
	}
};
HomePageBanners.load();
