window.addEvent('domready', function()
{
	if($('basket_added'))
	{
		var basket_background = $('basket_added').getElement('div.background');
		var basket_window = $('basket_added').getElement('div.window');
		var basket_window_button_close = basket_window.getElement('a.close');

		function close_basket_window()
		{
			basket_background.hide();
			basket_window.hide();
		}

		basket_background.addEvent('click', function(e)
		{
			close_basket_window();
		});

		basket_window_button_close.addEvent('click', function(e)
		{
			e.preventDefault();
			close_basket_window();
		});
	}

	if($('basket_list'))
	{
		$('basket_list').getElements('div.entry').each(function(item)
		{
			var loader = item.getElement('div.loader');
			var price_total = $('basket_list').getElement('div.price_complete span.the_price');
			var amount_total = $('basket_list').getElement('div.price_complete span.the_amount');
			var price_total_sidebar = $('basket_sum').getElement('.price_total span');
			var item_price_total = item.getElements('span.the_price');
			var item_price_total_sidebar = $('basket_sum').getElement('.price-'+item.get('id')+' span');
			var sample_checkbox = item.getElement('input.sample');

			var more_div = item.getElement('div.more');
			// var more_div_slide = new Fx.Slide('more-'+item.get('id'), {duration: 200});
			var btn_more_show = item.getElement('div.button_more a.btn_show');
			var btn_more_hide = item.getElement('div.button_more a.btn_hide');

			sample_checkbox.addEvent('click', function(e) {
				btn_save.click();
			});

			btn_more_show.addEvent('click', function(e) {
				e.preventDefault();

				btn_more_show.hide();
				btn_more_hide.show();

				more_div.show();
			});
			
			btn_more_hide.addEvent('click', function(e) {
				e.preventDefault();

				btn_more_show.show();
				btn_more_hide.hide();

				more_div.hide();
			});

			if(item.getElement('div.more_prices'))
			{
				item.getElement('input.product_print_yes').addEvent('click', function(e)
				{
					item.getElement('div.printtypes').show();
				});

				item.getElement('input.product_print_no').addEvent('click', function(e)
				{
					item.getElement('div.printtypes').hide();
				});

				item.getElement('a.btn_show').addEvent('click', function(e)
				{
					e.preventDefault();
					item.getElement('div.more_prices').show();
					item.getElement('a.btn_show').hide();
					item.getElement('a.btn_hide').show();
				});
				
				item.getElement('a.btn_hide').addEvent('click', function(e)
				{
					e.preventDefault();
					item.getElement('div.more_prices').hide();
					item.getElement('a.btn_show').show();
					item.getElement('a.btn_hide').hide();
				});
			};
			
			var radios = item.getElements('div.sellpricetable input');
			radios.each(function(radio_el) {
				radio_el.addEvent('change', function(e) {
					btn_save.show();
					btn_more_hide.hide();
				});
			});
			
			var pricecolors = item.getElement('div.price div.colors');
			if(pricecolors)
			{
				var num_pricecolors_active = item.getElements('table.coloramount.visible').length;
			    pricecolors.getElements('a').each(function(color_a) {
			        color_a.addEvent('click', function(e) {
			            e.preventDefault();
                        
                        color_a.toggleClass('selected');
                        
                        var colortable = $('colortable-'+color_a.get('id'));
                        //colortable.toggle();
                        colortable.toggleClass('hide');
                        colortable.toggleClass('visible');
                        
                        if(colortable.hasClass('visible'))
		                { num_pricecolors_active++; }
		                else
		                { num_pricecolors_active--; }

		                if(num_pricecolors_active == 0)
		                { item.getElement('div.colors_seizes p.infobox').addClass('hide'); }
		                else
			            { item.getElement('div.colors_seizes p.infobox').removeClass('hide'); }

                        btn_save.show();
                        btn_more_hide.hide();
    				});
			    });
			    
			    item.getElements('table.coloramount input').each(function(coloramount_input) {
			        coloramount_input.addEvent('keydown', function(e) {
			            btn_save.show();
			            btn_more_hide.hide();
    				});
			    });

			    item.getElements('table.coloramount a.delete').each(function(coloramount_delete) {
			        coloramount_delete.addEvent('click', function(e) {
						e.preventDefault();

						// get the id
						var id = coloramount_delete.get('id');
						id = id.split('-');

						// get the colorbox and deselect it
						$(id[1]).toggleClass('selected');

						// get the table and hide it
						var colortable = $('colortable-'+id[1]);
						colortable.toggleClass('hide');
						colortable.toggleClass('visible');

						num_pricecolors_active--;

						if(num_pricecolors_active == 0)
						{ item.getElement('div.colors_seizes p.infobox').addClass('hide'); }
						else
						{ item.getElement('div.colors_seizes p.infobox').removeClass('hide'); }

						// clck the save button
						btn_save.click();
    				});
			    });
			}
			
			var product_count = item.getElement('div.product_count input');
			if(product_count)
			{
    			product_count.addEvent('keydown', function (e) {
    				btn_save.show();
    				btn_more_hide.hide();
    			});
    			
    			var product_color = item.getElement('div.product_color input');
    			product_color.addEvent('keydown', function (e) {
    				btn_save.show();
    				btn_more_hide.hide();
    			});
			}
			
			var product_print = item.getElements('div.product_print input');
			product_print.each(function(product_print_el) {
				product_print_el.addEvent('change', function (e) {
					// clck the save button
					btn_save.click();
				});
			});
			
			var product_message = item.getElement('div.product_message input.notes');
			product_message.addEvent('keydown', function (e) {
				btn_save.show();
				btn_more_hide.hide();
			});
			
			var btn_save = item.getElement('div.btn_save');
			btn_save.addEvent('click', function(e) {
				e.preventDefault();
				
				loader.show();
				btn_save.hide();
				
				var data = {};
				data['print'] = item.getElements('div.product_print input:checked').get('value');
				data['notes'] = product_message.get('value');
				data['sample'] = sample_checkbox.get('checked');

				if(product_count)
				{
				    data['count'] = product_count.get('value');
				    data['color'] = product_color.get('value');
			    }
				
				if(pricecolors)
    			{
    			    item.getElements('table.coloramount.visible input').each(function(coloramount_input) {
    			        if(coloramount_input.get('value'))
    			            data[coloramount_input.get('name')] = coloramount_input.get('value');
    			    });
    			}
				
				var pricevariant_id = item.getElement('div.sellpricetable input:checked');
				if(pricevariant_id)
				{
					data['pricevariant_id'] = pricevariant_id.get('value');
				}

				var req = new Request({
					url 		: config__base_url+'artikel/vorgemerkt/speichern/'+item.get('id'),
					data		: data,
					onSuccess 	: function(response)
					{
						//alert(response);
						responseJSON = JSON.decode(response);
						
						item_price_total.each(function(el) {
							el.set('html', responseJSON.new_basket_entry_price);
						});
						// item_price_total_sidebar.set('html', responseJSON.new_basket_entry_price);
						
						price_total.set('html', responseJSON.new_basket_total);
						// price_total_sidebar.set('html', responseJSON.new_basket_total);
						
						amount_total.set('html', responseJSON.new_basket_total_amount);

						item.getElements('span.color_total_amount').set('html', '');
						sizetable_new_amounts = JSON.decode(responseJSON.sizetable_new_amounts);
						for(obj in sizetable_new_amounts)
						{
							el = $$('table#colortable-'+obj+' span.color_total_amount');
							el.set('html', sizetable_new_amounts[obj]+' x ');
						}

						item.getElements('span.basket_entry_total_amount').set('html', responseJSON.new_basket_entry_total_amount+' x ');

						loader.hide();

						if(more_div.getStyle('display') != 'none')
							btn_more_hide.show();
					}
				}).send();
			});
		});
	}
	
	function isNumber(n) {
	  return !isNaN(parseFloat(n)) && isFinite(n);
	}
});
