

/**************************************
***************************** CONSTANTS
**************************************/





/**************************************
********************** GLOBAL VARIABLES
**************************************/





/************************
******************** MAIN
*************************/

var Main = {
	
	// required for an event dispatcher
	
	EVENT_INIT: 'init',
	EVENT_RESIZE: 'resize',
	EVENT_ORIENTATION_CHANGE: 'orientationChange',
	
	listeners: {
		init: new Array(),
		resize: new Array()
	},
	
	// --------------------------------
	
	init: function() {
		
		// global variables
		
		
		// init elements
		Main.initElements();
		
		// resize elements
		Main.resizeElements();
		
		// dispatch event
		Main.dispatchEvent(Main.EVENT_INIT, Main);
		Main.dispatchEvent(Main.EVENT_RESIZE, Main);
		
	},
	
	resize: function() {
		
		// resize elements
		Main.resizeElements();
		
		// dispatch event
		Main.dispatchEvent(Main.EVENT_RESIZE, Main);
	
	},
	
	orientationChange: function() {
		
		// dispatch event
		Main.dispatchEvent(Main.EVENT_ORIENTATION_CHANGE, Main);
		Main.dispatchEvent(Main.EVENT_RESIZE, Main);
	
	},
	
	addEventListener: function(eventType, listener, eventDispatcher) {
		
		var isAlredyListener = false;
		
		for (var src in eventDispatcher.listeners[eventType]) {
			
			if (eventDispatcher.listeners[eventType][src] == listener) {
				
				isAlredyListener = true;
				break;
				
			}
			
		}
		
		if (!isAlredyListener) {
			eventDispatcher.listeners[eventType].push(listener);
		}
		
	},

	removeEventListener: function(eventType, listener, eventDispatcher) {

		for (var src in eventDispatcher.listeners[eventType]) {

			if (eventDispatcher.listeners[eventType][src] == listener) {

				eventDispatcher.listeners[eventType][src] = null;
				break;

			}

		}

	},
	
	dispatchEvent: function(eventType, eventDispatcher) {
		
		for (var src in eventDispatcher.listeners[eventType]) {
			eventDispatcher.listeners[eventType][src]();
		}
		
	},

	initElements: function() {
		
		
		Slider.init();
		Slider.listener = Main;
		
		// arrows home
		if ($('#arrows')) {
			
			$('#arrows a.right').bind('click', function(event){
				Slider.next('slider_1');
				return false;
			});
			
			$('#arrows a.left').bind('click', function(event){
				Slider.prev('slider_1');
				return false;
			});
			
		}
		
		// navigator borse
		if ($('#navigatorBorse')) {
		
			$('#navigatorBorse a').bind('click', function(event){
				
				var name = $($(event.currentTarget).html()).attr('src').replace('-small.jpg','.png');
				
				if ($('#vetrina-fashion img.borsa')) {
					$('#descrizione').hide();
					$('#vetrina-fashion img.borsa').fadeOut('slow', function(){
						$('#vetrina-fashion img.borsa').attr('src', name).fadeIn('slow', function(){
							$('#descrizione').fadeIn();
						});
					});
				}
				
				if ($('#vetrina-campain img.borsa')) {
					
					$('#descrizione').hide();
					
					$('#vetrina-campain img.borsa').fadeOut('fast', function(){
					
						$('#vetrina-campain img.fondo').fadeOut('slow', function(){
						
							$('#vetrina-campain img.borsa').attr('src', name);
							
							$('#vetrina-campain img.fondo').attr('src', 'library/campain/vetrina/'+$($(event.currentTarget).html()).attr('alt')+'.jpg').fadeIn('slow', function(){
							
								$('#vetrina-campain img.borsa').fadeIn('fast', function(){
								
									$('#descrizione').fadeIn();
								
								});
								
							});
							
						});
						
					});
					
				}
				
				return false;
			});
		
		}
		
		// zoom box
		$('a.zoom').each(function(){
			$(this).fancybox({
				'padding'			: 0,
				'autoScale'			: true,
				'transitionIn'		: 'elastic',
				'transitionOut'		: 'elastic'
			});
		});
		
	},

	resizeElements: function() {
		
		// arrows home
		if ($('#arrows')) {
			$('#arrows').css({
				left: ($(window).width() - 1184) / 2
			});
		}

	},
	
	sliderSlided: function(_id) {
	
		// se siamo in home
		if ($("body").hasClass('home')) {
			
			$('#arrows a.left img').attr('src', 'library/home/borse/'+_id+'-left.png');
			$('#arrows a.right img').attr('src', 'library/home/borse/'+_id+'-right.png');
			
		}
	
	}
	
};


/**************************************
**************************** DOM events
**************************************/

$(document).ready(function() {
	
	Main.init();
	
});

$(window).resize(function() {
	
	Main.resize();
	
});

$(window).bind('orientationchange', function() {

	Main.orientationChange();

});
