/*
* Author: Alexandra Fenster
* Company: Flexalex
* Site: http://flexalex.com
*
*/

/* Constants */
var imgwidth = 2085;
var dx = 5;
var delay = 10;
var nomovearea = 50; //percentage
/* End of constants */

var mx = 0, my = 0;
var domove = false;
var position = 0;
var obj;
var offsets;

function getWidth()
{
	return (window.innerWidth)?window.innerWidth:((document.all)?document.documentElement.offsetWidth:null);
};

function move(dx)
{
	if (window.innerWidth == undefined)
	{
		window.innerWidth = getWidth();
	}
	if (mx > ((50 + nomovearea / 2) / 100) * window.innerWidth || 
	    mx < ((50 - nomovearea / 2) / 100) * window.innerWidth)
	{
		var newpos = position + dx;
		if (newpos > 0)
			return;
		if (newpos + imgwidth < window.innerWidth)
			return;
		position = newpos;
		var i, tmp;
		for (i = 0; i < obj.length; i++)
		{
			tmp = position + offsets[i];
			obj[i].style.left = tmp + "px";
		}
	}
}

function getcoords(e)
{
	var posx = 0;
	var posy = 0;
	if (!e) 
	{
		var e = window.event;
	}
	if (e.pageX || e.pageY) 	
	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	
	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	mx = posx;
	my = posy;
}

function mouseon(e)
{
	getcoords(e);
	domove = true;
}

function mouseoff(e)
{
	getcoords(e);
	domove = false;
}

function settimer()
{
	if (domove)
	{
		move(mx <= window.innerWidth / 2 ? dx : -dx);
	}
	setTimeout("settimer()", delay);
}

function init()
{
	var img = document.getElementById("image");
	var imgleft = img.style.left.replace(/[^-\d]/g, "");
	obj = [img];	
	offsets = [0];
	var idx;
	var div;
	var divleft;
	for (idx = 1; div = document.getElementById("imglink" + idx); idx++)
	{
		obj.push(div);
		divleft = div.style.left.replace(/[^-\d]/g, "");
		offsets.push(divleft - imgleft);
	}
	window.onresize = function()
	{
		position = 0;
		move(0);
	};
	if (nomovearea < 0)
	{
		nomovearea = 0;
	}
	if (nomovearea > 100)
	{
		nomovearea = 100;
	}
	settimer();
}

