﻿var tmpPostcode, a, Trefwoorden = '', Pagina = 1, SorteringDesc = false, Sortering = 'Ranking', Min, Max, SlideMin, SlideMax, SliderUpdate = false;

jQuery.fn.log = function (msg) {
	console.log("%s: %o", msg, this);
	return this;
};

jQuery.fn.center = function () {
    this.css("position","absolute");
    this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
    this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
    return this;
}

$(document).ready(function(){
	$('.Tabblad').click(function() {
		var Tabblad = $(this).attr('rel');
		$('#ContainerProductOmschrijving').hide();
		$('#ContainerProductSpecificaties').hide();
		$('#ContainerLevering').hide();
		$('#ContainerReviews').hide();
		$('#ContainerCategorie').hide();
		
		$('.Tabblad').removeClass('Actief');
		$('#' + Tabblad).show();
		$(this).addClass('Actief');
	});
	$('#TabbladProductOmschrijving').click();
	$('#MeerProductInformatie').click(function() {$('#TabbladProductOmschrijving').click(); return true;});
	$('#MeerProductSpecificaties').click(function() {$('#TabbladSpecificaties').click(); return true;});
	$('#ProductCombinatie1_1').change(function() {
		if($('#ProductTotaalPrijs').length!==0) return true
		$('.VoorraadTekst').html('Voorraad controleren...');
		$('.ArtikelNr').html('Artikelnr.: laden...');
		$.ajax({url: "/JSON.asp?Actie=mpGetVoorraadCombinaties", data: {"ProductId": $('#ProductId').val(), "ProductCombinatieId": $(this).val()}, dataType: "script", success: function(i) {
		}});
	});
	$('#ProductCombinatie1_1').change();
	mpReady();
});

function mpRedirect(URL) {
	if(URL.substring(0, 1) == '/') {
		if(document.location.protocol == "https:" || document.location.href.substring(0, 36) == "http://betalen.test.postordershop.nl") {
			var RegExp = /^https?\:\/\/[a-zA-Z\.]*\/(.*?)\//g;
			var SSLDomein = RegExp.exec(document.location.href);
 			document.location.href='/' + SSLDomein[1] + URL
		} else {
			document.location.href=URL;
		}
	} else {
		document.location.href=URL;
	}
}

function mpCheckPostcode() {
	var LandId = $(".mpValideerLandId").val();
	var Postcode = $(".mpValideerPostcode").val();
	var Huisnummer = $(".mpValideerHuisnummer").val();
	var Toevoeging = $(".mpValideerHuisnummerToevoeging").val();

	if(LandId=="1") {
		$('.mpValideerPlaats').hide();
		$('.mpValideerStraat').hide();
		$(".mpValideerPostcode").removeClass('Fout').removeClass('Goed');
		$(".mpValideerHuisnummer").removeClass('Fout').removeClass('Goed');
		if(!$(".mpValideerPostcode").next('span').attr('class')!=='') $(".mpValideerPostcode").next('span').remove();
		if(!$(".mpValideerHuisnummer").next('span').attr('class')!=='') $(".mpValideerHuisnummer").next('span').remove();
		if(Postcode=='' && Huisnummer=='') {
			$(".mpValideerPostcode").after('<span class="Onzeker">&nbsp;</span>');
			$(".mpValideerHuisnummer").after('<span class="Onzeker">&nbsp;</span>');
			return false;
		} else {
			$(".mpValideerPostcode").after('<span class="Bezig">&nbsp;</span>');
			if(Huisnummer!=='') $(".mpValideerHuisnummer").after('<span class="Bezig">&nbsp;</span>');
		}
		if(Postcode!=='' && Huisnummer=='') {
			if(!$(".mpValideerHuisnummer").hasClass('Fout')) $(".mpValideerHuisnummer").after('<span class="Onzeker">&nbsp;</span>');
			$.ajax({url: "/JSON.asp?Actie=mpGetPlaatsViaPostcode", data: {"Postcode": Postcode}, dataType: "json", success: function(i) {
				if(i.Goed) {
					$(".mpValideerPostcode").next('span').remove();
					$(".mpValideerPostcode").addClass('Goed');
					$(".mpValideerPostcode").val(i.Postcode);
					$(".mpValideerPostcode").after('<span class="Goed">' + i.Plaats + ', ' + i.Provincie + '</span>');
				} else {
					$(".mpValideerPostcode").next('span').remove();
					$(".mpValideerPostcode").addClass('Fout');
					$(".mpValideerPostcode").after('<span class="Fout">' + i.Melding + '</span>');
				}
				tmpPostcode = $('.mpValideerPostcode').val();
			}});
		} else {
			$.ajax({url: "/JSON.asp?Actie=mpCheckPostcode", data: {"Postcode": Postcode, "Huisnummer": Huisnummer}, dataType: "json", success: function(i) {
				if(i.Goed) {
					$(".mpValideerPostcode").next('span').remove();
					$(".mpValideerHuisnummer").next('span').remove();
					$(".mpValideerPostcode").addClass('Goed');
					$(".mpValideerHuisnummer").addClass('Goed');
					$(".mpValideerPostcode").val(i.Postcode);
					$(".mpValideerPostcode").after('<span class="Goed">' + i.Plaats + ', ' + i.Provincie + '</span>');
					$(".mpValideerHuisnummer").after('<span class="Goed">' + i.Straat + ' ' + Huisnummer + ' ' + Toevoeging + '</span>');
				} else {
					if(i.Veld=='Huisnummer' && $(".mpValideerHuisnummer").val()=='') {
						
					} else {
						$(".mpValideerPostcode").next('span').remove();
						$(".mpValideerHuisnummer").next('span').remove();
						if(i.Veld=='Postcode' || i.Veld=='Beide') {
							$(".mpValideerPostcode").addClass('Fout');
							$(".mpValideerPostcode").after('<span class="Fout">' + IIf($(".mpValideerPostcode").is('.GeenMelding') || i.Veld=='Beide' || i.Melding=='', '&nbsp;', i.Melding) + '</span>');
						}
						if(i.Veld=='Huisnummer' || i.Veld=='Beide') {
							$(".mpValideerHuisnummer").addClass('Fout');
							$(".mpValideerHuisnummer").after('<span class="Fout">' + IIf($(".mpValideerHuisnummer").is('.GeenMelding') || i.Melding=='', '&nbsp;', i.Melding) + '</span>');
						}
						if(i.Veld=='Postcode' && $(".mpValideerHuisnummer").val()!=='') {
							$(".mpValideerHuisnummer").after('<span class="Onzeker">&nbsp;</span>');
						}
					}
				}
				tmpPostcode = $('.mpValideerPostcode').val();
			}});
		}
	} else {
		$('.mpValideerPlaats').show();
		$('.mpValideerStraat').show();
		$(".mpValideerPostcode").removeClass('Fout').removeClass('Goed');
		//$(".mpValideerHuisnummer").removeClass('Fout').removeClass('Goed');
		if(!$(".mpValideerPostcode").next('span').attr('class')!=='') $(".mpValideerPostcode").next('span').remove();
		//if(!$(".mpValideerHuisnummer").next('span').attr('class')!=='') $(".mpValideerHuisnummer").next('span').remove();		
		tmpPostcode = $('.mpValideerPostcode').val();
	};
}

