try
{

$(function()
{
	// Menu navigatie
	$("#nav ul li").css({'opacity' : '0.95'});
	$("#nav li").hover(
		function() { $(this).find("ul").fadeIn(300); },
		function() { $(this).find("ul").fadeOut(300); }
	);

	// De eerste inputbox focussen en de tekst erin selecteren
	$('#lijst .product_count:first').focus().select();

	// Scherm blokkeren bij ajax request
	$().ajaxStart(function() {
		$.blockUI({ message: 'Even geduld a.u.b.', css: { padding: '20px'} });
	});
	// Scherm blokkering opheffen na ajax request
	$().ajaxStop(function() {
		$.unblockUI();
	});

	// Variabelen
	var categories_cached = [];
	var dialogOptions = {
		modal: true,
		overlay: { 'background-color': '#000000', 'opacity': '0.7' },
		resizable: false,
		draggable: false,
		title: 'Bevestiging',
		width: '500px'
	};


	// 'Volgende' knop disabled maken
	if(document.getElementById('dont_allow'))
	{
		$('.next_form_submit').removeAttr('href');
		$('.next_form_submit').css('color', '#BDB3BF');
	}


	if(document.getElementById('order_too_late_dialog'))
	{
		$("#order_too_late_dialog").html('U kunt op deze website uw bestelling voor morgen tot maximaal 15.00 uur doorgeven. Bel 020-6170310 om te overleggen wat u nog kunt bestellen. Wilt u uw bestelling nu uitprinten?');
		$("#order_too_late_dialog").dialog($.extend(dialogOptions, {
			buttons:
			{
				'Ja': function()
				{
					var print_screen = window.open('/bestellen/print','Bestelling','width=600,height=500');
					print_screen.print();
					
					$(this).dialog('destroy');
				},
				'Nee': function()
				{
					$(this).dialog('destroy');
				}
			},
			close: function()
			{
				$(this).dialog('destroy');
			}
		}));
	}


	// Zoekveld: Enter afvangen
	$.fn.search_enter = function()
	{
		this.keydown(function(e)
		{
			var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
			if(key == 13)
			{
				$('#btn_search_products').trigger('click');
				return false;
			}
		});
	}
	$("input#product_search").search_enter();


	// Zoekveld: alleen zoeken of (op de indexpagina) eerst producten submitten en hierna zoeken
	$('#btn_search_products').click(function()
	{
		if(document.getElementById('submit_and_search'))
		{
			// De producten updaten, en hierna zoeken
			$('#search').removeAttr('value');
			$('#search').val( $('#product_search').val() );
			document.orderform.action = '/bestellen/search_products';
			document.orderform.submit();
		}
		else
		{
			// Direct zoeken zonder producten te updaten
			document.searchform.submit();
		}
	});


	// Lijst leegmaken? Om bevestiging vragen
	$('#btn_empty_list').click(function()
	{
		return confirm('Bestellijst met producten leegmaken?');
	});


	// Met de 'Enter' toets naar een volgend input veld gaan
	$.fn.input_enter = function()
	{
		this.keydown(function(e)
		{
			var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
			
			// Het pijltje naar boven (38) afvangen
			if(key == 38)
			{
				var previousTab = this.tabIndex - 1;
				if($(":input[tabindex = '" + previousTab + "']")) $(":input[tabindex='" + previousTab + "']").focus().select();
				return false;
			}
			
			// De 'Enter' key (13) en het pijltje naar onder (40) afvangen
			if(key == 13 || key == 40)
			{
				var nextTab = this.tabIndex + 1;
				if($(":input[tabindex = '" + nextTab + "']")) $(":input[tabindex='" + nextTab + "']").focus().select();
				return false;
			}
			
			// Alleen numerieke waardes doorlaten + pijltje links (37) en rechts (39)
			if(key > 95 && key < 106) return this;
			if((key > 31 && (key < 48 || key > 57)) && key != 37 && key != 39 && key != 188) return false;
		});
		return this;
	}
	$("input.product_count").input_enter();


	// Datepicker
	if(document.getElementById('datepicker')) {
		$("#datepicker").datepicker(
		{
			minDate: '+1D',
			beforeShowDay: noWeekends,
			dateFormat: 'dd-mm-yy',
			dayNamesMin: ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'],
			firstDay: 1,
			monthNames: ['Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December'],
			onSelect: function(dateText, inst)
			{
				if(dateText == $('#current_date').text())
				{
					$('.next_form_submit').removeAttr('href');
					$('.next_form_submit').css('color', '#BDB3BF');
				}
				else
				{
					$('.next_form_submit').attr('href', 'javascript:document.orderform.submit();');
					$('.next_form_submit').css('color', '#FFFFFF');
				}
			}
		});
	}
	// Geen weekends tonen in de datepicker
	function noWeekends(date) {
		var day = date.getDay();
		if(day == 0 || day == 6) 	return [''];
		else 						return [day];
	};


	// Bij producten toevoen: Categorie inhoud ophalen
	$('a.meinders-category').each(function() {
		$(this).EventListener('requestCategory', 'ProductCategory',
		{
			beforeSend: function(data, event)
			{
				data.category_id = $(this).attr('rel');
			},
			onSuccess: function(data)
			{
				var el = $('.products_container[rel=' + data.category_id + '] tbody');
				
				el.html(data.response);
				
				categories_cached.push(data.category_id);
			}
		});
	});



	// Een product verwijderen uit de lijst (click)
	$('.btnRemoveProduct').click(function() {
		$("#dialog").html('Wilt u dit product echt verwijderen?');
		
		var id = $(this).attr('rel');
		
		$("#dialog").dialog($.extend(dialogOptions, {
			buttons:
			{
				'Ja': function()
				{
					$('.btnRemoveProduct[rel='+ id +']').trigger('ProductRemove');
					/*
					$.post(
						$('meta[name=imano-page-url]').attr('content') + 'ProductRemove',
						{product_id: id, type: 'sole'},
						function(data, text) {},
						'json'
					);
					*/
					$(this).dialog('destroy');
				},
				'Nee': function()
				{
					$(this).dialog('destroy');
				}
			},
			close: function()
			{
				$(this).dialog('destroy');
			}
		}));
	});


	// Een product verwijderen uit de lijst
	$('.btnRemoveProduct').EventListener('ProductRemove', 'ProductRemove', {
		beforeSend: function(data, event)
		{
			data.product_id = $(this).attr('rel');
			data.category_id = $(this).attr('ref');
		},
		onSuccess: function(data)
		{
			if(data.result == 1)
			{
				$('.returning[rel='+data.product_id+']').remove();
				
				// Kijken of er nog producten in de categorie staan, zoniet, dan de categorie balk ook verwijderen
				var products = 0;
				$('tr[ref=' + data.category_id + ']').each(function(){ products = products + 1; });
				if(products == 0)
				{
					$('.mainbar_category_' + data.category_id).remove();
				}
			}
			else
			{
				alert('Er is iets fout gegaan, probeer de pagina te verversen om het product als nog toe te verwijderen');
			}
		}
	});


	// Een product toevoegen aan de bestellijst
	$('.btnAddProduct').EventListener('click', 'ProductAdd', {
		useLive: true,
		beforeSend: function(data, event)
		{
			data.product_id = $(this).attr('rel');
			data.product_count = $('.product_count[rel='+ $(this).attr('rel') +']').val();
		},
		onSuccess: function(data)
		{
			if(data.result == 1)
			{
				$('.extra[rel='+ data.product_id +']').html('In bestelling...');
			}
			else
			{
				alert('Er is iets fout gegaan, probeer de pagina te verversen en probeer het opnieuw');
			}
		}
	});


	// Categorie inhoud ophalen
	$('a.meinders-category').toggle(
		function()
		{
			var category_id = $(this).attr('rel');
			var el = $('.products_container[rel=' + category_id + ']');
			
			if($.inArray(category_id, categories_cached) == -1)
			{
				$('a.meinders-category[rel=' + category_id + ']').trigger("requestCategory");
			}
			
			el.css('display', 'block');
		},
		function()
		{
			var category_id = $(this).attr('rel');
			var el = $('.products_container[rel=' + category_id + ']');
			
			el.css('display', 'none');
		}
	);
});
} catch (e) {
	// Jquery is niet geladen..
}
