var artikel_v2_btnMore;
var artikel_v2_btnMoreTable;

var productID;
var eigID;

var iAantalErrors;

var bChecklogin = false;

var fTotaal = 0;

var GLOBAL = {};

var ready = false;


$(document).ready(function()
{
	// Global (vermijd global variables)
	window.ie6 = ($.browser.msie && parseInt($.browser.version) <= 6);
	window.ie7 = ($.browser.msie && parseInt($.browser.version) == 7);
	
	$("#catgs li.active > ul").slideDown("fast");

	setModalDefaults();
	
	bindInputEvents();
    
    	bindVideo();
    	bindModalClose();

	getNrFavorites();
	getNrVergelijk();
	getNrCart();
	getNrOfferte();
	zebraStripeTables();

	bindEvents();

	if (showlogin)
	{
		if (!$("#userTab").hasClass('ingelogd'))
		{
			$("#userTab").addClass('active');
			$("#favPanel").hide();
			$("#cartPanel").hide();
			$("#userPanel").toggle();
		}
	}

});

function bindEvents()
{
	bindShopNav();
	bindAlgemeen();
	bindPanel();
    beautifyFooter();
	maxMainHeight();
	
	switch($("body").attr('id'))
	{
		case 'pageHome2':
        	case 'pageHome':            	homeVisual();
                	                    	break;
        	case 'pageProductDetail_A':
        	case 'pageProductDetail':	soapProductDetail();
						bindProductDetail();
                                    		break;
		case 'pageSearch':          	bindSearch();
		case 'pageSale':
		case 'pageCategory':		bindOverzicht();
                                    		break;

		case 'pageCompare':         	bindCompare();	
                                   		break;
		case 'pageCheckout':		bindCheckout();
                                    		break;
		case 'pagePriceRequest':	bindPriceRequest();
                                    		break;
		case 'pageUser':
		case 'pageRegister':		bindUser();
                                    		break;	
		case 'pageContent':         	bindContent();
                                    		break;
		case 'pageReferenties':		bindReferenties();
                                    		break;
		case 'pageAddRef':         	bindReferenties();
                                    		break;
		case 'pageRefDetail':		bindProjectdetail();
                                    		break;
		case 'pageRefList':         	bindProjectlijst();
                                    		break;
		case 'pageVideo':           	bindVideo();
                                    		break;
		case 'pageContact':		bindContact();
						break;

//		case 'pageOfferte':		bindOfferte();
//						break;
	}
}

function zebraStripeTables() {
	
	$('table.zebra').each(function() {
		$(this).find('tr:even').addClass('even');
	});
}

function setModalDefaults()
{
	$.fn.createDialog.defaults = {
		progress: false,
		center: true,
		method: 'GET',
		data: '',
		opacity: 0.4,
		bg: '#000000',
		index: 2000
	};
}


/******************************************
    Home visual
******************************************/
function homeVisual() 
{
	if ($('#homeBanner').length == 0) return false;
	
	// Vars
	window.homeVisualInteraction = false;	// Legt vast of de user hovert over de visual. De automatische slideshow moet dan namelijk stoppen.

	if (visualtijd > 500)
	{
		overgangSnelheid = visualtijd;
	}
	else
	{
		overgangSnelheid = 3500;
	}
	
	// Elms
	var $visualsLis =  $('#homeBanner ul#visuals li');
	var $pagesUl = $('<ul id="visualPaging"></ul');
	$pagesUl.appendTo('#homeBanner');
	
	// Doorloop li's en maak paginanummer aan
	$visualsLis.each(function(index){
		if ($visualsLis.length == 1) return false;
		
		var $pageLi = $('<li>'+(index+1)+'</li>')
		$pageLi.appendTo($pagesUl);
		
		$pageLi.click(function(){
			showVisual(index)
		})
	})
	
	// Leg vast als er user interaction is
	$pagesUl.find('li').add($visualsLis).hover(function(){
		window.homeVisualInteraction = true;
	}, function(){
		window.homeVisualInteraction = false;
	});
		
	// Functions
	function slideShow() {
		if (window.homeVisualInteraction) return false;
		if(GLOBAL.currVisual == $visualsLis.length-1 ) GLOBAL.currVisual = -1;
		showVisual(GLOBAL.currVisual+1)
	}
	
	function showVisual(nummer) {
		if (GLOBAL.currVisual == nummer) return false;
		GLOBAL.currVisual = nummer;
		$pagesUl.find('li').removeClass('active')
		$pagesUl.find('li:eq('+nummer+')').addClass('active');

		$visualsLis.each(function(index){
			if(index == nummer) {
				$(this).css({display:'block', opacity:0,zIndex:10}).animate({opacity:1},500);
			} else {
				$(this).css({display:'block', zIndex:5}).animate({opacity:0},500);
			}
		})
	}
	
	// Init
	$visualsLis.css({display:'block', opacity:1});
	
	if($visualsLis.length > 1) {
		showVisual(0);
		GLOBAL.visualIv = setInterval(slideShow,overgangSnelheid)
	} else {
		$pagesUl.find('li:eq(0)').show();
	}
}

/*******************************************
	Footer mooi maken
*******************************************/

function beautifyFooter()
{
        var totLinks = $('#footer li').length;
        var width = (Math.floor((980/totLinks)))-1;
        $('#footer li').css({width:width-20+'px'})
}


/*******************************************
	BIND functies voor algemene zaken	
*******************************************/

function bindAlgemeen()
{    
	$(".makeempty").each(function() {
		$(this).val($(this).attr('title')).addClass('grayedOut')
	}).focus(function() {
		if($(this).val() == $(this).attr('title')) $(this).val('').removeClass('grayedOut')
	}).blur(function(){
		if($(this).val() == '') $(this).val($(this).attr('title')).addClass('grayedOut')
	}).trigger('blur')
	
	$("textarea.limited").maxlength({
		'feedback':'',
		'hardLimit':true,
		'useInput':false,
		'words':false
	});
	
	
	$("#widgNewsletter form").submit(function()
		{
			$.post("/ajax/saveNieuwsbrief.php",
				{
					naam: $("#newsLetterName").fieldValue(),
					email: $("#newsLetterAddress").fieldValue()
				},
				function()
				{
					$("#widgNewsletter form").unbind("submit");
					$("#widgNewsletter form").submit();
				}	
			);

			return false;
		}
	);

	$("#btnTellafriend").createDialog(
		{
			addr: '/ajax/modalTip.php',
			success: function() { bindModalTip() }
		}
	);

	$(".btnWWVergeten").createDialog(
		{
			addr: '/ajax/modalWachtwoordvergeten.php',
			success: bindModalWachtwoordvergeten
		}
	);

	$("#btnAsk").createDialog(
		{
			addr: '/ajax/modalAsk.php',
			success: bindModalAsk
		}
	);

	$("#btnPrint").click(
		function(e)
		{
			frames["printtemplate"].focus();
			frames["printtemplate"].print();
		}
	);	

	$(".btnCatalogus").createDialog(
		{
			addr: '/ajax/modalCatalogus.php',
			success: bindModalCatalogus
		}
	);

	$("#widgetBrochure .btn").createDialog(
		{
			addr: '/ajax/modalCatalogus.php',
			success: bindModalCatalogus
		}
	);

	$("#widgetMistake .btn").createDialog(
		{
			addr: '/ajax/modalVoutje.php',
			success: bindModalVoutje
		}
	);

	$(".btnContact").createDialog(
		{
			addr: '/ajax/modalContact.php',
			success: bindModalContact
		}
	);

	$("#loginForm").submit(
		function()
		{
			var email = $(this).find('input[name=email]').fieldValue();
			var wachtwoord = $(this).find('input[name=wachtwoord]').fieldValue();

			checkLogin(email, wachtwoord, 'loginForm');

			return false;
		}
	);

	$(".datepicker_levertijd").datepicker(
			{	
				minDate: 2 
			}
	);

	$("#btnSearch").click(
		function()
		{
			if ($("#search input[name=zoek]").val() == $("#search input[name=zoek]").attr("title"))
			{
				return false;
			}
		}
	);

//	$("#search #keywords").autocomplete("/ajax/getSuggest.php");


	$('#search #keywords').autocomplete('/front/magiccatalogus_v3/autocomplete.php', {
		extraParams: {
			lang: $('#searchlang').val()
		},
		minChars: 2,
		selectFirst: false,
		cacheLength: 1,
		formatItem: function(r) {
			l = (r[0] > 1) ? "resultaten" : "resultaat";
			//h = '<div><div class=ac1>' + r[1] + '</div><div class=ac2>' + r[0] + ' ' + l + '</div></div>';
			h = '<div><div class=ac1>' + r[1] + '</div></div>';
			return h;
		},
		formatResult: function(r) {
			return r[1];
		},
		width: 203
	});
	
	$('#search #keywords').result(function(event, data, formatted) {
		if (data) {
			$('#search').submit();
		}
	});

}