function mpReady() {
	$(".mpValideerEMail").each(function() {
		var VeldId = $(this).attr("id");
		if(!$(this).next('span').length) $(this).after('<span class="Onzeker">&nbsp;</span>');
		
		$(this).keypress(function() {
			$(this).removeClass('Goed');
			$(this).removeClass('Fout');
			$(this).next('span').remove();
			$(this).after('<span class="Onzeker">&nbsp;</span>');
		});
		$(this).blur(function() {
			$(this).removeClass('Fout');
			$(this).removeClass('Goed');
			if(!$(this).next('span').attr('class')!=='') $(this).next('span').remove();
			$(this).after('<span class="Bezig">&nbsp;</span>');
			$.ajax({url: "/JSON.asp?Actie=mpCheckEmailadres", data: {"Id": VeldId, "Emailadres": $(this).val()}, dataType: "json", success: function(i) {
				$('#' + VeldId).next('span').remove();
				if(i.Goed) {
					$('#' + VeldId).addClass('Goed');
					$('#' + VeldId).after('<span class="Goed">' + IIf($('#' + VeldId).is('.GeenMelding') || i.Melding=='', '&nbsp;', i.Melding) + '</span>');
				} else {
					$('#' + VeldId).addClass('Fout');
					$('#' + VeldId).after('<span class="Fout">' + IIf($('#' + VeldId).is('.GeenMelding') || i.Melding=='', '&nbsp;', i.Melding) + '</span>');
				}
			}});
		});
		if($(this).val()!=='' && !$(this).hasClass('Fout')) $(this).blur();
	});
	$(".mpValideerPostcode").each(function() {
		var VeldId = $(this).attr("id");
		if($(this).next('span').length==0) $(this).after('<span class="Onzeker">&nbsp;</span>');
		$(this).change(function() {
			mpCheckPostcode();
		});
		if($(this).val()!=='') mpCheckPostcode();
		$(this).keyup(function() {
			if ($(this).val().match(/^\d{4}\s?[a-zA-Z]{2}$/) && $('.mpValideerLandId').val()=='1') {
				if(tmpPostcode == $(this).val()) return false;
				//$(".mpValideerHuisnummer").focus();
				$(this).change();
			};
		});
	});
	$(".mpValideerHuisnummer").each(function() {
		var VeldId = $(this).attr("id");
		if($(this).next('span').length==0) $(this).after('<span class="Onzeker">&nbsp;</span>');
		$(this).change(function() {
			mpCheckPostcode();
		});
		if($(this).val()!=='') mpCheckPostcode();
	});
	$(".mpValideerHuisnummerToevoeging").each(function() {
		$(this).change(function() {
			mpCheckPostcode();
		});
	});
	if($(".mpValideerPostcode").length) {
		
	};
	$(".mpValideerLandId").change(function() {
		mpCheckPostcode();
	});
	//if($(".mpValideerPostcode").val()!=='' && $(".mpValideerHuisnummer").val()!=='' && !$(".mpValideerPostcode").hasClass('Fout') && !$(".mpValideerHuisnummer").hasClass('Fout')) $(".mpValideerPostcode").change();
	$("input.Fout").each(function() {
		if($(this).hasClass('mpValideerEMail')) return true;
		$(this).keypress(function() {
			$(this).removeClass('Fout');
			if($(this).next('span').attr('class')=='Fout') $(this).next('span').remove();
		});
	});
	$("textarea.Fout").each(function() {
		$(this).keypress(function() {
			$(this).removeClass('Fout');
			if($(this).next('span').attr('class')=='Fout') $(this).next('span').remove();
		});
	});
	$("select.Fout").each(function() {
		$(this).click(function() {
			$(this).removeClass('Fout');
			if($(this).next('span').attr('class')=='Fout') $(this).next('span').remove();
		});
	});
	$(".mpMaakBlanco").each(function() {
		$(this).focus(function() {
			if(this.value==this.defaultValue) {
				this.value = "";
			}
		}).blur(function() {
			if(!this.value.length) {
				this.value = this.defaultValue;
			}
		});
	});
	$(".mpScroll").click(function(event){
		event.preventDefault();
		var full_url = this.href;
		var parts = full_url.split('#');
		var trgt = parts[1];
		var target_offset = $('a[name=' + trgt + ']').offset();
		var target_top = target_offset.top;
		$('html, body').animate({scrollTop:target_top}, 500);
	});
	$(".BetaalOptie").each(function() {
		$(this).addClass('Hidden');
	});
	$(".BetaalOptieRij").click(function() {
		BetaalOptieId = $(this).children('.BetaalOptieRadio').children("input[type=radio]").attr("id").replace("bo_", "");
		OpenBetaalOptie();
		$("#bo_" + BetaalOptieId).blur();
	});
	$('.RijBetaalnaam input[name="BetaalOptieId"]').click(function() {
		if($(this).val() == '4') {
			$('#MachtigingFieldset').show();
		} else {
			$('#MachtigingFieldset').hide();
		}
		if($(this).val() !== '1') $('input[name="iDealIssuerId"]').attr('checked', false);
		if($(this).val() !== '3') $('input[name="BetaalOptieParentId"]').attr('checked', false);
	});
	if($('#BetaalOptie-4').attr('checked')) $('#MachtigingFieldset').show();
	$('.RijBetaalOpties input[name="iDealIssuerId"]').click(function() {
		$('#BetaalOptie-1').click();
		$('#MachtigingFieldset').hide();
	});
	$('.RijBetaalOpties input[name="BetaalOptieParentId"]').click(function() {
		$('#' + $(this).attr('rel')).click();
	});
	$('.RijBetaalOpties input[name="BetaalOptieParentId"]').each(function() {
		if($(this).attr('checked')) $('#' + $(this).attr('rel')).click();
	});
	$('.LeveringRadio input[name="VerzendOptie"]').click(function() {
		if($(this).val() == 'Aflever') {
			$('#ContainerAfleverAdres').show();
		} else {
			$('#ContainerAfleverAdres').hide();
		}
	});
	if($('#vo_Aflever').attr('checked')) $('#ContainerAfleverAdres').show();
	$("#frmWinkelwagenBezorgEnBetaalinfo").submit(function() {
		$("#Submit").attr("disabled", "true");
	});
	if(typeof(BetaalOptieId)!=="undefined") OpenBetaalOptie();
	$(".VerzendOptie").each(function() {
		$(this).addClass('Hidden');
	});
	$(".VerzendOptieRij").click(function() {
		VerzendOptie = $(this).children('.VerzendOptieRadio').children("input[type=radio]").attr("id").replace("vo_", "");
		OpenVerzendOptie();
		$("#vo_" + VerzendOptie).blur();
	});
	if(typeof(VerzendOptie)!=="undefined") OpenVerzendOptie();
	$('.Foto').lightBox();
	$('.ThumbFoto').click(function() {
		if(YouTubeId!='') {
			$('#YouTubeFilm').hide();
			$('#PreviewKlein').show();
			$('#AfbeeldingVergroten').show();
		}
		var Src = $(this).attr('href');
		Src = Src.replace('/Images/', '/Images/Thumbnail/Fixed' + FotoResolutie + '/');
		$('#PreviewKlein').attr('src', Src);
		FotoSelectedId = $(this).attr('id').replace('Foto', '');
		return false;
	});
	$('#AfbeeldingVergroten').click(function() {$('#PreviewKlein').click();});
	$('#PreviewKlein').click(function() {
		var HTML = '';
		$('.FotoGroot').remove();
		$('.ThumbFoto').each(function() {
			var Href = document.createElement('a');
			Href.href = $(this).attr('href');
			Href.title = $(this).attr('title');
			Href.id = 'Href' + $(this).attr('id');
			Href.className = "FotoGroot";
			
			document.getElementsByTagName("body")[0].appendChild(Href);
		});
		$('.FotoGroot').lightBox();
		$('#HrefFoto' + FotoSelectedId).click();
	});
	$('#ActiePopup').lightBox();
	$('#ProductAantal').change(function() {
		BerekenProductPrijs();
	});
	$('.ProductCombinaties').change(function() {
		BerekenProductPrijs();
	});
	$('.ProductMeebestellers').change(function() {
		BerekenProductPrijs();
	});
	if($('#ProductCategorieId').length!==0) BerekenProductPrijs();
	$('#KortingsCode1').keyup(function() {
		if($(this).val().length == 4) {
			$('#KortingsCode2').focus().select();
		}
	});
	$('#KortingsCode2').keyup(function() {
		if($(this).val().length == 4) {
			$('#KortingsCode3').focus().select();
		}
	});
	$('#KortingsCode3').keyup(function() {
		if($(this).val().length == 4) {
			$('#KortingsCodeInwisselen').focus().select();
		}
	});
	$('#MediumGroepId').change(function() {
		UpdateMediumCodes();
	});
	if($('#MediumGroepId').length) UpdateMediumCodes();
	$('.FilterCategorieId').click(function() {
		$('#frmFilterCategorie').submit();
	});
	$('.FilterMerkId').click(function() {
		$('#frmFilterCategorie').submit();
	});
	$('.WebmallCategorieId').click(function() {
		$('#frmFilterCategorie').submit();
	});
	$('.Paginas').click(function() {
		Pagina = $(this).attr('rel');
		if($(this).hasClass('Beneden')) {
			var target_offset = $('a[name=SorteerOp]').offset();
			var target_top = target_offset.top;
			$('html, body').animate({scrollTop:target_top}, 500);
		}
		UpdateCategorie();
		return false;
	});
	$('.Sortering').click(function() {
		//$('#SorteerRanking').css({'background-position': '0 0'});
		//$('#SorteerPrijs').css({'background-position': '0 0'});
		//$('#SorteerDatum').css({'background-position': '0 0'});
		//
		if(Sortering == $(this).attr('rel')) {
			SorteringDesc =! SorteringDesc;
		}
		//$('#Sorteer' + $(this).attr('rel')).css({'background-position': '0 ' + IIf(SorteringDesc, '-26px', '-13px')});

		Sortering = $(this).attr('rel');
		UpdateCategorie();
		return false;
	});
	$('#frmFilterCategorie').submit(function() {
		Pagina = 1;
		UpdateCategorie();
		return false;
	});
	$("#slider-range").slider({
		range: true,
		min: SlideMin,
		max: SlideMax,
		values: [IIf(Min == -1, SlideMin, Min), IIf(Max == -1, SlideMax, Max)],
		slide: function(event, ui) {
			$("#amount").val(mpMaskValuta(ui.values[0]) + " - " + mpMaskValuta(ui.values[1]));
			Pagina = 1;
			SliderUpdate = true;
			SliderTimer();
		}
	});
	$("#amount").val(mpMaskValuta($("#slider-range").slider("values", 0)) + " - " + mpMaskValuta($("#slider-range").slider("values", 1)));
	if($('.SorteerTekst').length) {
		UpdateCategorieCookie();
	}
}

