lava.form||(function(){var a=function(){var b={_$:function(c,e){},__init__:function(c,e){this._form=lava.get.document(e)[c];this._$(c,e);},info:{type:"lava.package",name:"form",version:0.5},_form:"",_last:"",_name:function(l,d){try{var k=lava.is.string(l)?this._form[l]:l;var c=lava.is.element(k)?[k]:[];if(!c.length&&k&&k.length){if(lava.is.defined(d)){var h=lava.is.array(d)?d:[d];for(var g=0;g<k.length;g++){if(h.indexOf(k[g].value)!=-1){c.push(k[g]);}}}else{c=lava.make.array(k);}}}catch(j){c=[];}return c;},submit:function(){lava.form.submit(this._form);return this;},highlight:function(d,c){lava.form.highlight(this._name(d,c)[0]);return this;},selection:function(h,g,d,e){var c=lava.form.selection(this._name(h,e)[0],g,d);return lava.is.defined(g)?this:c;},focus:function(d,c){lava.form.focus(this._name(d,c)[0]);return this;},blur:function(g,c){if(!g){for(var e=0,d=this._form.elements.length;e<d;e++){lava.form.blur(this._form.elements[e]);}}else{lava.form.blur(this._name(g,c)[0]);}return this;},disable:function(g,c){var e=this._name(g,c);for(var d=0;d<e.length;d++){lava.form.disable(e[d]);}return this;},enable:function(g,c){var e=this._name(g,c);for(var d=0;d<e.length;d++){lava.form.enable(e[d]);}return this;},check:function(g,c){var e=this._name(g,c);for(var d=0;d<e.length;d++){lava.form.check(e[d]);}return this;},uncheck:function(g,c){var e=this._name(g,c);for(var d=0;d<e.length;d++){lava.form.uncheck(e[d]);}return this;},value:function(m){var g,d,c={};if(lava.is.string(m)){return this._value(m);}if(lava.is.array(m)){for(g=0,d=m.length;g<d;g++){c[m[g]]=this._value(m[g]);}return c;}else{for(g in m){var l=this._name(g),h=lava.is.array(m[g]);for(d=0,c=l.length;d<c;d++){if(!h||l[d].type.match(/radio|checkbox|select-one|select-multiple/)){lava.form.value(l[d],m[g]);}else{if(h&&m[g].length>d){lava.form.value(l[d],m[g][d]);}}}}return this;}},_value:function(h){var c=[];var g=this._name(h);for(var d=0;d<g.length;d++){if(lava.is.defined(v=lava.form.value(g[d]))){c.push(v);}}return c.length>1?c:c.length?c[0]:null;},serialize:function(){return lava.form.serialize(this._form);},get:function(d,c){return lava(lava.is.defined(d)?this._name(d,c):this._form);}};lava.form=lava.make.pkg(b);lava.form.submit=function(c){c.submit();};lava.form.highlight=function(c){c.select();};lava.form.focus=function(c){c.focus();};lava.form.blur=function(c){c.blur();};lava.form.disable=function(c){c.disabled=true;};lava.form.enable=function(c){c.disabled=false;};lava.form.check=function(c){c.checked=true;};lava.form.uncheck=function(c){c.checked=false;};lava.form.value=function(o,e){var d=null;var k=lava.is.defined(e);var j=lava.is.array(e);switch(o.type){case"radio":case"checkbox":if(k){o.checked=j?e.indexOf(o.value)!=-1:o.value==e;}if(o.checked){d=o.value;}break;case"select-one":case"select-multiple":for(var h,g=0,m=o.options.length;g<m;g++){h=o.options[g];if(k){h.selected=j?e.indexOf(h.value)!=-1:h.value==e;}if(h.selected){d=o.value;}}break;default:d=k?o.value=e:o.value;break;}return d;};lava.form.selection=function(g,j,c){var i=false;if(lava.is.defined(j)){i=true;c=c||j;lava.form.focus(g);}if(g.setSelectionRange){if(!i){j=g.selectionStart;c=g.selectionEnd;}else{g.setSelectionRange(j,c);}}else{if(document.selection){var d=document.selection.createRange();var h=d.duplicate();if(i){h.moveToElementText(textArea);h.setEndPoint("EndToEnd",d);j=h.text.length-d.text.length;c=j+d.text.length;}else{h.collapse(true);h.moveStart("character",j);h.moveEnd("character",c-j);h.select();}}}return{start:j,end:c};};lava.form.create={_make:function(d,h,c,i){var g=lava.make.element(d,h);if(c){lava.DOM.attr(g,c);}if(lava.is.string(i)){lava.DOM.append(g,lava.make.text(i));}return g;},label:function(c,g,e){return lava.form.create._make("<label>",e,{"for":c},g);},form:function(c,e){c.enctype=f.enctype||"application/x-www-form-urlencoded";c.method=f.method||"GET";c.id=c.id||c.name;return lava.form.create._make("<form>",e,c);},radio:function(c,e){c=c||{};c.type="checkbox";return lava.form.create.input(c,e);},checkbox:function(c,e){c=c||{};c.type="checkbox";return lava.form.create.input(c,e);},dropdown:function(h,l,c,i){c.size=c.size||1;c.id=c.id||c.name;var j=lava.form.create._make("<select>",i,c);for(var g in h){lava.DOM.append(j,lava.form.create.option(h[g],g,l==g));}return j;},input:function(c,e){c.type=c.type||"text";c.id=c.id||c.name;return lava.form.create._make("<input>",e,c);},area:function(c,e){c.id=c.id||c.name;return lava.form.create._make("<textarea>",e,c);},option:function(h,c,g,e){return lava.form.create._make("<option>",e,g?{value:c,selected:"selected"}:{value:c},h);}};lava.form.serialize=function(k,t){var g=(lava.is.string(k))?lava.get.document(t)[k]:k;var q=g.elements;var z=q.length;var h={};var y=lava.is.array;for(var m=0;m<z;m++){var o=q[m];var w=h[o.name];var u=null;if(!o.disabled){switch(o.type){case"text":case"password":case"hidden":case"textarea":case"file":u=o.value;break;case"select-one":if(o.selectedIndex>=0){u=o.options[o.selectedIndex].value;}break;case"select-multiple":u=[];for(var l=0;l<o.options.length;l++){if(o.options[l].selected){u.push(o.options[l].value);}}break;case"checkbox":case"radio":if(o.checked){u=o.value;}break;default:break;}}if(lava.is.defined(u)){if(y(u)){h[o.name]=(y(w))?w.concat(u):u;}else{if(lava.is.defined(w)){if(y(w)){h[o.name].push(u);}else{h[o.name]=[w,u];}}else{h[o.name]=u;}}}}return h;};lava.form.plugins={};lava.load.script("/pkgs/form/form.js");};lava.load.require("/core/DOM.js",a);})();(lava.form&&lava.form.prefill)||(function(){var a=function(){var c={_prefill:{},prefill:function(d,e){if(!d){for(d in this._prefill){this._prefill[d].enable();}}else{if(!this._prefill[d]){this._prefill[d]=lava.util.map(this.get(d),lava.form.prefill);}lava.util.map(this._prefill[d],function(g){g.enable(e);});}return this;},prefillDisable:function(d){if(!d){for(d in this._prefill){lava.util.map(this._prefill[d],function(e){e.disable();});}}else{lava.util.map(this._prefill[d],function(e){e.disable();});}return this;}};lava.util.extend(lava.form.prototype,c);var b={__init__:function(d){this._input=d;this._lava=lava(d);this._style=null;this._persist=false;this._collision=false;},info:{version:0.1,type:"lava.form.prefill",name:"form.prefill"},enable:function(d){d=d||{};this._lava.on("focus",lava.make.ref(this._focus,[],this));this._lava.on("blur",lava.make.ref(this._blur,[],this));this._persist=lava.is.defined(d.persist)?d.persist:false;this._trigger=d.trigger||(/^\s*$/);this._value=d.value||"";this._style=d.style||null;this._blur();return this;},disable:function(){this._lava.stop();this._focus();return this;},_focus:function(){var d=lava.form.value(this._input);if((d==this._value&&!this._collision)||this._persist){if(this._style){lava.css.removeClass(this._input,this._style);}lava.form.value(this._input,"");}},_blur:function(){var d=lava.form.value(this._input);var e=this._trigger.test(d);this._collision=d==this._value&&this._value.length;if(this._trigger.test(d)||this._persist){if(this._style){lava.css.addClass(this._input,this._style);}lava.form.value(this._input,this._value);}}};lava.form.prefill=lava.make.pkg(b);lava.load.script("/pkgs/form/prefill.js");};lava.load.require("/core/css.js","/core/event.js","/pkgs/form/form.js",a);})();(function(){lava.form.plugins.dropdown=function(b){this.$=b;this._values={};this._container={};this._button={};this._menu={};this._callback={};this._select={};this._style={};};lava.form.plugins.dropdown.prototype={info:{version:0.1,type:"lava.form.plugin",name:"form.dropdown"},$:"",_style:"",customize:function(b,g){if(g.highlight){this._menu[b].customize({highlight:g.highlight});}if(g.menu){this._container[b].addClass(g.menu);}if(g.button){this._button[b].addClass(g.button);}if(g.item){this._style[b]=g.item;for(var e=0,d=lava.DOM.children(this._container[b][0]),c=d.length;e<c;e++){lava.css.addClass(d[e],this._style[b]);}}return this.$;},enable:function(c){this._select[c]=this.$.get(c).hide().clean();this._container[c]=lava("<div>").hide().insert();this._button[c]=lava("<span>");this._menu[c]=lava.menu(this._container[c]);this._values[c]={};for(var g=0,e=lava.DOM.children(this._select[c][0]),d=e.length,h,l,k;g<d;g++){k=lava.DOM.text(e[g]);l=lava.DOM.attr(e[g],"value");h=lava("<div>").append(lava.make.text(k));if(this._style[c]){h.addClass(this._style[c]);}this._menu[c].add(l,h[0]);this._values[c][l]=lava.DOM.text(e[g]);}var b=this._button[c][0];this._button[c].insert("before",this._select[c]).append(lava.make.text(this._values[c][this.$.value(c)]));this._button[c].on("click",lava.make.ref(this._show,[c,b],this));this._menu[c].register({select:lava.make.ref(this._onchange,[c],this)});return this.$;},_show:function(c,b){this._menu[c].show({anchor:b,position:"below-start"});},disable:function(b){this._button[b].remove();this._select[b].show("inline");},_container:"",get:function(b,c){return lava.is.defined(c)?this._menu[b].get(c):this._container[b];},add:function(b,e,c,d){this._menu[b].add(e,c,d);this._select[b].append(lava.form.create.option(lava.DOM.text(c),e));this._values[b][e]=lava.DOM.text(c);if(this._style[b]){lava.css.addClass(this._menu[b].get(e)[0],this._style[b]);}return this.$;},attr:function(b,e,d,c){return this._menu[b].attr(e,d,c);},onchange:function(b,d){this._callback[b]=d;return this.$;},_onchange:function(b,d){var c={};c[d]=b.selected();this.$.value(c);this._button[d].clear().append(lava.make.text(this._values[d][c[d]]));lava.util.run(this._callback[d],[this.$]);},clear:function(b){this._menu[b].clear();this._select[b].clear();this._values[b]={};return this.$;}};lava.load.script("/pkgs/form/dropdown.js");})();(lava.form&&lava.form.timeout)||(function(){var a=function(){var b={_$:function(e,g){this._timeout={};this._super(e,g);},timeout:function(d,g,e){if(!this._timeout[d]){this._timeout[d]=lava.util.map(this.get(d),lava.form.timeout);}lava.util.map(this._timeout[d],function(h){h.enable(g,e);});return this;},timeoutDisable:function(d){if(!d){for(d in this._timeout){lava.util.map(this._timeout[d],function(e){e.disable();});}}else{lava.util.map(this._timeout[d],function(e){e.disable();});}return this;},timeoutCancel:function(d){lava.util.map(this._timeout[d],function(e){e.cancel();});return this;}};lava.util.extend(lava.form.prototype,b);var c={__init__:function(d){this._input=d;lava.DOM.attr(this._input,{autocomplete:"off"});},_timer:"",_event:"",_input:"",_time:"",_last:"",_callback:"",enable:function(e,d){lava.event.add(this._input,"keyup",this._event=lava.make.ref(this._check,[],this));this._callback=e;this._time=d||500;return this;},disable:function(){lava.event.remove(this._input,"keyup",this._event);return this;},cancel:function(){clearTimeout(this._timer);return this;},value:function(){return this._last;},_check:function(g){switch(g.keyCode){case 37:case 38:case 39:case 40:case 13:case 27:break;default:var d=lava.form.value(this._input);if(this._last!=d){clearTimeout(this._timer);this._last=d;this._timer=setTimeout(lava.make.ref(this._callback,[g,this],this),this._time);}break;}}};lava.form.timeout=lava.make.pkg(c);lava.load.script("/pkgs/form/timeout.js");};lava.load.require("/core/event.js","/core/css.js","/pkgs/form/form.js",a);})();