// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// =-=-=-=- [ PRODUCT SLIDER ] =-=-=-=-=
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
function ProductSlider(activeMenu)
{
	this.element = $('slide_items');
	this.menuItems = [];
	this.activeMenu = activeMenu;
	this.menuActive = false;
	this.menuItemTimeout = null;
	this.menuTimeout = null;
	this.init();

	DynoBlock.instance = this;
}
var timerEnabled = true;

Object.extend(ProductSlider.prototype,
{
	init: function()
	{
		if (this.element)
		{
			var menuItems = this.element.getElementsByClassName('productSliderItem'), menuItem, i = -1;
			
			while ((menuItem = menuItems[++i]))
			{
				addEvent(menuItem, 'mouseover', this.onMouseover.bind(this, menuItem.getAttribute('dir')));
				addEvent(menuItem, 'mouseout', this.onMouseout.bind(this, menuItem.getAttribute('dir')));
				
				this.menuItems[i] = menuItem;
			}
			
			if (i < 3) {
				slider_timer.stop();
				timerEnabled = false;
				
			}

			addEvent(window, 'unload', this.cleanUp.bind(this));
		}
	},
	
	cleanUp: function()
	{
		this.menuActive = false;
		this.menuItems = null;
		this.element = null;
	},
	
	onClick: function(i)
	{
		clearTimeout(this.menuItemTimeout);
		this.menuActive = true;
		this.handleMouseover(i);
	},
	
	current_active : 0,
	
	onMouseover: function(i, e)
	{
		clearTimeout(this.menuItemTimeout);
		
		var element_id = i;
		
		var timeOut = 250;

		this.menuItemTimeout = setTimeout('ProductSlider.activate(\''+element_id+'\')', timeOut);
	},
	
	activate : function (element) {
		
		slider_timer.stop();
		di('stopped product slider');
		
		if ($(element).getElementsByClassName('info')[0].getStyle('top') != '70px') {
			new Effect.Move($(element).getElementsByClassName('info')[0], { x: 0, y: -45, duration: 0.2, afterFinish : function() {				
				$(element).getElementsByClassName('infoextended')[0].setStyle({ backgroundColor : '#f4f4f4' });
			}});
		}
		
	},
	
	onMouseout: function(i, e)
	{
		clearTimeout(this.menuTimeout);
		clearTimeout(this.menuItemTimeout);
		this.menuTimeout = setTimeout(this.handleMouseout.bind(this, i), 0500);
	},
	
	cancelMouseout: function()
	{
		clearTimeout(this.menuTimeout);
	},
	
	handleMouseout: function(i)
	{				
		if ($(i).getElementsByClassName('info')[0].getStyle('top') == '70px') {
		
			new Effect.Move($(i).getElementsByClassName('info')[0], { x: 0, y: 45, duration: 0.2, afterFinish : function() {				
				$(i).getElementsByClassName('infoextended')[0].setStyle({ backgroundColor : '#f4f4f4' });
			}});
			
			this.menuActive = false;
			
			slider_timer.resume(true);
			di('resumed product slider');
		}
	},
	
	effect_duration : 0.3,
	
	show : function (element_id) {
		
		new Effect.Appear($('dynoblock_'+element_id), { duration: this.effect_duration });
		
		this.menu_item(element_id, true);
		
	},
	
	hide : function (element_id) {
		
		new Effect.Fade($('dynoblock_'+element_id), { duration: this.effect_duration });
		
		this.menu_item(element_id, false);
		
	},
	
	menu_item : function (element_id, action)
	{
		if (action) 
		{
			$('dynomenu_'+element_id).removeClassName('normal');	
			$('dynomenu_'+element_id).addClassName('act');
		}
		else
		{
			$('dynomenu_'+element_id).removeClassName('act');	
			$('dynomenu_'+element_id).addClassName('normal');
		}
	},
	
	checkForOpenSlots : function () {
		var menuItems = $('slide_items').getElementsByClassName('info'), menuItem, i = -1;
		
		while ((element = menuItems[++i]))
		{
			var xp = element.getStyle('top').replace('px');
			
			if ( parseInt(xp) == 70) {
				new Effect.Move(element, { x: 0, y: 45, duration: 0.2, afterFinish : function() {				

				}});
			}
		}
	}
});