//History.Adapter.bind(window,'statechange',function(){
//    var State = History.getState();
//});

var tmrSlider = 0;

function SliderTimer() {
	clearTimeout(tmrSlider);
	tmrSlider = setTimeout("UpdateCategorie();", 1000);
}

var mpJSON2Url = {
	data : function(a1){
		t=[];
		for(x in a1) {
			if(a1[x]!=='') t.push(x+"="+encodeURI(a1[x]));
		}
		return t.join("&");
	}
};

function UpdateCategorie() {
	var FilterCategorieIds = '';
	$('.FilterCategorieId:checked').each(function() {
		FilterCategorieIds += IIf(FilterCategorieIds=='', '', ', ') + $(this).val();
	});
	var FilterMerkIds = '';
	$('.FilterMerkId:checked').each(function() {
		FilterMerkIds += IIf(FilterMerkIds=='', '', ', ') + $(this).val();
	});
	var WebmallCategorieIds = '';
	$('.WebmallCategorieId:checked').each(function() {
		WebmallCategorieIds += IIf(WebmallCategorieIds=='', '', ', ') + $(this).val();
	});

	$('.ProductVakInhoud').prepend('<div id="AjaxLoading"><img border="0" src="/Images/ajax-loader.gif" width="32" height="32"><br /><span id="LoadingProgress">Moment a.u.b.</span></div>');
	$('#AjaxLoading').center();
	$('#AjaxLoading').show();
	
	var State = History.getState(); 
	var Url = State.url;
	var RelativeUrl = Url.replace(History.getRootUrl(), '');
		
	if(RelativeUrl.indexOf('/Pagina-') == -1) {
		if(RelativeUrl.indexOf('?') == -1) {
			if(RelativeUrl.indexOf('#') == -1) {
				Url = RelativeUrl;
			} else {
				Url = RelativeUrl.substring(0, RelativeUrl.indexOf('#'));
			}
		} else {
			Url = RelativeUrl.substring(0, RelativeUrl.indexOf('?'));
		}
	} else {
		Url = RelativeUrl.substring(0, RelativeUrl.indexOf('/Pagina-') + 1);
	}
	
	var currentState = {'Pagina': Pagina, 'ZoekQuery': Trefwoorden, 'WebmallCategorieIds': WebmallCategorieIds, 'FilterCategorieIds': FilterCategorieIds, 'FilterMerkIds': FilterMerkIds, 'Sortering': Sortering, 'SorteringDesc': SorteringDesc, 'Min': $("#slider-range").slider("values", 0), 'Max': $("#slider-range").slider("values", 1)};
	var currentURL = '/' + Url + '?'  + mpJSON2Url.data(currentState)
	History.pushState(currentState, document.title, currentURL);
	
	if(a) a.abort();
	a = $.ajax({url: '/' + Url + '?' + 'AjaxHTML=1', 
		data: currentState,
		dataType: 'text',
		type: 'POST',
		success: function(j) {
			SliderUpdate = false;
			$('#AjaxHTML').replaceWith(j);
			$('.Paginas').click(function() {
				Pagina = $(this).attr('rel');
				if($(this).hasClass('Beneden')) {
					var target_offset = $('a[name=SorteerOp]').offset();
					var target_top = target_offset.top;
					$('html, body').animate({scrollTop:target_top}, 500);
				}
				UpdateCategorie();
				return false;
			});
			$('#AjaxLoading').remove();
		},
		//error: function(j, s, e) {
		//	alert(s + ' - ' + e);
		//}
	});
}

