(function($){function Resiglet(source,tag){if(tag)this.tag=tag;var t=String(this.tag).replace(/([.*+?^=!:${}()|[\]\/\\])/g,'\\$1');this.evaluate=new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};"+"with(obj){p.push('"+
source.toString().replace(/[\r\t\n]/g," ").replace(new RegExp("'(?=[^"+t+"]*"+t+">)",'g'),"\t").split("'").join("\\'").split("\t").join("'").replace(new RegExp('<'+t+'=(.+?)'+t+'>','g'),"',$1,'").split('<'+t).join("');").split(t+'>').join("p.push('")
+"');}return p.join('');");};Resiglet.prototype.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;Resiglet.prototype.tag='@';$.resiglet=function(source,obj){var resiglet=new Resiglet(source);if(!obj)return resiglet;return resiglet.evaluate(obj);};})(jQuery);function jsonPath(obj,expr,arg){var P={resultType:arg&&arg.resultType||"VALUE",result:[],normalize:function(expr){var subx=[];return expr.replace(/[\['](\??\(.*?\))[\]']/g,function($0,$1){return"[#"+(subx.push($1)-1)+"]";}).replace(/'?\.'?|\['?/g,";").replace(/;;;|;;/g,";..;").replace(/;$|'?\]|'$/g,"").replace(/#([0-9]+)/g,function($0,$1){return subx[$1];});},asPath:function(path){var x=path.split(";"),p="$";for(var i=1,n=x.length;i<n;i++)
p+=/^[0-9*]+$/.test(x[i])?("["+x[i]+"]"):("['"+x[i]+"']");return p;},store:function(p,v){if(p)P.result[P.result.length]=P.resultType=="PATH"?P.asPath(p):v;return!!p;},trace:function(expr,val,path){if(expr){var x=expr.split(";"),loc=x.shift();x=x.join(";");if(val&&val.hasOwnProperty(loc))
P.trace(x,val[loc],path+";"+loc);else if(loc==="*")
P.walk(loc,x,val,path,function(m,l,x,v,p){P.trace(m+";"+x,v,p);});else if(loc===".."){P.trace(x,val,path);P.walk(loc,x,val,path,function(m,l,x,v,p){typeof v[m]==="object"&&P.trace("..;"+x,v[m],p+";"+m);});}
else if(/,/.test(loc)){for(var s=loc.split(/'?,'?/),i=0,n=s.length;i<n;i++)
P.trace(s[i]+";"+x,val,path);}
else if(/^\(.*?\)$/.test(loc))
P.trace(P.eval(loc,val,path.substr(path.lastIndexOf(";")+1))+";"+x,val,path);else if(/^\?\(.*?\)$/.test(loc))
P.walk(loc,x,val,path,function(m,l,x,v,p){if(P.eval(l.replace(/^\?\((.*?)\)$/,"$1"),v[m],m))P.trace(m+";"+x,v,p);});else if(/^(-?[0-9]*):(-?[0-9]*):?([0-9]*)$/.test(loc))
P.slice(loc,x,val,path);}
else
P.store(path,val);},walk:function(loc,expr,val,path,f){if(val instanceof Array){for(var i=0,n=val.length;i<n;i++)
if(i in val)
f(i,loc,expr,val,path);}
else if(typeof val==="object"){for(var m in val)
if(val.hasOwnProperty(m))
f(m,loc,expr,val,path);}},slice:function(loc,expr,val,path){if(val instanceof Array){var len=val.length,start=0,end=len,step=1;loc.replace(/^(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)$/g,function($0,$1,$2,$3){start=parseInt($1||start);end=parseInt($2||end);step=parseInt($3||step);});start=(start<0)?Math.max(0,start+len):Math.min(len,start);end=(end<0)?Math.max(0,end+len):Math.min(len,end);for(var i=start;i<end;i+=step)
P.trace(i+";"+expr,val,path);}},eval:function(x,_v,_vname){try{return $&&_v&&eval(x.replace(/@/g,"_v"));}
catch(e){throw new SyntaxError("jsonPath: "+e.message+": "+x.replace(/@/g,"_v").replace(/\^/g,"_a"));}}};var $=obj;if(expr&&obj&&(P.resultType=="VALUE"||P.resultType=="PATH")){P.trace(P.normalize(expr).replace(/^\$;/,""),obj,"$");return P.result.length?P.result:false;}}
(function($){$.fn.autoSuggest=function(data,options){var defaults={asHtmlID:false,startText:"Enter Name Here",emptyText:"No Results Found",preFill:{},limitText:"No More Selections Are Allowed",selectedItemProp:"value",selectedValuesProp:"value",searchObjProps:"value",queryParam:"q",retrieveLimit:false,extraParams:"",matchCase:false,minChars:1,keyDelay:400,resultsHighlight:true,neverSubmit:false,selectionLimit:false,showResultList:true,start:function(){},selectionClick:function(elem){},selectionAdded:function(elem){},selectionRemoved:function(elem){elem.remove();},formatList:false,beforeRetrieve:function(string){return string;},retrieveComplete:function(data){return data;},resultClick:function(data){},resultsComplete:function(){}};var opts=$.extend(defaults,options);var d_type="object";var d_count=0;if(typeof data=="string"){d_type="string";var req_string=data;}else{var org_data=data;for(k in data)if(data.hasOwnProperty(k))d_count++;}
if((d_type=="object"&&d_count>0)||d_type=="string"){return this.each(function(x){if(!opts.asHtmlID){x=x+""+Math.floor(Math.random()*100);var x_id="as-input-"+x;}else{x=opts.asHtmlID;var x_id=x;}
opts.start.call(this);var input=$(this);input.attr("autocomplete","off").addClass("as-input").attr("id",x_id).val(opts.startText);var input_focus=false;input.wrap('<ul class="as-selections" id="as-selections-'+x+'"></ul>').wrap('<li class="as-original" id="as-original-'+x+'"></li>');var selections_holder=$("#as-selections-"+x);var org_li=$("#as-original-"+x);var results_holder=$('<div class="as-results" id="as-results-'+x+'"></div>').hide();var results_ul=$('<ul class="as-list"></ul>');var values_input=$('<input type="hidden" class="as-values" name="as_values_'+x+'" id="as-values-'+x+'" />');var prefill_value="";if(typeof opts.preFill=="string"){var vals=opts.preFill.split(",");for(var i=0;i<vals.length;i++){var v_data={};v_data[opts.selectedValuesProp]=vals[i];if(vals[i]!=""){add_selected_item(v_data,"000"+i);}}
prefill_value=opts.preFill;}else{prefill_value="";var prefill_count=0;for(k in opts.preFill)if(opts.preFill.hasOwnProperty(k))prefill_count++;if(prefill_count>0){for(var i=0;i<prefill_count;i++){var new_v=opts.preFill[i][opts.selectedValuesProp];if(new_v==undefined){new_v="";}
prefill_value=prefill_value+new_v+",";if(new_v!=""){add_selected_item(opts.preFill[i],"000"+i);}}}}
if(prefill_value!=""){input.val("");var lastChar=prefill_value.substring(prefill_value.length-1);if(lastChar!=","){prefill_value=prefill_value+",";}
values_input.val(","+prefill_value);$("li.as-selection-item",selections_holder).addClass("blur").removeClass("selected");}
input.after(values_input);selections_holder.click(function(){input_focus=true;input.focus();}).mousedown(function(){input_focus=false;}).after(results_holder);var timeout=null;var prev="";var totalSelections=0;var tab_press=false;input.focus(function(){if($(this).val()==opts.startText&&values_input.val()==""){$(this).val("");}else if(input_focus){$("li.as-selection-item",selections_holder).removeClass("blur");if($(this).val()!=""){results_ul.css("width",selections_holder.outerWidth());results_holder.show();}}
input_focus=true;return true;}).blur(function(){if($(this).val()==""&&values_input.val()==""&&prefill_value==""){$(this).val(opts.startText);}else if(input_focus){$("li.as-selection-item",selections_holder).addClass("blur").removeClass("selected");results_holder.hide();}}).keydown(function(e){lastKeyPressCode=e.keyCode;first_focus=false;switch(e.keyCode){case 38:e.preventDefault();moveSelection("up");break;case 40:e.preventDefault();moveSelection("down");break;case 8:if(input.val()==""){var last=values_input.val().split(",");last=last[last.length-2];selections_holder.children().not(org_li.prev()).removeClass("selected");if(org_li.prev().hasClass("selected")){values_input.val(values_input.val().replace(last+",",""));opts.selectionRemoved.call(this,org_li.prev());}else{opts.selectionClick.call(this,org_li.prev());org_li.prev().addClass("selected");}}
if(input.val().length==1){results_holder.hide();prev="";}
if($(":visible",results_holder).length>0){if(timeout){clearTimeout(timeout);}
timeout=setTimeout(function(){keyChange();},opts.keyDelay);}
break;case 9:case 188:tab_press=true;var i_input=input.val().replace(/(,)/g,"");if(i_input!=""&&values_input.val().search(","+i_input+",")<0&&i_input.length>=opts.minChars){e.preventDefault();var n_data={};n_data[opts.selectedItemProp]=i_input;n_data[opts.selectedValuesProp]=i_input;var lis=$("li",selections_holder).length;add_selected_item(n_data,"00"+(lis+1));input.val("");}
case 13:tab_press=false;var active=$("li.active:first",results_holder);if(active.length>0){active.click();results_holder.hide();}
if(opts.neverSubmit||active.length>0){e.preventDefault();}
break;default:if(opts.showResultList){if(opts.selectionLimit&&$("li.as-selection-item",selections_holder).length>=opts.selectionLimit){results_ul.html('<li class="as-message">'+opts.limitText+'</li>');results_holder.show();}else{if(timeout){clearTimeout(timeout);}
timeout=setTimeout(function(){keyChange();},opts.keyDelay);}}
break;}});function keyChange(){if(lastKeyPressCode==46||(lastKeyPressCode>8&&lastKeyPressCode<32)){return results_holder.hide();}
var string=input.val().replace(/[\\]+|[\/]+/g,"");if(string==prev)return;prev=string;if(string.length>=opts.minChars){selections_holder.addClass("loading");if(d_type=="string"){var limit="";if(opts.retrieveLimit){limit="&limit="+encodeURIComponent(opts.retrieveLimit);}
if(opts.beforeRetrieve){string=opts.beforeRetrieve.call(this,string);}
$.getJSON(req_string+"?"+opts.queryParam+"="+encodeURIComponent(string)+limit+opts.extraParams,function(data){d_count=0;var new_data=opts.retrieveComplete.call(this,data);for(k in new_data)if(new_data.hasOwnProperty(k))d_count++;processData(new_data,string);});}else{if(opts.beforeRetrieve){string=opts.beforeRetrieve.call(this,string);}
processData(org_data,string);}}else{selections_holder.removeClass("loading");results_holder.hide();}}
var num_count=0;function processData(data,query){if(!opts.matchCase){query=query.toLowerCase();}
var matchCount=0;results_holder.html(results_ul.html("")).hide();for(var i=0;i<d_count;i++){var num=i;num_count++;var forward=false;if(opts.searchObjProps=="value"){var str=data[num].value;}else{var str="";var names=opts.searchObjProps.split(",");for(var y=0;y<names.length;y++){var name=$.trim(names[y]);str=str+data[num][name]+" ";}}
if(str){if(!opts.matchCase){str=str.toLowerCase();}
if(str.search(query)!=-1&&values_input.val().search(","+data[num][opts.selectedValuesProp]+",")==-1){forward=true;}}
if(forward){var formatted=$('<li class="as-result-item" id="as-result-item-'+num+'"></li>').click(function(){var raw_data=$(this).data("data");var number=raw_data.num;if($("#as-selection-"+number,selections_holder).length<=0&&!tab_press){var data=raw_data.attributes;input.val("").focus();prev="";add_selected_item(data,number);opts.resultClick.call(this,raw_data);results_holder.hide();}
tab_press=false;}).mousedown(function(){input_focus=false;}).mouseover(function(){$("li",results_ul).removeClass("active");$(this).addClass("active");}).data("data",{attributes:data[num],num:num_count});var this_data=$.extend({},data[num]);if(!opts.matchCase){var regx=new RegExp("(?![^&;]+;)(?!<[^<>]*)("+query+")(?![^<>]*>)(?![^&;]+;)","gi");}else{var regx=new RegExp("(?![^&;]+;)(?!<[^<>]*)("+query+")(?![^<>]*>)(?![^&;]+;)","g");}
if(opts.resultsHighlight){this_data[opts.selectedItemProp]=this_data[opts.selectedItemProp].replace(regx,"<em>$1</em>");}
if(!opts.formatList){formatted=formatted.html(this_data[opts.selectedItemProp]);}else{formatted=opts.formatList.call(this,this_data,formatted);}
results_ul.append(formatted);delete this_data;matchCount++;if(opts.retrieveLimit&&opts.retrieveLimit==matchCount){break;}}}
selections_holder.removeClass("loading");if(matchCount<=0){results_ul.html('<li class="as-message">'+opts.emptyText+'</li>');}
results_ul.css("width",selections_holder.outerWidth());results_holder.show();opts.resultsComplete.call(this);}
function add_selected_item(data,num){values_input.val(values_input.val()+data[opts.selectedValuesProp]+",");var item=$('<li class="as-selection-item" id="as-selection-'+num+'"></li>').click(function(){opts.selectionClick.call(this,$(this));selections_holder.children().removeClass("selected");$(this).addClass("selected");}).mousedown(function(){input_focus=false;});var close=$('<a class="as-close">&times;</a>').click(function(){values_input.val(values_input.val().replace(data[opts.selectedValuesProp]+",",""));opts.selectionRemoved.call(this,item);input_focus=true;input.focus();return false;});org_li.before(item.html(data[opts.selectedItemProp]).prepend(close));opts.selectionAdded.call(this,org_li.prev());}
function moveSelection(direction){if($(":visible",results_holder).length>0){var lis=$("li",results_holder);if(direction=="down"){var start=lis.eq(0);}else{var start=lis.filter(":last");}
var active=$("li.active:first",results_holder);if(active.length>0){if(direction=="down"){start=active.next();}else{start=active.prev();}}
lis.removeClass("active");start.addClass("active");}}});}}})(jQuery);var adstudio=function(){var _private={uitgeverSitesMap:{},uitgeverSelector:'',titelAdvertentietypeIdsMap:{},mogelijkeAdvertentietypeIds:[],onClickPrev:function(){$('#nextstep,#prevstep,div.uitgever').hide();$('#nextstep').unwrap().appendTo('#stepnavigatie');$('#uitgeverSelection').show();return false;},onClickUitgever:function(){_private.uitgeverSelector='#'+this.id+'_titels';$(this).parent().hide();$('.uitgever').filter(':not('+_private.uitgeverSelector+')').find(':checkbox:checked').each(function(){this.checked=false;});$(_private.uitgeverSelector).show().find('.selectie tr').remove();$('#nextstep').show().appendTo(_private.uitgeverSelector+' .selectiemiddle div').wrap('<div class="clearfix"/>');$('#prevstep').show();_private.showSelectedTitles();_private.determineMogelijkeAdvertentietypeIdsVanGekozenTitels();_private.disableTitelsMetNietMatchendeAdvertentietypeIds();},initTitleSearch:function(uitgever_id){var sites=_private.uitgeverSitesMap[uitgever_id].sites;$('#'+uitgever_id+'_titels .searchwebsite').autoSuggest(sites,{asHtmlID:'as'+uitgever_id,startText:"Zoek website",emptyText:"Niets gevonden",limitText:"Maar 1 keuze mogelijk",selectionLimit:1,resultClick:function(data){location.href='#site_'+data.attributes.id;},selectionClick:function(elem){location.href='#site_'+$('input.as-values').val().replace(',','');},selectionAdded:function(elem){$('.as-original').hide();},selectionRemoved:function(elem){$('.as-original').show();elem.remove();},selectedItemProp:"naam",selectedValuesProp:"id",searchObjProps:"naam"});},retrieveUitgeversData:function(){$.getJSON("/online/titelselectie/onlineTitelDetails.jl",function(uitgeversData){_private.storeUitgeversData(uitgeversData);_private.renderSites();_private.relocateNextButtonOnImplicitUitgeverSelection();});},relocateNextButtonOnImplicitUitgeverSelection:function(){if($('#uitgeverSelection').size()==0){$('.uitgever').each(function(){_private.uitgeverSelector='#'+this.id;console.log('_private.uitgeverSelector '+_private.uitgeverSelector);console.log($(_private.uitgeverSelector+' .selectiemiddle div'));$('#nextstep').show().appendTo(_private.uitgeverSelector+' .selectiemiddle div').wrap('<div class="clearfix"/>');})}},storeUitgeversData:function(uitgeversData){$.each(uitgeversData,function(i,uitgever){_private.uitgeverSitesMap[uitgever.naam]=uitgever;uitgever['topsites']=[];$.each(uitgever.sites,function(i,site){if(site.topsite_positie!=''){uitgever.topsites.push(site);}
$.each(site.titels,function(i,titel){_private.titelAdvertentietypeIdsMap[titel.id]=titel.advertentietype_ids;});});$.each(uitgever.sites,function(i,site){if(uitgever.topsites.length<4&&site.topsite_positie==''){uitgever.topsites.push(site);}});uitgever.topsites.sort(function(a,b){if(a.topsite_positie==''){return 1}else if(b.topsite_positie==''){return-1}else{return a.topsite_positie-b.topsite_positie;}});});},renderSites:function(data){$.each(_private.uitgeverSitesMap,function(uitgever,uitgeverData){var html=$.resiglet($("#item_tmpl").html(),uitgeverData);$('#'+uitgever+'_titels').html(html);_private.initTitleSearch(uitgever);});},onChangeTitelSelectie:function(){_private.renderInUwSelectie(this.value,this.checked);_private.determineMogelijkeAdvertentietypeIdsVanGekozenTitels();_private.disableTitelsMetNietMatchendeAdvertentietypeIds();},verwijderTitelSelectie:function(){var titelId=$(this).parent('tr').remove().attr('class');$('input:checkbox[value='+titelId+']').removeAttr('checked');},renderInUwSelectie:function(titelId,checked){var titel=jsonPath(_private.uitgeverSitesMap,'$..titels[?(@.id=='+titelId+')]');if(checked){$(_private.uitgeverSelector+' .selectie table').append('<tr class="'+titelId+'"><td width="95%" valign="top">'+titel[0].site+'<br/><span class="kanaal">'+titel[0].kanaal+'</span></td><td class="unselect" title="verwijderen">&nbsp;</td></tr>');}else{$(_private.uitgeverSelector+' .selectie tr.'+titelId).remove();}},determineMogelijkeAdvertentietypeIdsVanGekozenTitels:function(){_private.mogelijkeAdvertentietypeIds=[];$('input:checkbox:checked').each(function(){var advertentietypeIdsVanTitel=_private.titelAdvertentietypeIdsMap[this.value],resulterendeMogelijkeAdvertentietypeIds=[];if(_private.mogelijkeAdvertentietypeIds.length==0){resulterendeMogelijkeAdvertentietypeIds=advertentietypeIdsVanTitel;}else{$.each(_private.mogelijkeAdvertentietypeIds,function(i,mogelijkeAdvertentietypeId){if($.inArray(mogelijkeAdvertentietypeId,advertentietypeIdsVanTitel)>-1){resulterendeMogelijkeAdvertentietypeIds.push(mogelijkeAdvertentietypeId);}});}
_private.mogelijkeAdvertentietypeIds=resulterendeMogelijkeAdvertentietypeIds;});},disableTitelsMetNietMatchendeAdvertentietypeIds:function(){$('input:checkbox').removeAttr('disabled').parent().next().find('label').removeClass('disabled').removeAttr('title');if(_private.mogelijkeAdvertentietypeIds.length>0){$('input:checkbox:not(.'+_private.mogelijkeAdvertentietypeIds.join(',.')+')').attr('disabled','disabled').parent().next().find('label').addClass('disabled').attr('title','Deze titelkeuze is niet mogelijk vanwege afwijkende advertentietypes.');}},showSelectedTitles:function(){$.each(_public.geselecteerdeTitelIds,function(index,titelId){$(_private.uitgeverSelector+' input:checkbox[value='+titelId+']').attr('checked','checked').each(function(){_private.renderInUwSelectie(titelId,true);});});}};var _public={onready:function(){$('#nextstep').hide();$('#prevstep').hide().find('a').attr('href','#').click(_private.onClickPrev);_private.retrieveUitgeversData();$('#uitgeverSelection a').click(_private.onClickUitgever);$('.uitgever').delegate('input:checkbox','change',_private.onChangeTitelSelectie);$('.uitgever').delegate('.unselect','click',_private.verwijderTitelSelectie);},geselecteerdeTitelIds:[]};return _public;}();$(document).ready(adstudio.onready);