function bindPanel()
{
	$(".btnClosePanel").click(
		function(e)
		{
			$("#shopNav li").removeClass('active');
			$("#favPanel").hide();
			$("#cartPanel").hide();
			$("#userPanel").hide();
		}
	);
}

/*******************************************
	BIND functies per paginaID	
*******************************************/

function bindShopNav()
{
	

	$("#shopNav li a").click( 
		function(e)
		{
			var liElm = $(this).parent();
			if (liElm.hasClass("active"))
			{
				liElm.toggleClass("active");
				return false;
			}	
			liElm.parent().find("li").removeClass("active");	// Sluit andere tabs
			liElm.toggleClass("active");						// Maak de geklikte actief
		}
	);
	
	$("#shopNav li#favTab a").click(
		function(e)
		{
			$("#cartPanel").hide();
			$("#userPanel").hide();

			getFavorites()
			$("#favPanel").toggle();
		}
	);

	$("#shopNav li#cartTab a").click(
		function(e)
		{
			$("#favPanel").hide();
			$("#userPanel").hide();

			getCart()
			$("#cartPanel").toggle();
		}
	);

	$("#shopNav li#userTab a").click(
		function(e)
		{
			if (!$(this).hasClass('active'))
			{
				$("#favPanel").hide();
				$("#cartPanel").hide();
				$("#userPanel").toggle();
			}
		}
	);



}

function bindPriceRequest()
{
	$(".pageNav a").unbind("click");
	$(".pageNav a").click(
		function (e)
		{
			if ($(this).attr("rel"))
			{
				var sSoort = $("#pricerequestTableForm table").attr("id");
				getPriceRequestTable($(this).attr("rel"), sSoort);
			}

			return false;
		}
	);

	$(".btnIncrease").unbind("click");
	$(".btnIncrease").click(
		function (e)
		{
			var ID = $(this).parent("div").parent("td").parent("tr").attr("rel");
			var input = $(this).parent("div").find("input");
			var iAantal = Math.floor(input.val());
			var sOpmerkingen = $("."+ID+" .tdComment textarea").fieldValue();

			iAantal += 1;
			input.val(iAantal);

			updatePriceRequest(ID, iAantal, sOpmerkingen);
			getPriceRequestTable();
			return false;
		}
	);
	
// TODO: We moeten eigenlijk nog regelen dat alleen de regel wordt geupdate en niet de hele table
	$(".btnDecrease").unbind("click");
	$(".btnDecrease").click(
		function (e)
		{
			var ID = $(this).parent("div").parent("td").parent("tr").attr("rel");
			var input = $(this).parent("div").find("input");
			var iAantal = Math.floor(input.val());
			var sOpmerkingen = $("."+ID+" .tdComment textarea").fieldValue();

			iAantal -= 1;

			if (iAantal == 0)
			{
				delPriceRequest(ID);
			}
			else
			{
				updatePriceRequest(ID, iAantal, sOpmerkingen);
			}

			getPriceRequestTable();
			return false;
		}
	);
	
	$(".btnRemove").unbind("click");
	$(".btnRemove").click(
		function(e)
		{
			var artikelID = $(this).attr("rel");
			delPriceRequest(artikelID);
			getPriceRequestTable();
			return false;
		}
	);

	$(".inputAmount").unbind("blur");
	$(".inputAmount").blur(
		function(e)
		{
			var ID = $(this).parent("div").parent("td").parent("tr").attr("rel");
			var iAantal = $(this).val();
			var sOpmerkingen = $("."+ID+" .tdComment textarea").fieldValue();

			if (iAantal > 0)
			{
				updatePriceRequest(ID, iAantal, sOpmerkingen);
			}
			else
			{
				delPriceRequest(ID);
			}

			getPriceRequestTable();
			return false;
		}
	);

	$(".inputComment").unbind("blur");
	$(".inputComment").blur(
		function(e)
		{
			var ID = $(this).parent("td").parent("tr").attr("rel");
			var sOpmerkingen = $(this).fieldValue();
			var iAantal = $("."+ID+" .tdAmount input").attr('value');

			updatePriceRequest(ID, iAantal, sOpmerkingen);

			getPriceRequestTable();
			return false;
		}
	);

	$("#checkoutLoginForm .submit").unbind("click");
	$("#checkoutLoginForm .submit").click(
		function(e)
		{
			$("#checkoutLoginForm").submit();
		}
	);

	$("#saveForm .submit").unbind("click");
	$("#saveForm .submit").click(
		function(e)
		{
			$("#saveForm input").each(
				function()
				{
					if ($(this).val() == $(this).attr('title'))
					{
						$(this).val('');
					}
				}
			);
			validate("saveForm");

			if (iAantalErrors == 0)
			{
				$("#saveForm").submit();
			}
			else
			{
				$("#saveForm input").each(
					function()
					{
						if ($(this).val() == '')
						{
							$(this).val($(this).attr('title'));
						}
					}
				);
			}
		}
	);
	
		

/*	$(".btnSide").unbind("click");
	$(".btnSide").click(
		function(e)
		{
			validate("checkoutLoginForm");

			if (iAantalErrors == 0)
			{
				$("#checkoutLoginForm .errorMsg").hide();

				$("#checkoutLoginForm").attr('action', 'save.php');
				$("#checkoutLoginForm").attr('method', 'post');
				$("#checkoutLoginForm").submit();
			}
			else
			{
				$("#checkoutLoginForm .errorMsg").show();
			}
		}
	);
*/
/*
	$("#btnMed").unbind("click");
	$("#btnMed").click(
		function(e)
		{
			getCheckoutTable();
		}
	);

	$("#related .btnToOrder").unbind("click");
	$("#related .btnToOrder").click(
		function(e)
		{
			var artikelID = $(this).parent().find('.artikelnr span').text();
			var key = $(this).parent().attr("id");

			toCart(artikelID, key);
			getCheckoutTable();

			return false;
		}
	);

	$("#checkoutLoginForm .submit").unbind("click");
	$("#checkoutLoginForm .submit").click(
		function(e)
		{
			$("#checkoutLoginForm").submit();
		}
	);

	$("[name=verzendmethode]").click(
		function(e)
		{
			if ($(this).attr('class') == 'afhalen')
			{
				$("#vestigingen").show();
			}
			else
			{
				$("#vestigingen").hide();
			}
		}
	);
*/
}

