/**
 * 
 *
 * Depends:
 *	ui.core.js
 */
(function($) {
	$.widget('ui.preview', {
		_init: function()
		{
			var widget = this;
			var container = null;
			
			// register the click event to all links in the thumb views
			$('.thumb a', widget.element[0]).live('click', function(event){
				var thumb = $(this);
				container = $('#previewWrapper', widget.element[0]);
				if(!thumb.hasClass('active'))
				{
					widget._loadContent(thumb, container);
				}
				return false;
			});
		},
		
		_loadContent: function(clickedThumb, container){
			var widget = this;
			var previewCntHeight = $(container, widget.element[0]).height();
			$('.thumb a', widget.element[0]).removeClass('active');
			$(clickedThumb).addClass('active');
			
			var contentHeight = $('#content').height();
			$('#content').height(contentHeight);
		
			container.slideUp(1000, function(){
				container.load('?sModule=ajax.GetProductPreview&iProductGroup=' + $(clickedThumb).attr('rel') + '&' + widget.options.sessionId, function(){
					widget._moveContainer(clickedThumb, container);
					container.slideDown(1000);
				});
			});
		},
		
		_moveContainer: function(thumb, cnt){
			var activeRow = thumb.parents('.thumbRow');
			var firstRow = $('#rightCol .thumbRow:first');
			
			$(cnt).insertBefore(activeRow);
			
			this._decorateThumbRows(cnt);
			
			if(activeRow.attr('id') !== firstRow.attr('id'))
			{
				$('#previewCnt').addClass('prepend-top');
			}
			else
			{
				$('#previewCnt').removeClass('prepend-top');
			}
		},
		
		_decorateThumbRows: function( container)
		{
			var prevRow = ($(container).prev('.thumbRow').get(0)) ? $(container).prev('.thumbRow').get(0) : null;
			var nextRow = ($(container).next('.thumbRow').get(0)) ? $(container).next('.thumbRow').get(0) : null;
			
			$(container).parent().find('.thumbRow').removeClass('prevOpen');
			$(container).parent().find('.thumbRow').removeClass('nextOpen');
			
			if(null !== prevRow)
			{
				$(prevRow).addClass('prevOpen');
			}
			
			if(null !== nextRow)
			{
				$(nextRow).addClass('nextOpen');
			}
		}
	});
})(jQuery);