function UpdateCategorieCookie() {
	if(window.location.href.indexOf('#')==-1) {
		return false; //Bij HTML5 browsers dit overslaan
	}
	var State = History.getState();
	var Vars = State.data;
	var Url = State.url;
	var RelativeUrl = Url.replace(History.getRootUrl(), '');
	
	if(RelativeUrl.indexOf('/Pagina-') == -1) {
		if(RelativeUrl.indexOf('?') == -1) {
			if(RelativeUrl.indexOf('#') == -1) {
				Url = RelativeUrl;
			} else {
				Url = RelativeUrl.substring(0, RelativeUrl.indexOf('#') - 1);
			}
		} else {
			Url = RelativeUrl.substring(0, RelativeUrl.indexOf('?') - 1);
		}
	} else {
		Url = RelativeUrl.substring(0, RelativeUrl.indexOf('/Pagina-') + 1);
	}
	$('.ProductVakInhoud').prepend('<div id="AjaxLoading"><img border="0" src="/Images/ajax-loader.gif" width="32" height="32"><br /><span id="LoadingProgress">Moment a.u.b.</span></div>');
	$('#AjaxLoading').center();
	$('#AjaxLoading').show();
	if(a) a.abort();
	a = $.ajax({url: '/' + Url +  '?AjaxHTML=1',
		data: Vars,
		dataType: 'text',
		type: 'POST',
		success: function(j) {
			SliderUpdate = false;
			$('#AjaxHTML').replaceWith(j);
			$('.Paginas').click(function() {
				Pagina = $(this).attr('rel');
				if($(this).hasClass('Beneden')) {
					var target_offset = $('a[name=SorteerOp]').offset();
					var target_top = target_offset.top;
					$('html, body').animate({scrollTop:target_top}, 500);
				}
				UpdateCategorie();
				return false;
			});
			$('#AjaxLoading').remove();
		},
		//error: function(j, s, e) {
		//	alert(s + ' - ' + e);
		//}
	});
	
	if(!Vars.FilterMerkIds) {
		var State = History.getState();
		var Vars = State.data;
		//alert(Vars.Pagina);
		return false;
	}
	
	$('.FilterMerkId').attr('checked', false);
	var MerkIds = Vars.FilterMerkIds.split(', ');
	for(var i = 0; i < MerkIds.length; i++) {
		$('#FilterMerkId-' + MerkIds[i]).attr('checked', true);
	};
	
	$('.FilterCategorieId').attr('checked', false);
	var CategorieIds = Vars.FilterCategorieIds.split(', ');
	for(var i = 0; i < CategorieIds.length; i++) {
		$('#FilterCategorieId-' + CategorieIds[i]).attr('checked', true);
	};
	
	$('.WebmallCategorieId').attr('checked', false);
	var WebmallCategorieIds = Vars.WebmallCategorieIds.split(', ');
	for(var i = 0; i < WebmallCategorieIds.length; i++) {
		$('#WebmallCategorieId-' + WebmallCategorieIds[i]).attr('checked', true);
	};
	
	$('#SorteerRanking').css({'background-position': '0 0'});
	$('#SorteerPrijs').css({'background-position': '0 0'});
	$('#SorteerDatum').css({'background-position': '0 0'});
	
	SorteringDesc = Vars.SorteringDesc=='true';
	Sortering = Vars.Sortering;
	$('#Sorteer' + Sortering).css({'background-position': '0 ' + IIf(SorteringDesc, '-26px', '-13px')});
	
	$("#slider-range").slider({values: [Vars.Min, Vars.Max]});
	$("#amount").val(mpMaskValuta($("#slider-range").slider("values", 0)) + " - " + mpMaskValuta($("#slider-range").slider("values", 1)));
}