function bindUser()
{

// We moeten het afleveradres even goed zetten:
//
	$("#addressDeliveryForm").removeClass("disabled");
	$("#addressDeliveryForm input").removeAttr("disabled");
	$("#addressDeliveryForm select").removeAttr("disabled");

	if ($("#addressDeliveryForm input[name=afwadres]").fieldValue() == '0')
	{
		$("#addressDeliveryForm").addClass('disabled');
		$("#addressDeliveryForm input[name!=afwadres]").attr('disabled','disabled');
		$("#addressDeliveryForm select").attr('disabled','disabled');
	}

	$("#companyDeliveryForm").removeClass("disabled");
	$("#companyDeliveryForm input").removeAttr("disabled");
	$("#companyDeliveryForm select").removeAttr("disabled");

	if ($("#companyDeliveryForm input[name=soort]").fieldValue() == 'particulier')
	{
		if ($("#telprive label").hasClass("fac"))
		{
			var tmp = $("#telprive label").attr("title");
			$("#telprive label").attr("title", $("#telprive label").text());
			$("#telprive label").text(tmp);
			$("#telprive label").removeClass("fac");
			$("#telprive label").addClass("required");

			if (!$("#telprive input").hasClass("required"))
			{
				$("#telprive input").addClass("required");
			}
		}

		$("#companyDeliveryForm").addClass('disabled');
		$("#companyDeliveryForm input[name!=soort]").attr('disabled','disabled');
		$("#companyDeliveryForm select").attr('disabled','disabled');
	}
	else
	{
		if ($("#telprive label").hasClass("required"))
		{
			var tmp = $("#telprive label").attr("title");
			$("#telprive label").attr("title", $("#telprive label").text());
			$("#telprive label").text(tmp);
			$("#telprive label").removeClass("required");
			$("#telprive label").addClass("fac");
			$("#telprive input").removeClass("required");
		}
	}

	$(".btnMed").unbind("click");
	$(".btnMed").click(
		function(e)
		{
			validate("registerForm");

			if (iAantalErrors == 0)
			{
				$("#registerForm").submit();
			}
		}
	);

	$("[name=afwadres]").unbind("click");
	$("[name=afwadres]").click(
		function(e)
		{
			$("#addressDeliveryForm").removeClass("disabled");
			$("#addressDeliveryForm input").removeAttr("disabled");
			$("#addressDeliveryForm select").removeAttr("disabled");

			if ($(this).fieldValue() == '0')
			{
				$("#addressDeliveryForm").addClass('disabled');
				$("#addressDeliveryForm input[name!=afwadres]").attr('disabled','disabled');
				$("#addressDeliveryForm select").attr('disabled','disabled');
			}
		}
	);

	$("[name=soort]").unbind("click");
	$("[name=soort]").click(
		function(e)
		{
			$("#companyDeliveryForm").removeClass("disabled");
			$("#companyDeliveryForm input").removeAttr("disabled");
			$("#companyDeliveryForm select").removeAttr("disabled");

			if ($(this).fieldValue() == 'particulier')
			{
				if ($("#telprive label").hasClass("fac"))
				{
					var tmp = $("#telprive label").attr("title");
					$("#telprive label").attr("title", $("#telprive label").text());
					$("#telprive label").text(tmp);
					$("#telprive label").removeClass("fac");
					$("#telprive label").addClass("required");

					if (!$("#telprive input").hasClass("required"))
					{
						$("#telprive input").addClass("required");
					}
				}

				$("#companyDeliveryForm").addClass('disabled');
				$("#companyDeliveryForm input[name!=soort]").attr('disabled','disabled');
				$("#companyDeliveryForm select").attr('disabled','disabled');
			}
			else
			{
				if ($("#telprive label").hasClass("required"))
				{
					var tmp = $("#telprive label").attr("title");
					$("#telprive label").attr("title", $("#telprive label").text());
					$("#telprive label").text(tmp);
					$("#telprive label").removeClass("required");
					$("#telprive label").addClass("fac");
					$("#telprive input").removeClass("required");
				}
			}
		}
	);

	$("#dealerorderForm .btnMed").unbind("click");
	$("#dealerorderForm .btnMed").click(
		function()
		{
			$("#dealerorderForm").submit();
		}
	);	

	$("#dealerorderForm input").change(
		function(e)
		{
			$.get("/ajax/sessionDealerOrder.php", $("#dealerorderForm").serialize()); 
		}
	);

	$("#dealerorderForm textarea").change(
		function(e)
		{
			$.get("/ajax/sessionDealerOrder.php", $("#dealerorderForm").serialize()); 
		}
	);


	$("#ordertable input").unbind("keyup");
	$("#ordertable input").keyup(
		function(e)
		{
			var tr = $(this).parent().parent();
			var code = tr.find(".artikelnr").fieldValue();
			var aantal = tr.find('.aantal').fieldValue();
			var omschrijving = tr.find('td.desc h3.desc');
			var prijs = tr.find('.price');
			var tdimg = tr.find('.img');
			var remove = tr.find('.remove');

			$.getJSON("/ajax/getArtikel.php", {"code":code,"aantal":aantal},
				function(data)
				{


					if (data.error == '0')
					{
						$.get("/ajax/sessionDealerOrder.php", $("#dealerorderForm").serialize()); 

						omschrijving.html(data.omschrijving);	
						prijs.html(data.prijs);
						tdimg.html('');
						tdimg.append('<img src="/pf'+data.foto+'_30/'+data.omschrijving+'.jpg" />');

						tr.removeClass('empty');
						remove.css('display', 'block');

						var nr = parseInt(tr.attr("rel"));
						nr += 1;

						if (!$("#ordertable tr:last-child").hasClass('empty'))
						{
							tr.clone().appendTo("#ordertable");
							
							$("#ordertable tr:last-child").attr("rel", nr);

							$("#ordertable tr:last-child div.img").html("");

							$("#ordertable tr:last-child input.artikelnr").val('');
							$("#ordertable tr:last-child input.artikelnr").attr('name', "artikelnr["+nr+"]");
							
							$("#ordertable tr:last-child input.aantal").val('1');
							$("#ordertable tr:last-child input.aantal").attr("name", "aantal["+nr+"]");

							$("#ordertable tr:last-child textarea").text('');
							$("#ordertable tr:last-child textarea").attr("name", "opmerkingen["+nr+"]");

							$("#ordertable tr:last-child td.desc h3.desc").html('');
							$("#ordertable tr:last-child .price").html('');


							$("#ordertable tr:last-child .remove").hide();

							$("#ordertable tr:last-child").addClass('empty');

							bindUser();
						}

					}
					else if(data.error == '1')
					{
						if (!tr.hasClass('empty'))
						{
							tr.addClass('empty');

						}
						prijs.html('');
						tdimg.html('');
						omschrijving.html(error_geen_artikel_gevonden);
					}
				}
			);

		}
	);

	$("#dealerorderForm .remove").click(
		function(e)
		{
			var tr = $(this).parent().parent();

			if (!tr.hasClass('empty'))
			{
				$.get("/ajax/removeSessionDealerOrder.php", {"nr":tr.attr("rel")}); 
				tr.remove();
			}
		}
	);

	$("#ordertable .price").each(
		function()
		{
		}
	);

	$("#registerForm input[name=email]").keyup(
		function()
		{
			$.get(	"/ajax/checkEmail.php",
				{"email":$(this).fieldValue(),
				 "persoonID":$("[name=persoonID]").fieldValue()},

				 function(data)
				 {
					if (data == "1")
					{
						$(".emailerror").show();

						$(".emailerror").createDialog(
							{
								addr: '/ajax/modalWachtwoordvergetenSend.php',
								data: {"email":$("#registerForm input[name=email]").fieldValue()},
								method: "POST",
								success: bindModalWachtwoordvergeten
							}
						);
					}
					else
					{
						$(".emailerror").hide();
					}
				 }
			);
		}
	);

	$("#orderlist tr").each(
		function()
		{
			var orderID = $(this).find("td:first").text();

			$(this).createDialog(
				{
					addr: '/ajax/modalOrder.php',
					data: {"orderID": orderID},
					method: 'GET',
					success: bindModalMoreinfo
				}
			);
		}
	);
}


