jQuery.Engine.itemdetails = function(options) {
	this.settings = jQuery.extend({}, jQuery.Engine.itemdetails.defaults, options);
	this.timeout = null;
	this.left = 0;
	this.leftEdge = 0;
	this.rightEdge = 0;
};
jQuery.extend(jQuery.Engine.itemdetails, {
	defaults : {
		PHOTOS_ARROW_LEFT: '.item_photos_arror_left',
		PHOTOS_ARROW_RIGHT: '.item_photos_arror_right',
		PHOTOS_PANEL: '.item_photos_aggr_panel',
		ITEM_PHOTOS_PANEL_IMG: '#item_photos_panel_img',
		ITEM_MAIN_PHOTO: '#item_main_photo',
		PHOTOS_PANEL_AGGR_WIDTH: 350,
		ERROR_CLASS_NAME: 'error'
	},
	prototype: {
		initialize : function() {
			this.initArrows();
			this.initEdges();
			this.initResourcePhotos();
		},
		
		initEdges : function () {
			var PHOTOS_PANEL_AGGR_WIDTH = this.settings.PHOTOS_PANEL_AGGR_WIDTH;
			var PHOTOS_PANEL = this.settings.PHOTOS_PANEL;
			var panelWidth = $(PHOTOS_PANEL).css('width');
			panelWidth = parseFloat(panelWidth.replace('px',''));
			
			this.rightEdge = 0 - (panelWidth - PHOTOS_PANEL_AGGR_WIDTH);
			this.leftEdge = 0;
		},
		
		initResourcePhotos : function() {
			var ITEM_PHOTOS_PANEL_IMG = this.settings.ITEM_PHOTOS_PANEL_IMG;
			var ITEM_MAIN_PHOTO = this.settings.ITEM_MAIN_PHOTO;
		
			$('a[class="item_photo_main"]').each(function() {
				$(this).click(function() {
					$(ITEM_PHOTOS_PANEL_IMG).html("");
					
					var href = $(this).attr('href');
					$(ITEM_PHOTOS_PANEL_IMG).html('<img id="item_main_photo" src="'+href+'"/>');
					return false;
				});
			});
		},
		
		initArrows : function() {
			var PHOTOS_ARROW_LEFT = this.settings.PHOTOS_ARROW_LEFT;
			var PHOTOS_ARROW_RIGHT = this.settings.PHOTOS_ARROW_RIGHT;
			var PHOTOS_PANEL = this.settings.PHOTOS_PANEL;
			var obj = this;
			
			$(PHOTOS_ARROW_LEFT).mouseover(function() { 
				obj.timeout = window.setTimeout(function() {
					obj.arrowLeftTimeout();
				}, 5);
			});
			
			$(PHOTOS_ARROW_LEFT).mouseout(function() {
				clearTimeout(obj.timeout);
				obj.timeout = null;
			});
			
			$(PHOTOS_ARROW_RIGHT).mouseover(function() {
				obj.timeout = window.setTimeout(function() {
					obj.arrowRightTimeout();
				}, 5);
 			});
			
			$(PHOTOS_ARROW_RIGHT).mouseout(function() {
				clearTimeout(obj.timeout);
				obj.timeout = null;
			});
		},
		
		arrowLeftTimeout : function () {
			if (this.timeout != null) {
				var PHOTOS_PANEL = this.settings.PHOTOS_PANEL;
				
				this.left = this.left + 5;
				
				if (this.left <= this.leftEdge) {
					$(PHOTOS_PANEL).css({left: this.left+'px'});
					
					var obj = this;
					window.setTimeout(function() { obj.arrowLeftTimeout(); }, 5);
				}
			}
		},
		
		arrowRightTimeout : function () {
			if (this.timeout != null) {
				var PHOTOS_PANEL = this.settings.PHOTOS_PANEL;
				
				this.left = this.left - 5;
				
				if (this.left > this.rightEdge) {
					$(PHOTOS_PANEL).css({left: this.left+'px'});
					
					var obj = this;
					window.setTimeout(function() { obj.arrowRightTimeout(); }, 5);
				}
			}
		}
	}
});