function BerekenProductPrijs() {
	var ProductAantal = $('#ProductAantal').val();
	var ProductTotaalPrijs, c, d, e;
	var IsKortingAantal;
	var aantGeenKorting = 0;
	var ProductTotaalPrijs = 0;
	var ProductTotaalVanPrijs = 0;
	
	if(ProductKortingAantal!==0 && ProductAantal >= ProductKortingAantal) {
		var aantGeenKorting, aantVoorKorting;
		aantGeenKorting = ProductAantal % ProductKortingAantal;
		aantVoorKorting = (ProductAantal - aantGeenKorting) / ProductKortingAantal;
		ProductTotaalPrijs = (aantVoorKorting * ProductKortingPrijs) + (aantGeenKorting * ProductPrijs);
		IsKortingAantal = true;
	} else {
		ProductTotaalPrijs = ProductAantal * ProductPrijs;
		IsKortingAantal = false;
	}
	ProductTotaalVanPrijs += ProductAantal * ProductVanPrijs;
		
	if(AantalCombies!==0) {
		var PrijsCorrectie = 0;
		for(c=1;c<=5;c++) {
			if(c<=ProductAantal) {
				var a, CombinatieId;
				$('#ProductCombinatie' + c).show();
				for (a=1;a<=AantalCombies;a++) {
					PrijsCorrectie = PrijsCorrectie + mpGetProductCombinatiePrijsCorrectie($('#ProductCombinatie' + c + '_' + a).val())
				}
			} else {
				$('#ProductCombinatie' + c).hide();
			}
		}
		ProductTotaalPrijs = ProductTotaalPrijs + PrijsCorrectie;
		ProductTotaalVanPrijs += PrijsCorrectie;
	}
	if(AantalMeebestellers!==0) {
		for(d=1;d<=AantalMeebestellers;d++) {
			var ProductMeebestellerMaxAantal = mpGetProductMeebestellerMaxAantal(d);
			if(ProductMeebestellerMaxAantal == "1PerProduct") {
				if($('#ProductMeebesteller' + mpGetProductMeebestellerOrder(d) + 'Aantal').attr('checked')) {
					var AantalPerMeebestellers = 1;
				} else {
					var AantalPerMeebestellers = 0;
				}
			} else {
				var AantalPerMeebestellers = $('#ProductMeebesteller' + mpGetProductMeebestellerOrder(d) + 'Aantal').val();
			}
			if(ProductMeebestellerMaxAantal == "Bestelaantal") {
				if(AantalPerMeebestellers>ProductAantal) {
					var PullDownMeebesteller = document.getElementById('ProductMeebesteller' + mpGetProductMeebestellerOrder(d) + 'Aantal');
					PullDownMeebesteller.options.length = 0;
					for(e=0;e<=5;e++) {
						PullDownMeebesteller.options[e] = new Option(e, e, e==ProductAantal, e==ProductAantal);
					}
					AantalPerMeebestellers = ProductAantal;
				}
			} else {
				AantalPerMeebestellers = AantalPerMeebestellers;
			}
			ProductTotaalPrijs = ProductTotaalPrijs + (AantalPerMeebestellers * mpGetProductMeebestellerPrijs(mpGetProductMeebestellerOrder(d)));
			ProductTotaalVanPrijs += AantalPerMeebestellers * mpGetProductMeebestellerPrijs(mpGetProductMeebestellerOrder(d));
		}
	}
	if($('#ProductTotaalPrijs').length!==0) {
		$('#ProductTotaalPrijs').html(mpMaskValuta(ProductTotaalPrijs));
	} else {
		$('.ProductVanPrijs').html("&euro; " + mpMaskValuta(ProductTotaalVanPrijs));
		$('.ProductVoorPrijs').html("&euro; " + mpMaskValuta(ProductTotaalPrijs));
	}
}

function OpenBetaalOptie() {
	$("#bo_" + BetaalOptieId).attr("checked", true);
	$(".BetaalOptie").each(function() {
		$(this).addClass('Hidden');
	});
	$("#BetaalOptie_" + BetaalOptieId).removeClass('Hidden');
	BerekenTotaal();
}