function bindCheckout()
{
	$(".btnSide").unbind("click");
	$(".btnSide").click(
		function(e)
		{
			if ($(this).hasClass('stap2'))
			{
				if ($("[name=verzendmethode]").fieldValue() == '')
				{
					alert(error_kies_verzendmethode);
				}
				else if ($("[name=betaalwijze]").fieldValue() == '')
				{
					alert(error_kies_betaalwijze);
				}
				else if ($("[name=accoordvw]:checked").val() == null)
				{
					alert(error_accoord_voorwaarden);
				}
				else
				{
					$("[name=stap3]").submit();
				}
			}
			else
			{
				return true;
			}
		}
	);

	$(".pageNav a").unbind("click");
	$(".pageNav a").click(
		function (e)
		{
			if ($(this).attr("rel"))
			{
				var sSoort = $("#checkoutTableForm table").attr("id");
				getCheckoutTable($(this).attr("rel"), sSoort);
			}

			return false;
		}
	);

	$(".btnIncrease").unbind("click");
	$(".btnIncrease").click(
		function (e)
		{
			var artikelID = $(this).attr("rel");
			var input = $(this).parent("div").find("input");
			var iAantal = Math.floor(input.val());
			iAantal += 1;
			input.val(iAantal);

			updateCart(artikelID, iAantal);
			getCheckoutTable();
			return false;
		}
	);
	
// TODO: We moeten eigenlijk nog regelen dat alleen de regel wordt geupdate en niet de hele table
	$(".btnDecrease").unbind("click");
	$(".btnDecrease").click(
		function (e)
		{
			var artikelID = $(this).attr("rel");
			var input = $(this).parent("div").find("input");
			var iAantal = Math.floor(input.val());
			iAantal -= 1;

			if (iAantal == 0)
			{
				delCart(artikelID);
			}
			else
			{
				input.val(iAantal);
				updateCart(artikelID, iAantal);
			}

			getCheckoutTable();
			return false;
		}
	);

	$(".btnRemove").unbind("click");
	$(".btnRemove").click(
		function(e)
		{
			var artikelID = $(this).attr("rel");
			delCart(artikelID);
			getCheckoutTable();
			return false;
		}
	);
	
	$(".inputAmount").unbind("blur");
	$(".inputAmount").blur(
		function(e)
		{
			var artikelID = $(this).attr("name");
			var iAantal = $(this).val();

			if (iAantal > 0)
			{
				updateCart(artikelID, iAantal);
			}
			else
			{
				delCart(artikelID);
			}

			getCheckoutTable();
			return false;
		}
	);

	$("#btnMed").unbind("click");
	$("#btnMed").click(
		function(e)
		{
			getCheckoutTable();
		}
	);

	$("#related .btnToOrder").unbind("click");
	$("#related .btnToOrder").click(
		function(e)
		{
			var artikelID = $(this).parent().find('.artikelnr span').text();
			var key = $(this).parent().attr("id");

			toCart(artikelID, key);
			getCheckoutTable();

			return false;
		}
	);

	$("#checkoutLoginForm .submit").unbind("click");
	$("#checkoutLoginForm .submit").click(
		function(e)
		{
			$("#checkoutLoginForm").submit();
		}
	);

	
	$("#vestigingen").hide();
	$("[name=verzendmethode]").click(
		function(e)
		{
			if ($(this).val() == 'AFTE')
			{
				$("#vestigingen").show();
			}
			else
			{
				$("#vestigingen").hide();
			}
		}
	);



	$("#checkoutLoginForm").submit(
		function()
		{
			var email = $(this).find('input[name=email]').fieldValue();
			var wachtwoord = $(this).find('input[name=wachtwoord]').fieldValue();

			checkLogin(email, wachtwoord, 'checkoutLoginForm');

			return false;
		}
	);
}

function bindSearch()
{
	$("#filterCats select").bind("change", 
		function(e)
		{
			$("#searchFilters").submit();
		}
	);
}

function bindProductDetail()
{
	selects.convert($('select[name=variant]'));
	
	$('#btnMoreDescr').click(function() 
	{
		var tmp;

		$(this).toggleClass('btnLess');

		if($(this).hasClass('btnLess')) 
		{
			artikel_v2_btnMore = $(this).text();
			$(this).text($(this).attr('rel'));
			$('#moreDescr').slideDown('fast')
		} 
		else 
		{
			$(this).text(artikel_v2_btnMore);
			$('#moreDescr').slideUp('fast')
		}
	});
	
	$('#moreDetailsTable').hide();
	$('#btnMoreTable').click(
		function() 
		{
			var tableElm = $('#moreDetailsTable');
			var tmp;
		
			$(this).toggleClass('btnLess');

			if($(this).hasClass('btnLess')) 
			{
				artikel_v2_btnMoreTable = $(this).text();
				$(this).text($(this).attr('rel'));
				tableElm.slideDown('fast');
			} 
			else 
			{
				$(this).text(artikel_v2_btnMoreTable);
				tableElm.slideUp('fast');
			}
		}
	);

	$(".btnMoreInfo").each(
		function()
		{
			eigID = $(this).attr('rel');
			productID = $("#description .artikelnr span").text();
			ID = $(this).attr('id');

			$("#"+ID).createDialog(
				{
					addr: '/ajax/modalMoreinfo.php',
					data: {"eigID": eigID, 
						"productID": productID},
					method: 'GET',
					success: bindModalMoreinfo
				}
			);
		}
	);

	$(".youtube").createDialog(
		{
			addr: '/ajax/modalYoutubeArtikel.php',
			data: {"productID": $("#description .artikelnr span").text()},
			method: 'GET',
			success: bindModalYoutube
		}
	);

	// Collapseblokken, aan de rechterkant op de productdetailpagina
	$('div.collapseBlock').each(
		function() 
		{
			if(!$(this).hasClass('open'))
			{
				$(this).find('div.content').hide();
			}
		
			$(this).find('h2').click(
				function() 
				{
					var blockElm = $(this).parent();
					blockElm.toggleClass('open');
			
					if(blockElm.hasClass('open')) 
					{
						blockElm.find('div.content').slideDown('fast');
					} 
					else 
					{
						blockElm.find('div.content').slideUp('fast');
					}
				}
			);
		}
	);
	
	$("#thumbs a:not(.youtube)").click(
		function(e)
		{
			$(".photo[class*='active']").removeClass('active');
			$("#viewport img").attr('src', this.href);
			$("#viewport img").attr('rel', this.rel);
			$(this).parent('li').addClass('active');

			$("#viewport img").unbind("click");
			$("#viewport img").createDialog(
				{
					addr: '/ajax/modalPicture.php',
					data: {"ID":$("#viewport img").attr('rel'),
						"artikelID":$("#description .artikelnr span").text()},
					success: function()
						{
							$("#jDialogContainer img").preload({	placeholder: '/gfx/preload.gif',
							onComplete:bindModalPicture});
						}
				}
			);
			return false;
		}
	);	

	$("#viewport img").createDialog(
		{
			addr: '/ajax/modalPicture.php',
			data: {"ID":$("#viewport img").attr('rel'),
				"artikelID":$("#description .artikelnr span").text()},
			success: function()
				{
					$("#jDialogContainer img").preload({	placeholder: '/gfx/preload.gif',
					onComplete:bindModalPicture});
				}
		}
	);

	$(".brand a").createDialog(
		{
			addr: '/ajax/modalMerk.php',
			data: {"artikelID":$("#description .artikelnr span").text()}
        }
	);
	
	$("[name=variant]").change(
		function(e)
		{
			id = $(this).fieldValue();
			document.location.href = '/variant-p'+id+'.html';
		}
	);
	
	$(".btnToCart").click( 
		function (e)
		{
			var id = '';
			var key = '';

			key = "viewport";
			id = $("#description .artikelnr span").text();

			toCart(id, key);
			return false;
		}
	);

/* Moet Na .btnToCart staan omdat ze de class btnToCart delen */
	$(".btnPriceRequest").unbind("click");
	$(".btnPriceRequest").click(
		function(e)
		{
			var id;
			var opmerkingen;

			id = $("#description .artikelnr span").text();
			opmerkingen = '';

			toOfferte(id, 'viewport', opmerkingen);

			return false;
		}
	);
		
		$(".btnOfferte").click(
			function (e)
			{
				var id;
				var key;

				key = "viewport";
				id = $("#description .artikelnr span").text();
                
				toOfferte(id, key);
				return false;
			}
		);

		$(".btnAddMaatwerk").click(
			function(e)
			{
				var id;
				var opmerkingen;

				id = $(this).parent('form').children('input[name=artikelID]').val();
				opmerkingen = $(this).parent('form').children('input[name=opmerkingen]').val();

				toOfferte(id, '', opmerkingen);
				alert('Artikel is toegevoegd aan offerte (dit moet niet in een alert komen, maar heb niet direct alternatief)');
				$(this).parent('form').children('input[name=opmerkingen]').val('');
				return false;
			}
		);

		$("#priceRequest a").unbind("click");
		$("#priceRequest a").click(
			function(e)
			{
				var id;
				var opmerkingen;

				id = $("#description .artikelnr span").text();
				opmerkingen = '';

				toOfferte(id, 'viewport', opmerkingen);
				return false;
			}
		);

		
		$("#btnFav").click( 
			function (e)
			{
				var id;
				var key;

				key = "viewport";
		                id = $("#description .artikelnr span").text();

				toFavorites(id, key);
				return false;
			}
		);

		$("#btnCompare").click( 
			function (e)
			{
				var id;
				var key;

				key = "viewport";
                id = $("#description .artikelnr span").text();
            
				toVergelijk(id, key);
				return false;
			}
		);

                var sections = [];

                $('#detailTabs li a').each(function(index)
                        {
                                sections.push($($(this).attr('href')));

                                if(index == 0)
                                {
                                        sections[0].show();
                                }

                                $(this).add('#btnMaatwerk').click(function()
                                        {
                                                $('#detailTabs li').removeClass('active');
                                                $(this).parent().addClass('active');
                                                if($(this).attr('id') == 'btnMaatwerk')
                                                {
                                                        $('#detailTabs li a[href="#maatwerk"]').parent().addClass('active');
                                                        $.scrollTo('#maatwerk',500);
                                                }

                                                $.each(sections, function()
                                                        {
                                                                $(this).hide();
                                                        }
                                                );

                                                $($(this).attr('href')).show();

                                                return false;
                                        }
                                );
                        }
                );


}

