(function($){$.extend({tablesorter:new
function(){var parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:'/\.|\,/g',onRenderHeader:null,selectorHeaders:'thead th',debug:false};function benchmark(s,d){log(s+","+(new Date().getTime()-d.getTime())+"ms");}this.benchmark=benchmark;function log(s){if(typeof console!="undefined"&&typeof console.debug!="undefined"){console.log(s);}else{alert(s);}}function buildParserCache(table,$headers){if(table.config.debug){var parsersDebug="";}if(table.tBodies.length==0)return;var rows=table.tBodies[0].rows;if(rows[0]){var list=[],cells=rows[0].cells,l=cells.length;for(var i=0;i<l;i++){var p=false;if($.metadata&&($($headers[i]).metadata()&&$($headers[i]).metadata().sorter)){p=getParserById($($headers[i]).metadata().sorter);}else if((table.config.headers[i]&&table.config.headers[i].sorter)){p=getParserById(table.config.headers[i].sorter);}if(!p){p=detectParserForColumn(table,rows,-1,i);}if(table.config.debug){parsersDebug+="column:"+i+" parser:"+p.id+"\n";}list.push(p);}}if(table.config.debug){log(parsersDebug);}return list;};function detectParserForColumn(table,rows,rowIndex,cellIndex){var l=parsers.length,node=false,nodeValue=false,keepLooking=true;while(nodeValue==''&&keepLooking){rowIndex++;if(rows[rowIndex]){node=getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex);nodeValue=trimAndGetNodeText(table.config,node);if(table.config.debug){log('Checking if value was empty on row:'+rowIndex);}}else{keepLooking=false;}}for(var i=1;i<l;i++){if(parsers[i].is(nodeValue,table,node)){return parsers[i];}}return parsers[0];}function getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex){return rows[rowIndex].cells[cellIndex];}function trimAndGetNodeText(config,node){return $.trim(getElementText(config,node));}function getParserById(name){var l=parsers.length;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==name.toLowerCase()){return parsers[i];}}return false;}function buildCache(table){if(table.config.debug){var cacheTime=new Date();}var totalRows=(table.tBodies[0]&&table.tBodies[0].rows.length)||0,totalCells=(table.tBodies[0].rows[0]&&table.tBodies[0].rows[0].cells.length)||0,parsers=table.config.parsers,cache={row:[],normalized:[]};for(var i=0;i<totalRows;++i){var c=$(table.tBodies[0].rows[i]),cols=[];if(c.hasClass(table.config.cssChildRow)){cache.row[cache.row.length-1]=cache.row[cache.row.length-1].add(c);continue;}cache.row.push(c);for(var j=0;j<totalCells;++j){cols.push(parsers[j].format(getElementText(table.config,c[0].cells[j]),table,c[0].cells[j]));}cols.push(cache.normalized.length);cache.normalized.push(cols);cols=null;};if(table.config.debug){benchmark("Building cache for "+totalRows+" rows:",cacheTime);}return cache;};function getElementText(config,node){var text="";if(!node)return"";if(!config.supportsTextContent)config.supportsTextContent=node.textContent||false;if(config.textExtraction=="simple"){if(config.supportsTextContent){text=node.textContent;}else{if(node.childNodes[0]&&node.childNodes[0].hasChildNodes()){text=node.childNodes[0].innerHTML;}else{text=node.innerHTML;}}}else{if(typeof(config.textExtraction)=="function"){text=config.textExtraction(node);}else{text=$(node).text();}}return text;}function appendToTable(table,cache){if(table.config.debug){var appendTime=new Date()}var c=cache,r=c.row,n=c.normalized,totalRows=n.length,checkCell=(n[0].length-1),tableBody=$(table.tBodies[0]),rows=[];for(var i=0;i<totalRows;i++){var pos=n[i][checkCell];rows.push(r[pos]);if(!table.config.appender){var l=r[pos].length;for(var j=0;j<l;j++){tableBody[0].appendChild(r[pos][j]);}}}if(table.config.appender){table.config.appender(table,rows);}rows=null;if(table.config.debug){benchmark("Rebuilt table:",appendTime);}applyWidget(table);setTimeout(function(){$(table).trigger("sortEnd");},0);};function buildHeaders(table){if(table.config.debug){var time=new Date();}var meta=($.metadata)?true:false;var header_index=computeTableHeaderCellIndexes(table);$tableHeaders=$(table.config.selectorHeaders,table).each(function(index){this.column=header_index[this.parentNode.rowIndex+"-"+this.cellIndex];this.order=formatSortingOrder(table.config.sortInitialOrder);this.count=this.order;if(checkHeaderMetadata(this)||checkHeaderOptions(table,index))this.sortDisabled=true;if(checkHeaderOptionsSortingLocked(table,index))this.order=this.lockedOrder=checkHeaderOptionsSortingLocked(table,index);if(!this.sortDisabled){var $th=$(this).addClass(table.config.cssHeader);if(table.config.onRenderHeader)table.config.onRenderHeader.apply($th);}table.config.headerList[index]=this;});if(table.config.debug){benchmark("Built headers:",time);log($tableHeaders);}return $tableHeaders;};function computeTableHeaderCellIndexes(t){var matrix=[];var lookup={};var thead=t.getElementsByTagName('THEAD')[0];var trs=thead.getElementsByTagName('TR');for(var i=0;i<trs.length;i++){var cells=trs[i].cells;for(var j=0;j<cells.length;j++){var c=cells[j];var rowIndex=c.parentNode.rowIndex;var cellId=rowIndex+"-"+c.cellIndex;var rowSpan=c.rowSpan||1;var colSpan=c.colSpan||1
var firstAvailCol;if(typeof(matrix[rowIndex])=="undefined"){matrix[rowIndex]=[];}for(var k=0;k<matrix[rowIndex].length+1;k++){if(typeof(matrix[rowIndex][k])=="undefined"){firstAvailCol=k;break;}}lookup[cellId]=firstAvailCol;for(var k=rowIndex;k<rowIndex+rowSpan;k++){if(typeof(matrix[k])=="undefined"){matrix[k]=[];}var matrixrow=matrix[k];for(var l=firstAvailCol;l<firstAvailCol+colSpan;l++){matrixrow[l]="x";}}}}return lookup;}function checkCellColSpan(table,rows,row){var arr=[],r=table.tHead.rows,c=r[row].cells;for(var i=0;i<c.length;i++){var cell=c[i];if(cell.colSpan>1){arr=arr.concat(checkCellColSpan(table,headerArr,row++));}else{if(table.tHead.length==1||(cell.rowSpan>1||!r[row+1])){arr.push(cell);}}}return arr;};function checkHeaderMetadata(cell){if(($.metadata)&&($(cell).metadata().sorter===false)){return true;};return false;}function checkHeaderOptions(table,i){if((table.config.headers[i])&&(table.config.headers[i].sorter===false)){return true;};return false;}function checkHeaderOptionsSortingLocked(table,i){if((table.config.headers[i])&&(table.config.headers[i].lockedOrder))return table.config.headers[i].lockedOrder;return false;}function applyWidget(table){var c=table.config.widgets;var l=c.length;for(var i=0;i<l;i++){getWidgetById(c[i]).format(table);}}function getWidgetById(name){var l=widgets.length;for(var i=0;i<l;i++){if(widgets[i].id.toLowerCase()==name.toLowerCase()){return widgets[i];}}};function formatSortingOrder(v){if(typeof(v)!="Number"){return(v.toLowerCase()=="desc")?1:0;}else{return(v==1)?1:0;}}function isValueInArray(v,a){var l=a.length;for(var i=0;i<l;i++){if(a[i][0]==v){return true;}}return false;}function setHeadersCss(table,$headers,list,css){$headers.removeClass(css[0]).removeClass(css[1]);var h=[];$headers.each(function(offset){if(!this.sortDisabled){h[this.column]=$(this);}});var l=list.length;for(var i=0;i<l;i++){h[list[i][0]].addClass(css[list[i][1]]);}}function fixColumnWidth(table,$headers){var c=table.config;if(c.widthFixed){var colgroup=$('<colgroup>');$("tr:first td",table.tBodies[0]).each(function(){colgroup.append($('<col>').css('width',$(this).width()));});$(table).prepend(colgroup);};}function updateHeaderSortCount(table,sortList){var c=table.config,l=sortList.length;for(var i=0;i<l;i++){var s=sortList[i],o=c.headerList[s[0]];o.count=s[1];o.count++;}}function multisort(table,sortList,cache){if(table.config.debug){var sortTime=new Date();}var dynamicExp="var sortWrapper = function(a,b) {",l=sortList.length;for(var i=0;i<l;i++){var c=sortList[i][0];var order=sortList[i][1];var s=(table.config.parsers[c].type=="text")?((order==0)?makeSortFunction("text","asc",c):makeSortFunction("text","desc",c)):((order==0)?makeSortFunction("numeric","asc",c):makeSortFunction("numeric","desc",c));var e="e"+i;dynamicExp+="var "+e+" = "+s;dynamicExp+="if("+e+") { return "+e+"; } ";dynamicExp+="else { ";}var orgOrderCol=cache.normalized[0].length-1;dynamicExp+="return a["+orgOrderCol+"]-b["+orgOrderCol+"];";for(var i=0;i<l;i++){dynamicExp+="}; ";}dynamicExp+="return 0; ";dynamicExp+="}; ";if(table.config.debug){benchmark("Evaling expression:"+dynamicExp,new Date());}eval(dynamicExp);cache.normalized.sort(sortWrapper);if(table.config.debug){benchmark("Sorting on "+sortList.toString()+" and dir "+order+" time:",sortTime);}return cache;};function makeSortFunction(type,direction,index){var a="a["+index+"]",b="b["+index+"]";if(type=='text'&&direction=='asc'){return"("+a+" == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : ("+a+" < "+b+") ? -1 : 1 )));";}else if(type=='text'&&direction=='desc'){return"("+a+" == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : ("+b+" < "+a+") ? -1 : 1 )));";}else if(type=='numeric'&&direction=='asc'){return"("+a+" === null && "+b+" === null) ? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : "+a+" - "+b+"));";}else if(type=='numeric'&&direction=='desc'){return"("+a+" === null && "+b+" === null) ? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : "+b+" - "+a+"));";}};function makeSortText(i){return"((a["+i+"] < b["+i+"]) ? -1 : ((a["+i+"] > b["+i+"]) ? 1 : 0));";};function makeSortTextDesc(i){return"((b["+i+"] < a["+i+"]) ? -1 : ((b["+i+"] > a["+i+"]) ? 1 : 0));";};function makeSortNumeric(i){return"a["+i+"]-b["+i+"];";};function makeSortNumericDesc(i){return"b["+i+"]-a["+i+"];";};function sortText(a,b){if(table.config.sortLocaleCompare)return a.localeCompare(b);return((a<b)?-1:((a>b)?1:0));};function sortTextDesc(a,b){if(table.config.sortLocaleCompare)return b.localeCompare(a);return((b<a)?-1:((b>a)?1:0));};function sortNumeric(a,b){return a-b;};function sortNumericDesc(a,b){return b-a;};function getCachedSortType(parsers,i){return parsers[i].type;};this.construct=function(settings){return this.each(function(){if(!this.tHead||!this.tBodies)return;var $this,$document,$headers,cache,config,shiftDown=0,sortOrder;this.config={};config=$.extend(this.config,$.tablesorter.defaults,settings);$this=$(this);$.data(this,"tablesorter",config);$headers=buildHeaders(this);this.config.parsers=buildParserCache(this,$headers);cache=buildCache(this);var sortCSS=[config.cssDesc,config.cssAsc];fixColumnWidth(this);$headers.click(function(e){var totalRows=($this[0].tBodies[0]&&$this[0].tBodies[0].rows.length)||0;if(!this.sortDisabled&&totalRows>0){$this.trigger("sortStart");var $cell=$(this);var i=this.column;this.order=this.count++%2;if(this.lockedOrder)this.order=this.lockedOrder;if(!e[config.sortMultiSortKey]){config.sortList=[];if(config.sortForce!=null){var a=config.sortForce;for(var j=0;j<a.length;j++){if(a[j][0]!=i){config.sortList.push(a[j]);}}}config.sortList.push([i,this.order]);}else{if(isValueInArray(i,config.sortList)){for(var j=0;j<config.sortList.length;j++){var s=config.sortList[j],o=config.headerList[s[0]];if(s[0]==i){o.count=s[1];o.count++;s[1]=o.count%2;}}}else{config.sortList.push([i,this.order]);}};setTimeout(function(){setHeadersCss($this[0],$headers,config.sortList,sortCSS);appendToTable($this[0],multisort($this[0],config.sortList,cache));},1);return false;}}).mousedown(function(){if(config.cancelSelection){this.onselectstart=function(){return false};return false;}});$this.bind("update",function(){var me=this;setTimeout(function(){me.config.parsers=buildParserCache(me,$headers);cache=buildCache(me);},1);}).bind("updateCell",function(e,cell){var config=this.config;var pos=[(cell.parentNode.rowIndex-1),cell.cellIndex];cache.normalized[pos[0]][pos[1]]=config.parsers[pos[1]].format(getElementText(config,cell),cell);}).bind("sorton",function(e,list){$(this).trigger("sortStart");config.sortList=list;var sortList=config.sortList;updateHeaderSortCount(this,sortList);setHeadersCss(this,$headers,sortList,sortCSS);appendToTable(this,multisort(this,sortList,cache));}).bind("appendCache",function(){appendToTable(this,cache);}).bind("applyWidgetId",function(e,id){getWidgetById(id).format(this);}).bind("applyWidgets",function(){applyWidget(this);});if($.metadata&&($(this).metadata()&&$(this).metadata().sortlist)){config.sortList=$(this).metadata().sortlist;}if(config.sortList.length>0){$this.trigger("sorton",[config.sortList]);}applyWidget(this);});};this.addParser=function(parser){var l=parsers.length,a=true;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==parser.id.toLowerCase()){a=false;}}if(a){parsers.push(parser);};};this.addWidget=function(widget){widgets.push(widget);};this.formatFloat=function(s){var i=parseFloat(s);return(isNaN(i))?0:i;};this.formatInt=function(s){var i=parseInt(s);return(isNaN(i))?0:i;};this.isDigit=function(s,config){return/^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g,'')));};this.clearTableBody=function(table){if($.browser.msie){function empty(){while(this.firstChild)this.removeChild(this.firstChild);}empty.apply(table.tBodies[0]);}else{table.tBodies[0].innerHTML="";}};}});$.fn.extend({tablesorter:$.tablesorter.construct});var ts=$.tablesorter;ts.addParser({id:"text",is:function(s){return true;},format:function(s){return $.trim(s.toLocaleLowerCase());},type:"text"});ts.addParser({id:"digit",is:function(s,table){var c=table.config;return $.tablesorter.isDigit(s,c);},format:function(s){return $.tablesorter.formatFloat(s);},type:"numeric"});ts.addParser({id:"currency",is:function(s){return/^[Â£$â‚¬?.]/.test(s);},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/[Â£$â‚¬]/g),""));},type:"numeric"});ts.addParser({id:"ipAddress",is:function(s){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s);},format:function(s){var a=s.split("."),r="",l=a.length;for(var i=0;i<l;i++){var item=a[i];if(item.length==2){r+="0"+item;}else{r+=item;}}return $.tablesorter.formatFloat(r);},type:"numeric"});ts.addParser({id:"url",is:function(s){return/^(https?|ftp|file):\/\/$/.test(s);},format:function(s){return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//),''));},type:"text"});ts.addParser({id:"isoDate",is:function(s){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s);},format:function(s){return $.tablesorter.formatFloat((s!="")?new Date(s.replace(new RegExp(/-/g),"/")).getTime():"0");},type:"numeric"});ts.addParser({id:"percent",is:function(s){return/\%$/.test($.trim(s));},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g),""));},type:"numeric"});ts.addParser({id:"usLongDate",is:function(s){return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/));},format:function(s){return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"shortDate",is:function(s){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s);},format:function(s,table){var c=table.config;s=s.replace(/\-/g,"/");if(c.dateFormat=="us"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$1/$2");}else if(c.dateFormat=="uk"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1");}else if(c.dateFormat=="dd/mm/yy"||c.dateFormat=="dd-mm-yy"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3");}return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"time",is:function(s){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s);},format:function(s){return $.tablesorter.formatFloat(new Date("2000/01/01 "+s).getTime());},type:"numeric"});ts.addParser({id:"metadata",is:function(s){return false;},format:function(s,table,cell){var c=table.config,p=(!c.parserMetadataName)?'sortValue':c.parserMetadataName;return $(cell).metadata()[p];},type:"numeric"});ts.addWidget({id:"zebra",format:function(table){if(table.config.debug){var time=new Date();}var $tr,row=-1,odd;$("tr:visible",table.tBodies[0]).each(function(i){$tr=$(this);if(!$tr.hasClass(table.config.cssChildRow))row++;odd=(row%2==0);$tr.removeClass(table.config.widgetZebra.css[odd?0:1]).addClass(table.config.widgetZebra.css[odd?1:0])});if(table.config.debug){$.tablesorter.benchmark("Applying Zebra widget",time);}}});})(jQuery);
jQuery.tablesorter.addParser({
  id: "commaDigit",
  is: function(s, table) {
    var c = table.config;
    return jQuery.tablesorter.isDigit(s.replace(/,/g, "").replace(/€/g, ""), c);
  },
  format: function(s) {
    return jQuery.tablesorter.formatFloat(s.replace(/,/g, "").replace(/€/g, ""));
  },
  type: "numeric"
});

/*ALBUM
=====================================*/
$(function() {
		$("div.scrollable").scrollable();
	});

	$(function() {
		$(".items img").click(function() {
			var url = $(this).attr("src").replace("_small", "");
			var wrap = $("#image_wrap");   //.fadeTo("medium", 0.5)
			var img = new Image();
			img.onload = function() {
				wrap.fadeTo("fast", 1);
				wrap.find("img").attr("src", url);
			};
			img.src = url;
		}).filter(":first").click();
	});

/**
  * Cufon replacements
**/
Cufon.replace('h1, h2, h3, div#menu span, div.title, div.titleBig, ul.usp');
Cufon.replace('ul#tags a', {hover: true, trim: "simple"});


/**
  * Alert configuration
**/
$(function() {
	$.alerts.overlayOpacity = 0.75;
	$.alerts.overlayColor = "#000";
	$.alerts.cancelButton = "Annuleren";
});

$(function() {
	$('div.slideshow.random').cycle({
		fx: 'fade',
		slideExpr: 'img:not(.thumb)',
		timeout: 6000
	});
});

/**
  * jQuery cycle
**/
$(function() {

	$thumbs = $("<div class=\"thumbs\">").appendTo($("div#headerimg")).append($("div.slideshow img.thumb"));
	if ($("body#home").length <= 0) {
		$thumbs.remove();
		return ;
	}
	
	var firstSlide = true;
	$('#headerimg .slideshow').cycle({
		before: function(currSlideElement, nextSlideElement, options, forwardFlag) {
			$thumbs.find("img").removeClass("selected");
			$thumbs.find(":nth-child(" + (firstSlide ? 1 : options.nextSlide + 1) + ")").addClass("selected");
			firstSlide = false;
		}
	});
});



/**
  * DOM adjustments
**/
$(function() {

	// Remove submenu-wrapper when no submenu-items are present
	if ($("div#submenu ul.submenu li").length <= 0) {
		$("div#submenu").remove();
	}

	// Place arrows below content on homepage-blocks
	$("div.homeblock div.txt p a.arrow").each(function() {
		$(this).insertAfter($(this).parent());
	});

	// Make complete sections clickable
	$("div.portal_content, div.homeblock").each(function() {
		if ($(this).find(".arrowBig, .arrow").length == 1 && $(this).find(".nietBeschikbaar").length <= 0) {
			$(this).click(function() {
				document.location = $(this).find(".arrowBig, .arrow").attr("href");
				return false;
			}).css({"cursor": "pointer"});
		}
	});
	$("div.portal_content, div.homeblock").find("a.meerInfo").click(function() {
		document.location = $(this).attr("href");
		return false;
	});

	$("#contenthome .homeblock:nth-child(4n+1)").css("margin-left", 9);

});

$(window).load(function() {
	// Equal heights voor arrangementen
	$items = $("#contenthome .homeblock");
	$("#contenthome .homeblock:nth-child(4n-3)").each(function(index) {
		equalHeight($items.filter(function(index2) {
			return index2 >= index * 4 && index2 < (index + 1) * 4;
		}));
	});
});

function equalHeight(obj){
	topHeight = 0;
	obj.each(function(){
		   topHeight = ($(this).height() > topHeight ? $(this).height() : topHeight)
	});
	obj.height(topHeight);
}


//beschikbaarheid ophalen
function getBeschikbaarheid(fileprestring,dag,maand,jaar,locatie)
{	
	$.ajax({type: "POST",url: fileprestring+"pageid=422",data: "locatie="+locatie+"&dag="+dag+"&maand="+maand+"&jaar="+jaar,success: function(msg){document.getElementById('avcalendar').innerHTML=msg;}});
}

function selectDate(datum)
{
	document.getElementById('datumveld').value=datum;
	document.getElementById('reserveren').formaction.value='changedate';
	document.getElementById('reserveren').submit();
}


/** RESERVEREN **/

var staffelData;
function showStaffel() {

	
	$.get("/custompages/checkbeschikbaarheid.asp?vestigingid=" + $("#arrLocatie").val() + "&datum=" + $("#beijkDatum").val(), function(data) {
			bIsBeschikbaar = data == "free";
				
			if (bIsBeschikbaar) {
				// $("td.loading").addClass("loading");	
				cRequest = "/custompages/beijk/getJSON.asp"
				cRequest += "?action=staffel"
				cRequest += "&locatie=" + $("#arrLocatie").val();
				cRequest += "&datum=" + $("#beijkDatum").val();
				cRequest += "&arrCode=" + $("*[data-id='arrangementTotaal']").attr("data-code");
				
				
			
				$.getJSON(cRequest, function(data) {
					$("#staffelKorting").find("tbody tr").remove();
					staffelData = data;
			
					var i = 0;
					var nPrijs = 0;
					$.each(data.items, function(key, value) {
						nMinPersonen = value.minPersonen;
						nPrijs = value.prijs;
						// value.maxPersonen = value.maxPersonen >= 0 ? value.maxPersonen : " en meer";
						if (value.prijs >= 0) {
							$("#staffelKorting").append("<tr class=\"" + (i % 2 == 0 ? "even" : "odd") + "\"><td>" + (value.maxPersonen >= 0 ? nMinPersonen + " t/m " + (value.maxPersonen - 1): nMinPersonen + " en meer") + "</td><td>&euro; " + value.prijs.toFixed(2).replace(".", ",") + "</td></tr>");
						}
						nMinPersonen = value.maxPersonen;
						i++;
					});
					
					$("td.loading").removeClass("loading");
			
					if (nPrijs <= 0) {
						$("#isUnavailable").show();
						$("#beijkSubmit").hide();
					} else {
						$("#isUnavailable").hide();
						$("#beijkSubmit").show();
					}
				});
					
			} else { // niet beschikbaar
		
				$("#isUnavailable").show();
				$("#beijkSubmit").hide();			
			}
		});
}
$(function() {
	if ($("#beijkReserveren").length > 0) {
		showStaffel();
	}
});


var $arrDetail;
$(function() {

	$arrDetail = $(".arrDetail");

	// Open alternatieven
	$("div.arrSection a.switch").live("click", function() {
		$(this).closest(".arrSection").find(".alternatives").hide();
		$(this).siblings(".alternatives").show();
		$("div.alternatives table").tablesorter({
			headers: {
				1: {
					sorter: "commaDigit"
				}
			},
			sortList: [[1, 0]]
		}); 
		return false;
	});

	// Sluit alternatieven
	$("div.arrSection div.alternatives a.close").live("click", function() {
		$(this).closest(".alternatives").hide();
		return false;
	});

	$("div#datePreSelected .open").click(function() {
		$("div#datePreSelected").find(".popup").fadeIn("medium");
		return false;
	});
	$("div#datePreSelected .close").click(function() {
		$(this).closest(".popup").fadeOut("medium");
		return false;
	});

	// Aantallen bijwerken
	$("#arrLocatie, #beijkDatum").bind("keyup change", function() {
		$("#loader").fadeIn("fast");
		showStaffel();
		resAantalChange();
	});
	$("input[data-id='hoofdartikelAantal']").live("keyup click", function() {
		$(this).addClass("override");
		window.clearTimeout(changeTimeout);
		changeTimeout = window.setTimeout(resAantalChange, 1000);
	});
	$("#arrAantalPersonen, input[data-id='optioneelAantal'], input[data-id='extraAantal']").live("keyup click", function() {
		window.clearTimeout(changeTimeout);
		changeTimeout = window.setTimeout(resAantalChange, 1000);
	});

	$(".datepicker").datepicker({ 
		dateFormat: 'dd-mm-yy', 
		constrainInput: true, 
		dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
		dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
		dayNamesShort: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
		monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
		monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
		prevText: 'vorige', 
		nextText: 'volgende',
		minDate: 0,
		beforeShowDay: checkDateAvailable 
	});

	$("#toggleKorting").click(function() {
		$("#staffelKorting").fadeIn();
		return false;
	});

	// Wissel product A uit met product B
	$(".doSwitch").live("click", function() {

		if ($(this).closest("tr.hoofdartikelRij").length > 0) {

			$arrangementRij = $(this).closest("tr.hoofdartikelRij");
			$arrangementRij.next(".hoofdartikelDetail").remove();

			var dataOrigCode = $(this).closest("[data-id='code']").attr("data-code");
			var dataOrigID = $(this).closest("[data-id='arrangementRijAlt']").attr("data-alt-id");
			var required = $arrangementRij.attr("data-required");

			var pageid = 553;
			if ($arrangementRij.attr("data-id") == "hoofdartikelRijOptioneel") {
				pageid = 626;
			}

			$.get("/pageid=" + pageid + "/productid=" + dataOrigID + "/update=true/origCode=" + dataOrigCode + "/required=" + required + "/ajax.html", function(data) {
				$(data).find(".hoofdartikelRij, .hoofdartikelDetail").each(function() {
					$arrangementRij.before($(this));
					
					$(this).removeClass("even, odd");
					var attr = $(this).attr("data-id");

					if (attr == "hoofdartikelRij" || attr == "hoofdartikelRijOptioneel") {
						if (attr == "hoofdartikelRij") {
							$(this).attr("data-orig-code", dataOrigCode);
						}
						$(this).attr("data-orig-id", $arrangementRij.find("[data-id='code']").attr("data-code-id"));
						$(this).addClass($arrangementRij.hasClass("even") ? "even" : "odd");
					}
				});

				resAantalChange();

				$(this).closest(".alternatives").hide();

				$arrangementRij.remove();
			});

		} else {

			$arrangement = $(this).closest("tr[data-id='arrangementRij'], tr[data-id='arrangementSubRij']");
			$alternative = $(this).closest("tr[data-id='arrangementRijAlt'], tr[data-id='arrangementSubRijAlt']");
			var origCode = $arrangement.find("td[data-id='code']").attr("data-code");
			var newCode = $alternative.attr("data-alt-code");
			var origText = $arrangement.find("span.name").html();

			if ($arrangement.not("[data-orig-code]").length > 0) {
				$arrangement.attr("data-orig-code", origCode);
				$arrangement.attr("data-orig-name", origText);
			}
			$code = $arrangement.find("td[data-id='code']");
			$code.attr("data-code", newCode);

			var meerPrijs = $alternative.find("[data-id='meerprijs']").attr("data-meerprijs");
			$code.attr("data-extra-price", meerPrijs);

			$arrangement.find(".omschrijving .name").html($alternative.attr("data-alt-name"));
			
			resAantalChange();

			$(this).closest(".alternatives").hide();

			$(this).closest("[data-id='arrangementRij'], [data-id='arrangementSubRij']").find(".revert").show();

		}

		return false;
	});

	// Maak het uitwisselen ongedaan; herstel het oorspronkelijke product
	$(".revert").live("click", function() {

		if ($(this).closest("tr.hoofdartikelRij").length > 0) {

			$arrangementRij = $(this).closest("tr.hoofdartikelRij");
			$arrangementRij.next(".hoofdartikelDetail").remove();

			var dataOrigID = $(this).closest("[data-id='hoofdartikelRij'], [data-id='hoofdartikelRijOptioneel']").attr("data-orig-id");
			var required = $arrangementRij.attr("data-required");

			var pageid = 553;
			if ($arrangementRij.attr("data-id") == "hoofdartikelRijOptioneel") {
				pageid = 626;
			}

			$.get("/pageid=" + pageid + "/productid="+ dataOrigID + "/required=" + required + "/revert=true/ajax.html", function(data) {
				$(data).find(".hoofdartikelRij, .hoofdartikelDetail").each(function() {
					$arrangementRij.before($(this));
					
					$(this).removeClass("even, odd");

					if ($(this).attr("data-id") == "hoofdartikelRij") {
						$(this).addClass($arrangementRij.hasClass("even") ? "even" : "odd");
					}
				});

				resAantalChange();

				$(this).closest(".alternatives").hide();

				$arrangementRij.remove();
			});

		} else {

			$arrangement = $(this).closest("tr[data-id='arrangementRij'], tr[data-id='arrangementSubRij']");
			var origCode = $arrangement.attr("data-orig-code");
			var origText = $arrangement.attr("data-orig-name");

			$arrangement.find("td[data-id='code']").attr("data-code", origCode).find(".name").html(origText);
			
			resAantalChange();

			$(this).hide();
		}

		return false;

	});

	// Verstuur het formulier; controleer op verplichte velden
	$("#beijkReserveren").submit(function() {
		if ($("#arrAantalPersonen").val() == "") {
			jAlert("U dient het aantal personen op te geven", "Beijk Catering Service");
			return false;
		}
		return true;
	});

	// Verstuur het formulier; controleer op verplichte velden
	$("#beijkPersForm").submit(function() {
		
		var bValid = true;		
		$(this).find("*[required], *[required='']").each(function() {
			
			if ($(this).val() == "") {
				$(this).addClass("invalid");
				bValid = false;
			} else {
				$(this).removeClass("invalid");
			}
		});
		if (!bValid) {
			jAlert("U heeft niet alle verplichte velden ingevuld", "Beijk Catering Service");
			return false;
		} else {
			var emailadres = $(this).find("input[name='beijkEmailadres']").val();
			if (emailadres != $(this).find("input[name='beijkEmailadresCheck']").val()) {
				jAlert("De door u ingevulde e-mailadressen komen niet met elkaar overeen", "Beijk Catering Service");
				return false;
			}
			if (emailadres.indexOf("@") < 0 || emailadres.indexOf(".") < 0) {
				jAlert("Het ingevulde e-mailadres lijkt geen geldig e-mailadres te zijn", "Beijk Catering Service");
				return false;
			}
		}
	});

	$("#beijkStatusForm").submit(function() {
		if ($(this).find("input[name='beijkTypeReservering']:checked").length <= 0) {
			jAlert("U heeft nog geen status van uw bestelling geselecteerd", "Beijk Catering Service");
			return false;
		}
	});

	$("#emptyCart").click(function() {
		jConfirm("Weet u zeker dat u uw winkelwagen wilt legen?", "Beijk Catering Service", function(r) {
			if (r) {
				// Cookies verwijderen
				$.cookie("beijkCatering", null, { path: '/' });
				window.location = window.location;
			}
		});
		return false;
	});

	$("#selectLocatie tr").click(function() {
		
		// Verberg evt. open popups
		$(".alternatives").hide();

		$("#selectZaal").load("/custompages/beijk/getLocations.asp?locatie=" + $(this).attr("data-locatie") + "&datum=" + $("#beijkDatum").val() + "&arrCode=" + $("*[data-id='arrangementTotaal']").attr("data-code"), function() {

			$("#selectZaal tr").click(function() {
				$("#arrLocatie").val($(this).attr("data-locatie"));
				$("#zaalText").html($(this).find(".locationTitle").html());
				$("#selectZaal").hide().removeClass("open");
				resAantalChange();
				showStaffel();

				if ($(this).attr("data-beschikbaar") != "true") {
					$("#isUnavailable").show();
					$("#beijkSubmit").hide();
				} else {
					$("#isUnavailable").hide();
					$("#beijkSubmit").show();
				}

			}).hover(function() { $(this).addClass("hover"); }, function() { $(this).removeClass("hover"); });

			if (initLocatie > 0) {
				$("#selectZaal tr[data-locatie='" + initLocatie + "']").click();
				initLocatie = 0;
			}else{
				$vZItems = $("#selectZaal tr");
				if ($vZItems.length == 1) {
					$vZItems.trigger("click");
				}
			}

		});

		$("#beijkTopLocatie").val($(this).attr("data-locatie"));
		$("#beijkLocatie").val(0);
		
		$("#locatieText").html($(this).find(".locationTitle").html());
		$("#zaalText").html("selecteer uw zaal");

		if ($(this).attr("data-locatie") == nThuislocatieID) {
			$("tr[data-id='sublocatie']").hide();
			$("tr[data-id='postcode']").show();
			$("tr[data-id='transportkosten']").show();
			$("#arrLocatie").val($(this).attr("data-locatie"));
			$("#beijkPostcode").trigger("change");
			resAantalChange();
		} else {
			$("tr[data-id='sublocatie']").show();
			$("tr[data-id='postcode']").hide();
			$("tr[data-id='transportkosten']").hide();
		}
		
		$("#selectLocatie").hide().removeClass("open");

		showStaffel();
	}).hover(function() { $(this).addClass("hover"); }, function() { $(this).removeClass("hover"); });

	$("#selectLocatieToggle").click(function() {
		var $selectLocatie = $("#selectLocatie");
		if ($selectLocatie.hasClass("open")) {
			$selectLocatie.hide().removeClass("open");
		} else {
			$selectLocatie.show().addClass("open");
		}
		$("#selectZaal").hide();
	});

	$("#selectZaalToggle").live("click", function() {
		$selectZaal = $("#selectZaal");
		if ($selectZaal.hasClass("open")) {
			$selectZaal.hide().removeClass("open");
		} else {
			$selectZaal.show().addClass("open");
		}
		$("#selectLocatie").hide();
	});


	$(".arrSection a.slideDown").live("click", function() {
		$(this).toggleClass("open").closest("tr").toggleClass("open").next("tr.hoofdartikelDetail").toggleClass("open");
		return false;
	});

	$("#beijkPostcode").live("keyup change", function() {
		if ($(this).val().length >= 6) {
			// Gebruik opgegeven postcode om transportkosten te berekenen
			cRequest = "/custompages/beijk/getDistance.asp"
			cRequest += "?destination=" + $(this).val()
			$.getJSON(cRequest, function(data) {
				$row = $("tr[data-id='transportkosten']");
				$row.find("td.aantal").html(data.afstand.afstand);
				$row.find("td.prijs").html("&euro; " + (data.afstand.kilometerprijs.toFixed(2).replace(".", ",")));
				$row.find("td.totaal").html("&euro; " + (data.afstand.transportkosten.toFixed(2).replace(".", ","))).attr("data-totaal", data.afstand.transportkosten.toFixed(2));
			});
		}
	});


	// Indien thuislocatie is geseleteerd extra trigger aanroepen
	//  aangezien deze locatie geen zaal bevat
	$("#selectLocatie").find("tr[data-locatie='" + $("#arrLocatie").val() + "']").trigger("click");


});

var disabledDays = [];
function checkDateAvailable(date) {
	var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
	for (i = 0; i < disabledDays.length; i++) {
		if($.inArray(d + '-' + (m+1) + '-' + y, disabledDays) != -1 || new Date() > date) {
			return [false];
		}
	}
	return [true];
}

function nationalDays(date) {
	
}

var changeTimeout;
var nArrTotaalPrijs = 0;
var bFirstLoad = true;
var hoofdartikelKortingPct = 0;
var bIsBeschikbaar = true;
function resAantalChange() {
	pAantal = $("#arrAantalPersonen").val();
	pAantal = pAantal == "" ? 0 : pAantal;
	if (isNumeric(pAantal)) {
		
		// Verberg evt. open popups
		$(".alternatives").hide();

		// $("td.loading").addClass("loading");
		
		$.get("/custompages/checkbeschikbaarheid.asp?vestigingid=" + $("#arrLocatie").val() + "&datum=" + $("#beijkDatum").val(), function(data) {
			bIsBeschikbaar = data == "free";
			
			if (bIsBeschikbaar) {
				
				cRequest = "/custompages/beijk/getJSON.asp"
				cRequest += "?locatie=" + $("#arrLocatie").val();
				cRequest += "&datum=" + $("#beijkDatum").val();
				cRequest += "&arrAantal=" + pAantal;
				cRequest += "&arrCode=" + $("*[data-id='arrangementTotaal']").attr("data-code");
				cRequest += "&arrProducts={"
		
				cRequest += "{" + $arrDetail.find("tr[data-id='arrangementTotaal']").attr("data-code") + ":" + pAantal + "}";
		
				// Vaste onderdelen arrangement
				$arrDetail.find("tr[data-id='arrangementRij']").each(function() {
		
					var $hoofdartikelAantal = $(this).closest(".hoofdartikelDetail").prev(".hoofdartikelRij").find("[data-id='hoofdartikelAantal']");
					if ($hoofdartikelAantal.length <= 0) {
						nArtikelAantal = pAantal;
						$("input[data-id='hoofdartikelAantal']").each(function() {
							if (!$(this).hasClass("override")) {
								$(this).val(nArtikelAantal);
							}
						});
					} else {
						nArtikelAantal = $hoofdartikelAantal.val() != "" ? $hoofdartikelAantal.val() : 0;
					}
		
					$(this).find("td[data-id='aantal']").html(nArtikelAantal);
					if ($(this).find("td[data-extra-price]").length > 0) {
						cRequest += ",{" + $(this).find("td[data-id='code']").attr("data-code") + ":" + nArtikelAantal + ":" + $(this).attr("data-orig-code") + "}";
					} else {
						cRequest += ",{" + $(this).find("td[data-id='code']").attr("data-code") + ":" + nArtikelAantal + "}";
					}
				});		
				// Alternatieven
				$arrDetail.find("tr[data-id='arrangementRijAlt']").each(function() {
					cRequest += ",{" + $(this).attr("data-alt-code") + ":" + pAantal + ":" + $(this).closest("td[data-id='code']").attr("data-code") + "}";
				});
		
				// Hoofdartikelen
				$arrDetail.find("tr[data-id='hoofdartikelRij']").each(function() {
					var nArtikelAantal = 0;
					$aantal = $(this).find("[data-id='hoofdartikelAantal']");
					if ($aantal.val() == "") {
						nArtikelAantal = 0;
					} else {
						nArtikelAantal = $aantal.val();
					}
		
					$(this).find("td[data-id='aantal'] span[data-id='aantalHolder']").html(nArtikelAantal);
					var attr = $(this).attr("data-orig-code");
					if (attr) {
						cRequest += ",{" + $(this).find("td[data-id='code']").attr("data-code") + ":" + nArtikelAantal + ":" + attr + "}";
					} else {
						cRequest += ",{" + $(this).find("td[data-id='code']").attr("data-code") + ":" + nArtikelAantal + "}";
					}
				});
				// Vaste onderdelen hoofdartikel
				$arrDetail.find("tr[data-id='arrangementSubRij']").each(function() {
					var $hoofdartikelAantal = $(this).closest(".hoofdartikelDetail").prev(".hoofdartikelRij").find("[data-id='hoofdartikelAantal']");
					if ($hoofdartikelAantal.length <= 0) {
						nArtikelAantal = pAantal;
					} else {
						nArtikelAantal = $hoofdartikelAantal.val() != "" ? $hoofdartikelAantal.val() : 0;
					}
		
					$(this).find("td[data-id='aantal']").html(nArtikelAantal);
					if ($(this).find("td[data-extra-price]").length > 0) {
						cRequest += ",{" + $(this).find("td[data-id='code']").attr("data-code") + ":" + nArtikelAantal + ":" + $(this).attr("data-orig-code") + "}";
					} else {
						cRequest += ",{" + $(this).find("td[data-id='code']").attr("data-code") + ":" + nArtikelAantal + "}";
					}
				});
				// Alternatieven hoofdartikelen
				$arrDetail.find("tr[data-id='arrangementSubRijAlt']").each(function() {
					var $hoofdartikelAantal = $(this).closest(".hoofdartikelDetail").prev(".hoofdartikelRij").find("[data-id='hoofdartikelAantal']");
					if ($hoofdartikelAantal.length <= 0) {
						nArtikelAantal = pAantal;
					} else {
						nArtikelAantal = $hoofdartikelAantal.val() != "" ? $hoofdartikelAantal.val() : 0;
					}
					cRequest += ",{" + $(this).attr("data-alt-code") + ":" + nArtikelAantal + ":" + $(this).closest("td[data-id='code']").attr("data-code") + "}";
				});
		
				// Optionele onderdelen arrangement (per aantal)
				$arrDetail.find("tr[data-id='optioneelRij']").each(function() {
					var aantal = $(this).find("input[data-id='optioneelAantal']").val();
					
					if ($(this).attr("data-required") == "true") {
						aantal = pAantal;
						aantal = $(this).find("input[data-id='extraAantal']:checked").length > 0 ? aantal : 0;
					}
					cRequest += ",{" + $(this).find("td[data-id='code']").attr("data-code") + ":" + (aantal == "" ? 0 : aantal) + "}";
				});
				// Optionele onderdelen arrangement (hoofdartikel)
				$arrDetail.find("tr[data-id='hoofdartikelRijOptioneel']").each(function() {
					var nArtikelAantal = 0;
					$aantal = $(this).find("[data-id='hoofdartikelAantal']");
					if ($aantal.val() == "") {
						nArtikelAantal = 0;
					} else {
						nArtikelAantal = $aantal.val();
					}
					if ($(this).attr("data-required") == "true") {
						nArtikelAantal = $(this).find("input[data-id='extraAantal']:checked").length > 0 ? nArtikelAantal : 0;
					}
					cRequest += ",{" + $(this).find("td[data-id='code']").attr("data-code") + ":" + (nArtikelAantal == "" ? 0 : nArtikelAantal) + "}";
				});
				// Optionele onderdelen arrangement (per stuk)
				$arrDetail.find("tr[data-id='extraRij']").each(function() {
					var aantal = $(this).find("input[data-id='extraAantal']:checked").length > 0 ? 1 : 0;
					cRequest += ",{" + $(this).find("td[data-id='code']").attr("data-code") + ":" + (aantal == "" ? 0 : aantal) + "}";
				});
				// Verplichte onderdelen arrangement
				$arrDetail.find("tr[data-id='verplichtRij']").each(function() {
					var aantal = pAantal;
					cRequest += ",{" + $(this).find("td[data-id='code']").attr("data-code") + ":" + (aantal == "" ? 0 : aantal) + "}";
				});
		
				cRequest += "}"
				
				$.getJSON(cRequest, function(data) {
		
					// Verberg loader
					$("#loader").delay(1000).fadeOut("medium", function() {
						// Laat de gebruiker zien dat de prijzen zijn aangepast nav. datum/locatie
						if (!bFirstLoad) {
							if (data.items[productCode].maxPrijs != nArrTotaalPrijs) {
								$("#hasUpdatedPrice").slideDown("fast");
							}
						} else {
							bFirstLoad = false;
						}
						nArrTotaalPrijs = data.items[productCode].maxPrijs;
					});
		
					// Bepaal de prijs van het losse arrangement
					var productCode = $arrDetail.find("tr[data-id='arrangementTotaal']").attr("data-code");
					var arrPrijs = data.items[productCode].prijs;
					var arrAantal = data.items[productCode].aantal;
		
					// Bepaal de som van alle arrangementen en de losse onderdelen
					var arrangementPrijs = arrPrijs * arrAantal;
					var arrangementTotaalprijs = 0;
		
					var hoofdartikelKortingPrijs = arrPrijs * arrAantal;
					var hoofdartikelKorting = 0;
					var artikelenPrijs = 0;
		
					var exclusiefBTW = 0;
					var arrExclusiefBTW = 0;
		
					var kortingsPctSom = 0;
		
					// Controleer of het een thuislocatie betreft
					var bThuis = $("#arrLocatie").val() == nThuislocatieID;
		
					$arrDetail.find("tr[data-id='arrangementRij']").each(function() {
						var productCode = $(this).find("td[data-id='code']").attr("data-code");
						if ($(this).closest("[data-orig-code]").length > 0) {
							productCode += ":" + $(this).closest("[data-orig-code]").attr("data-orig-code");
						}
		
						var productPrijs = data.items[productCode].prijs;
						var productMaxPrijs = data.items[productCode].maxPrijs;
						var productAantal = data.items[productCode].aantal;
						var productExtraPrijs = data.items[productCode].extraPrijs;
						var productBTW = data.items[productCode].BTW;
		
						var price = $(this).find("td[data-id='prijs']").attr("data-price", productMaxPrijs);
		
						$(this).find("input[name='beijkProduct']").val(productCode + ":" + productAantal + (productExtraPrijs > 0 ? ":" + productExtraPrijs : ""));
		
						$(this).find("td[data-id='prijs']").html("&euro; " + (productPrijs.toFixed(2).replace(".", ","))).attr("BTW", productBTW);
						$(this).find("td[data-id='totaal']").attr("data-total", (productPrijs * productAantal)).html("&euro; " + ((productPrijs * productAantal).toFixed(2).replace(".", ",")));
		
						arrangementTotaalprijs += (productPrijs * productAantal);
						arrangementPrijs += productExtraPrijs * productAantal;
						artikelenPrijs += productPrijs * arrAantal;
						arrExclusiefBTW += ((productPrijs / (1 + productBTW / 100)) * productAantal);
						kortingsPctSom += productPrijs - productExtraPrijs;
					});
		
					$arrDetail.find("tr[data-id='arrangementSubRij']").each(function() {
						var productCode = $(this).find("td[data-id='code']").attr("data-code");
						var isSubstitute = $(this).closest("[data-orig-code]").length > 0;
						if (isSubstitute) {
							productCode += ":" + $(this).closest("[data-orig-code]").attr("data-orig-code");
						}
		
						if (data.items[productCode]) {
		
							var productPrijs = data.items[productCode].prijs;
							var productMaxPrijs = data.items[productCode].maxPrijs;
							var productAantal = data.items[productCode].aantal;
							var productExtraPrijs = data.items[productCode].extraPrijs;
							var productBTW = data.items[productCode].BTW;
		
							var price = $(this).find("td[data-id='prijs']").attr("data-price", productMaxPrijs).attr("BTW", productBTW);
		
							$(this).find("input[name='beijkProduct']").val(productCode + ":" + productAantal + (isSubstitute ? ":" + productExtraPrijs : ""));
							
							if (productExtraPrijs > 0) {
								$(this).find("td[data-id='prijs']").html("&euro; " + (productExtraPrijs.toFixed(2).replace(".", ",")));
								$(this).find("td[data-id='totaal']").attr("data-total", (productExtraPrijs * productAantal)).html("&euro; " + ((productExtraPrijs * productAantal).toFixed(2).replace(".", ",")));
							} else {
								$(this).find("td[data-id='prijs']").html("");
								$(this).find("td[data-id='totaal']").attr("data-total", 0).html("");
							}
							
							arrangementPrijs += productExtraPrijs * productAantal;
						} else {
						}
					});
		
					$arrDetail.find("tr[data-id='arrangementRijAlt'], tr[data-id='arrangementSubRijAlt']").each(function() {
						var productCode = $(this).attr("data-alt-code") + ":" + $(this).closest("td[data-id='code']").attr("data-code");
		
						var productPrijs = data.items[productCode].prijs;
						var productMaxPrijs = data.items[productCode].maxPrijs;
						var productAantal = data.items[productCode].aantal;
						var productExtraPrijs = data.items[productCode].extraPrijs;
						var oorspronkelijkePrijs = data.items[productCode].oorspronkelijkePrijs;
						var productBTW = data.items[productCode].BTW;
		
						var curPrijs = productPrijs;
						if ($(this).closest("[data-id='hoofdartikelRijOptioneel']").length > 0) {
							curPrijs = oorspronkelijkePrijs;
						}
		
						$(this).find("td[data-id='meerprijs']").html("&euro; " + (curPrijs.toFixed(2).replace(".", ","))).attr("data-meerprijs", productExtraPrijs).attr("BTW", productBTW);
					});
		
					$arrDetail.find("tr[data-id='optioneelRij'], tr[data-id='extraRij']").each(function() {
						var productCode = $(this).find("td[data-id='code']").attr("data-code");
		
						var productPrijs = data.items[productCode].prijs;
						var productMaxPrijs = data.items[productCode].maxPrijs;
						var productAantal = data.items[productCode].aantal;
						var productBTW = data.items[productCode].BTW;
		
						$(this).find("[data-id='aantalHolder']").html(productAantal);
		
						var price = $(this).find("td[data-id='prijs']").attr("data-price", productMaxPrijs).attr("BTW", productBTW);
		
						$(this).find("input[name='beijkProduct']").val(productCode + ":" + productAantal);
						$(this).find("input[name='beijkPrijs_" + productCode + "']").val(productPrijs.toString().replace(".", ","));
		
						$(this).find("td[data-id='prijs']").html("&euro; " + (productPrijs.toFixed(2).replace(".", ",")));
						$(this).find("td[data-id='totaal']").attr("data-total", (productPrijs * productAantal)).html("&euro; " + ((productPrijs * productAantal).toFixed(2).replace(".", ",")));
		
						arrangementPrijs += (productPrijs * productAantal);
						arrangementTotaalprijs += (productPrijs * productAantal);
						exclusiefBTW += (productPrijs / (1 + productBTW / 100)) * productAantal;
					});
		
					$arrDetail.find("tr[data-id='verplichtRij']").each(function() {
						var productCode = $(this).find("td[data-id='code']").attr("data-code");
		
						var productPrijs = data.items[productCode].prijs;
						var productMaxPrijs = data.items[productCode].maxPrijs;
						var productAantal = data.items[productCode].aantal;
						var productBTW = data.items[productCode].BTW;
		
						// Bij verplichtrij is aantal altijd 0
						productAantal = 0;
		
		
						var price = $(this).find("td[data-id='prijs']").attr("data-price", productMaxPrijs);
		
						$(this).find("td[data-id='prijs']").html("&euro; " + (productPrijs.toFixed(2).replace(".", ","))).attr("BTW", productBTW);
						$(this).find("td[data-id='totaal']").attr("data-total", productPrijs).html("&euro; " + (productPrijs.toFixed(2).replace(".", ",")));
						arrangementTotaalprijs += productPrijs;
						
						arrExclusiefBTW += (productPrijs / (1 + productBTW / 100)) * 1;
						artikelenPrijs += productPrijs * 1;
		
					});
		
					$arrDetail.find("tr[data-id='hoofdartikelRij']").each(function() {
						var productCode = $(this).find("td[data-id='code']").attr("data-code");
						var productDataCode = productCode;
						var isSubstitute = $(this).closest("[data-orig-code]").length > 0;
						if (isSubstitute) {
							productCode += ":" + $(this).closest("[data-orig-code]").attr("data-orig-code");
						}
		
						var productPrijs = data.items[productCode].prijs;
						var productMaxPrijs = data.items[productCode].maxPrijs;
						var productAantal = data.items[productCode].aantal;
						var productExtraPrijs = data.items[productCode].extraPrijs;
						var productBTW = data.items[productCode].BTW;
		
						var price = $(this).find("td[data-id='prijs']").attr("data-price", productMaxPrijs).attr("BTW", productBTW);
		
						$(this).find("input[name='beijkProduct']").val(productCode + ":" + productAantal + (isSubstitute ? ":" + productExtraPrijs : ""));
						$(this).find("input[name='beijkPrijs_" + productCode + "']").val(productPrijs.toString().replace(".", ","));
						
						$(this).find("td[data-id='code']").attr("data-meerprijs", productExtraPrijs);
		
						$(this).find("td[data-id='prijs']").html("&euro; " + (productMaxPrijs.toFixed(2).replace(".", ",")));
						$(this).find("td[data-id='totaal']").attr("data-total", (productMaxPrijs * productAantal)).html("&euro; " + ((productMaxPrijs * productAantal).toFixed(2).replace(".", ",")));
		
						
						arrangementTotaalprijs += (productPrijs * productAantal);
						artikelenPrijs += productPrijs * arrAantal;
		
						arrangementPrijs += productExtraPrijs * productAantal;
						// arrangementTotaalprijs += productExtraPrijs * productAantal;
		
						arrExclusiefBTW += (productPrijs / (1 + productBTW / 100)) * productAantal;
						// arrExclusiefBTW += (productExtraPrijs / (1 + productBTW / 100)) * productAantal;
						
						kortingsPctSom += productPrijs - productExtraPrijs;
					});
		
					$arrDetail.find("tr[data-id='hoofdartikelRijOptioneel']").each(function() {
						var productCode = $(this).find("td[data-id='code']").attr("data-code");
						var productDataCode = productCode;
						var isSubstitute = $(this).closest("[data-orig-code]").length > 0;
						if (isSubstitute) {
							// productCode += ":" + $(this).closest("[data-orig-code]").attr("data-orig-code");
						}
		
						var productPrijs = data.items[productCode].prijs;
						var productMaxPrijs = data.items[productCode].maxPrijs;
						var productAantal = data.items[productCode].aantal;
						var productExtraPrijs = data.items[productCode].extraPrijs;
						var productBTW = data.items[productCode].BTW;
		
						$(this).find("[data-id='aantalHolder']").html(productAantal);
		
						var price = $(this).find("td[data-id='prijs']").attr("data-price", productMaxPrijs).attr("BTW", productBTW);
		
						$(this).find("input[name='beijkProduct']").val(productCode + ":" + productAantal + (isSubstitute ? ":" + productExtraPrijs : ""));
						$(this).find("input[name='beijkPrijs_" + productCode + "']").val(productPrijs.toString().replace(".", ","));
						
						$(this).find("td[data-id='code']").attr("data-meerprijs", productExtraPrijs);
		
						$(this).find("td[data-id='prijs']").html("&euro; " + (productMaxPrijs.toFixed(2).replace(".", ",")));
						$(this).find("td[data-id='totaal']").attr("data-total", (productMaxPrijs * productAantal)).html("&euro; " + ((productMaxPrijs * productAantal).toFixed(2).replace(".", ",")));
		
						
						arrangementPrijs += (productPrijs * productAantal);
						arrangementTotaalprijs += (productPrijs * productAantal);
					});
		
					$arrDetail.find("tr.hoofdartikelDetail").find("[data-id='totaal']").each(function() {
						var $totaal = $(this).closest(".hoofdartikelDetail").prev(".hoofdartikelRij").find("[data-id='totaal']");
						var total = $(this).attr("data-total");
						if (total) {
							var newTotal = new Number(total) + new Number($totaal.attr("data-total"));
							$totaal.attr("data-total", newTotal);
							$totaal.html("&euro; " + newTotal.toFixed(2).replace(".", ","));
		
							var aantal = $totaal.closest(".hoofdartikelRij").find("[data-id='hoofdartikelAantal']").val();
							var $prijs = $totaal.closest(".hoofdartikelRij").find("[data-id='prijs']");
							var newTotalPP = aantal > 0 ? newTotal / new Number(aantal) : 0;
							$prijs.attr("data-price", newTotalPP);
							$prijs.html("&euro; " + newTotalPP.toFixed(2).replace(".", ","));
		
						}
					});
		
					$arrDetail.find(".arrangementSubOmschrijving").each(function() {
						var productCode = $(this).find("td[data-id='code']").attr("data-code");
						var isSubstitute = $(this).closest(".hoofdartikelDetail").prev("[data-orig-code]").length > 0;
						if (isSubstitute) {
							productCode += ":" + $(this).closest(".hoofdartikelDetail").prev("[data-orig-code]").attr("data-orig-code");
						}
		
						if (data.items[productCode]) {
							var productPrijs = data.items[productCode].prijs;
							var productMaxPrijs = data.items[productCode].maxPrijs;
							var productAantal = data.items[productCode].aantal;
							var productExtraPrijs = data.items[productCode].extraPrijs;
							var oorspronkelijkePrijs = data.items[productCode].oorspronkelijkePrijs;
							var productBTW = data.items[productCode].BTW;
		
							var curPrijs = productPrijs;
							if ($(this).closest(".hoofdartikelDetail").prev("[data-id='hoofdartikelRijOptioneel']").length > 0) {
								curPrijs = oorspronkelijkePrijs;
							}
		
							var price = $(this).find("td[data-id='prijs']").attr("data-price", productMaxPrijs).attr("BTW", productBTW);
		
							$(this).find("input[name='beijkProduct']").val(productCode + ":" + productAantal);
		
							$(this).find("td[data-id='aantal']").html(productAantal);
							$(this).find("td[data-id='prijs']").html("&euro; " + (curPrijs.toFixed(2).replace(".", ",")));
							$(this).find("td[data-id='dummyTotaal']").attr("data-total", (curPrijs * productAantal)).html("&euro; " + ((curPrijs * productAantal).toFixed(2).replace(".", ",")));
						}
		
					});
		
					// Controleer transportkosten
					var nTransportkosten = 0;
					if (bThuis) {
						var $totaal = $("[data-id='transportkosten'] [data-id='totaal']").attr("data-totaal");
						if ($totaal != "") {
							var totaal = new Number($totaal);
							if (totaal >= 0) {
								nTransportkosten += totaal;
							}
						}
					}
					$("#beijkTransportkosten").val(nTransportkosten.toFixed(2).replace(".", ","));
		
					// Verberg uitwissel-links
					$arrDetail.find("div.alternatives").each(function() {
						if ($(this).find("tr").length <= 0) {
							$(this).siblings(".switch").remove();
						}
					});
		
					// hoofdartikelKortingPct = hoofdartikelKortingPrijs / artikelenPrijs;
					hoofdartikelKortingPct = arrPrijs / kortingsPctSom;
		
					$arrDetail.find("tr[data-id='hoofdartikelRij']").each(function() {
						var productCode = $(this).find("td[data-id='code']").attr("data-code");
						var isSubstitute = $(this).closest("[data-orig-code]").length > 0;
						if (isSubstitute) {
							productCode += ":" + $(this).closest("[data-orig-code]").attr("data-orig-code");
						}
		
						var productPrijs = data.items[productCode].prijs;
						var productMaxPrijs = data.items[productCode].maxPrijs;
						var productAantal = data.items[productCode].aantal;
						var productExtraPrijs = data.items[productCode].extraPrijs;
						var productBTW = data.items[productCode].BTW;
		
						var hoofdartikelOrigPrijs = productPrijs * hoofdartikelKortingPct * arrAantal;
						var hoofdartikelPrijs = productPrijs * hoofdartikelKortingPct * productAantal;
						hoofdartikelKorting += hoofdartikelOrigPrijs - hoofdartikelPrijs;
		
						$(this).find("[name='beijkKorting_" + productCode + "']").val(hoofdartikelOrigPrijs - hoofdartikelPrijs);
						$(this).find("td[data-id='prijs']").html("&euro; " + (productMaxPrijs.toFixed(2).replace(".", ","))).attr("BTW", productBTW);
					});
					hoofdartikelKorting = isNumeric(hoofdartikelKorting) ? hoofdartikelKorting : 0;
		
					$("#beijkTotaalPrijs").val(arrPrijs.toFixed(2).replace(".", ","));
		
					// . berekenen / tonen
					var nToeslag = 0;
					if (arrAantal > 0) {
						var minArrangementPrijs = 0;
						var minTotaalPrijs = 0;
						var nToeslagPct = data.items.toeslag.toeslag / 100;
						if (staffelData) {
							minTotaalPrijs = (staffelData.items['staffel_1'].minPersonen * staffelData.items['staffel_1'].prijs);
							minArrangementPrijs = staffelData.items['staffel_1'].prijs;
						}
						nToeslag = ((minTotaalPrijs - (nToeslagPct * minTotaalPrijs) + ((nToeslagPct * minArrangementPrijs) * arrAantal)) / arrAantal) - minArrangementPrijs;
					}
		
					$("tr[data-id='arrangementToeslag']").remove();
					// TOESLAG TIJDELIJK UITGESCHAKELD
					if (false) {
						if (nToeslag > 0) {
							$arrDetail.find("tr[data-id='arrangementKorting']").after("<tr data-id=\"arrangementToeslag\"><td class=\"omschrijving\">Toeslag</td><td class=\"aantal\"></td><td class=\"prijs\"></td><td class=\"totaal\">&euro; " + nToeslag.toFixed(2).replace(".", ",") + "</td></tr>");
							// toeslag = (arrAantal * (arrPrijs * (data.items.toeslag.toeslag / 100)));
							$("#beijkToeslag").val(nToeslag.toString().replace(".", ","));
						} else {
							nToeslag = 0;
							$("#beijkToeslag").val(0);
						}
					}
					// TEKST TONEN, ANDERE ZAKEN VERBERGEN
					if (nToeslag > 0) {
						$("#toeslagTekst").show();
						$("p.omschrijving").hide().prev().hide().nextAll(".arrSection").hide();
						$("#beijkSubmitHolder").hide();
					} else {
						$("#toeslagTekst").hide();
						$("#beijkSubmitHolder").show();
						$("p.omschrijving").show().prev().show().nextAll(".arrSection").show();
					}
					nToeslag = 0;
		
					var BTWPct = ((artikelenPrijs - arrExclusiefBTW) / arrExclusiefBTW);
		
		
					// Verberg alle producten die geen prijs hebben
					//  (die producten maken op deze locatie nl. geen onderdeel uit van het arrangement
					$arrDetail.find("tr.hidden").show();
					$arrDetail.find("td[data-price='0']").closest("tr").hide().addClass("hidden");
		
					// Totaal
					$arrDetail.find("tr[data-id='arrangementTotaal']").each(function() {
						$(this).find("td[data-id='totaal']").html("&euro; " + (arrangementPrijs + nToeslag - hoofdartikelKorting + nTransportkosten).toFixed(2).replace(".", ","));
					});
					// Subtotaal
					$arrDetail.find("tr[data-id='subtotaal']").each(function() {
						$(this).find("td[data-id='totaal']").html("&euro; " + (arrangementTotaalprijs).toFixed(2).replace(".", ","));
					});
					// Korting
					$arrDetail.find("tr[data-id='arrangementKorting']").each(function() {
						var prijs = (arrangementTotaalprijs - arrangementPrijs) + hoofdartikelKorting;
						// var prijs = (arrangementTotaalprijs - arrangementPrijs) * hoofdartikelKortingPct;
						prijs = isNumeric(prijs) ? prijs : 0;
						$(this).find("td[data-id='totaal']").html("- &euro; " + prijs.toFixed(2).replace(".", ","));
					});
					// BTW
					$arrDetail.find("tr[data-id='arrangementTotaalExclBTW']").each(function() {
						//var prijs = ((arrExclusiefBTW * hoofdartikelKortingPct) + exclusiefBTW + (nTransportkosten / 1.19));
						// var prijs = (arrExclusiefBTW + (nTransportkosten / 1.19)) * hoofdartikelKortingPct;
						var prijs = (arrangementPrijs + nToeslag - hoofdartikelKorting + nTransportkosten) / (1 + BTWPct);
						prijs = isNumeric(prijs) ? prijs : 0;
						$(this).find("td[data-id='totaal']").html("&euro; " + prijs.toFixed(2).replace(".", ","));
						$("#beijkBTWPrijs").val(prijs.toFixed(2).replace(".", ","));
					});
					
					$("#isUnavailable").hide();
					$("#beijkSubmit").show();
				});
			} else { // niet beschikbaar
				$("#isUnavailable").show();
				$("#beijkSubmit").hide();
				$("#loader").hide();
			}
		
			$("td.loading").removeClass("loading");
			
		});

	}
}

function isNumeric(value) {
	if (value != null && !value.toString().match(/^[-]?\d*\.?\d*$/)) return false;
	return true;
}


// Beijk TV - activity checken
$(function() {
	if (typeof(parent.trackFrameActivity) == 'function') {
		$(window).bind("mousemove mousedown keydown", function() {
			parent.trackFrameActivity(); 
		});
	}
});

jQuery.extend({
	random: function(min, max) {
	  return Math.round(min + ((max - min)*(Math.random() % 1)));
	}
});


