﻿var ProductHelper = {
	product_content_container: null,
	photo: null,
	photo_caption: null,
	thumbnails: null,
	
	selected_thumbnail_index: null,

	config: {
		product_content_container_id: 'product-content',
		photo_container_id: 'product-shot',
		photo_caption_id: 'product-caption',
		thumbnail_container_id: 'product-thumbnails',
		scroll_frame_id: 'scroll-frame',
		scroll_view_id: 'scroll-view',
		
		active_class: 'active',
		
		cross_sell: {
			scroll: 4
		}
	},

	setObjects: function () {
		this.product_content_container = $('#' + this.config.product_content_container_id);
		this.photo = $('#' + this.config.photo_container_id + ' img');
		this.photo_caption = $('#' + this.config.photo_caption_id);
		this.thumbnail_container = $('#' + this.config.thumbnail_container_id);
		this.thumbnails = $('#' + this.config.thumbnail_container_id + ' li');
	},

	initialize: function () {
		this.setObjects();
		this.loadDependencies();
		this.attachEvents();
		
		this.createCrossSell();
		
		this.thumbnails.eq(0).addClass(this.config.active_class);
	},
	
	loadDependencies: function () {
		$.getUniqueScript('/pages/v5/script/jquery/jquery.plugin.ui.min.js', function () { 
			$.preloadImages($('li a', ProductHelper.thumbnail_container), 'href');
			ProductHelper.createTabs() 
		});
	},
	
	attachEvents: function () {
		this.thumbnails.click(function (e) { ProductHelper.changePhoto(e, this); });
	},
	
	changePhoto: function (e, obj) {
		e.preventDefault();
		obj = $(obj);
		
		if (!obj.hasClass(this.config.active_class)) {
			var obj_link = $('a', obj);
			
			this.photo.attr('src', obj_link.attr('href'));
			this.photo_caption.text(obj_link.attr('title'));
			
			$('#' + this.config.thumbnail_container_id + ' .' + this.config.active_class).removeClass(this.config.active_class);
			obj.addClass(this.config.active_class);
		}
	},
	
	createTabs: function () {
		$('> ul', this.product_content_container).tabs();
		
		var tabs = $('> ul a', this.product_content_container);
		
		tabs.each(function () {
			var obj = $(this);
			var details = $(obj.attr('href'));
			
			if (details.length == 0) {
				obj.parent().hide();
			}
		});
	},
	
	createCrossSell: function () {
		var productLength = $('#' + this.config.scroll_frame_id + ' li').length;
	
		if (productLength == 0) {
			$('#' + this.config.scroll_frame_id).hide();
		} else {
			$.getUniqueScript('/pages/v5/script/jquery/jquery.plugin.jcarousel.js', function () {
				$('#' + ProductHelper.config.scroll_view_id).jcarousel({
					size: productLength,
					scroll: ProductHelper.config.cross_sell.scroll
				});
			});
		}
	}
}

$(document).ready(function () {
	ProductHelper.initialize();
});