// Deze is voor alle overzichten van producten (home, categorieoverzicht, zoekresultaten)
function bindOverzicht()
{
	$("div#crumbs p a").live("click", function()
		{
			// Schuif categorieinformatie uit
			$("div"+$(this).attr("href")).slideDown();
			
			return false;
		}
	);

	$("#btnCloseMoreInfo").live("click", function()
		{
			$("div#moreInfo").slideUp();
		}
	);


	$("#btnCatInfo").click(
		function(e)
		{
			$("#catInfo").toggle();
			$(this).toggleClass('active');
		}
	);

	$(".viewMode select").live("click", function()
		{
			$(this).unbind("change");
			$(this).change(function()
				{
					if($(this).val() == 0)
					{
						$('.results').show();
						$('.resultsThumbs, .resultsList').hide()
					}
					if($(this).val() == 1)
					{
						$('.resultsThumbs').show();
						$('.results, .resultsList').hide()
					}
					if($(this).val() == 2)
					{
						$('.resultsList').show();
						$('.results, .resultsThumbs').hide()
					}

					$.get("/ajax/saveViewMode.php",
						{viewmode: $(this).val()});
				}
			);
		}
	);
}

function bindOfferte()
{
	$("#offerte input").bind("blur",
		function (e)
		{
			var ID;
			var aantal;
			var opmerkingen;

			ID = $(this).parent().attr("id");
			aantal = $(this).parent().children("input[name=aantal]").val();
			opmerkingen = $(this).parent().children("input[name=opmerkingen]").val();

			updateOfferte(ID, aantal, opmerkingen);
		}
	);
}

function scaleCompareViewport() {
	var elm = $('#compareViewport'),
		headerHeight = $("#header").height(),
		footerHeight = $("#footer").height(),
		compareHeaderHeight = $("#compareHeader").height(),
		compareFooterHeight = $("#compareFooter").height(),
		viewportHeight = $(window).height(),
		oudeHoogte,
		nieuweHoogte,
		minus = headerHeight + footerHeight + compareHeaderHeight + compareFooterHeight;

	elm.height('100%');
	oudeHoogte = elm.height();

	nieuweHoogte = viewportHeight - minus;
	// if (nieuweHoogte) nieuweHoogte = oudeHoogte;
	elm.height(nieuweHoogte);
}

function bindCompare()
{
	$('html').css('overflow','hidden');	// Verwijder verticale scrollers in IE7
	scaleCompareViewport();
	var resizeTimer = null;
	$(window).bind('resize', function() {
		if (resizeTimer) clearTimeout(resizeTimer);
		resizeTimer = setTimeout(function(){scaleCompareViewport()}, 100);
	});

	$(".btnRemove").unbind("click");
	$(".btnRemove").click(
		function(e)
		{
			key = $(this).parent("li").children("h2").children("a").attr("rel");

		        $.get("/ajax/delVergelijk.php",{"artikelID":key},
	            	        function(data)
	                    	{
	                        	$("#main").replaceWith(data);
					bindCompare();
	                            	getNrVergelijk();
	                    	}
			);

		}
	);

	$(".btntocart").unbind("click");
	$(".btntocart").click(
		function(e)
		{
			key = $(this).parent("li").attr("rel");
			id = $(this).parent("li").find("[name=artikelID]").val();

			toCart(id, "thumb"+key);
		}
	);

	$(".btnOfferte").unbind("click");
	$(".btnOfferte").click(
		function(e)
		{
			key = $(this).parent("li").attr("rel");
			id = $(this).parent("li").find("[name=artikelID]").val();

			toOfferte(id, "thumb"+key);
		}
	);
	
}

function bindContact() 
{
        if ($('#contactForm').length == 0) 
	{
		return false;
	}

        var hash = window.location.hash;
        
	if (hash == '' || hash == '#') 
	{
		hash = '#'+$('#contactNav li:first-child').attr('id');
	}
        window.location.hash = hash;

        $(hash).addClass('active')

        updateForm($(hash));

        $('#contactNav li').click(
		function()
		{
                	updateForm($(this));
                	return false;
        	}
	);

        $('#ikWilBrochure').click(
		function()
		{
			checkBrochureRadio();
		}
	);

	$("#contactForm .btnMed").click(
		function()
		{
			$.post("/ajax/sendContact.php",
				$("#contactForm").serialize(),
				function(data)
				{
					$("#main").replaceWith(data);
					bindContact();
				}
			);
		}
	);

        function updateForm(elm) 
	{
                var id = elm.attr('id');

                $('#ikWilBrochure').attr('checked',false);
                $('#contactNav li').removeClass('active');
                elm.addClass('active');

                window.location.hash = id;

		$("input[name=soort]").val(id);
                $('.toon_bij').hide();
                $('.toon_bij.'+id).show();

                checkBrochureRadio()
        }

        function checkBrochureRadio() 
	{
                if($('#ikWilBrochure').is(':checked')) 
		{
                        $('#adres').slideDown('fast').hide();
                } 
		else 
		{
                        $('#adres').slideUp('fast')
                }
        }
}

