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();

	jQuery('.pass-title-expand span').click(function(){
		jQuery(this).parent().next().toggle('normal');
	});

	jQuery('.class-list-top li').click(function(){
		var position2scroll = jQuery('.passes-descr h3.' + jQuery(this).attr('class')).offset().top-30;
		jQuery('html,body').animate({scrollTop:position2scroll});
	});

	jQuery('.passes-descr h3 button').click(function(){
		var position2scroll = jQuery('#cart').offset().top-30;
		// changed to open after scroll (first maching)
		var h3class = jQuery(this).parent('h3').attr('class');
		jQuery('html').animate({scrollTop:position2scroll});
		jQuery('body').animate({scrollTop:position2scroll}, function() {
			list_items.find('dt[class~="' + h3class + '"]:eq(0)').click();
		});
	});

	list_items.find('dt').click(function(){
		jQuery(this).next('dd').slideToggle('normal', function(){
			if(jQuery.browser.msie){
				jQuery(this).find('input[type=text]:first').select();
			}else{
				jQuery(this).find('input[type=text]:first').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 parObj = jQuery(this).parent().parent();
		var sDescription = parObj.find('input.d1').val();
		if(parObj.find('input.d2').val() != ''){
			sDescription = sDescription + ', ' + parObj.find('input.d2').val();
		}
		if(parObj.find('input.d3').val() != ''){
			sDescription = sDescription + ', ' + parObj.find('input.d3').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="Details" />\
				<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){
	var inputContainers = text_input.parent().parent();
	if(inputContainers.find('.d1').val() && inputContainers.find('.d2').val() && inputContainers.find('.d3').val()){
		inputContainers.find('button').attr('disabled', '');
	} else {
		inputContainers.find('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();
	}
}
