
/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by - filename.js -
 */

/* - ++resource++zeam.form.plone.resources/json-template.js - */
// http://www.waterstanden.be/portal_javascripts/++resource++zeam.form.plone.resources/json-template.js?original=1
var log=log|| function(){};var repr=repr|| function(){};var jsontemplate=function(){
function EscapeMeta(meta){return meta.replace(/([\{\}\(\)\[\]\|\^\$\-\+\?])/g,'\\$1')}
var token_re_cache={};
function _MakeTokenRegex(meta_left,meta_right){var key=meta_left+meta_right;var regex=token_re_cache[key];if(regex===undefined){var str='('+EscapeMeta(meta_left)+'.*?'+EscapeMeta(meta_right)+'\n?)';regex=new RegExp(str,'g')}
return regex}
function HtmlEscape(s){return s.replace(/&/g,'&amp;').
replace(/>/g,'&gt;').
replace(/</g,'&lt;')}
function HtmlTagEscape(s){return s.replace(/&/g,'&amp;').
replace(/>/g,'&gt;').
replace(/</g,'&lt;').
replace(/"/g,'&quot;')}
function ToString(s){if(s===null){return 'null'}
return s.toString()}
function _Pluralize(value,unused_context,args){var s,p;switch(args.length){case 0:s='';p='s';break;case 1:s='';p=args[0];break;case 2:s=args[0];p=args[1];break;default:throw{name:'EvaluationError',message:'pluralize got too many args'}}
return(value>1)?p:s}
function _Cycle(value,unused_context,args){return args[(value-1)%args.length]}
var DEFAULT_FORMATTERS={'html':HtmlEscape,'htmltag':HtmlTagEscape,'html-attr-value':HtmlTagEscape,'str':ToString,'raw': function(x){return x},'AbsUrl': function(value,context){return context.get('base-url')+'/'+value}};var DEFAULT_PREDICATES={'singular?': function(x){return x==1},'plural?': function(x){return x>1},'Debug?': function(unused,context){try{return context.get('debug')} catch(err){if(err.name=='UndefinedVariable'){return false} else{throw err}}}};var FunctionRegistry=function(){return{lookup: function(user_str){return [null,null]}}};var SimpleRegistry=function(obj){return{lookup: function(user_str){var func=obj[user_str]||null;return [func,null]}}};var CallableRegistry=function(callable){return{lookup: function(user_str){var func=callable(user_str);return [func,null]}}};var PrefixRegistry=function(functions){return{lookup: function(user_str){for(var i=0;i< functions.length;i++){var name=functions[i].name,func=functions[i].func;if(user_str.slice(0,name.length)==name){var args;var splitchar=user_str.charAt(name.length);if(splitchar===''){args=[]} else{args=user_str.split(splitchar).slice(1)}
return [func,args]}}
return [null,null]}}};var ChainedRegistry=function(registries){return{lookup: function(user_str){for(var i=0;i<registries.length;i++){var result=registries[i].lookup(user_str);if(result[0]){return result}}
return [null,null]}}};
function _ScopedContext(context,undefined_str){var stack=[{context:context,index:-1}];return{PushSection: function(name){if(name===undefined||name===null){return null}
var new_context;if(name=='@'){new_context=stack[stack.length-1].context} else{new_context=stack[stack.length-1].context[name]||null}
stack.push({context:new_context,index:-1});return new_context},Pop: function(){stack.pop()},next: function(){var stacktop=stack[stack.length-1];if(stacktop.index==-1){stacktop={context:null,index:0};stack.push(stacktop)}
var context_array=stack[stack.length-2].context;if(stacktop.index==context_array.length){stack.pop();return undefined}
stacktop.context=context_array[stacktop.index++];return true},_Undefined: function(name){if(undefined_str===undefined){throw{name:'UndefinedVariable',message:name+' is not defined'}} else{return undefined_str(name)}},_LookUpStack: function(name){var i=stack.length-1;while(true){var frame=stack[i];if(name=='@index'){if(frame.index!=-1){return frame.index}} else{var context=frame.context;if(typeof context==='object'){var value=context[name];if(value!==undefined){return value}}}
i--;if(i<=-1){return this._Undefined(name)}}},get: function(name){if(name=='@'){return stack[stack.length-1].context}
var parts=name.split('.');var value=this._LookUpStack(parts[0]);if(parts.length>1){for(var i=1;i<parts.length;i++){value=value[parts[i]];if(value===undefined){return this._Undefined(parts[i])}}}
return value}}}
var _AbstractSection=function(spec){var that={};that.current_clause=[];that.Append=function(statement){that.current_clause.push(statement)};that.AlternatesWith=function(){throw{name:'TemplateSyntaxError',message:'{.alternates with} can only appear with in {.repeated section ...}'}};that.NewOrClause=function(pred){throw{name:'NotImplemented'}};return that};var _Section=function(spec){var that=_AbstractSection(spec);that.statements={'default':that.current_clause};that.section_name=spec.section_name;that.Statements=function(clause){clause=clause||'default';return that.statements[clause]||[]};that.NewOrClause=function(pred){if(pred){throw{name:'TemplateSyntaxError',message:'{.or} clause only takes a predicate inside predicate blocks'}}
that.current_clause=[];that.statements['or']=that.current_clause};return that};var _RepeatedSection=function(spec){var that=_Section(spec);that.AlternatesWith=function(){that.current_clause=[];that.statements['alternate']=that.current_clause};return that};var _PredicateSection=function(spec){var that=_AbstractSection(spec);that.clauses=[];that.NewOrClause=function(pred){pred=pred||[function(x){return true},null];that.current_clause=[];that.clauses.push([pred,that.current_clause])};return that};
function _Execute(statements,context,callback){for(var i=0;i<statements.length;i++){var statement=statements[i];if(typeof(statement)=='string'){callback(statement)} else{var func=statement[0];var args=statement[1];func(args,context,callback)}}}
function _DoSubstitute(statement,context,callback){var value;value=context.get(statement.name);for(var i=0;i<statement.formatters.length;i++){var pair=statement.formatters[i];var formatter=pair[0];var args=pair[1];value=formatter(value,context,args)}
callback(value)}
function _DoSection(args,context,callback){var block=args;var value=context.PushSection(block.section_name);var do_section=false;if(value){do_section=true}
if(value&&value.length===0){do_section=false}
if(do_section){_Execute(block.Statements(),context,callback);context.Pop()} else{context.Pop();_Execute(block.Statements('or'),context,callback)}}
function _DoPredicates(args,context,callback){var block=args;var value=context.get('@');for(var i=0;i<block.clauses.length;i++){var clause=block.clauses[i];var predicate=clause[0][0];var pred_args=clause[0][1];var statements=clause[1];var do_clause=predicate(value,context,pred_args);if(do_clause){_Execute(statements,context,callback);break}}}
function _DoRepeatedSection(args,context,callback){var block=args;items=context.PushSection(block.section_name);pushed=true;if(items&&items.length>0){var last_index=items.length-1;var statements=block.Statements();var alt_statements=block.Statements('alternate');for(var i=0;context.next()!==undefined;i++){_Execute(statements,context,callback);if(i!=last_index){_Execute(alt_statements,context,callback)}}} else{_Execute(block.Statements('or'),context,callback)}
context.Pop()}
var _SECTION_RE=/(repeated)?\s*(section)\s+(\S+)?/;var _OR_RE=/or(?:\s+(.+))?/;var _IF_RE=/if(?:\s+(.+))?/;
function MakeRegistry(obj){if(!obj){return new FunctionRegistry()} else if(typeof obj==='function'){return new CallableRegistry(obj)} else if(obj.lookup!==undefined){return obj} else if(typeof obj==='object'){return new SimpleRegistry(obj)}}
function _Compile(template_str,options){var more_formatters=MakeRegistry(options.more_formatters);var default_formatters=PrefixRegistry([{name:'pluralize',func:_Pluralize},{name:'cycle',func:_Cycle}]);var all_formatters=new ChainedRegistry([more_formatters,SimpleRegistry(DEFAULT_FORMATTERS),default_formatters]);var more_predicates=MakeRegistry(options.more_predicates);var all_predicates=new ChainedRegistry([more_predicates,SimpleRegistry(DEFAULT_PREDICATES)]);var default_formatter;if(options.default_formatter===undefined){default_formatter='str'} else{default_formatter=options.default_formatter}
function GetFormatter(format_str){var pair=all_formatters.lookup(format_str);if(!pair[0]){throw{name:'BadFormatter',message:format_str+' is not a valid formatter'}}
return pair}
function GetPredicate(pred_str){var pair=all_predicates.lookup(pred_str);if(!pair[0]){throw{name:'BadPredicate',message:pred_str+' is not a valid predicate'}}
return pair}
var format_char=options.format_char||'|';if(format_char!=':'&&format_char!='|'){throw{name:'ConfigurationError',message:'Only format characters : and | are accepted'}}
var meta=options.meta||'{}';var n=meta.length;if(n%2==1){throw{name:'ConfigurationError',message:meta+' has an odd number of metacharacters'}}
var meta_left=meta.substring(0,n/2);var meta_right=meta.substring(n/2,n);var token_re=_MakeTokenRegex(meta_left,meta_right);var current_block=_Section({});var stack=[current_block];var strip_num=meta_left.length;var token_match;var last_index=0;while(true){token_match=token_re.exec(template_str);if(token_match===null){break} else{var token=token_match[0]}
if(token_match.index>last_index){var tok=template_str.slice(last_index,token_match.index);current_block.Append(tok)}
last_index=token_re.lastIndex;var had_newline=false;if(token.slice(-1)=='\n'){token=token.slice(null,-1);had_newline=true}
token=token.slice(strip_num,-strip_num);if(token.charAt(0)=='#'){continue}
if(token.charAt(0)=='.'){token=token.substring(1,token.length);var literal={'meta-left':meta_left,'meta-right':meta_right,'space':' ','tab':'\t','newline':'\n'}[token];if(literal!==undefined){current_block.Append(literal);continue}
var new_block,func;var section_match=token.match(_SECTION_RE);if(section_match){var repeated=section_match[1];var section_name=section_match[3];if(repeated){func=_DoRepeatedSection;new_block=_RepeatedSection({section_name:section_name})} else{func=_DoSection;new_block=_Section({section_name:section_name})}
current_block.Append([func,new_block]);stack.push(new_block);current_block=new_block;continue}
var pred_str,pred;var or_match=token.match(_OR_RE);if(or_match){pred_str=or_match[1];pred=pred_str?GetPredicate(pred_str):null;current_block.NewOrClause(pred);continue}
var matched=false;var if_match=token.match(_IF_RE);if(if_match){pred_str=if_match[1];matched=true} else if(token.charAt(token.length-1)=='?'){pred_str=token;matched=true}
if(matched){pred=pred_str?GetPredicate(pred_str):null;new_block=_PredicateSection();new_block.NewOrClause(pred);current_block.Append([_DoPredicates,new_block]);stack.push(new_block);current_block=new_block;continue}
if(token=='alternates with'){current_block.AlternatesWith();continue}
if(token=='end'){stack.pop();if(stack.length>0){current_block=stack[stack.length-1]} else{throw{name:'TemplateSyntaxError',message:'Got too many {end} statements'}}
continue}}
var parts=token.split(format_char);var formatters;var name;if(parts.length==1){if(default_formatter===null){throw{name:'MissingFormatter',message:'This template requires explicit formatters.'}}
formatters=[GetFormatter(default_formatter)];name=token} else{formatters=[];for(var j=1;j<parts.length;j++){formatters.push(GetFormatter(parts[j]))}
name=parts[0]}
current_block.Append([_DoSubstitute,{name:name,formatters:formatters}]);if(had_newline){current_block.Append('\n')}}
current_block.Append(template_str.slice(last_index));if(stack.length!==1){throw{name:'TemplateSyntaxError',message:'Got too few {end} statements'}}
return current_block}
function Template(template_str,options){if(!(this instanceof Template)){return new Template(template_str,options)}
this._options=options||{};this._program=_Compile(template_str,this._options)}
Template.prototype.render=function(data_dict,callback){var context=_ScopedContext(data_dict,this._options.undefined_str);_Execute(this._program.Statements(),context,callback)};Template.prototype.expand=function(data_dict){var tokens=[];this.render(data_dict, function(x){tokens.push(x)});return tokens.join('')};var OPTION_RE=/^([a-zA-Z\-]+):\s*(.*)/;var OPTION_NAMES=['meta','format-char','default-formatter','undefined-str'];var OPTION_NAMES_RE=new RegExp(OPTION_NAMES.join('|'));
function fromString(s,options){var parsed={};var begin=0,end=0;while(true){var parsedOption=false;end=s.indexOf('\n',begin);if(end==-1){break}
var line=s.slice(begin,end);begin=end+1;var match=line.match(OPTION_RE);if(match!==null){var name=match[1].toLowerCase(),value=match[2];if(name.match(OPTION_NAMES_RE)){name=name.replace('-','_');value=value.replace(/^\s+/, '').replace(/\s+$/,'');if(name=='default_formatter'&&value.toLowerCase()=='none'){value=null}
parsed[name]=value;parsedOption=true}}
if(!parsedOption){break}}
if(parsed!=={}){body=s.slice(begin)} else{body=s}
for(var o in options){parsed[o]=options[o]}
return Template(body,parsed)}
return{Template:Template,HtmlEscape:HtmlEscape,FunctionRegistry:FunctionRegistry,SimpleRegistry:SimpleRegistry,CallableRegistry:CallableRegistry,ChainedRegistry:ChainedRegistry,fromString:fromString,_Section:_Section}}();

/* - ++resource++zeam.form.ztk.widgets/collection.js - */
// http://www.waterstanden.be/portal_javascripts/++resource++zeam.form.ztk.widgets/collection.js?original=1
(function($){var field_name_regexp=/(.*)\.field\.(\d+)$/;var increment=function(value){return(parseInt(value)+1).toString()};var starts_with=function(string){var starter='^';for(var i=1;i<arguments.length;i++){starter+=arguments[i]};return string.match(starter)};var prepare_field=function(field){var container=field.find('.field-collection-lines:first');field.data('template',create_template(field.children('.field-collection-template')));update_move_buttons(container.children('.field-collection-line:first'),container.children('.field-collection-line:last'))};var create_template=function(node){if(!node.length){return undefined};var identifier=node.attr('rel');var template=new jsontemplate.Template(node.get(0).innerHTML,{undefined_str: function(name){return '{'+name+'}'}});node.html('');return{identifier:identifier,template:template,render: function(identifier){var parameters={};parameters[this.identifier]=identifier;var data=$(this.template.expand(parameters));if(!data.is('.field-collection-line')){data=data.find('.field-collection-line:first')};data.find('div.field-collection').each(function(){prepare_field($(this))});return data}}};var update_line_names=function(line,base_name,count){var selector_name=base_name+'.checked.';var present_name=base_name+'.present.';var field_name=base_name+'.field.';var rewriter=function(){var input=$(this);var old_name=input.attr('name');if(starts_with(old_name,selector_name)){input.attr('name',selector_name+count)} else if(starts_with(old_name,present_name)){input.attr('name',present_name+count)} else if(starts_with(old_name,field_name)){var new_name=field_name+count;var i=field_name.length;for(;i<old_name.length&&old_name[i]!='.';i++);for(;i<old_name.length;i++){new_name+=old_name[i]};input.attr('name',new_name)}};line.find('input').each(rewriter);line.find('textarea').each(rewriter);line.find('select').each(rewriter);line.attr('rel',field_name+count)};var update_move_buttons=function(line_top,line_bottom){if(line_top.is(':first-child')){line_bottom.children('.ordering-actions').children('.field-collection-move-up').show();line_top.children('.ordering-actions').children('.field-collection-move-up').hide()};if(line_bottom.is(':last-child')){line_top.children('.ordering-actions').children('.field-collection-move-down').show();line_bottom.children('.ordering-actions').children('.field-collection-move-down').hide()}};$(document).ready(function(){$('form.zeam-form div.field-collection').each(function(){prepare_field($(this))});$('form.zeam-form input.field-collection-add-line').live('click', function(){var field=$(this).closest('div.field-collection');var counter=field.children('input.field-collection-counter');var identifier=counter.val();var container=field.find('.field-collection-lines:first');var new_line=field.data('template').render(identifier);var header_message=field.children('.field-collection-header');var empty_message=field.children('.field-collection-empty');var actions=field.children('.multi-actions');var remove_button=actions.children('.field-collection-remove-line');var previous_line=container.children('.field-collection-line:last');if(empty_message.is(':visible')){header_message.slideDown();empty_message.slideUp()};if(!remove_button.is(':visible')){remove_button.fadeIn()};if(!previous_line.length){previous_line=new_line};new_line.appendTo(container);update_move_buttons(previous_line,new_line);counter.val(increment(identifier));return false});$('form.zeam-form input.field-collection-remove-line').live('click', function(){var field=$(this).closest('div.field-collection');var container=field.find('.field-collection-lines:first');var selected=container.children('.field-collection-line').children('.line-actions').children('input.field-collection-line-selector:checked');selected.each(function(){var line=$(this).closest('.field-collection-line');var previous_line=line.prev('.field-collection-line');var next_line=line.next('.field-collection-line');line.remove();update_move_buttons(next_line,previous_line);var lines=container.find('.field-collection-line');if(!lines.length){var empty_message=field.find('.field-collection-empty');var header_message=field.children('.field-collection-header');var actions=field.children('.multi-actions');var remove_button=actions.children('.field-collection-remove-line');empty_message.slideDown();header_message.slideUp();remove_button.fadeOut()}});return false});$('form.zeam-form button.field-collection-move-up').live('click', function(){var button=$(this);var line=button.closest('.field-collection-line');var previous_line=line.prev();if(previous_line.is('.field-collection-line')){var name_info=field_name_regexp.exec(line.attr('rel'));var base_name=name_info[1];var count=name_info[2];var previous_name_info=field_name_regexp.exec(previous_line.attr('rel'));var previous_count=previous_name_info[2];line.remove();line.insertBefore(previous_line);update_line_names(line,base_name,previous_count);update_line_names(previous_line,base_name,count);update_move_buttons(line,previous_line)};return false});$('form.zeam-form button.field-collection-move-down').live('click', function(){var button=$(this);var line=button.closest('.field-collection-line');var next_line=line.next();if(next_line.is('.field-collection-line')){var name_info=field_name_regexp.exec(line.attr('rel'));var base_name=name_info[1];var count=name_info[2];var next_name_info=field_name_regexp.exec(next_line.attr('rel'));var next_count=next_name_info[2];line.remove();line.insertAfter(next_line);update_line_names(line,base_name,next_count);update_line_names(next_line,base_name,count);update_move_buttons(next_line,line)};return false})})})(jQuery);

/* - ++resource++zeam.form.plone.resources/widgets.js - */
// http://www.waterstanden.be/portal_javascripts/++resource++zeam.form.plone.resources/widgets.js?original=1
(function($){var moveBetweenSelect=function(sourceId,targetId){var target=$('#'+targetId);$('#'+sourceId+' :selected').each(function(count,selected){var node=$(selected);node.remove();node.appendTo(target)})};$(document).ready(function(){$('.zeam-form').submit(function(){$(this).find('.field-plone-multi-select').each(
function(count,node){var selectedId=$(node).attr('id')+'-selected';var allOptions=[];$('#'+selectedId+' option').each(function(count,option){allOptions[count]=$(option).attr('value')});$('#'+selectedId).val(allOptions)})});$('.zeam-form .field-plone-multi-select').each(function(count,node){var nodeId=$(node).attr('id');var selectedId=nodeId+'-selected';var availableId=nodeId+'-available';$('#'+nodeId+'-add').click(function(){moveBetweenSelect(availableId,selectedId);return false});$('#'+nodeId+'-remove').click(function(){moveBetweenSelect(selectedId,availableId);return false})});$('.zeam-form input.field-collection-add-line').addClass('allowMultiSubmit');$('.zeam-form input.field-collection-remove-line').addClass('allowMultiSubmit');$('.zeam-form button.field-collection-move-up').addClass('allowMultiSubmit');$('.zeam-form button.field-collection-move-down').addClass('allowMultiSubmit')})})(jQuery);

