(function(n){typeof define=="function"&&define.amd?define(["jquery"],n):typeof exports=="object"?n(require("jquery")):n(jQuery)})(function(n){function i(n){return t.raw?n:encodeURIComponent(n)}function f(n){return t.raw?n:decodeURIComponent(n)}function e(n){return i(t.json?JSON.stringify(n):String(n))}function o(n){n.indexOf('"')===0&&(n=n.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return n=decodeURIComponent(n.replace(u," ")),t.json?JSON.parse(n):n}catch(i){}}function r(i,r){var u=t.raw?i:o(i);return n.isFunction(r)?r(u):u}var u=/\+/g,t=n.cookie=function(u,o,s){var y,a,h,v,c,p;if(o!==undefined&&!n.isFunction(o))return s=n.extend({},t.defaults,s),typeof s.expires=="number"&&(y=s.expires,a=s.expires=new Date,a.setTime(+a+y*864e5)),document.cookie=[i(u),"=",e(o),s.expires?"; expires="+s.expires.toUTCString():"",s.path?"; path="+s.path:"",s.domain?"; domain="+s.domain:"",s.secure?"; secure":""].join("");for(h=u?undefined:{},v=document.cookie?document.cookie.split("; "):[],c=0,p=v.length;c<p;c++){var w=v[c].split("="),b=f(w.shift()),l=w.join("=");if(u&&u===b){h=r(l,o);break}u||(l=r(l))===undefined||(h[b]=l)}return h};t.defaults={};n.removeCookie=function(t,i){return n.cookie(t)===undefined?!1:(n.cookie(t,"",n.extend({},i,{expires:-1})),!n.cookie(t))}}),function(n){function r(n){return new RegExp("^"+n+"$")}function e(n,t){for(var u=Array.prototype.slice.call(arguments,2),r=n.split("."),f=r.pop(),i=0;i<r.length;i++)t=t[r[i]];return t[f].apply(t,u)}var u=[],t={options:{prependExistingHelpBlock:!1,sniffHtml:!0,preventSubmit:!0,submitError:!1,submitSuccess:!1,semanticallyStrict:!1,bindEvents:[],autoAdd:{helpBlocks:!0},filter:function(){return!0}},methods:{init:function(r){var e=n.extend(!0,{},t),o,s;return e.options=n.extend(!0,e.options,r),o=this,s=n.unique(o.map(function(){return n(this).parents("form")[0]}).toArray()),n(s).bind("submit.validationSubmit",function(t){var i=n(this),r=0,u=i.find("input,textarea,select").not("[type=submit],[type=image]").filter(e.options.filter),o=i.find(".control-group"),f=u.filter(function(){return n(this).triggerHandler("getValidatorCount.validation")>0});f.trigger("submit.validation");u.trigger("validationLostFocus.validation");o.each(function(t,i){var u=n(i);(u.hasClass("warning")||u.hasClass("error"))&&(u.removeClass("warning").addClass("error"),r++)});r?(e.options.preventSubmit&&(t.preventDefault(),t.stopImmediatePropagation()),i.addClass("error"),n.isFunction(e.options.submitError)&&e.options.submitError(i,t,f.jqBootstrapValidation("collectErrors",!0))):(i.removeClass("error"),n.isFunction(e.options.submitSuccess)&&e.options.submitSuccess(i,t))}),this.each(function(){var t=n(this),s=t.parents(".control-group").first(),o=s.find(".help-block").first(),k=t.parents("form").first(),c=[],r,a,v,y,p,h,b;!o.length&&e.options.autoAdd&&e.options.autoAdd.helpBlocks&&(o=n('<div class="help-block" />'),s.find(".controls").append(o),u.push(o[0]));e.options.sniffHtml&&(t.data("validationPatternPattern")&&t.attr("pattern",t.data("validationPatternPattern")),t.attr("pattern")!==undefined&&(r="Not in the expected format<!-- data-validation-pattern-message to override -->",t.data("validationPatternMessage")&&(r=t.data("validationPatternMessage")),t.data("validationPatternMessage",r),t.data("validationPatternRegex",t.attr("pattern"))),(t.attr("max")!==undefined||t.attr("aria-valuemax")!==undefined)&&(a=t.attr("max")!==undefined?t.attr("max"):t.attr("aria-valuemax"),r="Too high: Maximum of '"+a+"'<!-- data-validation-max-message to override -->",t.data("validationMaxMessage")&&(r=t.data("validationMaxMessage")),t.data("validationMaxMessage",r),t.data("validationMaxMax",a)),(t.attr("min")!==undefined||t.attr("aria-valuemin")!==undefined)&&(v=t.attr("min")!==undefined?t.attr("min"):t.attr("aria-valuemin"),r="Too low: Minimum of '"+v+"'<!-- data-validation-min-message to override -->",t.data("validationMinMessage")&&(r=t.data("validationMinMessage")),t.data("validationMinMessage",r),t.data("validationMinMin",v)),t.attr("maxlength")!==undefined&&(r="Too long: Maximum of '"+t.attr("maxlength")+"' characters<!-- data-validation-maxlength-message to override -->",t.data("validationMaxlengthMessage")&&(r=t.data("validationMaxlengthMessage")),t.data("validationMaxlengthMessage",r),t.data("validationMaxlengthMaxlength",t.attr("maxlength"))),t.attr("minlength")!==undefined&&(r="Too short: Minimum of '"+t.attr("minlength")+"' characters<!-- data-validation-minlength-message to override -->",t.data("validationMinlengthMessage")&&(r=t.data("validationMinlengthMessage")),t.data("validationMinlengthMessage",r),t.data("validationMinlengthMinlength",t.attr("minlength"))),(t.attr("required")!==undefined||t.attr("aria-required")!==undefined)&&(r=e.builtInValidators.required.message,t.data("validationRequiredMessage")&&(r=t.data("validationRequiredMessage")),t.data("validationRequiredMessage",r)),t.attr("type")!==undefined&&t.attr("type").toLowerCase()==="number"&&(r=e.validatorTypes.number.message,t.data("validationNumberMessage")&&(r=t.data("validationNumberMessage")),t.data("validationNumberMessage",r),y=e.validatorTypes.number.step,t.data("validationNumberStep")&&(y=t.data("validationNumberStep")),t.data("validationNumberStep",y),p=e.validatorTypes.number.decimal,t.data("validationNumberDecimal")&&(p=t.data("validationNumberDecimal")),t.data("validationNumberDecimal",p)),t.attr("type")!==undefined&&t.attr("type").toLowerCase()==="email"&&(r="Not a valid email address<!-- data-validation-email-message to override -->",t.data("validationEmailMessage")&&(r=t.data("validationEmailMessage")),t.data("validationEmailMessage",r)),t.attr("minchecked")!==undefined&&(r="Not enough options checked; Minimum of '"+t.attr("minchecked")+"' required<!-- data-validation-minchecked-message to override -->",t.data("validationMincheckedMessage")&&(r=t.data("validationMincheckedMessage")),t.data("validationMincheckedMessage",r),t.data("validationMincheckedMinchecked",t.attr("minchecked"))),t.attr("maxchecked")!==undefined&&(r="Too many options checked; Maximum of '"+t.attr("maxchecked")+"' required<!-- data-validation-maxchecked-message to override -->",t.data("validationMaxcheckedMessage")&&(r=t.data("validationMaxcheckedMessage")),t.data("validationMaxcheckedMessage",r),t.data("validationMaxcheckedMaxchecked",t.attr("maxchecked"))));t.data("validation")!==undefined&&(c=t.data("validation").split(","));n.each(t.data(),function(n){var t=n.replace(/([A-Z])/g,",$1").split(",");t[0]==="validation"&&t[1]&&c.push(t[1])});var w=c,l=[],d=function(n,t){c[n]=i(t)},g=function(r,u){if(t.data("validation"+u+"Shortcut")!==undefined)n.each(t.data("validation"+u+"Shortcut").split(","),function(n,t){l.push(t)});else if(e.builtInValidators[u.toLowerCase()]){var f=e.builtInValidators[u.toLowerCase()];f.type.toLowerCase()==="shortcut"&&n.each(f.shortcut.split(","),function(n,t){t=i(t);l.push(t);c.push(t)})}};do n.each(c,d),c=n.unique(c),l=[],n.each(w,g),w=l;while(w.length>0);h={};n.each(c,function(r,u){var o=t.data("validation"+u+"Message"),l=!!o,f=!1,s,c;o||(o="'"+u+"' validation failed <!-- Add attribute 'data-validation-"+u.toLowerCase()+"-message' to input to change this message -->");n.each(e.validatorTypes,function(r,e){if(h[r]===undefined&&(h[r]=[]),!f&&t.data("validation"+u+i(e.name))!==undefined){var s=e.init(t,u);l&&(s.message=o);h[r].push(n.extend(!0,{name:i(e.name),message:o},s));f=!0}});!f&&e.builtInValidators[u.toLowerCase()]&&(s=n.extend(!0,{},e.builtInValidators[u.toLowerCase()]),l&&(s.message=o),c=s.type.toLowerCase(),c==="shortcut"?f=!0:n.each(e.validatorTypes,function(r,e){h[r]===undefined&&(h[r]=[]);f||c!==r.toLowerCase()||(t.data("validation"+u+i(e.name),s[e.name.toLowerCase()]),h[c].push(n.extend(s,e.init(t,u))),f=!0)}));f||n.error("Cannot find validation info for '"+u+"'")});o.data("original-contents",o.data("original-contents")?o.data("original-contents"):o.html());o.data("original-role",o.data("original-role")?o.data("original-role"):o.attr("role"));s.data("original-classes",s.data("original-clases")?s.data("original-classes"):s.attr("class"));t.data("original-aria-invalid",t.data("original-aria-invalid")?t.data("original-aria-invalid"):t.attr("aria-invalid"));t.bind("validation.validation",function(i,r){var u=f(t),o=[];return n.each(h,function(i,f){(u||u.length||r&&r.includeEmpty||!!e.validatorTypes[i].includeEmpty||!!e.validatorTypes[i].blockSubmit&&r&&!!r.submitting)&&n.each(f,function(n,r){e.validatorTypes[i].validate(t,u,r)&&o.push(r.message)})}),o});t.bind("getValidators.validation",function(){return h});b=0;n.each(h,function(n,t){b+=t.length});t.bind("getValidatorCount.validation",function(){return b});t.bind("submit.validation",function(){return t.triggerHandler("change.validation",{submitting:!0})});t.bind((e.options.bindEvents.length>0?e.options.bindEvents:["keyup","focus","blur","click","keydown","keypress","change"]).concat(["revalidate"]).join(".validation ")+".validation",function(i,r){var c=f(t),u=[],h;r&&!!r.submitting?s.data("jqbvIsSubmitting",!0):i.type!=="revalidate"&&s.data("jqbvIsSubmitting",!1);h=!!s.data("jqbvIsSubmitting");s.find("input,textarea,select").each(function(i,f){var o=u.length,e;n.each(n(f).triggerHandler("validation.validation",r),function(n,t){u.push(t)});u.length>o?n(f).attr("aria-invalid","true"):(e=t.data("original-aria-invalid"),n(f).attr("aria-invalid",e!==undefined?e:!1))});k.find("input,select,textarea").not(t).not('[name="'+t.attr("name")+'"]').trigger("validationLostFocus.validation");u=n.unique(u.sort());u.length?(s.removeClass("success error warning").addClass(h?"error":"warning"),e.options.semanticallyStrict&&u.length===1?o.html(u[0]+(e.options.prependExistingHelpBlock?o.data("original-contents"):"")):o.html('<ul role="alert"><li>'+u.join("<\/li><li>")+"<\/li><\/ul>"+(e.options.prependExistingHelpBlock?o.data("original-contents"):""))):(s.removeClass("warning error success"),c.length>0&&s.addClass("success"),o.html(o.data("original-contents")));i.type==="blur"&&s.removeClass("success")});t.bind("validationLostFocus.validation",function(){s.removeClass("success")})})},destroy:function(){return this.each(function(){var t=n(this),r=t.parents(".control-group").first(),i=r.find(".help-block").first(),f=t.parents("form").first();t.unbind(".validation");f.unbind(".validationSubmit");i.html(i.data("original-contents"));r.attr("class",r.data("original-classes"));t.attr("aria-invalid",t.data("original-aria-invalid"));i.attr("role",t.data("original-role"));n.inArray(i[0],u)>-1&&i.remove()})},collectErrors:function(){var t={};return this.each(function(i,r){var u=n(r),f=u.attr("name"),e=u.triggerHandler("validation.validation",{includeEmpty:!0});t[f]=n.extend(!0,e,t[f])}),n.each(t,function(n,i){i.length===0&&delete t[n]}),t},hasErrors:function(){var t=[];return this.find("input,select,textarea").add(this).each(function(i,r){t=t.concat(n(r).triggerHandler("getValidators.validation")?n(r).triggerHandler("validation.validation",{submitting:!0}):[])}),t.length>0},override:function(i){t=n.extend(!0,t,i)}},validatorTypes:{callback:{name:"callback",init:function(n,t){var i={validatorName:t,callback:n.data("validation"+t+"Callback"),lastValue:n.val(),lastValid:!0,lastFinished:!0},r="Not valid";return n.data("validation"+t+"Message")&&(r=n.data("validation"+t+"Message")),i.message=r,i},validate:function(n,t,i){if(i.lastValue===t&&i.lastFinished)return!i.lastValid;if(i.lastFinished===!0){i.lastValue=t;i.lastValid=!0;i.lastFinished=!1;var r=i,u=n;e(i.callback,window,n,t,function(t){r.lastValue===t.value&&(r.lastValid=t.valid,t.message&&(r.message=t.message),r.lastFinished=!0,u.data("validation"+r.validatorName+"Message",r.message),setTimeout(function(){!n.is(":focus")&&n.parents("form").first().data("jqbvIsSubmitting")?u.trigger("blur.validation"):u.trigger("revalidate.validation")},1))})}return!1}},ajax:{name:"ajax",init:function(n,t){return{validatorName:t,url:n.data("validation"+t+"Ajax"),lastValue:n.val(),lastValid:!0,lastFinished:!0}},validate:function(t,i,r){return""+r.lastValue==""+i&&r.lastFinished===!0?r.lastValid===!1:(r.lastFinished===!0&&(r.lastValue=i,r.lastValid=!0,r.lastFinished=!1,n.ajax({url:r.url,data:"value="+encodeURIComponent(i)+"&field="+t.attr("name"),dataType:"json",success:function(n){""+r.lastValue==""+n.value&&(r.lastValid=!!n.valid,n.message&&(r.message=n.message),r.lastFinished=!0,t.data("validation"+r.validatorName+"Message",r.message),setTimeout(function(){t.trigger("revalidate.validation")},1))},failure:function(){r.lastValid=!0;r.message="ajax call failed";r.lastFinished=!0;t.data("validation"+r.validatorName+"Message",r.message);setTimeout(function(){t.trigger("revalidate.validation")},1)}})),!1)}},regex:{name:"regex",init:function(t,i){var u={},e=t.data("validation"+i+"Regex"),f;return u.regex=r(e),e===undefined&&n.error("Can't find regex for '"+i+"' validator on '"+t.attr("name")+"'"),f="Not in the expected format",t.data("validation"+i+"Message")&&(f=t.data("validation"+i+"Message")),u.message=f,u.originalName=i,u},validate:function(n,t,i){return!i.regex.test(t)&&!i.negative||i.regex.test(t)&&i.negative}},email:{name:"email",init:function(n,t){var i={},u;return i.regex=r("[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"),u="Not a valid email address",n.data("validation"+t+"Message")&&(u=n.data("validation"+t+"Message")),i.message=u,i.originalName=t,i},validate:function(n,t,i){return!i.regex.test(t)&&!i.negative||i.regex.test(t)&&i.negative}},required:{name:"required",init:function(n,t){var i="This is required";return n.data("validation"+t+"Message")&&(i=n.data("validation"+t+"Message")),{message:i,includeEmpty:!0}},validate:function(n,t,i){return!!(t.length===0&&!i.negative||t.length>0&&i.negative)},blockSubmit:!0},match:{name:"match",init:function(t,i){var o=t.data("validation"+i+"Match"),s=t.parents("form").first(),f=s.find('[name="'+o+'"]').first(),e,r,u;return f.bind("validation.validation",function(){t.trigger("revalidate.validation",{submitting:!0})}),e={},e.element=f,f.length===0&&n.error("Can't find field '"+o+"' to match '"+t.attr("name")+"' against in '"+i+"' validator"),r="Must match",u=null,(u=s.find('label[for="'+o+'"]')).length?r+=" '"+u.text()+"'":(u=f.parents(".control-group").first().find("label")).length&&(r+=" '"+u.first().text()+"'"),t.data("validation"+i+"Message")&&(r=t.data("validation"+i+"Message")),e.message=r,e},validate:function(n,t,i){return t!==i.element.val()&&!i.negative||t===i.element.val()&&i.negative},blockSubmit:!0,includeEmpty:!0},max:{name:"max",init:function(n,t){var i={};return i.max=n.data("validation"+t+"Max"),i.message="Too high: Maximum of '"+i.max+"'",n.data("validation"+t+"Message")&&(i.message=n.data("validation"+t+"Message")),i},validate:function(n,t,i){return parseFloat(t,10)>parseFloat(i.max,10)&&!i.negative||parseFloat(t,10)<=parseFloat(i.max,10)&&i.negative}},min:{name:"min",init:function(n,t){var i={};return i.min=n.data("validation"+t+"Min"),i.message="Too low: Minimum of '"+i.min+"'",n.data("validation"+t+"Message")&&(i.message=n.data("validation"+t+"Message")),i},validate:function(n,t,i){return parseFloat(t)<parseFloat(i.min)&&!i.negative||parseFloat(t)>=parseFloat(i.min)&&i.negative}},maxlength:{name:"maxlength",init:function(n,t){var i={};return i.maxlength=n.data("validation"+t+"Maxlength"),i.message="Too long: Maximum of '"+i.maxlength+"' characters",n.data("validation"+t+"Message")&&(i.message=n.data("validation"+t+"Message")),i},validate:function(n,t,i){return t.length>i.maxlength&&!i.negative||t.length<=i.maxlength&&i.negative}},minlength:{name:"minlength",init:function(n,t){var i={};return i.minlength=n.data("validation"+t+"Minlength"),i.message="Too short: Minimum of '"+i.minlength+"' characters",n.data("validation"+t+"Message")&&(i.message=n.data("validation"+t+"Message")),i},validate:function(n,t,i){return t.length<i.minlength&&!i.negative||t.length>=i.minlength&&i.negative}},maxchecked:{name:"maxchecked",init:function(n,t){var i={},u=n.parents("form").first().find('[name="'+n.attr("name")+'"]'),r;return u.bind("change.validation click.validation",function(){n.trigger("revalidate.validation",{includeEmpty:!0})}),i.elements=u,i.maxchecked=n.data("validation"+t+"Maxchecked"),r="Too many: Max '"+i.maxchecked+"' checked",n.data("validation"+t+"Message")&&(r=n.data("validation"+t+"Message")),i.message=r,i},validate:function(n,t,i){return i.elements.filter(":checked").length>i.maxchecked&&!i.negative||i.elements.filter(":checked").length<=i.maxchecked&&i.negative},blockSubmit:!0},minchecked:{name:"minchecked",init:function(n,t){var i={},u=n.parents("form").first().find('[name="'+n.attr("name")+'"]'),r;return u.bind("change.validation click.validation",function(){n.trigger("revalidate.validation",{includeEmpty:!0})}),i.elements=u,i.minchecked=n.data("validation"+t+"Minchecked"),r="Too few: Min '"+i.minchecked+"' checked",n.data("validation"+t+"Message")&&(r=n.data("validation"+t+"Message")),i.message=r,i},validate:function(n,t,i){return i.elements.filter(":checked").length<i.minchecked&&!i.negative||i.elements.filter(":checked").length>=i.minchecked&&i.negative},blockSubmit:!0,includeEmpty:!0},number:{name:"number",init:function(n,t){var i={},u;return i.step=1,n.attr("step")&&(i.step=n.attr("step")),n.data("validation"+t+"Step")&&(i.step=n.data("validation"+t+"Step")),i.decimal=".",n.data("validation"+t+"Decimal")&&(i.decimal=n.data("validation"+t+"Decimal")),i.thousands="",n.data("validation"+t+"Thousands")&&(i.thousands=n.data("validation"+t+"Thousands")),i.regex=r("([+-]?\\d+(\\"+i.decimal+"\\d+)?)?"),i.message="Must be a number",u=n.data("validation"+t+"Message"),u&&(i.message=u),i},validate:function(n,t,i){for(var u=t.replace(i.decimal,".").replace(i.thousands,""),f=parseFloat(u),r=parseFloat(i.step);r%1!=0;)r=parseFloat(r.toPrecision(12))*10,f=parseFloat(f.toPrecision(12))*10;var e=i.regex.test(t),o=parseFloat(f)%parseFloat(r)==0,s=!isNaN(parseFloat(u))&&isFinite(u);return!(e&&o&&s)},message:"Must be a number"}},builtInValidators:{email:{name:"Email",type:"email"},passwordagain:{name:"Passwordagain",type:"match",match:"password",message:"Does not match the given password<!-- data-validator-paswordagain-message to override -->"},positive:{name:"Positive",type:"shortcut",shortcut:"number,positivenumber"},negative:{name:"Negative",type:"shortcut",shortcut:"number,negativenumber"},integer:{name:"Integer",type:"regex",regex:"[+-]?\\d+",message:"No decimal places allowed<!-- data-validator-integer-message to override -->"},positivenumber:{name:"Positivenumber",type:"min",min:0,message:"Must be a positive number<!-- data-validator-positivenumber-message to override -->"},negativenumber:{name:"Negativenumber",type:"max",max:0,message:"Must be a negative number<!-- data-validator-negativenumber-message to override -->"},required:{name:"Required",type:"required",message:"This is required<!-- data-validator-required-message to override -->"},checkone:{name:"Checkone",type:"minchecked",minchecked:1,message:"Check at least one option<!-- data-validation-checkone-message to override -->"},number:{name:"Number",type:"number",decimal:".",step:"1"},pattern:{name:"Pattern",type:"regex",message:"Not in expected format"}}},i=function(n){return n.toLowerCase().replace(/(^|\s)([a-z])/g,function(n,t,i){return t+i.toUpperCase()})},f=function(t){var i=null,f=t.attr("type"),r,u;return f==="checkbox"?(i=t.is(":checked")?i:"",r=t.parents("form").first()||t.parents(".control-group").first(),r&&(i=r.find("input[name='"+t.attr("name")+"']:checked").map(function(t,i){return n(i).val()}).toArray().join(","))):f==="radio"?(i=n('input[name="'+t.attr("name")+'"]:checked').length>0?t.val():"",u=t.parents("form").first()||t.parents(".control-group").first(),u&&(i=u.find("input[name='"+t.attr("name")+"']:checked").map(function(t,i){return n(i).val()}).toArray().join(","))):i=t.val(),i};n.fn.jqBootstrapValidation=function(i){return t.methods[i]?t.methods[i].apply(this,Array.prototype.slice.call(arguments,1)):typeof i=="object"||!i?t.methods.init.apply(this,arguments):(n.error("Method "+i+" does not exist on jQuery.jqBootstrapValidation"),null)};n.jqBootstrapValidation=function(){n(":input").not("[type=image],[type=submit]").jqBootstrapValidation.apply(this,arguments)}}(jQuery),function(n){"function"==typeof define&&define.amd?define(["jquery"],n):n(window.jQuery||window.Zepto)}(function(n){var t=function(t,i,r){var f=this,e,o,u;t=n(t);i="function"==typeof i?i(t.val(),void 0,t,r):i;f.init=function(){r=r||{};f.byPassKeys=[9,16,17,18,36,37,38,39,40,91];f.translation={0:{pattern:/\d/},9:{pattern:/\d/,optional:!0},"#":{pattern:/\d/,recursive:!0},A:{pattern:/[a-zA-Z0-9]/},S:{pattern:/[a-zA-Z]/}};f.translation=n.extend({},f.translation,r.translation);f=n.extend(!0,{},f,r);o=u.getRegexMask();t.each(function(){!1!==r.maxlength&&t.attr("maxlength",i.length);r.placeholder&&t.attr("placeholder",r.placeholder);t.attr("autocomplete","off");u.destroyEvents();u.events();var n=u.getCaret();u.val(u.getMasked());u.setCaret(n+u.getMaskCharactersBeforeCount(n,!0))})};u={getCaret:function(){var n=0;var i=t.get(0),r=document.selection,i=i.selectionStart;return r&&!~navigator.appVersion.indexOf("MSIE 10")?(n=r.createRange(),n.moveStart("character",t.is("input")?-t.val().length:-t.text().length),n=n.text.length):(i||"0"===i)&&(n=i),n},setCaret:function(n){if(t.is(":focus")){var i;i=t.get(0);i.setSelectionRange?i.setSelectionRange(n,n):i.createTextRange&&(i=i.createTextRange(),i.collapse(!0),i.moveEnd("character",n),i.moveStart("character",n),i.select())}},events:function(){t.on("keydown.mask",function(){e=u.val()});t.on("keyup.mask",u.behaviour);t.on("paste.mask drop.mask",function(){setTimeout(function(){t.keydown().keyup()},100)});t.on("change.mask",function(){t.data("changeCalled",!0)});t.on("blur.mask",function(t){t=n(t.target);t.prop("defaultValue")!==t.val()&&(t.prop("defaultValue",t.val()),t.data("changeCalled")||t.trigger("change"));t.data("changeCalled",!1)});t.on("focusout.mask",function(){r.clearIfNotMatch&&!o.test(u.val())&&u.val("")})},getRegexMask:function(){var n=[],t,e,o,r,u;for(u in i)(t=f.translation[i[u]])?(e=t.pattern.toString().replace(/.{1}$|^.{1}/g,""),o=t.optional,(t=t.recursive)?(n.push(i[u]),r={digit:i[u],pattern:e}):n.push(o||t?e+"?":e)):n.push("\\"+i[u]);return n=n.join(""),r&&(n=n.replace(RegExp("("+r.digit+"(.*"+r.digit+")?)"),"($1)?").replace(RegExp(r.digit,"g"),r.pattern)),RegExp(n)},destroyEvents:function(){t.off("keydown.mask keyup.mask paste.mask drop.mask change.mask blur.mask focusout.mask").removeData("changeCalled")},val:function(n){var i=t.is("input");return 0<arguments.length?i?t.val(n):t.text(n):i?t.val():t.text()},getMaskCharactersBeforeCount:function(n,t){for(var u=0,r=0,e=i.length;r<e&&r<n;r++)f.translation[i.charAt(r)]||(n=t?n+1:n,u++);return u},determineCaretPos:function(n,t,r,e){return f.translation[i.charAt(Math.min(n-1,i.length-1))]?Math.min(n+r-t-e,r):u.determineCaretPos(n+1,t,r,e)},behaviour:function(t){var i;if(t=t||window.event,i=t.keyCode||t.which,-1===n.inArray(i,f.byPassKeys)){var r=u.getCaret(),s=u.val(),e=s.length,c=r<e,o=u.getMasked(),h=o.length,l=u.getMaskCharactersBeforeCount(h-1)-u.getMaskCharactersBeforeCount(e-1);return o!==s&&u.val(o),!c||65===i&&t.ctrlKey||(8!==i&&46!==i&&(r=u.determineCaretPos(r,e,h,l)),u.setCaret(r)),u.callbacks(t)}},getMasked:function(n){var h=[],k=u.val(),t=0,c=i.length,o=0,v=k.length,e=1,y="push",l=-1,s,p;for(r.reverse?(y="unshift",e=-1,s=0,t=c-1,o=v-1,p=function(){return-1<t&&-1<o}):(s=c-1,p=function(){return t<c&&o<v});p();){var w=i.charAt(t),b=k.charAt(o),a=f.translation[w];a?(b.match(a.pattern)?(h[y](b),a.recursive&&(-1===l?l=t:t===s&&(t=l-e),s===l&&(t-=e)),t+=e):a.optional&&(t+=e,o-=e),o+=e):(n||h[y](w),b===w&&(o+=e),t+=e)}return n=i.charAt(s),c!==v+1||f.translation[n]||h.push(n),h.join("")},callbacks:function(n){var f=u.val(),o=u.val()!==e;if(!0===o&&"function"==typeof r.onChange)r.onChange(f,n,t,r);if(!0===o&&"function"==typeof r.onKeyPress)r.onKeyPress(f,n,t,r);if("function"==typeof r.onComplete&&f.length===i.length)r.onComplete(f,n,t,r)}};f.remove=function(){var n=u.getCaret(),t=u.getMaskCharactersBeforeCount(n);u.destroyEvents();u.val(f.getCleanVal()).removeAttr("maxlength");u.setCaret(n-t)};f.getCleanVal=function(){return u.getMasked(!0)};f.init()};n.fn.mask=function(i,r){return this.unmask(),this.each(function(){n(this).data("mask",new t(this,i,r))})};n.fn.unmask=function(){return this.each(function(){try{n(this).data("mask").remove()}catch(t){}})};n.fn.cleanVal=function(){return n(this).data("mask").getCleanVal()};n("*[data-mask]").each(function(){var t=n(this),i={};"true"===t.attr("data-mask-reverse")&&(i.reverse=!0);"false"===t.attr("data-mask-maxlength")&&(i.maxlength=!1);"true"===t.attr("data-mask-clearifnotmatch")&&(i.clearIfNotMatch=!0);t.mask(t.attr("data-mask"),i)})})