function bindContent()
{
	$("#jobList li").click(
		function(e)
		{
			$(this).find(".jobDescription").toggle();
			return false;
		}
	);

	$("#jobList li .btnMed").each(
                function()
                {
                        vacID = $(this).attr('rel');
                        ID = $(this).attr('id');

                        $("#"+ID).createDialog(
                                {
                                        addr: '/ajax/modalSolliciteer.php',
                                        data: {"vacatureID":vacID},
                                        method: 'GET',
                                        success: bindModalSolliciteer
                                }
                        );
                }

	);

	$(".vergroot").each(
		function()
		{
			var ID = $(this).attr('id');
			
			$("#"+ID).createDialog(
				{
					addr: '/ajax/modalCMSPicture.php',
					data: {"ID":ID},
					success: function()
						{
							$("#jDialogContainer img").preload({	placeholder: '/gfx/preload.gif',
							onComplete:function(){$.repositionModal();}
							});
						}
				}
			);


			
		}
	);
}

function bindReferenties() 
{
	$('#refGallery li a').each(function(){
		$(this).click(function(){
			$('#refGallery li').removeClass('active');
			$(this).parent().addClass('active');
			$('#refImage img').attr('src',$(this).attr('href'));
			return false;
		})
	});

	$("#addRefFooter .btnMed").click(
		function()
		{
			$("#addRefForm").submit();
		}
	);


	$("#addRefPhotos .btnMed").createDialog(
		{
			addr: '/ajax/modalRefupload.php',
			success: bindModalRefupload
		}
	);

}

function bindProjectdetail()
{
	$("#refThumbs a").click(
		function()
		{
			var img = $(this).attr('href');

			$("#refImage img").attr('src', img);
			$("#refThumbs li").removeClass("active");
			$(this).parent().addClass("active");

			return false;
		}
	);
}

function bindProjectlijst()
{
	$("#projFilterSelect").change(
		function()
		{
			var naam = $("input[name=naam]").fieldValue();
			var folderID = $("input[name=folderID]").fieldValue();

			if ($(this).fieldValue() != 'alle')
			{
				window.location.href = "/"+$(this).fieldValue()+"-proj"+folderID+"_0_"+$(this).fieldValue()+".html";
			}
			else
			{
				window.location.href = "/projecten-proj"+folderID+".html";
			}
		}
	);
}

function bindVideo()
{
        $(".btnPlay").each(
		function()
		{
			ID = $(this).attr('id');
			artikelID = $(this).attr("rel");

			$("#"+ID).createDialog(
				{
					addr: '/ajax/modalYoutubeArtikel.php',
					data: {"productID":artikelID},
					method: 'GET',
					success: bindModalYoutube
				}
			);
		}
	);
}

/*******************************************
	BIND voor keyboard gebruik	
*******************************************/
function bindInputEvents()
{
	$(".int").bind("keydown",
		function(e)
		{
			if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105) || e.keyCode <= 46)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	);
	
	$(document).bind('keydown', 'esc', 
		function (e)
		{
		// categorie navigatie
			$("#catNav #crumbs").find('li').removeClass('active');
			$("#catPanel").hide();

		// Shopnavigatie
			$("#shopNav").find('li').removeClass('active');
		}
	);
}

/*******************************************
	BIND VOOR MODALS	
*******************************************/
function bindModalClose()
{
	$("#btnCloseModal").live("click",
		function()
		{
			$.closeDialog();
			return false;
		}
	);
}

function bindModalYoutube()
{
}

function bindModalWachtwoordvergeten()
{
	$.repositionModal();

	$("#modalForgotPW .btnMedSubmit").click(
		function()
		{
			var email = $("#modalForgotPW input[name=email]").val();
			$("#jDialogContainer").load("/ajax/modalWachtwoordvergetenSend.php", {'email':email}, 
				function()
				{
					bindModalWachtwoordvergeten();
				}
			);
		}
	);
}

function bindModalSolliciteer()
{
	$.repositionModal();

	$("#modalJobAppl .btnMed").click(
		function()
		{
			validate("modalJobAppl");

			if (iAantalErrors == 0)
			{
				var a = $("#modalJobAppl form").serialize();
				$("#jDialogContainer").load("/ajax/modalSolliciteerSend.php", a, 
				function()
				{
					bindModalSolliciteer();
				}
			);
			}
		}
	);
}


function bindModalRefupload()
{
	$("#modalUpload .btnMedSubmit").click(
		function()
		{
			refFileUpload();
		}
	);
}

function bindModalTip()
{
	$.repositionModal();

	if ($("#modalTip input[name=uwnaam]").fieldValue() == '')
	{
		$("#modalTip input[name=uwnaam]").focus();
	}
	else
	{
		$("#modalTip input[name=naam]").focus();					
	}

	$("#modalTip .btnMedSubmit").click(
		function()
		{
			var uwnaam = $("#modalTip input[name=uwnaam]").val();
			var uwemail = $("#modalTip input[name=uwemail]").val();
			var email = $("#modalTip input[name=email]").val();
			var naam = $("#modalTip input[name=naam]").val();
			var bericht = $("#modalTip textarea").val();

			var artikelID = $("#description .artikelnr span").text();

			$("#jDialogContainer").load("/ajax/modalTipSend.php", {'artikelID':artikelID, 'email':email, 'naam':naam, 'uwemail':uwemail, 'uwnaam':uwnaam, 'bericht':bericht}, 
				function()
				{
					bindModalTip();

				}
			);
		}
	);
}

function bindModalAsk()
{	
	$.repositionModal();

	$("#modalAsk .btnMedSubmit").click(
		function()
		{
			var email = $("#modalAsk input[name=email]").val();
			var naam = $("#modalAsk input[name=naam]").val();
			var vraag = $("#modalAsk textarea").val();

			var artikelID = $("#description .artikelnr span").text();

			$("#jDialogContainer").load("/ajax/modalAskSend.php", {'artikelID':artikelID, 'email':email, 'naam':naam, 'vraag':vraag}, 
				function()
				{
					bindModalAsk();
				}
			);
		}
	);
}

function bindModalCatalogus()
{	
	$.repositionModal();

	$(".btnMed").click(
		function()
		{
			$("#jDialogContainer").load("/ajax/modalCatalogusSend.php", $("#jDialogContainer form").serialize(), 
				function()
				{
					bindModalCatalogus();
				}
			);
		}
	);
}

function bindModalVoutje()
{	
	$.repositionModal();

	$(".btnMed").click(
		function()
		{
			$.post(
				"/ajax/modalVoutjeSend.php", 
				$("#jDialogContainer form").serialize(), 
				function(data)
				{
					$("#jDialogContainer").html(data);
					bindModalVoutje();
				}
			);
		}
	);
}

function bindModalContact()
{	
	$.repositionModal();

	$(".btnMed").click(
		function()
		{
			$("#jDialogContainer").load("/ajax/modalContactSend.php", $(".modal form").serialize(), 
				function()
				{
					bindModalContact();
				}
			);
		}
	);
}

function bindModalMoreinfo()
{
	$.repositionModal();
}

function bindModalPicture()
{
	$.repositionModal();
}

function toggleDropDown(id)
{
	$("#"+id+" > span.dropDown").toggle("normal");
}