function BerekenTotaal() {
	var TotaalBedrag = 0;
	if(((GratisVerzendkosteniDeal && BetaalOptieId == 1) || GratisVerzendkosten) && (GratisVerzendkosteniDealDrempel == 0 || TotaalPrijs >= GratisVerzendkosteniDealDrempel)) {
		TotaalBedrag = TotaalPrijs - Korting;
		$('#htmlStandaardVerzenkosten').html(mpMaskValuta(0));
		if(typeof($('#htmlSpecialeVerzenkosten'))!=="undefined") $('#htmlSpecialeVerzenkosten').html(mpMaskValuta(0));
	} else {
		TotaalBedrag = TotaalPrijs + Verzendkosten + ExtraVerzendkosten - Korting;
		$('#htmlStandaardVerzenkosten').html(mpMaskValuta(Verzendkosten));
		if(typeof($('#htmlSpecialeVerzenkosten'))!=="undefined") $('#htmlSpecialeVerzenkosten').html(mpMaskValuta(ExtraVerzendkosten));
	}
	var BetaalToeslag = mpGetBetaalToeslag(BetaalOptieId);
	TotaalBedrag = TotaalBedrag + BetaalToeslag;
	$('#htmlBetaalToeslag').html(mpMaskValuta(BetaalToeslag));
	$('#htmlTotaalBedrag').html(mpMaskValuta(TotaalBedrag));
}

function mpGetBetaalToeslag(BetaalOptieId) {
	for (var i = 0; i < JSONBetaalOpties.BetaalOpties.length; i++) {
		if(JSONBetaalOpties.BetaalOpties[i].BetaalOptieId==BetaalOptieId) {
			var BetaalToeslag = JSONBetaalOpties.BetaalOpties[i].BetaalToeslag;
			break;
		}
	}
	return BetaalToeslag;
}

function mpGetProductCombinatiePrijsCorrectie(ProductCombinatieId) {
	for (var i = 0; i < JSONProductCombinatiePrijsCorrectie.Records.length; i++) {
		if(JSONProductCombinatiePrijsCorrectie.Records[i].ProductCombinatieId==ProductCombinatieId) {
			var PrijsCorrectie = JSONProductCombinatiePrijsCorrectie.Records[i].PrijsCorrectie;
			break;
		}
	}
	return PrijsCorrectie;
}

function mpGetProductMeebestellerMaxAantal(MeebestellerOrder) {
	for (var i = 0; i < JSONProductMeebestellers.Records.length; i++) {
		if(JSONProductMeebestellers.Records[i].MeebestellerOrder==MeebestellerOrder) {
			var MaxAantal = JSONProductMeebestellers.Records[i].MaxAantal;
			break;
		}
	}
	return MaxAantal;
}

function mpGetProductMeebestellerPrijs(MeebestellerOrder) {
	for (var i = 0; i < JSONProductMeebestellers.Records.length; i++) {
		if(JSONProductMeebestellers.Records[i].MeebestellerOrder==MeebestellerOrder) {
			var MeebestellerPrijs = JSONProductMeebestellers.Records[i].MeebestellerPrijs;
			break;
		}
	}
	return MeebestellerPrijs;
}

function mpGetProductMeebestellerOrder(i) {
	if(JSONProductMeebestellers.Records.length == 0) return 0;
	return JSONProductMeebestellers.Records[i - 1].MeebestellerOrder;
}

function OpenVerzendOptie() {
	$("#vo_" + VerzendOptie).attr("checked", true);
	$(".VerzendOptie").each(function() {
		$(this).addClass('Hidden');
	});
	$("#VerzendOptie_" + VerzendOptie).removeClass('Hidden');
}

function UpdateMediumCodes() {
	$('#MediumCodeIdRij').hide();
	var MediumGroepId = $('#MediumGroepId').val();
	if(MediumGroepId=="0") return false;

	for (var i = 0; i < JSONMediumGroepen.MediumGroepen.length; i++) {
		if(JSONMediumGroepen.MediumGroepen[i].MediumGroepId==MediumGroepId) {
			if(!JSONMediumGroepen.MediumGroepen[i].Onzichtbaar) {
				$('#MediumCodeId').find('option').each(function() {
					$(this).remove();
				});
				for (var j = 0; j < JSONMediumGroepen.MediumGroepen[i].MediumCodes.length; j++) {
					$('#MediumCodeId').append($("<option value='" + JSONMediumGroepen.MediumGroepen[i].MediumCodes[j].MediumCodeId + "'>" + JSONMediumGroepen.MediumGroepen[i].MediumCodes[j].MediumCode + "</option>"));
				}
				$('#MediumCodeId').append($("<option value='0'>Onbekend / Overig</option>"));
				$('#MediumCodeIdRij').show();
				break;
			} else {
				$('#MediumCodeId').find('option').each(function() {
					$(this).remove();
				});
			}
		}
	}
}

function mpBrochurePopup() {
	LadenStart();
	$.ajax({
		url: "/JSON.asp?Actie=mpGetFormBrochureAanvragen",
		data: {'ProductId': $('#ProductId').val()},
		dataType: 'text',
		success: function(j) {
			$('#LoadingProgress').html(j);
			$('#AjaxLoading img').remove();
			$('#AjaxLoading').css({
				width: '500px',
				height: '550px',
				'text-align': 'left'
			});
			var arrPageSizes = ___getPageSize();
			$('#AjaxLoading').center();
			$('#AjaxOverlay').click(function() {
				mpBrochurePopupSluiten();
			});
			mpReady();
		}
	});
}

