var _debug = false;
var timeout_id, cart_timeout_mseconds = 600, spinner_delay_mseconds = 1000;

var printObject = {
	print_item:'',
	product_id:0,
	retail_price_pound:0,
	discount_price_pound:0,
	sku_old:'',
	sku_new:'',
	is_discounted:false,

	init: function(print_item)
	{
		if(_debug) console.log('init: print_item=' + print_item);
		this.print_item = print_item
		this.set_product_id(print_item.product_id);
		this.set_retail_price_pound(print_item.retail_price_pound);
		this.set_discount_price_pound(print_item.discount_price_pound);
		this.set_is_discounted(this.retail_price_pound, this.discount_price_pound);
		this.set_sku_old(print_item.sku_old);
		this.set_sku_new(print_item.sku_new);
	},

	get_product_id: function()
	{
		return this.product_id
	},

	set_product_id: function(id)
	{
		this.product_id = id
	},

	set_retail_price_pound: function(retail_price_pound)
	{
		this.retail_price_pound = retail_price_pound
	},

	set_discount_price_pound: function(discount_price_pound)
	{
		this.discount_price_pound = discount_price_pound
	},

	set_is_discounted: function(retail_price_pound, discount_price_pound)
	{
		if(_debug) console.log('is_discounted:retail_price_pound=' + retail_price_pound + ' discount_price_pound=' + discount_price_pound);
		if((retail_price_pound - discount_price_pound) > 0);
		{
			if(_debug) console.log('is_discounted:true');
			this.is_discounted = true
		}
	},

	set_sku_old: function(sku_old)
	{
		this.sku_old = sku_old
	},

	set_sku_new: function(sku_new)
	{
		this.sku_new = sku_new
	},

	get_item_price: function()
	{
		if(this.is_discounted)
		{
			return this.discount_price_pound
		}
		else
		{
			return this.retail_price_pound
		}
	}
}

var pageObject = {
	item_price:0,
	full_price:0,
	quantity:1,
	max_quantity:999,

	sync: function()
	{
		if(_debug) console.log('sync');
		this.set_product_id(printObject.get_product_id());
		this.set_item_price(printObject.get_item_price());

		quantity = this.validate_quantity(this.get_quantity());
		this.set_quantity(quantity);
		this.set_full_price();
		this.display_item(printObject.get_product_id());
	},

	get_quantity: function()
	{
		quantity = $('#quantity').val();
		return quantity
	},

	set_product_id: function(id)
	{
		if(_debug) console.log('set_product_id:' + id);
		$('#productID').val(id);
	},

	set_item_price: function(price)
	{
		if(_debug) console.log('set_item_price:' + price);
		price = parseFloat(price);
		this.item_price = price.toFixed(2);
		$('#item-price').val(this.item_price);
		$('.item-price').html(this.item_price);
	},

	set_full_price: function()
	{
		this.full_price = (this.item_price * this.quantity).toFixed(2);
		$('#full-price').html(this.full_price);
	},

	set_quantity: function(quantity)
	{
		if(_debug) console.log('set_quantity:' + quantity);
		this.quantity = quantity
		this.update_quantity(quantity);
	},

	validate_quantity: function(quantity)
	{
		if(_debug) console.log('validate_quantity:' + quantity);
		q = parseInt(quantity);
		if(q < 1 || !this.isNumber(q))
		{
			q = 1;
		}

		if(q > this.max_quantity)
		{
			q = this.max_quantity
		}

		return q
	},

	update_quantity: function(quantity)
	{
		if(_debug) console.log('quantity:' + quantity);
		$('#quantity').val(quantity);
	},

	find_index_by_product_id: function(id)
	{
		if(_debug) console.log('find_index_by_product_id:' + id);
        var found = false;

        $.each(print_items, function(index, value){
            if(value.product_id == id)
            {
                if(_debug) console.log('find_index_by_product_id: found, index=' + index);
                found = index;
                return false; // Break out of each loop
            }
        });

		return found;
	},

	isNumber: function(n) {
		return !isNaN(parseFloat(n)) && isFinite(n);
	},

	display_item: function(product_id)
	{
		if(_debug) console.log('display_item:product_id=' + product_id);
		var selected_id = 'product-' + product_id

        $('.product-info-table').removeClass('selected');
        $('.product-info-table tbody').hide();

        $('#table-' + product_id + ' tbody').show();
        $('#table-' + product_id).addClass('selected');


        $('#radio-' + product_id).attr('checked', 'checked');
	}
}

$(document).ready(function(){
    $('input[name=product-size]').live('change', function(e){
		e.preventDefault();
		var id = $(this).attr('id');
		var tmp = id.split('-');
		var product_id = tmp[1];
		var product_index = pageObject.find_index_by_product_id(product_id);
		printObject.init(print_items[product_index]);
		pageObject.sync();
	});

	$('#quantity').live('change blur keyup', function(){
		pageObject.sync();
	});

	$('.search-form-text, #quantity').focus(
		function()
		{
			this.select();
		}
	);

	// Place focus on search box...
	$('.search-form-text').focus();

	// ... unless the quantity box is available, then select that one
	$('#quantity').focus().select();

	$('#cart-link').live('mouseenter', function(){
		if(_debug) console.log('timeout cleared: ' + timeout_id + ' cart.mouseenter');
		clearTimeout(timeout_id);
		$('#mini-cart').show();
	});

	$('#cart-link').live('mouseleave', function(){
		if(_debug) console.log('timeout set: ' + timeout_id + ' cart.mouseleave');
		timeout_id = setTimeout('hide_mini_cart()', cart_timeout_mseconds);
	});

	$('#mini-cart').live('mouseenter', function(){
		if(_debug) console.log('timeout cleared: ' + timeout_id + ' mini-cart.mouseenter');
		clearTimeout(timeout_id);
		$('#mini-cart').show();
	});

	$('#mini-cart').live('mouseleave', function(){
		timeout_id = setTimeout('hide_mini_cart()', cart_timeout_mseconds);
		if(_debug) console.log('timeout set: ' + timeout_id + ' mini-cart.mouseleave');
	});

	$('#mini-cart').live('click', function(e){
		e.stopPropagation();
	});

	$('#mini-cart-close').live('click', function(){
		hide_mini_cart();
		return false
	});

	$('#addToBasket').submit(function(){
		$('.add-to-cart-button').hide();
		$('.spinner').show();
	});
});

function hide_mini_cart()
{
	if($('#mini-cart').is(':visible'));
	{
		$('#mini-cart').fadeOut();
	}
}

/**
 * jQuery Cookie plugin
 * Copyright (c) 2010 Klaus Hartl (stilbuero.de);
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
jQuery.cookie=function(key,value,options){if(arguments.length>1&&(value===null||typeof value!=="object")){options=jQuery.extend({},options);if(value===null){options.expires=-1;}
if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setDate(t.getDate()+days);}
return(document.cookie=[encodeURIComponent(key),'=',options.raw?String(value):encodeURIComponent(String(value)),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}
options=value||{};var result,decode=options.raw?function(s){return s;}:decodeURIComponent;return(result=new RegExp('(?:^|; )'+encodeURIComponent(key)+'=([^;]*)').exec(document.cookie))?decode(result[1]):null;};