/*******************************************
	SHOPPING CART	
*******************************************/

function toCart(id, key)
{
	if (key != '')
	{
		var duration = 1000;
		$("#"+key+" span img").effect("transfer", {to: "#cartTab"}, duration);
	}

	$.get("/ajax/addToBasket.php", {"code":id}, 
				function(data)
				{
					$("#cartTab > a").text(data);
					getCart();
				});
}

function getNrCart()
{
	$.get("/ajax/getNrBasket.php",
				function(data)
				{
					$("#cartTab > a").text(data);
				});
}

function getCart(iPagina)
{
	$("#cartPanel").load("/ajax/getBasket.php", {"page":iPagina,"html":"1"}, 
		function()
		{
			bindInputEvents();
			bindPanel();
		}
	);
}

function delCart(id)
{
	$.get("/ajax/delBasket.php", {"artikelID":id},
			function(data)
			{
				getCart();
				getNrCart();
			});
}

function updateCart(artikelID, aantal)
{
	$.get("/ajax/updateBasket.php", {"artikelID":artikelID,"aantal":aantal},
			function(data)
			{
				getCart();
				getNrCart();
			});
}

/*******************************************
	VERGELIJKEN	
*******************************************/

function getNrVergelijk()
{
	$.get("/ajax/getNrVergelijk.php",
				function(data)
				{
					$("#compareTab > a > strong").text(data);
				});
}

function toVergelijk(id, key)
{
	if (key != '-1')
	{
		var duration = 1000;
		$("#"+key+" img").effect("transfer", {to: "#compareTab"}, duration);
	}

	$.get("/ajax/addVergelijk.php",{"code":id}, 
				function(data)
				{
					$("#compareTab > a > strong").text(data);
				});
}

function delVergelijkOV(id, key)
{
	$(".produkt"+key).hide('normal');

	$.get("/ajax/delVergelijk.php",{"artikelID":id},
			function(data)
			{
				$("#main").replaceWith(data);
				getNrVergelijk();
			});
//	$("#main").load("/ajax/delVergelijk.php?artikelID="+id);
}

/*******************************************
	FAVORIETEN
*******************************************/

function getNrFavorites()
{
	$.get("/ajax/getNrFavorites.php",
				function(data)
				{
					$("#favTab > a").text(data);
				});
}

function toFavorites(id, key)
{
	if (key != '-1')
	{
		var duration = 1000;
		$("#"+key+" img").effect("transfer", {to: "#favTab"}, duration);
	}

	$.get("/ajax/addFavorite.php", {"code":id}, 
		function(data)
		{
			$("#favTab > a").text(data);
			getFavorites(-1);
		});
}

function getFavorites(iPagina)
{
	$("#favPanel").load("/ajax/getFavorites.php", {"page":iPagina,"html":"1"}, 
		function()
		{
			bindPanel()
		}
	);
}

function delFavorite(artikelID, key, page)
{
	$("#prod"+key).effect('explode', {}, 500);
	$.ajax({
		type: "GET",
		url: "/ajax/delFavorite.php",
		data: "artikelID="+artikelID,
		complete: function (XMLHttpRequest, textStatus)
		{
			getNrFavorites();
			getFavorites(page);
		}
	});
}


/*******************************************
	OFFERTES
*******************************************/

function toOfferte(id, key, opmerkingen)
{
	if (typeof(opmerkingen) == 'undefined')
	{
		opmerkingen = '';	
	}
	if (key != '')
	{
		var duration = 1000;
		$("#"+key+" img").effect("transfer", {to: "#offerteTab"}, duration);
	}

	$.get("/ajax/addToOfferte.php", {"code":id, "opmerkingen":opmerkingen}, 
		function(data)
		{
			$("#offerteTab > a").html("&euro;? "+data);
			document.location.href = '/prijsaanvraag/';
		}
	);
}

function getNrOfferte()
{
	$.get("/ajax/getNrOfferte.php",
				function(data)
				{
					$("#offerteTab > a").html("&euro;? "+data);
				});
}

function delPriceRequest(ID)
{
	delOfferte(ID);
}

function delOfferte(ID)
{
	$("#"+ID).effect('explode', {}, 500);
	$.ajax({
		type: "GET",
		url: "/ajax/delOfferte.php",
		data: "ID="+ID,
		complete: function (XMLHttpRequest, textStatus)
		{
			getNrOfferte();
		}
	});
}

function updatePriceRequest(ID, aantal, opmerkingen)
{
	updateOfferte(ID, aantal, opmerkingen);
}

function updateOfferte(ID, aantal, opmerkingen)
{
	$.ajax({
		type: "GET",
		url: "/ajax/updateOfferte.php", 
		data: {"ID":ID, "aantal":aantal, "opmerkingen":opmerkingen},
		complete: function (XMLHttpRequest, textStatus)
		{
			getNrOfferte();
		}
	});
}

// MAATWERK KNOP BIJ PRODUCTEN
$("#maatwerk .btnMed").click(
	function(e) {
		f = document.forms["maatwerkForm"];
		toOfferte(f.artikelID.value, '', f.opmerkingen.value);
	}
);
	

/*******************************************
	CHECKOUT
*******************************************/
function getCheckoutTable(iPagina, sSoort)
{
	if ($("body").attr("id") == 'pageCheckout')
	{
		$.get("/ajax/getCheckoutBasket.php",{"pagina":iPagina, "soort":sSoort},
			function(data)
			{
				$("#checkoutTableForm").replaceWith(data);
				bindCheckout();
				zebraStripeTables();
			}
		);

/*		$.get("/ajax/getCheckoutAccessoires.php",
			function(data)
			{
				$("#related").replaceWith(data);
				bindCheckout();
			}
		);*/

		$.get("/ajax/getCheckoutTotals.php",
			function(data)
			{
				$(".totals").replaceWith(data);
			}
		);
	}
}

/*******************************************
	PRICEREQUEST	
*******************************************/
function getPriceRequestTable(iPagina, sSoort)
{
	if ($("body").attr("id") == 'pagePriceRequest')
	{
		$.get("/ajax/getPriceRequestBasket.php",{"pagina":iPagina, "soort":sSoort},
			function(data)
			{
				$("#pricerequestTableForm").replaceWith(data);
				bindPriceRequest();
				zebraStripeTables();
			}
		);
	}
}

/*******************************************
	LOGIN	
*******************************************/

function checkLogin(email, wachtwoord, id)
{
	$.post(	"/ajax/checklogin.php", 
		{"email":email, "wachtwoord":wachtwoord},
		function(data)
		{	
			if (data == 'true')
			{
				$("#"+id).unbind('submit');
				$("#"+id).submit();
			}
			else
			{
				$("#wrongLogin").createDialog(
				{
					addr: '/ajax/modalWronglogin.php'
                }
				);

				$("#wrongLogin").click();

			}
		}	
	);

}

/*******************************************
	SOAP	
*******************************************/
function soapProductDetail()
{
        productID = $("#description .artikelnr span").text();	
        soapStockinfo(productID, 'stockinfo');
}

function soapStockinfo(productID, ID)
{
		$.getJSON("/ajax/soapStockinfo.php", {"productID":productID, "dataset":dataset},
			function(data)
			{	
				if (data == false)
				{
					$("#"+ID).addClass('errorstock');
					$("#"+ID).html('');
				}
				else
				{
					if (data.Return == '0')
					{
						if (data.Availability != '0')
						{
							$("#"+ID).addClass('instock');
							$("#"+ID).html(stockinfo_instock);
						}
						else
						{
							$("#"+ID).addClass('notinstock');
							$("#"+ID).html(stockinfo_notinstock);
						}
					}
					else if (data.Return == '1')
					{
						$("#"+ID).addClass('errorstock');

						var msg = "Fout met verkeerde dataset in getStockinfo.php\n";
						msg += "Dataset: "+dataset+"\n";
						msg += "ProductID: "+productID;

						$.get("/ajax/sendErrorMail.php", {"msg": msg}); 
					}
					else if (data.Return == '10')
					{
						$("#"+ID).addClass('errorstock');

						var msg = "Fout met verkeerde productID in getStockinfo.php\n";
						msg += "Dataset: "+dataset+"\n";
						msg += "ProductID: "+productID;

						$.get("/ajax/sendErrorMail.php", {"msg": msg}); 
					}
				}
			}
		);
}

