ImageLoader = {
	PreLoad: new Array(),
	TempImage: null,
	Timer: null,
	CurrentID: 0,
	Navigation: 'image_navigation',
	
	Update: function(_id_to, _uri, _selected_ele) {
		if(_selected_ele != ImageLoader.CurrentID) {
			//new Effect.Opacity(_id_to, {duration:0.1, from:1.0, to:0});
			
			if(ImageLoader.PreLoad.length == 0 || !inArray(ImageLoader.PreLoad, _uri)) {
				ImageLoader.TempImage = new Image();
				ImageLoader.TempImage.src = _uri;
				
				ImageLoader.CheckComplete(_uri, _id_to);
				
				ImageLoader.PreLoad[ImageLoader.PreLoad.length] = _uri;
				ImageLoader.UpdateLayers(_selected_ele);
				ImageLoader.UpdateNavigation();
			} else {
				$(_id_to).src = _uri;
				new Effect.Opacity(_id_to, {duration:1.0, from:0, to:1.0});
				ImageLoader.UpdateLayers(_selected_ele);
				ImageLoader.UpdateNavigation();
			}
		}
	},
	
	CheckComplete: function(_uri, _id_to) {
		if(ImageLoader.TempImage.complete) {
			$(_id_to).src = ImageLoader.TempImage.src;
			new Effect.Opacity(_id_to, {duration:1.0, from:0, to:1.0});
		} else {
			ImageLoader.Timer = setTimeout("ImageLoader.CheckComplete('" + _uri + "', '" + _id_to + "')",10);
		}
	},
	
	UpdateLayers: function(_selected_ele) {
		if(Images.length) {
			for(var i = 0; i < Images.length; i++) {
				if(i == ImageLoader.CurrentID && i != _selected_ele) new Effect.Opacity($('img_' + i), {duration:1.0, from:0.5, to:1.0});
			}
			
			if(_selected_ele != ImageLoader.CurrentID) {
				new Effect.Opacity('img_' + _selected_ele, {duration:0.5, from:1.0, to:0.5});
				ImageLoader.CurrentID = _selected_ele;
			}
		}
	},
	
	Init: function() {
		if(Images.length) {
			$(ImageLoader.Navigation).innerHTML = '<img src="/f/prev.gif" alt="Предыдущая" /><img src="/f/separator.gif" alt="" /><a href="" onclick="ImageLoader.Update(\'gallery_image\', Images[1], 1); return false;"><img src="/f/next.gif" alt="Следующая" /></a>';
			$(ImageLoader.Navigation).style.display = 'block';
		}
	}, 
	
	UpdateNavigation: function () {
		if(Images.length) {
			var html = '';
			
			if(ImageLoader.CurrentID != 0) {
				html = '<a href="" onclick="ImageLoader.Update(\'gallery_image\', Images[' + (ImageLoader.CurrentID - 1) + '], ' + (ImageLoader.CurrentID - 1) + '); return false;"><img src="/f/prev.gif" alt="Предыдущая" /></a>';
			} else {
				html = '<img src="/f/prev.gif" alt="Предыдущая" />';
			}
			
			html += '<img src="/f/separator.gif" alt="" />';
			
			if(ImageLoader.CurrentID != (Images.length - 1)) {
				html += '<a href="" onclick="ImageLoader.Update(\'gallery_image\', Images[' + (ImageLoader.CurrentID + 1) + '], ' + (ImageLoader.CurrentID + 1) + '); return false;"><img src="/f/next.gif" alt="Следующая" /></a>';
			} else {
				html += '<img src="/f/next.gif" alt="Следующая" />';
			}
			
			$(ImageLoader.Navigation).innerHTML = html;
			$(ImageLoader.Navigation).style.display = 'block';
		}
	}
};

function inArray(_array, _value) {
	for(var i = 0; i < _array.length; i++) {
		if(_array[i] == _value) {return true;}
	}
	return false;
}