var slide_gallery = {
	initialize : function () {
		
		di('started product slider');
		
		var slide_object = $('slide_gallery_tool');
		
		if ( slide_object == null || slide_object == '' ) {
			// do nothing
		} else {
			
			var directory 	 = slide_object.getAttribute('title');
			
			var opt = {
				method: 'post',
				postBody : 'dir='+directory,
				asynchronous: true, 
				evalScripts : true,
				onSuccess: function(t) {
					slide_object.innerHTML = t.responseText;
				}
			}
			
			//new Ajax.Request('/tools/slide_gallery/slide_gallery.php?do=load', opt);
		}
	},
	
	max : false,
	
	current: 0,
	
	
	info : function (element, state) {
		
		if (state == true) 
		{
			if (cookie.read('action_'+element) == 'true')
				return;
						
			if (cookie.read('open_'+element) == 'true')
				return;
			
			cookie.set('action_'+element, 'true');
			
			new Effect.Move($(element).getElementsByClassName('info')[0], { x: 0, y: -45, duration: 0.4, afterFinish : function() {
			
				cookie.set('action_'+element, 'false');
				cookie.set('open_'+element, 'true');
				
				$(element).getElementsByClassName('infoextended')[0].setStyle({ backgroundColor : '#f4f4f4' });
				
				setTimeout('slide_gallery.info(\''+element+'\', false)', 5000);
			}});
		} else {
					
			if (cookie.read('action_'+element) == 'true')
				return;
						
			if (cookie.read('open_'+element) == 'false')
				return;
			
			cookie.set('action_'+element, 'true');
			
			new Effect.Move($(element).getElementsByClassName('info')[0], { x: 0, y: 45, duration: 0.4, afterFinish : function() {
			
				cookie.set('action_'+element, 'false');
				cookie.set('open_'+element, 'false');
				
				$(element).getElementsByClassName('infoextended')[0].setStyle({ backgroundColor : '#f4f4f4' });
			}});
		}
		
	}
}

var space_left = 0
var effect_in_action = false;

Effect.slideToLeft = function(element, amount, link) {
	
	if (!timerEnabled)
		return;
	
	if (effect_in_action)
		return;
	
	if ($('slide_items').immediateDescendants().length - 3 == space_left) {
		
		var move = space_left * 224;
		
		effect_in_action = true;
		
		new Effect.Move(element, { x: move, y: 0, duration: 0.4, afterFinish : function() {
			effect_in_action = false;
		}});
		
		space_left = 0;

	} else {

		effect_in_action = true;
		
		space_left++;
		
		new Effect.Move(element, { x: -224, y: 0, duration: 0.4, afterFinish : function() 
		{
			effect_in_action = false; 
		}});
	
	}

	if (link)
	{
		di('stopped product slider');
		slider_timer.stop();
	}

	if ( space_left == 0 ) {
		$('slide_gallery_next').setStyle({ opacity: '0.60', 'cursor' : 'pointer' });
		
		$('slide_gallery_previous').setStyle({ opacity: '0.60', 'cursor' : 'default' });
	} else {
		$('slide_gallery_next').setStyle({ opacity: '1', 'cursor' : 'pointer' });
		
		$('slide_gallery_previous').setStyle({ opacity: '1', 'cursor' : 'default' });
	}
	

	if ($('slide_items').immediateDescendants().length - 3 == space_left) {
		$('slide_gallery_next').setStyle({ opacity: '0.6', 'cursor' : 'pointer' });
	} else {
		$('slide_gallery_next').setStyle({ opacity: '1', 'cursor' : 'pointer' });
	}
}

Effect.slideToRight = function(element, amount, link) {

	if (effect_in_action)
		return;

	if (space_left === 0) 
	{
		return;
	}

	if (link)
	{
		slider_timer.stop();
		di('stopped product slider');
	}

	effect_in_action = true;
	
	space_left--;
		
	return new Effect.Move(element, { x: 300, y: 0, duration: 0.4, afterFinish : function() 
	{
		effect_in_action = false; 
		if ( space_left == 0 ) {
			$('slide_gallery_previous').setStyle({ opacity: '0.60', 'cursor' : 'default' });
			$('slide_gallery_previous').src = '/images/webshop/product_slider/arrow-left_grey.jpg';
		} else {
			$('slide_gallery_next').setStyle({ opacity: '1', 'cursor' : 'pointer' });
			$('slide_gallery_next').src = '/images/webshop/product_slider/arrow-right.jpg';
		}
	}});
}
	
Event.observe(window, 'load', function() { 	
	slide_gallery.initialize();


	
//	window.setInterval('Effect.slideToLeft(\'slide_items\');', 5000);
	
	var items = $('slide_items').getElementsBySelector('li');
	
	$A(items).each(function(item) {
		cookie.set('action_'+item.id, 'false');
		cookie.set('open_'+item.id, 'false');
	});
});
