/*
 * Galeriesystem
 * @version: $Id: gallery.js 651 2010-11-30 16:20:59Z sjelner $
 */

var gallery = (function(sel) {
	var _els = $nolte(sel);
	_els.each(function() {
		var $this = $nolte(this);
		var cur = 0;
		var left = $this.find('.gallery_arrow_left a');
		var vport = $this.find('.gallery_images');
		var vpwidth = vport.width();
		var ul = vport.find('ul');
		var imgs = ul.find('li');
		var right = $this.find('.gallery_arrow_right a');
		var len = (imgs.length-1)
		var pos = [];
		imgs.each(function(i) {
			var $this = $nolte(this);
			var temp = $this.position();
			pos[i] = [(1-temp.left),temp.left,(temp.left+$this.width())];
			if(jQuery.browser.msie6) $this.css('width',$this.find('img').width());
		});

		var stdClick = function(e) {
			e.preventDefault();
		};

		var leftClick = function(e) {
			e.preventDefault();
			if(cur > 0) {
				cur--;
				left.unbind('click');
				left.bind('click',stdClick);
				ul.animate(
					{'left':pos[cur][0]},
					{
						'complete':function() {
							_arrowStates();
							left.unbind('click');
							left.bind('click',leftClick);
						}
					}
				);
			};
		};

		var rightClick = function(e) {
			e.preventDefault();
			if(cur < len && !_lastFullyVisible()) {
				cur++;
				right.unbind('click');
				right.bind('click',stdClick);
				ul.animate(
					{'left':pos[cur][0]},
					{
						'complete':function() {
							_arrowStates();
							right.unbind('click');
							right.bind('click',rightClick);
						}
					}
				);
			};
		};

		left.bind('click',leftClick);
		right.bind('click',rightClick);

		function _arrowStates() {
			if(cur == 0) {
				left.addClass('inactive');
			} else {
				left.removeClass('inactive');
			};
			if(cur == len || _lastFullyVisible()) {
				right.addClass('inactive');
			} else {
				right.removeClass('inactive');
			};
		};

		function _lastFullyVisible() {
			if(vpwidth > (pos[len][2]-pos[cur][1])) return true;
			return false;
		};
	});
});
