(function(n){"use strict";n.views.tags({edit:{init:function(n,t){if(this._.inline&&!n.content&&(this.template="<input/>"),this.onInit)this.onInit(n,t)},onAfterLink:function(t,i){var u,f,r=this;(!r.linkedElem||r.linkedElem[0]&&!r.linkedElem[0].parentNode||r._.radio)&&(u=r._.inline?r.contents("select,textarea,input,.radiogroup")[0]:i.elem,r._.inline&&u&&n.view(u).tag!==r&&(u=undefined),r.linkedElem=n(u),r.linkedElem.hasClass("radiogroup")&&(r._.radio||(r._.radio=!0,f=r.linkedElem.view(!0),f&&f.type==="array"&&n.views.helpers("onAfterCreate",function(n){n.parent===f&&(n.contents("input")[0]._jsvBnd=(r._.inline?r._prv._jsvBnd:r.linkedElem[0]._jsvBnd)+"+")},f.tmpl))),r.linkedElem.length||(r.targetTag=r.childTags()[0])&&(r.targetTag.onBeforeChange=function(n,t){return r.onBeforeChange.call(r,n,t)}));r.targetTag&&r.targetTag.setValue(t.args[0])},onUpdate:function(){return!1},dataBoundOnly:!0}})})(this.jQuery),function(n,t,i){"use strict";function r(){var n=this.tagCtx;return n.render(n.view,!0)}function u(){var n=t(this).clone();return n.find("*").addBack().removeAttr("id data-link data-jsv data-jsv-df"),n.find("script").remove(),n}t.views.tags({widget:{init:function(n){var t=this,r=n.props,u=n.content,i;t._.inline&&((i=r.elem||t.elem)&&(u?t.wrap&&(t.template="<"+i+">"+u.markup+"<\/"+i+">"):t.template=i==="input"?"<input/>":"<"+i+"><\/"+i+">"),t.attr="html");delete r.elem},onAfterLink:function(n,i){var f,c,e,r=this,o=r.options,s=r.initOptions,l=n.props,u=r.widgetName||n.args[0],h=u;if(u=u.split("-").pop(),r._.unlinked){if(e=s&&s.length)for(s={};e--;)e=r.initOptions[e],(c=n.props["_"+e])&&(s[e]=c);if(h===u&&(h="ui-"+u),r.linkedElem||(r.linkedElem=r._.inline?r.contents("*").first():t(i.elem)),f=r.linkedElem,!f[0])throw"No element found for widget '"+u+"'";if(f[u](s),r.widget=f.data(h)||f.data(u),!r.widget)throw"widget '"+u+"' failed";}f=r.linkedElem;o&&(t.isFunction(o)&&(o=r.options()),r.linkedElem[u]("option",o));t.each(l,function(n,i){var r;n.charAt(0)==="_"&&(n=n.slice(1),r=o&&o[n],f[u]("option",n,r&&t.isFunction(r)?function(){return r.apply(f[0],arguments),i.apply(f[0],arguments)}:i))})},onUpdate:function(){return!1},dataBoundOnly:!0,attr:"none"},autocomplete:{baseTag:"widget",widgetName:"autocomplete",elem:"input",setSize:!0,options:function(){var n=this;return{change:function(t,i){i.item&&n.update(i.item.value)},select:function(t,i){i.item&&n.update(i.item.value)},focus:function(){return!1}}},setValue:function(n){this.linkedElem.val(n)},getValue:function(){return this.linkedElem.val()}},button:{baseTag:"widget",widgetName:"button",elem:"button",setSize:!0,init:function(n,t){var o,i=this,r=n.content,s=n.props,u=s.id,e=i.parent,h,f;(i._.radio=e&&e.tagName==="buttonset")?n=e.tagCtx:i._.chkBx=(i._.inline?s:t.elem).type==="checkbox";h=n.params;f=h.props||{};i.baseApply(arguments);i._.inline&&(r=r&&r.markup||"&nbsp;",i._.radio||i._.chkBx?(this.noVal=!1,u=u||"jsv"+Math.random(),o='<input id="'+u+'" data-link="'+h.args[0]+(f.convert?" convert="+f.convert:"")+(f.convertBack?" convertBack="+f.convertBack:"")+(i._.radio?'" name="'+e.id+'" type="radio" value="'+s.value+'"/><label for="'+u+'">'+r+"<\/label>":'" type="checkbox"/><label for="'+u+'">'+r+"<\/label>")):o="<button>"+r+"<\/button>",i.template=o)},onAfterLink:function(n,i){var r=this,u=i.elem,f=r.cvtArgs()[0];r._.radio||r._.chkBx?(r._.inline||(r._.unlinked&&!u.id&&(u.id="jsv"+Math.random(),t(u).after('<label for="'+u.id+'">&nbsp;<\/label>')),u.checked=r._.radio?(u.name=r.parent.id,f===u.value):f&&f!=="false"),r.baseApply(arguments),u=r.linkedElem[0],r._.radio?(u.value==="undefined"&&(u.value=r.widget.option("label")),u.checked=f===u.value):u.checked=f&&f!=="false",r._.chkBx&&r.widget.refresh()):(r._.inline||(u.innerHTML=u.innerHTML||"&nbsp;"),r.baseApply(arguments))},render:r},buttonset:{baseTag:"widget",widgetName:"buttonset",setSize:!0,init:function(n){var t=this;t.baseApply(arguments);t._.inline&&(t.id=n.props.id||"jsv"+Math.random(),t.template='<span id="'+t.id+'">'+n.content.markup+"<\/span>")},render:r,onAfterLink:function(n,i){var r=this,f=i.elem,u=r.cvtArgs()[0];r.baseApply(arguments);r.widget.buttons.each(function(n,i){i.checked=u===i.value;t(i).button("refresh")})}},datepicker:{baseTag:"widget",widgetName:"datepicker",elem:"input",options:function(){var n=this;return{onSelect:function(t){n.value=t;n.update(t)}}},setValue:function(n){n!==i&&n!==this.value&&(this.value=n,this.linkedElem.datepicker("setDate",n))},getValue:function(){return this.value},onAfterLink:function(n){var t=this;t.baseApply(arguments);t.setValue(n.args[0]);t.linkedElem[0].tagName!=="INPUT"&&t.linkedElem.css("display","inline-block")}},droppable:{baseTag:"widget",widgetName:"droppable",wrap:!0},menu:{baseTag:"widget",widgetName:"menu",elem:"ul",wrap:!0,initOptions:["menus","items"]},progressbar:{baseTag:"widget",widgetName:"progressbar",elem:"div",wrap:!0,setSize:!0,setValue:function(n){var t=this;t.widget.value(n||0)},getValue:function(){return this.widget.value()},onAfterLink:function(n){var t=this;t.baseApply(arguments);n.args.length&&t.setValue(t.cvtArgs()[0]);n.props.busy&&t.widget.value(!1)},render:r},resizable:{baseTag:"widget",widgetName:"resizable",wrap:!0,elem:"div"},selectable:{baseTag:"widget",widgetName:"selectable",wrap:!0},selectmenu:{baseTag:"widget",widgetName:"selectmenu",elem:"select",wrap:!0,options:function(){var n=this;return{change:function(t,i){n.update(i.value)}}},setValue:function(n){this.linkedElem[0].value=n;this.widget.refresh()},getValue:function(){return this.linkedElem[0].value},render:r,onAfterLink:function(){var n=this;if(n.baseApply(arguments),n._.unlinked)n.linkedElem.on("jsv-domchange",function(){n.widget.refresh()});n.setValue(n.cvtArgs()[0])}},slider:{baseTag:"widget",widgetName:"slider",elem:"div",setSize:!0,options:function(){var n=this;return{slide:function(t,i){setTimeout(function(){n.update(i.value)},0)}}},setValue:function(n){this.widget.value(n||0)},getValue:function(){return this.widget.value()},onAfterLink:function(){var n=this;n.baseApply(arguments);n.setValue(n.cvtArgs()[0])}},sliderrange:{baseTag:"widget",widgetName:"slider",elem:"div",setSize:!0,options:function(){var n=this;return{slide:function(t,i){setTimeout(function(){n.update(i.values)},0)}}},setValue:function(n){this.widget.values(n||0)},getValue:function(){return this.widget.values()},onAfterLink:function(){var n=this;n.baseApply(arguments);n.setValue(n.cvtArgs()[0])}},spinner:{baseTag:"widget",widgetName:"spinner",elem:"input",setSize:!0,options:function(){var n=this;return{spin:function(t,i){n.update(i.value)}}},setValue:function(n){this.widget.value(n||0)},getValue:function(){return this.widget.value()}},tabs:{baseTag:"widget",widgetName:"tabs",elem:"div",setSize:!0,wrap:!0}});t.ui.sortable&&t.widget("jsv.sortable",t.ui.sortable,{_create:function(){var r,u,n=this,f=n.options.start,e=n.options.stop;n.option({start:function(n,t){f&&f.apply(this,arguments);r=t.item.view();r.type==="item"&&(u=r.index+1)},stop:function(f,o){var s;u&&(s=o.item.prevAll(o.item[0].tagName).length,n.cancel(),t.observable(r.parent.data).move(u-1,s),u=i);e&&e.apply(this,arguments)}});n._super()}});t.ui.draggable&&t.widget("jsv.draggable",t.ui.draggable,{_createHelper:function(){return this.options.helper==="clone"&&(this.options.helper=u),this._super()}});t.ui.accordion&&t.widget("jsv.accordion",t.ui.accordion,{_create:function(){var n=this;n.options.header=n.options.header.replace(":not(li):even",":not(li,script):even");n.element.on("jsv-domchange",function(){n.refresh()});n._super()}});t.views.tags({accordion:{baseTag:"widget",widgetName:"jsv-accordion",wrap:!0,initOptions:["header"]},draggable:{baseTag:"widget",widgetName:"jsv-draggable",wrap:!0},sortable:{baseTag:"widget",widgetName:"jsv-sortable",wrap:!0}})}(this,this.jQuery),function(n){"use strict";n.views.tags({multisel:{boundProps:["size"],init:function(t,i){var r=this;r.valueProp=r.tagCtx.props.valueProp||"Id";r.labelProp=r.tagCtx.props.labelProp||"Name";r.items=t.props.items;r.selectedItems=t.props.selected||[];r._optionsTmpl="{^{for ~tag.items}}<option data-link='value{:"+r.valueProp+"}'>{{:"+r.labelProp+"}}<\/option>{{/for}}";r._.inline?t.content?n.views.sub.error("{{multiselect}} must be empty"):r.template="<select multiple='multiple'>"+r._optionsTmpl+"<\/select>":(i.elem.multiple="multiple",r.template=r._optionsTmpl)},onBind:function(t,i){var r=this;r.selectElem=r._.inline?r.contents("select"):n(i.elem);r.selectElem.on("change",function(){var t=r.selectElem.children().map(function(n){return this.selected&&r.items[n]||null}).get();r._selSet=!0;n.observable(r.selectedItems).refresh(t);r._selSet=!1});n([r.selectedItems]).on("arrayChange",n.proxy(r.updateSelection,r));n([r.items]).on("arrayChange",n.proxy(r.updateItems,r));r.updateSelection()},onAfterLink:function(n){n.props.size&&(this.selectElem[0].size=n.props.size)},onDispose:function(){var t=this;n([t.selectedItems]).off("arrayChange",t.updateSelection);n([t.items]).off("arrayChange",t.updateItems)},onUpdate:!1,attr:"html",updateSelection:function(){var n=this,t;n._selSet||(t=n.selectedItems.map(function(t){return t[n.valueProp]}),n.selectElem.val(t))},updateItems:function(){for(var t=this,i=t.selectedItems.length;i-->0;)n.inArray(t.selectedItems[i],t.items)<0&&n.observable(t.selectedItems).remove(i);this.updateSelection()},dataBoundOnly:!0}})}(this.jQuery),function(n){"use strict";n.views.tags({validation:{init:function(){this.childValidates=[]},validate:function(){for(var t=this.childValidates.length,n=!0;t--&&n!==!1;)n=this.childValidates[t].validate();return n},clearMessage:function(){for(var n=this.childValidates.length;n--;)this.childValidates[n].clearMessage()},refreshValidates:function(){for(var n=this.childValidates.length;n--;)this.childValidates[n].refresh()},addChild:function(n){this.childValidates.push(n)},removeChild:function(n){for(var t=this.childValidates.length;t--;)if(this.childValidates[t]===n){this.childValidates.splice(t,1);break}},onChildValidate:function(){for(var t=!0,i=this.childValidates.length;i--;)if(!this.childValidates[i].isValid){t=!1;break}n.observable(this).setProperty("isValid",t)},isValid:!0,dataBoundOnly:!0},validate:{baseTag:"edit",onInit:function(){this.validationGroup=this.parents.validation;this.validationGroup&&this.validationGroup.addChild(this)},onAfterLink:function(t){var i=this,r=t.props;i.baseApply(arguments);r.preventInvalidData!==undefined?i.preventInvalidData=r.preventInvalidData:i.parents.validation&&(i.preventInvalidData=i.parents.validation.tagCtx.props.preventInvalidData);i.messageElem&&i.messageElem.parentNode||(i.messageElem=i.targetTag?i.targetTag.linkedElem:i.linkedElem.prevObject||i.linkedElem,i.messageElem.addClass("val-msg"));i.label&&i.label.parentNode||(i.label=n('<label class="error"><\/label><br/>').insertAfter(i.messageElem)[0]);i.validate(t.args[0])},onUpdate:function(){return this.clearMessage(),!1},onBeforeChange:function(n,t){if(this.preventInvalidData)return this.validate(t.value),this.isValid},onDispose:function(){this.validationGroup&&this.validationGroup.removeChild(this)},validate:function(t){var r,u,s,f,i=this,h=i.tagCtx.props,e=i.linkedElem,o;t===undefined&&(i._.radio&&e&&(e=e.find("input:checked")),u=e&&e[0],t="",u?t=u.type==="checkbox"?u.checked:u.value:i.targetTag&&(t=i.targetTag.getValue()),t=t||"");i.clearMessage();this.isValid=!0;for(o in this.validators)if(f=h[o],f!==undefined&&this.validators[o].test(f,t)){s=o;this.isValid=!1;break}if(this.isValid||(r=h["msg_"+s]||this.validators[s].message,n.isFunction(r)&&(r=r(f,t)),r=r.replace(/%cond%/g,f).replace(/%val%/g,t),i.label.textContent!==undefined?i.label.textContent=r:i.label.innerText=r,i.messageElem.addClass("invalid")),this.validationGroup)this.validationGroup.onChildValidate(this);return this.isValid},validators:function(n){for(var t in n)this.validators[t]=n[t]},clearMessage:function(){this.messageElem.removeClass("invalid");this.label.textContent!==undefined?this.label.textContent="":this.label.innerText=""}}});n.views.tags.validate.validators({required:{message:"Please provide a value",test:function(n,t){return n&&t===""}},equal:{message:"Value must be %cond%",test:function(n,t){return t!==""+n}},checked:{message:function(n){return"Must be "+(n?"checked":"unchecked")},test:function(n,t){return(t&&t!=="false")!==n}},min:{message:"Minimum: %cond%",test:function(n,t){return t<n}},max:{message:"Maximum:  %cond%",test:function(n,t){return t>n}},maxLength:{message:"Maximum length: %cond%",test:function(n,t){return t.length>n}},minLength:{message:"Minimum length: %cond%",test:function(n,t){return t.length<n}},regex:{message:"Invalid string format",test:function(n,t){var i=n.test?n:new RegExp(n);return!i.test(t)}}})}(this.jQuery)