jQuery.webshims.register("form-extend",function(a,c,h,g,m,l){h=h.Modernizr;m=h.inputtypes;if(h.formvalidation&&!c.bugs.bustedValidity){var e=c.inputTypes,q={};c.addInputType=function(a,d){e[a]=d};c.addValidityRule=function(a,d){q[a]=d};c.addValidityRule("typeMismatch",function(a,d,b,f){if(""===d)return!1;f=f.typeMismatch;if(!("type"in b))b.type=(a[0].getAttribute("type")||"").toLowerCase();e[b.type]&&e[b.type].mismatch&&(f=e[b.type].mismatch(d,a));return f});var j=l.overrideMessages,p=!m.number||
!m.time||!m.range||j,t="customError,typeMismatch,rangeUnderflow,rangeOverflow,stepMismatch,tooLong,patternMismatch,valueMissing,valid".split(","),l=j?["value","checked"]:["value"],i=[],s=function(d,b){if(d){var f=(d.getAttribute&&d.getAttribute("type")||d.type||"").toLowerCase();if(j||e[f])j&&!b&&"radio"==f&&d.name?a(g.getElementsByName(d.name)).each(function(){a.prop(this,"validity")}):a.prop(d,"validity")}},b={};["input","textarea","select"].forEach(function(d){var f=c.defineNodeNameProperty(d,
"setCustomValidity",{prop:{value:function(b){var b=b+"",k="input"==d?a(this).getNativeElement()[0]:this;f.prop._supvalue.call(k,b);c.bugs.validationMessage&&c.data(k,"customvalidationMessage",b);p&&(c.data(k,"hasCustomError",!!b),s(k))}}});b[d]=f.prop._supvalue});if(p||j)l.push("min"),l.push("max"),l.push("step"),i.push("input");j&&(l.push("required"),l.push("pattern"),i.push("select"),i.push("textarea"));if(p){var f;i.forEach(function(d){var k=c.defineNodeNameProperty(d,"validity",{prop:{get:function(){if(!f){var n=
"input"==d?a(this).getNativeElement()[0]:this,o=k.prop._supget.call(n);if(!o)return o;var i={};t.forEach(function(a){i[a]=o[a]});if(!a.prop(n,"willValidate"))return i;f=!0;var h=a(n),g={type:(n.getAttribute&&n.getAttribute("type")||"").toLowerCase(),nodeName:(n.nodeName||"").toLowerCase()},s=h.val(),l=!!c.data(n,"hasCustomError"),m;f=!1;i.customError=l;if(i.valid&&i.customError)i.valid=!1;else if(!i.valid){var p=!0;a.each(i,function(a,d){if(d)return p=!1});if(p)i.valid=!0}a.each(q,function(a,f){i[a]=
f(h,s,g,i);if(i[a]&&(i.valid||!m)&&(j||e[g.type]&&e[g.type].mismatch))b[d].call(n,c.createValidationMessage(n,a)),i.valid=!1,m=!0});i.valid?(b[d].call(n,""),c.data(n,"hasCustomError",!1)):j&&!m&&!l&&a.each(i,function(a,f){if("valid"!==a&&f)return b[d].call(n,c.createValidationMessage(n,a)),!1});return i}},writeable:!1}})});l.forEach(function(a){c.onNodeNamesPropertyModify(i,a,function(){s(this)})});if(g.addEventListener){var k,o=function(d){if("form"in d.target){var b=d.target.form;clearTimeout(k);
s(d.target);b&&j&&a("input",b).each(function(){"password"==this.type&&s(this)})}};g.addEventListener("change",o,!0);j&&(g.addEventListener("blur",o,!0),g.addEventListener("keydown",function(a){13==a.keyCode&&o(a)},!0));g.addEventListener("input",function(a){clearTimeout(k);k=setTimeout(function(){s(a.target)},290)},!0)}var d=i.join(",");c.addReady(function(b,f){a(d,b).add(f.filter(d)).each(function(){a.prop(this,"validity")})});j&&c.ready("DOM form-message",function(){c.activeLang({register:"form-core",
callback:function(){a("input, select, textarea").getNativeElement().each(function(){if(!c.data(this,"hasCustomError")){var d=this,f=a.prop(d,"validity")||{valid:!0},k;f.valid||(k=(d.nodeName||"").toLowerCase(),a.each(f,function(a,f){if("valid"!==a&&f)return b[k].call(d,c.createValidationMessage(d,a)),!1}))}})}})})}c.defineNodeNameProperty("input","type",{prop:{get:function(){var a=(this.getAttribute("type")||"").toLowerCase();return c.inputTypes[a]?a:this.type}}})}});
(function(a){var c=window.Modernizr,h=a.webshims,g=h.bugs,m=a('<form action="#" style="width: 1px; height: 1px; overflow: hidden;"><select name="b" required="" /><input type="date" required="" name="a" /><input type="submit" /></form>'),l=function(){if(m[0].querySelector)try{g.findRequired=!m[0].querySelector("select:required")}catch(a){g.findRequired=!1}};g.findRequired=!1;g.validationMessage=!1;g.valueAsNumberSet=!1;h.capturingEventPrevented=function(c){if(!c._isPolyfilled){var e=c.isDefaultPrevented,
b=c.preventDefault;c.preventDefault=function(){clearTimeout(a.data(c.target,c.type+"DefaultPrevented"));a.data(c.target,c.type+"DefaultPrevented",setTimeout(function(){a.removeData(c.target,c.type+"DefaultPrevented")},30));return b.apply(this,arguments)};c.isDefaultPrevented=function(){return!(!e.apply(this,arguments)&&!a.data(c.target,c.type+"DefaultPrevented"))};c._isPolyfilled=!0}};if(!c.formvalidation||g.bustedValidity)l();else if(h.capturingEvents(["input"]),h.capturingEvents(["invalid"],!0),
c.bugfreeformvalidation=!0,window.opera||a.browser.webkit||window.testGoodWithFix){var e=a("input",m).eq(0),q,j=function(a){h.loader.loadList(["dom-extend"]);h.ready("dom-extend",a)},p=function(i){var g=["form-extend","form-message","form-native-fix"];i&&(i.preventDefault(),i.stopImmediatePropagation());clearTimeout(q);setTimeout(function(){m&&(m.remove(),m=e=null)},9);if(!c.bugfreeformvalidation)h.addPolyfill("form-native-fix",{f:"forms",d:["form-extend"]}),h.modules["form-extend"].test=a.noop;h.isReady("form-number-date-api")&&
g.push("form-number-date-api");h.reTest(g);if(e)try{e.prop({disabled:!0,value:""}).prop("disabled",!1).is(":valid")&&j(function(){h.onNodeNamesPropertyModify(["input","textarea"],["disabled","readonly"],{set:function(b){!b&&this&&a.prop(this,"value",a.prop(this,"value"))}});h.onNodeNamesPropertyModify(["select"],["disabled","readonly"],{set:function(b){if(!b&&this)b=a(this).val(),(a("option:last-child",this)[0]||{}).selected=!0,a(this).val(b)}})})}catch(b){}(a.browser.opera||window.testGoodWithFix)&&
j(function(){var b=function(a){a.preventDefault()};["form","input","textarea","select"].forEach(function(c){var o=h.defineNodeNameProperty(c,"checkValidity",{prop:{value:function(){h.fromSubmit||a(this).bind("invalid.checkvalidity",b);h.fromCheckValidity=!0;var d=o.prop._supvalue.apply(this,arguments);h.fromSubmit||a(this).unbind("invalid.checkvalidity",b);h.fromCheckValidity=!1;return d}}})})})};m.appendTo("head");if(window.opera||window.testGoodWithFix){l();g.validationMessage=!e.prop("validationMessage");
if((c.inputtypes||{}).date){try{e.prop("valueAsNumber",0)}catch(t){}g.valueAsNumberSet="1970-01-01"!=e.prop("value")}e.prop("value","")}m.bind("submit",function(a){c.bugfreeformvalidation=!1;p(a)});q=setTimeout(function(){m&&m.triggerHandler("submit")},9);a("input, select",m).bind("invalid",p).filter('[type="submit"]').bind("click",function(a){a.stopImmediatePropagation()}).trigger("click");a.browser.webkit&&c.bugfreeformvalidation&&!h.bugs.bustedValidity&&function(){var c=/^(?:textarea|input)$/i,
e=!1;document.addEventListener("contextmenu",function(a){c.test(a.target.nodeName||"")&&(e=a.target.form)&&setTimeout(function(){e=!1},1)},!1);a(window).bind("invalid",function(a){if(a.originalEvent&&e&&e==a.target.form)a.wrongWebkitInvalid=!0,a.stopImmediatePropagation()})}()}})(jQuery);
jQuery.webshims.register("form-core",function(a,c,h,g,m,l){var e={radio:1},q={checkbox:1,radio:1},j=a([]),p=c.bugs,t=function(d){var d=a(d),b,f;b=j;if(e[d[0].type])f=d.prop("form"),b=(b=d[0].name)?f?a(f[b]):a(g.getElementsByName(b)).filter(function(){return!a.prop(this,"form")}):d,b=b.filter('[type="radio"]');return b},i=c.getContentValidationMessage=function(d,b,f){var c=a(d).data("errormessage")||d.getAttribute("x-moz-errormessage")||"";f&&c[f]&&(c=c[f]);"object"==typeof c&&(b=b||a.prop(d,"validity")||
{valid:1},b.valid||a.each(b,function(a,d){if(d&&"valid"!=a&&c[a])return c=c[a],!1}));if("object"==typeof c)c=c.defaultMessage;return c||""},s={number:1,range:1,date:1};a.extend(a.expr[":"],{"valid-element":function(d){return!(!a.prop(d,"willValidate")||!(a.prop(d,"validity")||{valid:1}).valid)},"invalid-element":function(d){return!(!a.prop(d,"willValidate")||(a.prop(d,"validity")||{valid:1}).valid)},"required-element":function(d){return!(!a.prop(d,"willValidate")||!a.prop(d,"required"))},"optional-element":function(d){return!!(a.prop(d,
"willValidate")&&!1===a.prop(d,"required"))},"in-range":function(d){if(!s[a.prop(d,"type")]||!a.prop(d,"willValidate"))return!1;d=a.prop(d,"validity");return!(!d||d.rangeOverflow||d.rangeUnderflow)},"out-of-range":function(d){if(!s[a.prop(d,"type")]||!a.prop(d,"willValidate"))return!1;d=a.prop(d,"validity");return!(!d||!d.rangeOverflow&&!d.rangeUnderflow)}});["valid","invalid","required","optional"].forEach(function(d){a.expr[":"][d]=a.expr.filters[d+"-element"]});a.expr[":"].focus=function(a){try{var b=
a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())}catch(f){}return!1};var b=a.event.customEvent||{};(p.bustedValidity||p.findRequired||!Modernizr.bugfreeformvalidation)&&function(){var d=a.find,b=a.find.matchesSelector,f=/(\:valid|\:invalid|\:optional|\:required|\:in-range|\:out-of-range)(?=[\s\[\~\.\+\>\:\#*]|$)/ig,c=function(a){return a+"-element"};a.find=function(){var a=Array.prototype.slice,b=function(b){var r=arguments,r=a.call(r,1,r.length);r.unshift(b.replace(f,c));return d.apply(this,
r)},r;for(r in d)d.hasOwnProperty(r)&&(b[r]=d[r]);return b}();if(!Modernizr.prefixed||Modernizr.prefixed("matchesSelector",g.documentElement))a.find.matchesSelector=function(a,d){d=d.replace(f,c);return b.call(this,a,d)}}();var f=a.prop,k={selectedIndex:1,value:1,checked:1,disabled:1,readonly:1};a.prop=function(d,b,c){var o=f.apply(this,arguments);if(d&&"form"in d&&k[b]&&c!==m&&a(d).hasClass("form-ui-invalid")&&(a.prop(d,"validity")||{valid:1}).valid)a(d).getShadowElement().removeClass("form-ui-invalid"),
"checked"==b&&c&&t(d).not(d).removeClass("form-ui-invalid").removeAttr("aria-invalid");return o};var o=function(d,b){var f;a.each(d,function(d,c){if(c)return f="customError"==d?a.prop(b,"validationMessage"):d,!1});return f};a(g).bind(l.validityUIEvents||"focusout change refreshvalidityui",function(d){var b,f;if(d.target&&(b=a(d.target).getNativeElement()[0],!("submit"==b.type||!a.prop(b,"willValidate")||"focusout"==d.type&&"radio"==d.type))){f=a.data(b,"webshimsswitchvalidityclass");var c=function(){var f=
a.prop(b,"validity"),c=a(b).getShadowElement(),k,e,i,n;a(b).trigger("refreshCustomValidityRules");f.valid?c.hasClass("form-ui-valid")||(k="form-ui-valid",e="form-ui-invalid",n="changedvaliditystate",i="changedvalid",q[b.type]&&b.checked&&t(b).not(b).removeClass(e).addClass(k).removeAttr("aria-invalid"),a.removeData(b,"webshimsinvalidcause")):(f=o(f,b),a.data(b,"webshimsinvalidcause")!=f&&(a.data(b,"webshimsinvalidcause",f),n="changedvaliditystate"),c.hasClass("form-ui-invalid")||(k="form-ui-invalid",
e="form-ui-valid",q[b.type]&&!b.checked&&t(b).not(b).removeClass(e).addClass(k),i="changedinvalid"));k&&(c.addClass(k).removeClass(e),setTimeout(function(){a(b).trigger(i)},0));n&&setTimeout(function(){a(b).trigger(n)},0);a.removeData(d.target,"webshimsswitchvalidityclass")};f&&clearTimeout(f);"refreshvalidityui"==d.type?c():a.data(d.target,"webshimsswitchvalidityclass",setTimeout(c,9))}});b.changedvaliditystate=!0;b.refreshCustomValidityRules=!0;b.changedvalid=!0;b.changedinvalid=!0;b.refreshvalidityui=
!0;c.triggerInlineForm=function(b,f){a(b).trigger(f)};c.modules["form-core"].getGroupElements=t;p=function(){c.scrollRoot=a.browser.webkit||"BackCompat"==g.compatMode?a(g.body):a(g.documentElement)};p();c.ready("DOM",p);c.getRelOffset=function(b,f){var b=a(b),c=a(f).offset(),k;a.swap(a(b)[0],{visibility:"hidden",display:"inline-block",left:0,top:0},function(){k=b.offset()});c.top-=k.top;c.left-=k.left;return c};c.validityAlert=function(){var b=!a.browser.msie||7<parseInt(a.browser.version,10)?"span":
"label",f,k=!1,o=!1,e,j={hideDelay:5E3,showFor:function(b,d,f,c){j._create();var b=a(b),r=a(b).getShadowElement(),i=j.getOffsetFromBody(r);j.clear();c?this.hide():(this.getMessage(b,d),this.position(r,i),this.show(),this.hideDelay&&(k=setTimeout(e,this.hideDelay)),a(h).bind("resize.validityalert",function(){clearTimeout(o);o=setTimeout(function(){j.position(r)},9)}));f||this.setFocus(r,i)},getOffsetFromBody:function(a){return c.getRelOffset(f,a)},setFocus:function(k,o){var i=a(k).getShadowFocusElement(),
j=c.scrollRoot.scrollTop(),n=(o||i.offset()).top-30,h;c.getID&&"label"==b&&f.attr("for",c.getID(i));j>n&&(c.scrollRoot.animate({scrollTop:n-5},{queue:!1,duration:Math.max(Math.min(600,1.5*(j-n)),80)}),h=!0);try{i[0].focus()}catch(l){}h&&(c.scrollRoot.scrollTop(j),setTimeout(function(){c.scrollRoot.scrollTop(j)},0));setTimeout(function(){a(g).bind("focusout.validityalert",e)},10)},getMessage:function(b,d){d||(d=i(b[0])||b.prop("validationMessage"));d?a("span.va-box",f).text(d):this.hide()},position:function(b,
d){d=d?a.extend({},d):j.getOffsetFromBody(b);d.top+=b.outerHeight();f.css(d)},show:function(){"none"===f.css("display")&&f.css({opacity:0}).show();f.addClass("va-visible").fadeTo(400,1)},hide:function(){f.removeClass("va-visible").fadeOut()},clear:function(){clearTimeout(!1);clearTimeout(k);a(g).unbind(".validityalert");a(h).unbind(".validityalert");f.stop().removeAttr("for")},_create:function(){if(!f)f=j.errorBubble=a("<"+b+' class="validity-alert-wrapper" role="alert"><span  class="validity-alert"><span class="va-arrow"><span class="va-arrow-box"></span></span><span class="va-box"></span></span></'+
b+">").css({position:"absolute",display:"none"}),c.ready("DOM",function(){f.appendTo("body");a.fn.bgIframe&&a.browser.msie&&7>parseInt(a.browser.version,10)&&f.bgIframe()})}};e=a.proxy(j,"hide");return j}();(function(){var b,f=[],c;a(g).bind("invalid",function(k){if(!k.wrongWebkitInvalid){var o=a(k.target),e=o.getShadowElement();e.hasClass("form-ui-invalid")||(e.addClass("form-ui-invalid").removeClass("form-ui-valid"),setTimeout(function(){a(k.target).trigger("changedinvalid").trigger("changedvaliditystate")},
0));if(!b)b=a.Event("firstinvalid"),b.isInvalidUIPrevented=k.isDefaultPrevented,e=a.Event("firstinvalidsystem"),a(g).triggerHandler(e,{element:k.target,form:k.target.form,isInvalidUIPrevented:k.isDefaultPrevented}),o.trigger(b);b&&b.isDefaultPrevented()&&k.preventDefault();f.push(k.target);k.extraData="fix";clearTimeout(c);c=setTimeout(function(){var c={type:"lastinvalid",cancelable:!1,invalidlist:a(f)};b=!1;f=[];a(k.target).trigger(c,c)},9);e=o=null}})})();a.fn.getErrorMessage=function(){var b="",
f=this[0];f&&(b=i(f)||a.prop(f,"customValidationMessage")||a.prop(f,"validationMessage"));return b};l.replaceValidationUI&&c.ready("DOM forms",function(){a(g).bind("firstinvalid",function(b){b.isInvalidUIPrevented()||(b.preventDefault(),a.webshims.validityAlert.showFor(b.target,a(b.target).prop("customValidationMessage")))})})});
jQuery.webshims.register("form-message",function(a,c,h,g,m,l){var e=c.validityMessages,h=l.overrideMessages||l.customMessages?["customValidationMessage"]:[];e.en=a.extend(!0,{typeMismatch:{email:"Please enter an email address.",url:"Please enter a URL.",number:"Please enter a number.",date:"Please enter a date.",time:"Please enter a time.",range:"Invalid input.","datetime-local":"Please enter a datetime."},rangeUnderflow:{defaultMessage:"Value must be greater than or equal to {%min}."},rangeOverflow:{defaultMessage:"Value must be less than or equal to {%max}."},
stepMismatch:"Invalid input.",tooLong:"Please enter at most {%maxlength} character(s). You entered {%valueLen}.",patternMismatch:"Invalid input. {%title}",valueMissing:{defaultMessage:"Please fill out this field.",checkbox:"Please check this box if you want to proceed."}},e.en||e["en-US"]||{});["select","radio"].forEach(function(a){e.en.valueMissing[a]="Please select an option."});["date","time","datetime-local"].forEach(function(a){e.en.rangeUnderflow[a]="Value must be at or after {%min}."});["date",
"time","datetime-local"].forEach(function(a){e.en.rangeOverflow[a]="Value must be at or before {%max}."});e["en-US"]=e["en-US"]||e.en;e[""]=e[""]||e["en-US"];e.de=a.extend(!0,{typeMismatch:{email:"{%value} ist keine zul\u00e4ssige E-Mail-Adresse",url:"{%value} ist keine zul\u00e4ssige Webadresse",number:"{%value} ist keine Nummer!",date:"{%value} ist kein Datum",time:"{%value} ist keine Uhrzeit",range:"{%value} ist keine Nummer!","datetime-local":"{%value} ist kein Datum-Uhrzeit Format."},rangeUnderflow:{defaultMessage:"{%value} ist zu niedrig. {%min} ist der unterste Wert, den Sie benutzen k\u00f6nnen."},
rangeOverflow:{defaultMessage:"{%value} ist zu hoch. {%max} ist der oberste Wert, den Sie benutzen k\u00f6nnen."},stepMismatch:"Der Wert {%value} ist in diesem Feld nicht zul\u00e4ssig. Hier sind nur bestimmte Werte zul\u00e4ssig. {%title}",tooLong:"Der eingegebene Text ist zu lang! Sie haben {%valueLen} Zeichen eingegeben, dabei sind {%maxlength} das Maximum.",patternMismatch:"{%value} hat f\u00fcr dieses Eingabefeld ein falsches Format! {%title}",valueMissing:{defaultMessage:"Bitte geben Sie einen Wert ein",
checkbox:"Bitte aktivieren Sie das K\u00e4stchen"}},e.de||{});["select","radio"].forEach(function(a){e.de.valueMissing[a]="Bitte w\u00e4hlen Sie eine Option aus"});["date","time","datetime-local"].forEach(function(a){e.de.rangeUnderflow[a]="{%value} ist zu fr\u00fch. {%min} ist die fr\u00fcheste Zeit, die Sie benutzen k\u00f6nnen."});["date","time","datetime-local"].forEach(function(a){e.de.rangeOverflow[a]="{%value} ist zu sp\u00e4t. {%max} ist die sp\u00e4teste Zeit, die Sie benutzen k\u00f6nnen."});
var q=e[""];c.createValidationMessage=function(e,h){var g=q[h];g&&"string"!==typeof g&&(g=g[a.prop(e,"type")]||g[(e.nodeName||"").toLowerCase()]||g.defaultMessage);g&&"value,min,max,title,maxlength,label".split(",").forEach(function(i){if(-1!==g.indexOf("{%"+i)){var l=("label"==i?a.trim(a('label[for="'+e.id+'"]',e.form).text()).replace(/\*$|:$/,""):a.attr(e,i))||"";"patternMismatch"==h&&"title"==i&&!l&&c.error("no title for patternMismatch provided. Always add a title attribute.");g=g.replace("{%"+
i+"}",l);"value"==i&&(g=g.replace("{%valueLen}",l.length))}});return g||""};(c.bugs.validationMessage||!Modernizr.formvalidation||c.bugs.bustedValidity)&&h.push("validationMessage");c.activeLang({langObj:e,module:"form-core",callback:function(a){q=a}});h.forEach(function(e){c.defineNodeNamesProperty(["fieldset","output","button"],e,{prop:{value:"",writeable:!1}});["input","select","textarea"].forEach(function(g){var h=c.defineNodeNameProperty(g,e,{prop:{get:function(){var e=this,g="";if(!a.prop(e,
"willValidate"))return g;var b=a.prop(e,"validity")||{valid:1};if(b.valid||(g=c.getContentValidationMessage(e,b)))return g;if(b.customError&&e.nodeName&&(g=Modernizr.formvalidation&&!c.bugs.bustedValidity&&h.prop._supget?h.prop._supget.call(e):c.data(e,"customvalidationMessage")))return g;a.each(b,function(a,b){if("valid"!=a&&b&&(g=c.createValidationMessage(e,a)))return!1});return g||""},writeable:!1}})})})});
jQuery.webshims.register("form-datalist",function(a,c,h,g,m){c.propTypes.element=function(h){c.createPropDefault(h,"attr");if(!h.prop)h.prop={get:function(){var c=h.attr.get.call(this);c&&(c=g.getElementById(c))&&h.propNodeName&&!a.nodeName(c,h.propNodeName)&&(c=null);return c||null},writeable:!1}};(function(){var l=a.webshims.cfg.forms,e=Modernizr.input.list;if(!e||l.customDatalist){var q=0,j={submit:1,button:1,reset:1,hidden:1,range:1,date:1},p=a.browser.msie&&7>parseInt(a.browser.version,10),t=
{},i=function(a){if(!a)return[];if(t[a])return t[a];var f;try{f=JSON.parse(localStorage.getItem("storedDatalistOptions"+a))}catch(c){}t[a]=f||[];return f||[]},s={_create:function(b){if(!j[a.prop(b.input,"type")]){var f=b.datalist,c=a.data(b.input,"datalistWidget");if(f&&c&&c.datalist!==f)c.datalist=f,c.id=b.id,c.shadowList.prop("className","datalist-polyfill "+(c.datalist.className||"")+" "+c.datalist.id+"-shadowdom"),l.positionDatalist?c.shadowList.insertAfter(b.input):c.shadowList.appendTo("body"),
a(c.datalist).unbind("updateDatalist.datalistWidget").bind("updateDatalist.datalistWidget",a.proxy(c,"_resetListCached")),c._resetListCached();else if(f){if(!(c&&c.datalist===f)){q++;var e=this;this.hideList=a.proxy(e,"hideList");this.timedHide=function(){clearTimeout(e.hideTimer);e.hideTimer=setTimeout(e.hideList,9)};this.datalist=f;this.id=b.id;this.hasViewableData=!0;this._autocomplete=a.attr(b.input,"autocomplete");a.data(b.input,"datalistWidget",this);this.shadowList=a('<div class="datalist-polyfill '+
(this.datalist.className||"")+" "+this.datalist.id+'-shadowdom" />');l.positionDatalist||a(b.input).hasClass("position-datalist")?this.shadowList.insertAfter(b.input):this.shadowList.appendTo("body");this.index=-1;this.input=b.input;this.arrayOptions=[];this.shadowList.delegate("li","mouseenter.datalistWidget mousedown.datalistWidget click.datalistWidget",function(d){var c=a("li:not(.hidden-item)",e.shadowList),f="mousedown"==d.type||"click"==d.type;e.markItem(c.index(d.currentTarget),f,c);"click"==
d.type&&(e.hideList(),l.customDatalist&&a(b.input).trigger("datalistselect"));return"mousedown"!=d.type}).bind("focusout",this.timedHide);b.input.setAttribute("autocomplete","off");a(b.input).attr({"aria-haspopup":"true"}).bind("input.datalistWidget",function(){if(!e.triggeredByDatalist)e.changedValue=!1,e.showHideOptions()}).bind("keydown.datalistWidget",function(d){var c=d.keyCode,f;if(40==c&&!e.showList())return e.markItem(e.index+1,!0),!1;if(e.isListVisible){if(38==c)return e.markItem(e.index-
1,!0),!1;if(!d.shiftKey&&(33==c||36==c))return e.markItem(0,!0),!1;if(!d.shiftKey&&(34==c||35==c))return d=a("li:not(.hidden-item)",e.shadowList),e.markItem(d.length-1,!0,d),!1;if(13==c||27==c)return 13==c&&(f=a("li.active-item:not(.hidden-item)",e.shadowList),e.changeValue(a("li.active-item:not(.hidden-item)",e.shadowList))),e.hideList(),l.customDatalist&&f&&f[0]&&a(b.input).trigger("datalistselect"),!1}}).bind("focus.datalistWidget",function(){a(this).hasClass("list-focus")&&e.showList()}).bind("mousedown.datalistWidget",
function(){a(this).is(":focus")&&e.showList()}).bind("blur.datalistWidget",this.timedHide);a(this.datalist).unbind("updateDatalist.datalistWidget").bind("updateDatalist.datalistWidget",a.proxy(this,"_resetListCached"));this._resetListCached();b.input.form&&(b.input.name||b.input.id)&&a(b.input.form).bind("submit.datalistWidget"+b.input.id,function(){if(!a(b.input).hasClass("no-datalist-cache")&&"off"!=e._autocomplete){var c=a.prop(b.input,"value"),f=(b.input.name||b.input.id)+a.prop(b.input,"type");
if(!e.storedOptions)e.storedOptions=i(f);if(c&&-1==e.storedOptions.indexOf(c)&&(e.storedOptions.push(c),c=e.storedOptions,f)){c=c||[];try{localStorage.setItem("storedDatalistOptions"+f,JSON.stringify(c))}catch(k){}}}});a(h).bind("unload.datalist"+this.id+" beforeunload.datalist"+this.id,function(){e.destroy()})}}else c&&c.destroy()}},destroy:function(){var b=a.attr(this.input,"autocomplete");a(this.input).unbind(".datalistWidget").removeData("datalistWidget");this.shadowList.remove();a(g).unbind(".datalist"+
this.id);a(h).unbind(".datalist"+this.id);this.input.form&&this.input.id&&a(this.input.form).unbind("submit.datalistWidget"+this.input.id);this.input.removeAttribute("aria-haspopup");b===m?this.input.removeAttribute("autocomplete"):a(this.input).attr("autocomplete",b)},_resetListCached:function(a){var f=this,e;this.needsUpdate=!0;this.lastUpdatedValue=!1;this.lastUnfoundValue="";this.updateTimer||(h.QUnit||(e=a&&g.activeElement==f.input)?f.updateListOptions(e):c.ready("WINDOWLOAD",function(){f.updateTimer=
setTimeout(function(){f.updateListOptions();f=null;q=1},200+100*q)}))},updateListOptions:function(b){this.needsUpdate=!1;clearTimeout(this.updateTimer);this.updateTimer=!1;this.shadowList.css({fontSize:a.css(this.input,"fontSize"),fontFamily:a.css(this.input,"fontFamily")});this.searchStart=l.customDatalist&&a(this.input).hasClass("search-start");var c=[],e=[],g=[],d,h,j,n;for(h=a.prop(this.datalist,"options"),j=0,n=h.length;j<n;j++){d=h[j];if(d.disabled)return;d={value:a(d).val()||"",text:a.trim(a.attr(d,
"label")||d.textContent||d.innerText||a.text([d])||""),className:d.className||"",style:a.attr(d,"style")||""};d.text?d.text!=d.value&&(d.className+=" different-label-value"):d.text=d.value;e[j]=d.value;g[j]=d}if(!this.storedOptions)this.storedOptions=a(this.input).hasClass("no-datalist-cache")||"off"==this._autocomplete?[]:i((this.input.name||this.input.id)+a.prop(this.input,"type"));this.storedOptions.forEach(function(a){-1==e.indexOf(a)&&g.push({value:a,text:a,className:"stored-suggest",style:""})});
for(j=0,n=g.length;j<n;j++)h=g[j],c[j]='<li class="'+h.className+'" style="'+h.style+'" tabindex="-1" role="listitem"><span class="option-label">'+h.text+'</span> <span class="option-value">'+h.value+"</span></li>";this.arrayOptions=g;this.shadowList.html('<div class="datalist-outer-box"><div class="datalist-box"><ul role="list">'+c.join("\n")+"</ul></div></div>");a.fn.bgIframe&&p&&this.shadowList.bgIframe();(b||this.isListVisible)&&this.showHideOptions()},showHideOptions:function(b){var c=a.prop(this.input,
"value").toLowerCase();if(!(c===this.lastUpdatedValue||this.lastUnfoundValue&&0===c.indexOf(this.lastUnfoundValue))){this.lastUpdatedValue=c;var e=!1,g=this.searchStart,d=a("li",this.shadowList);c?this.arrayOptions.forEach(function(b,h){var i;if(!("lowerText"in b))b.lowerText=b.text!=b.value?b.value.toLowerCase()+b.text.toLowerCase():b.text.toLowerCase();i=b.lowerText.indexOf(c);(i=g?!i:-1!==i)?(a(d[h]).removeClass("hidden-item"),e=!0):a(d[h]).addClass("hidden-item")}):d.length&&(d.removeClass("hidden-item"),
e=!0);this.hasViewableData=e;!b&&e&&this.showList();if(!e)this.lastUnfoundValue=c,this.hideList()}},setPos:function(){this.shadowList.css({marginTop:0,marginLeft:0,marginRight:0,marginBottom:0});var b=l.positionDatalist?a(this.input).position():c.getRelOffset(this.shadowList,this.input);b.top+=a(this.input).outerHeight();b.width=a(this.input).outerWidth()-(parseInt(this.shadowList.css("borderLeftWidth"),10)||0)-(parseInt(this.shadowList.css("borderRightWidth"),10)||0);this.shadowList.css({marginTop:"",
marginLeft:"",marginRight:"",marginBottom:""}).css(b);return b},showList:function(){if(this.isListVisible)return!1;this.needsUpdate&&this.updateListOptions();this.showHideOptions(!0);if(!this.hasViewableData)return!1;this.isListVisible=!0;var b=this;b.setPos();b.shadowList.addClass("datalist-visible").find("li.active-item").removeClass("active-item");a(h).unbind(".datalist"+b.id);a(g).unbind(".datalist"+b.id).bind("mousedown.datalist"+b.id+" focusin.datalist"+b.id,function(c){c.target===b.input||
b.shadowList[0]===c.target||a.contains(b.shadowList[0],c.target)?(clearTimeout(b.hideTimer),setTimeout(function(){clearTimeout(b.hideTimer)},9)):b.timedHide()}).bind("updateshadowdom.datalist"+b.id,function(){b.setPos()});return!0},hideList:function(){if(!this.isListVisible)return!1;var b=this,f=function(){b.changedValue&&a(b.input).trigger("change");b.changedValue=!1};b.shadowList.removeClass("datalist-visible list-item-active");b.index=-1;b.isListVisible=!1;if(b.changedValue){b.triggeredByDatalist=
!0;c.triggerInlineForm&&c.triggerInlineForm(b.input,"input");if(a(b.input).is(":focus"))a(b.input).one("blur",f);else f();b.triggeredByDatalist=!1}a(g).unbind(".datalist"+b.id);a(h).unbind(".datalist"+b.id).one("resize.datalist"+b.id,function(){b.shadowList.css({top:0,left:0})});return!0},scrollIntoView:function(b){var c=a("ul",this.shadowList),e=a("div.datalist-box",this.shadowList),g=b.position();g.top-=(parseInt(c.css("paddingTop"),10)||0)+(parseInt(c.css("marginTop"),10)||0)+(parseInt(c.css("borderTopWidth"),
10)||0);0>g.top?e.scrollTop(e.scrollTop()+g.top-2):(g.top+=b.outerHeight(),b=e.height(),g.top>b&&e.scrollTop(e.scrollTop()+(g.top-b)+2))},changeValue:function(b){if(b[0]){var b=a("span.option-value",b).text(),c=a.prop(this.input,"value");if(b!=c)a(this.input).prop("value",b).triggerHandler("updateInput"),this.changedValue=!0}},markItem:function(b,c,e){e=e||a("li:not(.hidden-item)",this.shadowList);if(e.length)0>b?b=e.length-1:b>=e.length&&(b=0),e.removeClass("active-item"),this.shadowList.addClass("list-item-active"),
e=e.filter(":eq("+b+")").addClass("active-item"),c&&(this.changeValue(e),this.scrollIntoView(e)),this.index=b}};(function(){e||c.defineNodeNameProperty("datalist","options",{prop:{writeable:!1,get:function(){var b=a("select",this);b[0]?b=b[0].options:(b=a("option",this).get(),b.length&&c.warn("you should wrap your option-elements for a datalist in a select element to support IE and other old browsers."));return b}}});var b={autocomplete:{attr:{get:function(){var b=a.data(this,"datalistWidget");return b?
b._autocomplete:"autocomplete"in this?this.autocomplete:this.getAttribute("autocomplete")},set:function(b){var c=a.data(this,"datalistWidget");c?(c._autocomplete=b,"off"==b&&c.hideList()):"autocomplete"in this?this.autocomplete=b:this.setAttribute("autocomplete",b)}}}};e?((a("<datalist><select><option></option></select></datalist>").prop("options")||[]).length||c.defineNodeNameProperty("datalist","options",{prop:{writeable:!1,get:function(){var b=this.options||[];if(!b.length){var c=a("select",this);
if(c[0]&&c[0].options&&c[0].options.length)b=c[0].options}return b}}}),b.list={attr:{get:function(){var b=c.contentAttr(this,"list");null!=b?this.removeAttribute("list"):b=a.data(this,"datalistListAttr");return null==b?m:b},set:function(b){a.data(this,"datalistListAttr",b);c.objectCreate(s,m,{input:this,id:b,datalist:a.prop(this,"list")})}},initAttr:!0,reflect:!0,propType:"element",propNodeName:"datalist"}):b.list={attr:{get:function(){var a=c.contentAttr(this,"list");return null==a?m:a},set:function(b){c.contentAttr(this,
"list",b);c.objectCreate(s,m,{input:this,id:b,datalist:a.prop(this,"list")})}},initAttr:!0,reflect:!0,propType:"element",propNodeName:"datalist"};c.defineNodeNameProperties("input",b);if(a.event.customEvent)a.event.customEvent.updateDatalist=!0,a.event.customEvent.updateInput=!0,a.event.customEvent.datalistselect=!0;c.addReady(function(a,b){b.filter("datalist > select, datalist, datalist > option, datalist > select > option").closest("datalist").triggerHandler("updateDatalist")})})()}})()});