function mpBrochureOpslaan() {
	$.ajax({
		url: "/JSON.asp?Actie=mpGetBrochureAanvraagOpslaan",
		data: {
			'ProductId':					$('#ProductId').val()
			,'BrochureGeslacht':			$('input:radio[name=BrochureGeslacht]:checked').val()
			,'BrochureVoornaam':			$('#BrochureVoornaam').val()
			,'BrochureTussenvoegsel':		$('#BrochureTussenvoegsel').val()
			,'BrochureAchternaam':			$('#BrochureAchternaam').val()
			,'BrochureStraat':				$('#BrochureStraat').val()
			,'BrochureHuisnummer':			$('#BrochureHuisnummer').val()
			,'BrochureHuisnummerToevoeging':$('#BrochureHuisnummerToevoeging').val()
			,'BrochurePostcode':			$('#BrochurePostcode').val()
			,'BrochurePlaats':				$('#BrochurePlaats').val()
			,'BrochureLandId':				$('#BrochureLandId').val()
			,'BrochureTelefoonnummer':		$('#BrochureTelefoonnummer').val()
			,'BrochureMobielnummer':		$('#BrochureMobielnummer').val()
			,'BrochureEmailadres':			$('#BrochureEmailadres').val()
		},
		dataType: 'text',
		type: 'POST',
		success: function(j) {
			$('#LoadingProgress').html(j);
			mpReady();
		}
	});
}

function mpBrochurePopupSluiten() {
	LadenStop();
}

function LadenStart() {
	if(!$('#AjaxLoading').length) {
		$('body').append('<div id="AjaxOverlay"></div>');
		$('body').append('<div id="AjaxLoading"><img border="0" src="/admin/Images/ajax-loader.gif" width="32" height="32"><span id="LoadingProgress"><br />Moment a.u.b.</span></div>');
	}
	var arrPageSizes = ___getPageSize();
	$('#AjaxOverlay').css({
		opacity: 0.6,
		width: arrPageSizes[0],
		height: arrPageSizes[1]
	});
	$('#LoadingProgress').html('Moment a.u.b.');
	$('#AjaxLoading').center();
	$('#AjaxLoading').show();
	$('#AjaxOverlay').show();
}

function LadenStop() {
	$('#AjaxLoading').hide();
	$('#AjaxOverlay').hide();
}

function mpMaskValuta(Valuta) {
	var num = Valuta;
	num = num.toString().replace(/\$|/g, '');
	num = num.toString().replace(',', '.')
	if(isNaN(num)) num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10) cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+'.'+ num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + num + ',' + cents);
}

function ToggleWinkelwagenInloggen(Tabblad) {
	if(Tabblad=='Winkelwagen') {
		$('#GridWinkelwagen').show();
		$('#GridInloggen').hide();
		$('#HeaderGrid').css('backgroundPosition', '0 0');
		
	} else {
		$('#GridWinkelwagen').hide();
		$('#GridInloggen').show();
		$('#HeaderGrid').css('backgroundPosition', '0 -72px');
	}
}

function PreviewAfbeelding(Afbeelding, FotoNr) {
	if(YouTubeId!='') {
		$('#YouTubeFilm').hide();
		$('#Preview').show();
	}
	$('#Preview').attr('src', '/Images/Thumbnail/Fixed' + FotoResolutie + '/' + Afbeelding);
	FotoSelectedId = FotoNr;
}

function ShowYouTube() {
	$('#YouTubeFilm').show();
	$('#PreviewKlein').hide();
	$('#Preview').hide();
	$('#AfbeeldingVergroten').hide();
}

function Zoeken(Pagina) {
	if(Pagina!='') {
		document.getElementById('frmZoeken').action = "/Zoeken/Pagina-" + Pagina + ".html";
	} else {
		document.getElementById('frmZoeken').action = "/Zoeken.html";
	}
	document.getElementById('frmZoeken').submit();
}

function GratisVerzenden(JaNee) {
	var StandaardVerzendkosten = $('$StandaardVerzenkosten').val();
	var SpecialeVerzenkosten = $('#SpecialeVerzenkosten').val();
	var NormaalTotaalBedrag = $('#NormaalTotaalBedrag').val();
	var GratisVerzendenTotaalBedrag = $('#GratisVerzendenTotaalBedrag').val();
	
	if(JaNee) {
		$('#htmlStandaardVerzenkosten').html('0,00');
		$('#htmlSpecialeVerzenkosten').html('0,00');
		$('#TotaalBedrag').html(GratisVerzendenTotaalBedrag);
	} else {
		$('#htmlStandaardVerzenkosten').html(StandaardVerzendkosten);
		$('#htmlSpecialeVerzenkosten').html(SpecialeVerzenkosten);
		$('#TotaalBedrag').html($('#TotaalBedrag' + $('#BetaalOptie').val()).val());
	}
}

function ToggleLogin() {
	if($('#InloggenEMailadres').val() == 'Uw e-mailadres') {
		$('#InloggenEMailadres').val('');
		$('#InloggenWachtwoord').val('');
	} else if ($('#InloggenEMailadres').val() == '') {
		$('#InloggenEMailadres').val('Uw e-mailadres');
		$('#InloggenWachtwoord').val('Wachtwoord');		
	}
}

function OpenProducten() {
	$('#VerborgenArtikelen').show();
	$('#ProductenOpenen').hide();
}

function CreateBookmarkLink() {
	title = document.title;
	url = window.location.href;

	if (window.sidebar) {
		window.sidebar.addPanel(title, url, "");
	} else if(window.external) {
		window.external.AddFavorite( url, title);
	} else {
		alert('Uw browser ondersteund geen mogelijkheid\nom deze pagina automatisch aan uw\nfavorieten/bookmarks toe te voegen.\n\nU kunt dit zelf doen via het menu van uw browser.');
	}
}

function WinkelwagenToevoegen(ProductCategorieId, ProductId, ProductAantal) {
	frm = document.createElement("form");
	frm.setAttribute("method", "post");
	frm.setAttribute("id", "tmpWinkelwagen");
	frm.setAttribute("name", "tmpWinkelwagen");
	frm.setAttribute("action", "/Winkelwagen.html");
	
	MaakFormInput("a", "ProductToevoegen", "hidden", frm);
	MaakFormInput("ProductCategorieId", ProductCategorieId, "hidden", frm);
	MaakFormInput("ProductId", ProductId, "hidden", frm);
	MaakFormInput("ProductAantal", ProductAantal, "hidden", frm);
	document.body.appendChild(frm);
	frm.submit()
}