/*******************************************
	FORM VALIDATIE	
*******************************************/

function validate(ID)
{
	iAantalErrors = 0;
	
	$("span.error").remove();
	$("p.showError").removeClass('showError');

	$("#"+ID+" .required:not(:disabled)").each(
		function(i)
		{
			var value = $(this).fieldValue();

			if ($(this).attr('type') == 'text' || $(this).attr('type') == 'password')
			{
				if (value.length > 0)
				{
					if (trim(value[0]) == '')
					{
						iAantalErrors++;
						$(this).parent('p').addClass('showError');
						$(this).parent('p').append(error_is_mandatory);
					}
					else
					{
						$(this).removeClass('error');
					}
				}
			}
		}
	);

	$("#"+ID+" .validemail").each(
		function(i)
		{
			var value = $(this).fieldValue();

			if (!$(this).parent('p').hasClass('showError'))
			{
				if (!emailcheck(value))
				{
					iAantalErrors++;
					$(this).parent('p').addClass('showError');
					$(this).parent('p').append(error_invalid_email);		
				}
			}
		}
	);

	$("#"+ID+" .same").each(
		function(i)
		{
			var value = $(this).fieldValue();
			var value2 = $("#"+$(this).attr('rel')).fieldValue();

			if (!$(this).parent('p').hasClass('showError'))
			{
				if (value[0] != value2[0])
				{
					iAantalErrors++;
					$(this).parent('p').addClass('showError');
					$(this).parent('p').append(error_not_same_password);		
				}
			}
		}
	);

}

function trim(value) 
{
	value = value.replace(/^\s+/,'');
	value = value.replace(/\s+$/,'');
	
	return value;
}

function emailcheck(str) 
{
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var address = str;
	
	if(reg.test(address) == false)
	{
		return false;
	}
	else
	{
		return true					
	}
}

function refFileUpload()
{
//starting setting some animation when the ajax starts and completes
	$("#modalUpload .loading").ajaxStart(
		function()
		{
			$("#modalUpload form").hide();
			$(this).show();
		}
	).ajaxComplete(
		function()
		{
			$("#modalUpload form").show();
			$(this).hide();
		}
	);

	$.ajaxFileUpload({
		url:'/frontv2/referentie_v2/upload.php',
		secureuri:false,
		fileElementId:'foto',
		dataType: 'text',
		success:
			function (data, status)
			{
				if(typeof(data.error) != 'undefined')
				{
					alert("Er is iets mis gegaan");
				}
				else
				{
					alert(data.bestandID);
				}
			},
		error: 
			function (data, status, e)
			{
				alert(data);
				alert(e);
			}
	});

	return false;

}

function maxMainHeight() {
	if ($('#compareViewport').length > 0 && $('#pageProductDetail_A').length == 0) return false;
	
	var hHeight = $('#header').height(),	// Header height
		wHeight = $('#wrapper').height(),	// Wrapper height
		fHeight = $('#footer').height(),	// Footer height
		vHeight,							// Viewport height
		$main = $('#main'),					// Main div
		mHeight,							// Main height
		mPad = parseInt($main.css('padding-top')) + parseInt($main.css('padding-bottom')),			// Padding van #main
		bPad = parseInt($('body').css('padding-top')) + parseInt($('body').css('padding-bottom')),	// Padding van body
		compensate = 1;						// Compensatie
	
	window.onresize = function() {
		resize();
	}
	
	function resize() {
		vHeight = $(window).height();
		
		if (wHeight < vHeight) {	// Wrapper is kleiner dan viewport
			mHeight = vHeight - (hHeight + fHeight + mPad + bPad + compensate);
			$main.css('min-height', mHeight);
			if (window.ie6) $main.css('height', mHeight);
		}
	}
	
	resize();
}

/*	Custom selects
	**************/
var selects = function() {
	// IE
	var	ie = ($.browser.msie),
		ie6 = ($.browser.msie && parseInt($.browser.version) <= 6),
		ie7 = ($.browser.msie && parseInt($.browser.version) == 7),
		ie8 = ($.browser.msie && parseInt($.browser.version) == 8);
	
	var convert = function ($elm) {
		$elm.each(function() {
			var $select = $(this),
				$options = $select.find('option'),
				$cSelect,
				$title,
				$ul;
		
			// Wrap met div.select
			$select.wrap('<div class="select"></div');
			$cSelect = $select.parent();
		
			// Strong en ul toevoegen
			$cSelect.append('<strong /><ul />');
			$title = $cSelect.find('strong');
			$ul = $cSelect.find('ul');
		
			// Ul met 'option'-li's vullen 
			$options.each(function(i) {
				var $li,
					cssclass = '';
			
				// Is deze option selected?
				if ($(this).attr('selected')) {
					cssclass = 'selected';
				
					// Title vullen
					$title.text($(this).text())
				}
			
				// Li toevoegen en vullen
				$li = $('<li class="' + cssclass + '">' + $(this).text() + '</li>').addClass($(this).attr('class'));
				$ul.append($li);
			
				// Nummer vastleggen
				$(this).data('num', i);
				$li.data('num', i);
			
				// Event voor li
				$li.click(function() {
					var $ul = $(this).parent(),
						$option = $ul.parent().find('select option:eq(' + $(this).data('num') + ')');
				
					// IE7 bug workaround
					if (ie7) $('.select').css({zIndex:1})
				
					// Hide ul
					hideSelect($cSelect);
				
					// Update echte select
					$option.attr('selected', 'selected');
					$select.trigger('change')
				})
			})
		
			// Title juiste breedte geven
			if (!$(this).hasClass('autoWidth')) $title.width($ul.outerWidth() - ($title.outerWidth() - $title.width()));
		
			// Events voor title
			$title.click(function(event) {
				var v = $(this).parent().find('ul').css('visibility');
			
				event.stopPropagation();
			
				// Verberg eerst alle selects
				selects.hideAll();
			
				if (ie7) {
					// IE7 bug workaround
					$('.select').css({zIndex:-1})
					$(this).parent().css({zIndex:1})
				}
			
				if (v == 'visible') {
					hideSelect($cSelect)
				} else {
					showSelect($cSelect)
				}
			
			})
		
			// Events voor verborgen select
			$select.change(function(){
				$title.text($(this).find('option:selected').text())
			})
		})
	}
	
	function hideAll() {
		hideSelect($('.select'))
	}
	
	function hideSelect($elm) {
		$elm.each(function() {
			$(this).find('ul').css('visibility', 'hidden');
		})
	}
	
	function showSelect($elm) {
		$elm.each(function() {
			var $ul = $(this).find('ul'),
				selNum;
			
			$ul.css('visibility', 'visible');
			
			// Li's css class resetten
			$ul.find('li').removeClass('selected');
			selNum = $elm.find('option:selected').data('num');
			$ul.find('li:eq(' + selNum + ')').addClass('selected')
			
			
			if ($ul.height() > 200) $ul.css({height : 200, overflow : 'auto', overflowX : 'hidden'})
		})
	}
	
	// Make public
	return {
		convert: convert,
		hideAll: hideAll
	}
}();
