// JavaScript Document

// Global variables.
var pop_image_slider_active;

window.addEvent('domready', function() {						  
	var browser = {
		version: function() {
			var version = 999;
			if (navigator.appVersion.indexOf("MSIE") != -1)
			version = parseFloat(navigator.appVersion.split("MSIE")[1]);
			return version;
		}
	}

	pop_image_slider_active = true;
	var fx = new Array(); 
	var step = 0;
	var fix = $('popimageslider-items').offsetLeft;
	module_width = parseInt(document.getElementById("popimageslider-mask").offsetWidth);

	var myFx = new Fx.Tween($('popimageslider-items'));
	myFx.set('left', initial_position);

	// Images pop up/down effects.
	$$('#popimageslider-items img').set('morph', { duration: 250 } );
	$$('#popimageslider-items img').setStyle('left', 0);
	$$('#popimageslider-items img').setStyle('top', 0);

	$$('#popimageslider-items img').addEvent('mouseenter', function() {
		// Fix for IE7.
		if (browser.version() == 7)
		{
			if (this.getParent().getParent().className=="popimageslider-item")
				this.getParent().getParent().style.zIndex = images_number;
			else
				this.getParent().style.zIndex = images_number;
		}
		
		image_number = this.getProperty("no");
		if (fx[image_number]!=null) fx[image_number].cancel();
		
		var elements = new Fx.Elements([this], {duration: 250});
		fx[image_number] = elements.start({
			0 : {'z-index': [images_number+1],
				'left': (images_width_small-images_width_big)/2,
				'top': (images_height_small-images_height_big)/2,
				'width': images_width_big,
				'height': images_height_big}				    
		});
		
		/*this.morph({
			'z-index': [images_number+1],
			'left': (images_width_small-images_width_big)/2,
			'top': (images_height_small-images_height_big)/2,
			'width': images_width_big,
			'height': images_height_big
		});*/
		
		// Infobar.
		var temp = this.get('alt');
		var title = temp.substr(0, temp.indexOf("::"));
		var description = temp.substr(temp.indexOf("::")+2, temp.length);
		document.getElementById("popimageslider-infobar").innerHTML = "<strong>"+title+"</strong> : "+description;
	});
	
	$$('#popimageslider-items img').addEvent('mouseleave', function(e) {
		image_number = this.getProperty("no");
		if (fx[image_number]!=null) fx[image_number].cancel();
		
		var elements = new Fx.Elements([this], {duration: 250});
		fx[image_number] = elements.start({
			0 : {'z-index': [0],
				'left': 0,
				'top': 0,
				'width': images_width_small,
				'height': images_height_small	}				    
		});				    
								    
		/*this.morph({
			'z-index': [0],
			'left': 0,
			'top': 0,
			'width': images_width_small,
			'height': images_height_small
		});*/
		
		if (browser.version() == 7)	// Fix for IE7.
		{
			for (i=0; i<images_number; i++)
			{
				if (this.getParent().getParent().className=="popimageslider-item")
					$('popimageslider-item-'+i).getParent().getParent().style.zIndex = 0;
				else
					$('popimageslider-item-'+i).getParent().style.zIndex = 0;
			}
			if (this.getParent().getParent().className=="popimageslider-item")
				this.getParent().getParent().style.zIndex = images_number - 1;
			else
				this.getParent().style.zIndex = images_number - 1;
		}
		
		// Start to pop down the other images that left in pop up state.
		/*var current = this.id.substr(21);
		for (i=0; i<images_number; i++)
		{
			if (i != current && $('popimageslider-item-'+i).width == images_width_big)
			{
				// Important: I have to define new FX.Morph variable in order to work better.
				var effect_Temp = new Fx.Morph($('popimageslider-item-'+i), {duration: 350, transition: Fx.Transitions.Sine.easeOut});
				effect_Temp.start({
				    'z-index': [0],
				    'left': [(images_width_small-images_width_big)/2, 0],
				    'top': [(images_height_small-images_height_big)/2, 0],
				    'width': [images_width_big, images_width_small],
				    'height': [images_height_big, images_height_small]
				});
			}
		}*/
		
		// Infobar.
		document.getElementById("popimageslider-infobar").innerHTML = "";
	});
	
	$$('#popimageslider-items img').addEvent('click', function()
	{
		/*if (url_target == "parent")
			document.location = images_urls[this.id.substr(21)];
		else
			window.open(images_urls[this.id.substr(21)], 'blank');*/
	});
	
	var mousemove = function(e)
	{
		var box = this.getCoordinates();
		if (e.page.x > box.left && e.page.x < box.right && e.page.y > box.top && e.page.y < box.bottom && (images_width_small+images_space*2+images_border_width*2) * images_number > module_width) 
		{
			step = (((e.page.x - box.left) - (module_width/2)) * 0.06 * (slide_speed/100));
		}
		else
		{
			step = 0;
			// If some images left in pop up state then get them to pop down.
			/*for (i=0; i<images_number; i++)
			{
				if ($('popimageslider-item-'+i).width == images_width_big)
				{
					$('popimageslider-item-'+i).morph({
						'z-index': [0],
						'left': [(images_width_small-images_width_big)/2, 0],
						'top': [(images_height_small-images_height_big)/2, 0],
						'width': [images_width_big, images_width_small],
						'height': [images_height_big, images_height_small]	 
					});
				}
			}*/
		}
	}.bind($('popimageslider-mask'));
	document.addEvent('mousemove', mousemove);
	
	var timer = function(e)
	{
		if (step!=0 && pop_image_slider_active)
		{
			var myFx = new Fx.Tween($('popimageslider-items'));
			var space = (images_width_big-images_width_small)/2;
			if ($('popimageslider-items').offsetLeft - step - fix - space > 0)
			{
				myFx.set('left', space);
			}
			else if ($('popimageslider-items').offsetLeft - step - fix < -((images_number*(images_width_small+images_space*2+images_border_width*2))-module_width+space))
			{
				myFx.set('left', -((images_number*(images_width_small+images_space*2+images_border_width*2))-module_width+space));
			}
			else
			{
				myFx.set('left', $('popimageslider-items').offsetLeft - step - fix);
			}
		}
	}.periodical(30, this);
	
	
	$$('#popimageslider-button-left').addEvent('click', function()
	{
		if ($('popimageslider-items').offsetLeft + (images_width_small+images_space*2+images_border_width*2) < 0)
		{
			$('popimageslider-items').morph({
				'left': $('popimageslider-items').offsetLeft+(images_width_small+images_space*2+images_border_width*2)
			});
		}
		else
		{
			$('popimageslider-items').morph({
				'left': 0
			});
		}
	});
	
	$$('#popimageslider-button-right').addEvent('click', function()
	{
		if ($('popimageslider-items').offsetLeft - (images_width_small+images_space*2+images_border_width*2) > -((images_number*(images_width_small+images_space*2+images_border_width*2)) - module_width))
		{
			$('popimageslider-items').morph({
				'left':  $('popimageslider-items').offsetLeft - (images_width_small+images_space*2+images_border_width*2)
			});
		}
		else
		{
			$('popimageslider-items').morph({
				'left':  -((images_number*(images_width_small+images_space*2+images_border_width*2)) - module_width)
			});
		}
	});
})
