jQuery(document).ready(function () {
	var list_items = jQuery('#list-items');
	var cart_items = jQuery('#cart-items');
	
	var list_items_text = list_items.find('input[type="text"]');
	var list_items_add = list_items.find('button');
	var list_items_radio = list_items.find('.item-options-radio input[type=radio]');
	
	var cart_items_tbody = cart_items.find('tbody');
	
	updateCartStatus();
	
	list_items.find('dt').click(function(){
		jQuery(this).next('dd').slideToggle('normal', function(){
			if(jQuery.browser.msie){
				jQuery(this).find('input[type=text]').select();
			}else{
				jQuery(this).find('input[type=text]').focus();
			}
		});
	});
	
	list_items_text.bind('focus blur keyup', function() { check_button_status(jQuery(this)) }).each( function() { check_button_status(jQuery(this)) });
	
	list_items_radio.click(function(){ list_items.find('.item-options-radio input[type=text]').attr('disabled', '') });
	
	list_items_text.bind('focus', function() { jQuery(this).select(); });
	
	list_items.find('.item-options button').click(function(){
		var sTitle = jQuery(this).parent().parent().prev().find('.item-title').text();
		var sPrice = jQuery(this).parent().parent().prev().find('.item-price').text();
		var sDescription = jQuery(this).prev('input').val();
		
		jQuery(this).parent().parent().slideToggle();
		
		addItemToCart(sTitle, sDescription, sPrice);
	});
	
	list_items.find('.item-options-radio button').click(function(){
		var sTitle = jQuery('#cc-list').find('input[type=radio]:checked').parent().find('.item-title').text();
		var sPrice = jQuery('#cc-list').find('input[type=radio]:checked').parent().find('.item-price').text();
		var sDescription = jQuery(this).prev('input').val();
		
		jQuery(this).parent().parent().slideToggle();
		
		addItemToCart(sTitle, sDescription, sPrice);
		
	});
	
	
	cart_items.find('.but-empty').click(function(){
		cart_items_tbody.empty();
		updateCartStatus()
	});
	
	cart_items.find('.but-checkout').click(function(){
		cart_items_tbody.find('tr').each(function(i){
			var sTitle = jQuery(this).find('.item-title').text();
			var sPrice = jQuery(this).find('.ci-price').text();
			var sDescription = jQuery(this).find('.item-description').text();
			
			var sItem = '\
				<input type="hidden" name="item_name_' + (i+1) + '" value="' + sTitle + '" />\
				<input type="hidden" name="on0_' + (i+1) + '" value="Full Name" />\
				<input type="hidden" name="os0_' + (i+1) + '" value="' + sDescription + '" />\
				<input type="hidden" name="amount_' + (i+1) + '" value="' + sPrice.substr(1) + '" />'
			
			jQuery('#paypal-form').append(sItem);
		});
		
		jQuery('#paypal-form').submit();
	});
	
});

/* Functions */

function addItemToCart(sTitle, sDescription, sPrice){
	var cart_items = jQuery('#cart-items');
	var cart_items_tbody = cart_items.find('tbody');
	
	cart_items_tbody.append('<tr><td class="ci-title"><span class="item-title">' + sTitle + '</span><br /><span class="item-description">' + sDescription + '</span>' + '</td><td class="ci-price">' + sPrice + '</td><td><span class="del" title="Delete item">×</span></td></tr>');
	updateCartStatus();
	cart_items_tbody.find('.del').click ( function(){
		jQuery(this).parent().parent().remove();
		updateCartStatus();
	});
}

function check_button_status(text_input){	
	if(text_input.val()){
		text_input.next('button').attr('disabled', '');
	} else {
		text_input.next('button').attr('disabled', 'disabled');
	}
}

function updateCartStatus(){
	var cart_items = jQuery('#cart-items');
	var iTotal = 0;
	var i = 0;
	
	cart_items.find('tbody tr td.ci-price').each(function(i){
		iTotal += parseFloat(jQuery(this).text().substr(1));
	});
	
	cart_items.find('tfoot td.ci-price').text('$' + iTotal.toFixed(2));
	
	if(cart_items.find('tbody tr td.ci-price').length == 0) {
		jQuery('#cart-items .cart').hide();
		jQuery('#cart-items .cart-empty').show();
	} else {
		jQuery('#cart-items .cart').show();
		jQuery('#cart-items .cart-empty').hide();
	}
}