function MaakFormInput(Name, Value, Type, Form) {
	inp = document.createElement("input");
	inp.setAttribute("name", Name);
	inp.setAttribute("value", Value);
	inp.setAttribute("type", Type);
	Form.appendChild(inp);
}

function Ajax(Actie, Data) {
	$.ajax({
		url: Actie,
		data: Data,
		dataType: 'text',
		success: function(j) {
			eval(j);
		}
	});
}

function IIf(psdStr, trueStr, falseStr) {
	if(psdStr) {
		return trueStr;
	} else {
		return falseStr;
	}
}

var MailaFriendAanNaam = '';
var MailaFriendAanEMail = '';
var MailaFriendVanNaam = '';
var MailaFriendVanEMail = '';

var MailaFriendFrame = '<div id="cMailaFriend"><div id="MailaFriendBoven"><h2>Mail vriend of vriendin</h2><a href="#" onclick="javascript:MailaFriendSluiten(); return false;">Sluiten</a></div><div id="MailaFriendOnder"><p>Breng een vriend of vriendin op de hoogte van dit product. Vul hieronder de gegevens in en klik op verzenden.</p><div id="MailaFriendContent"></div><div id="MailaFriendPrivacy"><p>Ingevoerde gegevens worden éénmalig gebruikt en worden niet verstrekt aan derden.</p></div></div></div>'
var MailaFriendForm = '<form id="MailaFriend" action="/MailVriendVriendin.html?a=MailVriendVriendin" class="frmOpmaak"><h3>Aan</h3><fieldset><div class="Rij"><label for="MailaFriendAanNaam" class="MailaFriend">Naam <acronym title="Verplicht veld">*</acronym></label><input type="text" name="MailaFriendAanNaam" id="MailaFriendAanNaam" value="' + MailaFriendAanNaam + '" class="InputNormaal" /></div><div class="Rij"><label for="MailaFriendAanEMail" class="MailaFriend">E-mail <acronym title="Verplicht veld">*</acronym></label><input type="text" name="MailaFriendAanEMail" id="MailaFriendAanEMail" class="InputNormaal mpValideerEMail GeenMelding" value="' + MailaFriendAanEMail + '" /></div></fieldset><h3>Van</h3><fieldset><div class="Rij"><label for="MailaFriendVanNaam" class="MailaFriend">Naam <acronym title="Verplicht veld">*</acronym></label><input type="text" name="MailaFriendVanNaam" id="MailaFriendVanNaam" value="' + MailaFriendVanNaam + '" class="InputNormaal" /></div><div class="Rij"><label for="MailaFriendVanEMail" class="MailaFriend">E-mail <acronym title="Verplicht veld">*</acronym></label><input type="text" name="MailaFriendVanEMail" id="MailaFriendVanEMail" class="InputNormaal mpValideerEMail GeenMelding" value="' + MailaFriendVanEMail + '" /></div><h4><acronym>*</acronym> Vul minimaal deze gegevens in</h4><div id="MailaFriendSubmit"><input type="button" onclick="javascript:MailaFriend();" name="Submit" value="Verzenden" id="MailaFriendVerzenden" /></div></form>'

function MailaFriendOpen() {
	if($('#cMailaFriend').length==0) {
		pageTracker._trackPageview('/MailVriendVriendin.html');
		$('#MailaFriendButton').after(MailaFriendFrame);
		MailaFriendOpnieuw();
	}
	mpReady();
}

function MailaFriendOpnieuw() {
	$('#MailaFriendContent').html(MailaFriendForm);
	$('#MailaFriendAanNaam').val(MailaFriendAanNaam);
	$('#MailaFriendAanEMail').val(MailaFriendAanEMail);
	$('#MailaFriendVanNaam').val(MailaFriendVanNaam);
	$('#MailaFriendVanEMail').val(MailaFriendVanEMail);
	mpReady();
}

function MailaFriend() {
	MailaFriendAanNaam = $('#MailaFriendAanNaam').val();
	MailaFriendAanEMail = $('#MailaFriendAanEMail').val();
	MailaFriendVanNaam = $('#MailaFriendVanNaam').val();
	MailaFriendVanEMail = $('#MailaFriendVanEMail').val();
	var ProductId = $('#ProductId').val();
	var ProductCategorieId = $('#ProductCategorieId').val();
	$('#MailaFriendContent').html('<div id="MailaFriendVerzend"><p class="MailaFriendCenter"><img src="/Images/ImagePopUp-loading.gif" /></p><p class="MailaFriendCenter">Een ogenblik geduld a.u.b.</p></div>');
	Ajax('/MailaFriend.html', 'MailaFriendAanNaam=' + MailaFriendAanNaam + '&MailaFriendAanEMail=' + MailaFriendAanEMail + '&MailaFriendVanNaam=' + MailaFriendVanNaam + '&MailaFriendVanEMail=' + MailaFriendVanEMail + '&ProductId=' + ProductId + '&ProductCategorieId=' + ProductCategorieId);
}

function MailaFriendSucces() {
	MailaFriendAanNaam = '';
	MailaFriendAanEMail = '';
	pageTracker._trackPageview('/MailVriendVriendin.html?Succesvol=1');
	$('#MailaFriendContent').html('<div id="MailaFriendSucces"><p class="MailaFriendCenter">E-mail succesvol verzonden!</p><p class="MailaFriendCenter"><input type="button" value="Sluiten" onclick="javascript:MailaFriendSluiten();"><input type="button" value="Opnieuw" onclick="javascript:MailaFriendOpnieuw();"></div>');
}

function MailaFriendFout() {
	$('#MailaFriendContent').html('<div id="MailaFriendFout"><p class="MailaFriendCenter">Fout tijdens verzenden!</p><p class="MailaFriendCenter"><input type="button" value="Sluiten" onclick="javascript:MailaFriendSluiten();"><input type="button" value="Opnieuw" onclick="javascript:MailaFriendOpnieuw();"></div>');
}

function MailaFriendSluiten() {
	$('#cMailaFriend').remove();
}

function ___getPageSize() {
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}
	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
	return arrayPageSize;
};
