var img_width_with_margin = 157;
var moving_size = 7;
var moving_interval = 1;

var curent_image = -1;
var first_load =  true;
var cur_img = -1;
var prev_img = -1;
var next_img = -1;
var moving_position = 0;
var movingTimer = null;

var big_container_id = 'container';
var image_search_filter = /(.*?\/)_([^\/]*)/i
var image_replace_filter = '$1$2';
var style_suffix = ' no-repeat center 112px';
var preload_big = false;

function __isIe()
{
	if (navigator.userAgent.indexOf('MSIE') != -1)
		return true;
	else
		return false;
}



var image_click = function (event)
{
		if (document.all)
	    	__self = event.srcElement;
	    else
	    	__self = event.target;

	    __big_container = $(big_container_id);
	    __new_uri = new String(__self.src);
	    __big_container.style.background = 'url('+ __new_uri.replace(image_search_filter,image_replace_filter) +')' + (style_suffix != null?' '+style_suffix: '');
}



function galery_preload_image()
{
	for (i=0; i < image_liblrary_array.length; i++)
	{
		var new_image = document.createElement('IMG');
		new_image.id = 'image_' + i;
		new_image.src = image_liblrary_array[i];
		new_image.style.zindex = -100;
		new_image.style.cursor = (document.all?'hand':'pointer');
		if(document.addEventListener)
			new_image.addEventListener('click',image_click,false);
		else
			new_image.attachEvent("onclick",image_click);
		document.getElementById('images_container').appendChild(new_image);
	}
	if (preload_big)
	{
		var big_container = document.createElement('DIV');
		big_container.id = 'big_container_for_preloading_images';
		document.getElementById('images_container').parentNode.insertBefore(big_container,document.getElementById('images_container'));
		for (i=0; i < image_liblrary_array.length; i++)
		{
			var new_image = document.createElement('IMG');
			new_image.id = 'image_' + i;
			new_image.src = image_liblrary_array[i];
			new_image.style.zindex = -100;
			new_image.style.cursor = (document.all?'hand':'pointer');
			if(document.addEventListener)
				new_image.addEventListener('click',image_click,false);
			else
				new_image.attachEvent("onclick",image_click);
			big_container.appendChild(new_image);
		}
	}
}

function galery_move_left()
{
	if (image_liblrary_array.length == 0 || movingTimer != null)
		return;
	if (first_load)
	{
		if (document.getElementById('galery_cont').firstChild != null)
			for (k in document.getElementById('galery_cont').childNodes)
				document.getElementById('galery_cont').removeChild(document.getElementById('galery_cont').childNodes[k]);
		first_load = false;
		curent_image++;
		document.getElementById('galery_cont').appendChild(document.getElementById('image_'+curent_image));
		curent_image++;
		if (document.getElementById('image_'+curent_image) != undefined)
			document.getElementById('galery_cont').appendChild(document.getElementById('image_'+curent_image));
	}
	if (image_liblrary_array.length < 3)
		return;
	cur_img = curent_image;
	prev_img = (curent_image > 0 ? curent_image-1 : image_liblrary_array.length-1);

	if (curent_image < image_liblrary_array.length-1)
		curent_image++;
	else
		curent_image = 0;
	next_img = curent_image;
	if (__isIe())
	{
		document.getElementById('galery_cont').appendChild(document.getElementById('image_'+next_img));

		document.getElementById('images_container').appendChild(document.getElementById('image_'+prev_img));
		//document.getElementById('galery_cont').removeChild(document.getElementById('image_'+prev_img));
		$('image_'+next_img).className = 'second-galery-image';
		$('image_'+cur_img).className = '';
		return;
	}
	moving_position = 0;
	document.getElementById('image_'+next_img).style.position = 'relative';
	document.getElementById('image_'+next_img).style.left = '0px';
	document.getElementById('galery_cont').appendChild(document.getElementById('image_'+next_img));
	movingTimer = setTimeout('galery_moving_left()',moving_interval);
}

function galery_moving_left()
{
	moving_position -= moving_size;
	document.getElementById('image_'+next_img).style.position = 'relative';
	document.getElementById('image_'+next_img).style.left = moving_position + 'px';
	document.getElementById('image_'+cur_img).style.position = 'relative';
	document.getElementById('image_'+cur_img).style.left = moving_position + 'px';
	document.getElementById('image_'+prev_img).style.position = 'relative';
	document.getElementById('image_'+prev_img).style.left = moving_position + 'px';

	if (moving_position < (img_width_with_margin*-1))
	{
		document.getElementById('images_container').appendChild(document.getElementById('image_'+prev_img));
		document.getElementById('image_'+next_img).style.left = 0 + 'px';
	document.getElementById('image_'+cur_img).style.left = 0 + 'px';
		clearTimeout(movingTimer);
		movingTimer = null;
		$('image_'+next_img).className = 'second-galery-image';
		$('image_'+cur_img).className = '';
	}
	else
		setTimeout('galery_moving_left()',moving_interval);
}

function galery_move_right()
{

	if (image_liblrary_array.length < 3 || movingTimer != null)
		return;
	cur_img = curent_image;
	next_img = curent_image;
	if (curent_image > 0)
		curent_image--;
	else
		curent_image = image_liblrary_array.length-1;
	cur_img = curent_image;
	prev_img = curent_image > 0 ? curent_image-1 : image_liblrary_array.length-1;
	if (__isIe())
	{
		$('image_'+cur_img).className = 'second-galery-image';
		$('image_'+prev_img).className = '';
		document.getElementById('galery_cont').insertBefore(document.getElementById('image_'+prev_img),document.getElementById('image_'+cur_img));
		document.getElementById('images_container').appendChild(document.getElementById('image_'+next_img));
		return;
	}

	moving_position = (-1 * img_width_with_margin);

	document.getElementById('galery_cont').insertBefore(document.getElementById('image_'+prev_img),document.getElementById('image_'+cur_img));
	document.getElementById('image_'+prev_img).style.position = 'relative';
	document.getElementById('image_'+next_img).style.position = 'relative';
	document.getElementById('image_'+next_img).style.left = (-1 * img_width_with_margin) + 'px';
	document.getElementById('image_'+cur_img).style.position = 'relative';
	document.getElementById('image_'+cur_img).style.left = (-1 * img_width_with_margin) + 'px';
	document.getElementById('image_'+prev_img).style.position = 'relative';
	document.getElementById('image_'+prev_img).style.left = (-1 * img_width_with_margin) + 'px';
	movingTimer = setTimeout('galery_moving_right()',moving_interval);
}

function galery_moving_right()
{
	moving_position += moving_size;
	document.getElementById('image_'+next_img).style.position = 'relative';
	document.getElementById('image_'+next_img).style.left = moving_position + 'px';
	document.getElementById('image_'+cur_img).style.position = 'relative';
	document.getElementById('image_'+cur_img).style.left = moving_position + 'px';
	document.getElementById('image_'+prev_img).style.position = 'relative';
	document.getElementById('image_'+prev_img).style.left = moving_position + 'px';

	if (moving_position > 0)
	{
		document.getElementById('images_container').appendChild(document.getElementById('image_'+next_img));
		clearTimeout(movingTimer);
		movingTimer = null;
		$('image_'+cur_img).className = 'second-galery-image';
		$('image_'+prev_img).className = '';
	}
	else
		setTimeout('galery_moving_right()',moving_interval);
}


function $(id)
{
	return document.getElmentById(id);
}
