(function(c){c.extend(c.fn,{validate:function(a){if(this.length){var b=c.data(this[0],"validator");if(b)return b;b=new c.validator(a,this[0]);c.data(this[0],"validator",b);if(b.settings.onsubmit){this.find("input, button").filter(".cancel").click(function(){b.cancelSubmit=true});b.settings.submitHandler&&this.find("input, button").filter(":submit").click(function(){b.submitButton=this});this.submit(function(d){function f(){if(b.settings.submitHandler){if(b.submitButton)var g=c("<input type='hidden'/>").attr("name",
b.submitButton.name).val(b.submitButton.value).appendTo(b.currentForm);b.settings.submitHandler.call(b,b.currentForm);b.submitButton&&g.remove();return false}return true}b.settings.debug&&d.preventDefault();if(b.cancelSubmit){b.cancelSubmit=false;return f()}if(b.form()){if(b.pendingRequest){b.formSubmitted=true;return false}return f()}else{b.focusInvalid();return false}})}return b}else a&&a.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing")},valid:function(){if(c(this[0]).is("form"))return this.validate().form();
else{var a=true,b=c(this[0].form).validate();this.each(function(){a&=b.element(this)});return a}},removeAttrs:function(a){var b={},d=this;c.each(a.split(/\s/),function(f,g){b[g]=d.attr(g);d.removeAttr(g)});return b},rules:function(a,b){var d=this[0];if(a){var f=c.data(d.form,"validator").settings,g=f.rules,i=c.validator.staticRules(d);switch(a){case "add":c.extend(i,c.validator.normalizeRule(b));g[d.name]=i;if(b.messages)f.messages[d.name]=c.extend(f.messages[d.name],b.messages);break;case "remove":if(!b){delete g[d.name];
return i}var p={};c.each(b.split(/\s/),function(n,y){p[y]=i[y];delete i[y]});return p}}d=c.validator.normalizeRules(c.extend({},c.validator.metadataRules(d),c.validator.classRules(d),c.validator.attributeRules(d),c.validator.staticRules(d)),d);if(d.required){f=d.required;delete d.required;d=c.extend({required:f},d)}return d}});c.extend(c.expr[":"],{blank:function(a){return!c.trim(""+a.value)},filled:function(a){return!!c.trim(""+a.value)},unchecked:function(a){return!a.checked}});c.validator=function(a,
b){this.settings=c.extend(true,{},c.validator.defaults,a);this.currentForm=b;this.init()};c.validator.format=function(a,b){if(arguments.length==1)return function(){var d=c.makeArray(arguments);d.unshift(a);return c.validator.format.apply(this,d)};if(arguments.length>2&&b.constructor!=Array)b=c.makeArray(arguments).slice(1);if(b.constructor!=Array)b=[b];c.each(b,function(d,f){a=a.replace(RegExp("\\{"+d+"\\}","g"),f)});return a};c.extend(c.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",
validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:c([]),errorLabelContainer:c([]),onsubmit:true,ignore:[],ignoreTitle:false,onfocusin:function(a){this.lastActive=a;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass);this.errorsFor(a).hide()}},onfocusout:function(a){if(!this.checkable(a)&&(a.name in this.submitted||!this.optional(a)))this.element(a)},onkeyup:function(a){if(a.name in
this.submitted||a==this.lastElement)this.element(a)},onclick:function(a){if(a.name in this.submitted)this.element(a);else a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(a,b,d){c(a).addClass(b).removeClass(d)},unhighlight:function(a,b,d){c(a).removeClass(b).addClass(d)}},setDefaults:function(a){c.extend(c.validator.defaults,a)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",
date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:c.validator.format("Please enter no more than {0} characters."),minlength:c.validator.format("Please enter at least {0} characters."),rangelength:c.validator.format("Please enter a value between {0} and {1} characters long."),
range:c.validator.format("Please enter a value between {0} and {1}."),max:c.validator.format("Please enter a value less than or equal to {0}."),min:c.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){function a(f){var g=c.data(this[0].form,"validator");f="on"+f.type.replace(/^validate/,"");g.settings[f]&&g.settings[f].call(g,this[0])}this.labelContainer=c(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&
this.labelContainer||c(this.currentForm);this.containers=c(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var b=this.groups={};c.each(this.settings.groups,function(f,g){c.each(g.split(/\s/),function(i,p){b[p]=f})});var d=this.settings.rules;c.each(d,function(f,g){d[f]=c.validator.normalizeRule(g)});c(this.currentForm).validateDelegate(":text, :password, :file, select, textarea",
"focusin focusout keyup",a).validateDelegate(":radio, :checkbox, select, option","click",a);this.settings.invalidHandler&&c(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){this.checkForm();c.extend(this.submitted,this.errorMap);this.invalid=c.extend({},this.errorMap);this.valid()||c(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);
return this.valid()},element:function(a){this.lastElement=a=this.clean(a);this.prepareElement(a);this.currentElements=c(a);var b=this.check(a);if(b)delete this.invalid[a.name];else this.invalid[a.name]=true;if(!this.numberOfInvalids())this.toHide=this.toHide.add(this.containers);this.showErrors();return b},showErrors:function(a){if(a){c.extend(this.errorMap,a);this.errorList=[];for(var b in a)this.errorList.push({message:a[b],element:this.findByName(b)[0]});this.successList=c.grep(this.successList,
function(d){return!(d.name in a)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){c.fn.resetForm&&c(this.currentForm).resetForm();this.submitted={};this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b=0,d;for(d in a)b++;return b},hideErrors:function(){this.addWrapper(this.toHide).hide()},
valid:function(){return this.size()==0},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{c(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(a){}},findLastActive:function(){var a=this.lastActive;return a&&c.grep(this.errorList,function(b){return b.element.name==a.name}).length==1&&a},elements:function(){var a=this,b={};return c([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&&
a.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in b||!a.objectLength(c(this).rules()))return false;return b[this.name]=true})},clean:function(a){return c(a)[0]},errors:function(){return c(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext)},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=c([]);this.toHide=c([]);this.currentElements=c([])},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers)},
prepareElement:function(a){this.reset();this.toHide=this.errorsFor(a)},check:function(a){a=this.clean(a);if(this.checkable(a))a=this.findByName(a.name)[0];var b=c(a).rules(),d=false;for(method in b){var f={method:method,parameters:b[method]};try{var g=c.validator.methods[method].call(this,a.value.replace(/\r/g,""),a,f.parameters);if(g=="dependency-mismatch")d=true;else{d=false;if(g=="pending"){this.toHide=this.toHide.not(this.errorsFor(a));return}if(!g){this.formatAndAdd(a,f);return false}}}catch(i){this.settings.debug&&
window.console&&console.log("exception occured when checking element "+a.id+", check the '"+f.method+"' method",i);throw i;}}if(!d){this.objectLength(b)&&this.successList.push(a);return true}},customMetaMessage:function(a,b){if(c.metadata){var d=this.settings.meta?c(a).metadata()[this.settings.meta]:c(a).metadata();return d&&d.messages&&d.messages[b]}},customMessage:function(a,b){var d=this.settings.messages[a];return d&&(d.constructor==String?d:d[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(arguments[a]!==
undefined)return arguments[a]},defaultMessage:function(a,b){return this.findDefined(this.customMessage(a.name,b),this.customMetaMessage(a,b),!this.settings.ignoreTitle&&a.title||undefined,c.validator.messages[b],"<strong>Warning: No message defined for "+a.name+"</strong>")},formatAndAdd:function(a,b){var d=this.defaultMessage(a,b.method),f=/\$?\{(\d+)\}/g;if(typeof d=="function")d=d.call(this,b.parameters,a);else if(f.test(d))d=jQuery.format(d.replace(f,"{$1}"),b.parameters);this.errorList.push({message:d,
element:a});this.errorMap[a.name]=d;this.submitted[a.name]=d},addWrapper:function(a){if(this.settings.wrapper)a=a.add(a.parent(this.settings.wrapper));return a},defaultShowErrors:function(){for(var a=0;this.errorList[a];a++){var b=this.errorList[a];this.settings.highlight&&this.settings.highlight.call(this,b.element,this.settings.errorClass,this.settings.validClass);this.showLabel(b.element,b.message)}if(this.errorList.length)this.toShow=this.toShow.add(this.containers);if(this.settings.success)for(a=
0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight){a=0;for(b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass)}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return c(this.errorList).map(function(){return this.element})},showLabel:function(a,
b){var d=this.errorsFor(a);if(d.length){d.removeClass().addClass(this.settings.errorClass);d.attr("generated")&&d.html(b)}else{d=c("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(a),generated:true}).addClass(this.settings.errorClass).html(b||"");if(this.settings.wrapper)d=d.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();this.labelContainer.append(d).length||(this.settings.errorPlacement?this.settings.errorPlacement(d,c(a)):d.insertAfter(a))}if(!b&&this.settings.success){d.text("");
typeof this.settings.success=="string"?d.addClass(this.settings.success):this.settings.success(d)}this.toShow=this.toShow.add(d)},errorsFor:function(a){var b=this.idOrName(a);return this.errors().filter(function(){return c(this).attr("for")==b})},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(a){var b=this.currentForm;return c(document.getElementsByName(a)).map(function(d,f){return f.form==
b&&f.name==a&&f||null})},getLength:function(a,b){switch(b.nodeName.toLowerCase()){case "select":return c("option:selected",b).length;case "input":if(this.checkable(b))return this.findByName(b.name).filter(":checked").length}return a.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):true},dependTypes:{"boolean":function(a){return a},string:function(a,b){return!!c(a,b.form).length},"function":function(a,b){return a(b)}},optional:function(a){return!c.validator.methods.required.call(this,
c.trim(a.value),a)&&"dependency-mismatch"},startRequest:function(a){if(!this.pending[a.name]){this.pendingRequest++;this.pending[a.name]=true}},stopRequest:function(a,b){this.pendingRequest--;if(this.pendingRequest<0)this.pendingRequest=0;delete this.pending[a.name];if(b&&this.pendingRequest==0&&this.formSubmitted&&this.form()){c(this.currentForm).submit();this.formSubmitted=false}else if(!b&&this.pendingRequest==0&&this.formSubmitted){c(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted=
false}},previousValue:function(a){return c.data(a,"previousValue")||c.data(a,"previousValue",{old:null,valid:true,message:this.defaultMessage(a,"remote")})}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},dateDE:{dateDE:true},number:{number:true},numberDE:{numberDE:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(a,b){a.constructor==String?this.classRuleSettings[a]=b:c.extend(this.classRuleSettings,
a)},classRules:function(a){var b={};(a=c(a).attr("class"))&&c.each(a.split(" "),function(){this in c.validator.classRuleSettings&&c.extend(b,c.validator.classRuleSettings[this])});return b},attributeRules:function(a){var b={};a=c(a);for(method in c.validator.methods){var d=a.attr(method);if(d)b[method]=d}b.maxlength&&/-1|2147483647|524288/.test(b.maxlength)&&delete b.maxlength;return b},metadataRules:function(a){if(!c.metadata)return{};var b=c.data(a.form,"validator").settings.meta;return b?c(a).metadata()[b]:
c(a).metadata()},staticRules:function(a){var b={},d=c.data(a.form,"validator");if(d.settings.rules)b=c.validator.normalizeRule(d.settings.rules[a.name])||{};return b},normalizeRules:function(a,b){c.each(a,function(d,f){if(f===false)delete a[d];else if(f.param||f.depends){var g=true;switch(typeof f.depends){case "string":g=!!c(f.depends,b.form).length;break;case "function":g=f.depends.call(b,b)}if(g)a[d]=f.param!==undefined?f.param:true;else delete a[d]}});c.each(a,function(d,f){a[d]=c.isFunction(f)?
f(b):f});c.each(["minlength","maxlength","min","max"],function(){if(a[this])a[this]=Number(a[this])});c.each(["rangelength","range"],function(){if(a[this])a[this]=[Number(a[this][0]),Number(a[this][1])]});if(c.validator.autoCreateRanges){if(a.min&&a.max){a.range=[a.min,a.max];delete a.min;delete a.max}if(a.minlength&&a.maxlength){a.rangelength=[a.minlength,a.maxlength];delete a.minlength;delete a.maxlength}}a.messages&&delete a.messages;return a},normalizeRule:function(a){if(typeof a=="string"){var b=
{};c.each(a.split(/\s/),function(){b[this]=true});a=b}return a},addMethod:function(a,b,d){c.validator.methods[a]=b;c.validator.messages[a]=d!=undefined?d:c.validator.messages[a];b.length<3&&c.validator.addClassRules(a,c.validator.normalizeRule(a))},methods:{required:function(a,b,d){if(!this.depend(d,b))return"dependency-mismatch";switch(b.nodeName.toLowerCase()){case "select":return(a=c(b).val())&&a.length>0;case "input":if(this.checkable(b))return this.getLength(a,b)>0;default:return c.trim(a).length>
0}},remote:function(a,b,d){if(this.optional(b))return"dependency-mismatch";var f=this.previousValue(b);this.settings.messages[b.name]||(this.settings.messages[b.name]={});f.originalMessage=this.settings.messages[b.name].remote;this.settings.messages[b.name].remote=f.message;d=typeof d=="string"&&{url:d}||d;if(f.old!==a){f.old=a;var g=this;this.startRequest(b);var i={};i[b.name]=a;c.ajax(c.extend(true,{url:d,mode:"abort",port:"validate"+b.name,dataType:"json",data:i,success:function(p){g.settings.messages[b.name].remote=
f.originalMessage;var n=p===true;if(n){var y=g.formSubmitted;g.prepareElement(b);g.formSubmitted=y;g.successList.push(b);g.showErrors()}else{y={};p=f.message=p||g.defaultMessage(b,"remote");y[b.name]=c.isFunction(p)?p(a):p;g.showErrors(y)}f.valid=n;g.stopRequest(b,n)}},d));return"pending"}else if(this.pending[b.name])return"pending";return f.valid},minlength:function(a,b,d){return this.optional(b)||this.getLength(c.trim(a),b)>=d},maxlength:function(a,b,d){return this.optional(b)||this.getLength(c.trim(a),
b)<=d},rangelength:function(a,b,d){a=this.getLength(c.trim(a),b);return this.optional(b)||a>=d[0]&&a<=d[1]},min:function(a,b,d){return this.optional(b)||a>=d},max:function(a,b,d){return this.optional(b)||a<=d},range:function(a,b,d){return this.optional(b)||a>=d[0]&&a<=d[1]},email:function(a,b){return this.optional(b)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(a)},
url:function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},
date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a))},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9-]+/.test(a))return false;var d=0,f=0,g=false;a=a.replace(/\D/g,"");for(var i=a.length-1;i>=
0;i--){f=a.charAt(i);f=parseInt(f,10);if(g)if((f*=2)>9)f-=9;d+=f;g=!g}return d%10==0},accept:function(a,b,d){d=typeof d=="string"?d.replace(/,/g,"|"):"png|jpe?g|gif";return this.optional(b)||a.match(RegExp(".("+d+")$","i"))},equalTo:function(a,b,d){d=c(d).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){c(b).valid()});return a==d.val()}}});c.format=c.validator.format})(jQuery);
(function(c){var a=c.ajax,b={};c.ajax=function(d){d=c.extend(d,c.extend({},c.ajaxSettings,d));var f=d.port;if(d.mode=="abort"){b[f]&&b[f].abort();return b[f]=a.apply(this,arguments)}return a.apply(this,arguments)}})(jQuery);
(function(c){!jQuery.event.special.focusin&&!jQuery.event.special.focusout&&document.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)},handler:function(f){arguments[0]=c.event.fix(f);arguments[0].type=b;return c.event.handle.apply(this,arguments)}}});c.extend(c.fn,{validateDelegate:function(a,
b,d){return this.bind(b,function(f){var g=c(f.target);if(g.is(a))return d.apply(g,arguments)})}})})(jQuery);
(function(c,a){function b(h,k){h=h?' id="'+o+h+'"':"";k=k?' style="'+k+'"':"";return c("<div"+h+k+"/>")}function d(h,k){k=k==="x"?z.width():z.height();return typeof h==="string"?Math.round(/%/.test(h)?k/100*parseInt(h,10):parseInt(h,10)):h}function f(h){return e.photo||/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i.test(h)}function g(h){for(var k in h)if(c.isFunction(h[k])&&k.substring(0,2)!=="on")h[k]=h[k].call(x);h.rel=h.rel||x.rel||"nofollow";h.href=h.href||c(x).attr("href");h.title=h.title||
x.title;return h}function i(h,k){k&&k.call(x);c.event.trigger(h)}function p(){var h,k=o+"Slideshow_",j="click."+o,r,B;if(e.slideshow&&s[1]){r=function(){R.text(e.slideshowStop).unbind(j).bind(l,function(){if(q<s.length-1||e.loop)h=setTimeout(m.next,e.slideshowSpeed)}).bind(O,function(){clearTimeout(h)}).one(j+" "+D,B);u.removeClass(k+"off").addClass(k+"on");h=setTimeout(m.next,e.slideshowSpeed)};B=function(){clearTimeout(h);R.text(e.slideshowStart).unbind([l,O,D,j].join(" ")).one(j,r);u.removeClass(k+
"on").addClass(k+"off")};e.slideshowAuto?r():B()}}function n(h){if(!Z){x=h;e=g(c.extend({},c.data(x,A)));s=c(x);q=0;if(e.rel!=="nofollow"){s=c("."+S).filter(function(){return(c.data(this,A).rel||this.rel)===e.rel});q=s.index(x);if(q===-1){s=s.add(x);q=s.length-1}}if(!F){F=P=true;u.show();if(e.returnFocus)try{x.blur();c(x).one(aa,function(){try{this.focus()}catch(j){}})}catch(k){}G.css({opacity:+e.opacity,cursor:e.overlayClose?"pointer":"auto"}).show();e.w=d(e.initialWidth,"x");e.h=d(e.initialHeight,
"y");m.position(0);da&&z.bind("resize."+ba+" scroll."+ba,function(){G.css({width:z.width(),height:z.height(),top:z.scrollTop(),left:z.scrollLeft()})}).trigger("scroll."+ba);i(T,e.onOpen);ea.add(U).add(V).add(R).add(fa).hide();ga.html(e.close).show()}m.load(true)}}var y={transition:"elastic",speed:300,width:false,initialWidth:"600",innerWidth:false,maxWidth:false,height:false,initialHeight:"450",innerHeight:false,maxHeight:false,scalePhotos:true,scrolling:true,inline:false,html:false,iframe:false,
photo:false,href:false,title:false,rel:false,opacity:0.9,preloading:true,current:"image {current} of {total}",previous:"previous",next:"next",close:"close",open:false,returnFocus:true,loop:true,slideshow:false,slideshowAuto:true,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",onOpen:false,onLoad:false,onComplete:false,onCleanup:false,onClosed:false,overlayClose:true,escKey:true,arrowKey:true},A="colorbox",o="cbox",T=o+"_open",O=o+"_load",l=o+"_complete",D=o+"_cleanup",
aa=o+"_closed",H=o+"_purge",ca=o+"_loaded",v=c.browser.msie&&!c.support.opacity,da=v&&c.browser.version<7,ba=o+"_IE6",G,u,K,E,ha,ia,ja,ka,s,z,w,W,X,fa,ea,R,V,U,ga,L,M,I,J,x,q,e,F,P,Z=false,m,S=o+"Element";m=c.fn[A]=c[A]=function(h,k){var j=this,r;if(!j[0]&&j.selector)return j;h=h||{};if(k)h.onComplete=k;if(!j[0]||j.selector===undefined){j=c("<a/>");h.open=true}j.each(function(){c.data(this,A,c.extend({},c.data(this,A)||y,h));c(this).addClass(S)});r=h.open;if(c.isFunction(r))r=r.call(j);r&&n(j[0]);
return j};m.init=function(){z=c(a);u=b().attr({id:A,"class":v?o+"IE":""});G=b("Overlay",da?"position:absolute":"").hide();K=b("Wrapper");E=b("Content").append(w=b("LoadedContent","width:0; height:0; overflow:hidden"),X=b("LoadingOverlay").add(b("LoadingGraphic")),fa=b("Title"),ea=b("Current"),V=b("Next"),U=b("Previous"),R=b("Slideshow").bind(T,p),ga=b("Close"));K.append(b().append(b("TopLeft"),ha=b("TopCenter"),b("TopRight")),b(false,"clear:left").append(ia=b("MiddleLeft"),E,ja=b("MiddleRight")),
b(false,"clear:left").append(b("BottomLeft"),ka=b("BottomCenter"),b("BottomRight"))).children().children().css({"float":"left"});W=b(false,"position:absolute; width:9999px; visibility:hidden; display:none");c("body").prepend(G,u.append(K,W));E.children().hover(function(){c(this).addClass("hover")},function(){c(this).removeClass("hover")}).addClass("hover");L=ha.height()+ka.height()+E.outerHeight(true)-E.height();M=ia.width()+ja.width()+E.outerWidth(true)-E.width();I=w.outerHeight(true);J=w.outerWidth(true);
u.css({"padding-bottom":L,"padding-right":M}).hide();V.click(m.next);U.click(m.prev);ga.click(m.close);E.children().removeClass("hover");c("."+S).live("click",function(h){if(!(h.button!==0&&typeof h.button!=="undefined"||h.ctrlKey||h.shiftKey||h.altKey)){h.preventDefault();n(this)}});G.click(function(){e.overlayClose&&m.close()});c(document).bind("keydown",function(h){if(F&&e.escKey&&h.keyCode===27){h.preventDefault();m.close()}if(F&&e.arrowKey&&!P&&s[1])if(h.keyCode===37&&(q||e.loop)){h.preventDefault();
U.click()}else if(h.keyCode===39&&(q<s.length-1||e.loop)){h.preventDefault();V.click()}})};m.remove=function(){u.add(G).remove();c("."+S).die("click").removeData(A).removeClass(S)};m.position=function(h,k){function j(C){ha[0].style.width=ka[0].style.width=E[0].style.width=C.style.width;X[0].style.height=X[1].style.height=E[0].style.height=ia[0].style.height=ja[0].style.height=C.style.height}var r,B=Math.max(document.documentElement.clientHeight-e.h-I-L,0)/2+z.scrollTop(),t=Math.max(z.width()-e.w-
J-M,0)/2+z.scrollLeft();r=u.width()===e.w+J&&u.height()===e.h+I?0:h;K[0].style.width=K[0].style.height="9999px";u.dequeue().animate({width:e.w+J,height:e.h+I,top:B,left:t},{duration:r,complete:function(){j(this);P=false;K[0].style.width=e.w+J+M+"px";K[0].style.height=e.h+I+L+"px";k&&k()},step:function(){j(this)}})};m.resize=function(h){if(F){h=h||{};if(h.width)e.w=d(h.width,"x")-J-M;if(h.innerWidth)e.w=d(h.innerWidth,"x");w.css({width:e.w});if(h.height)e.h=d(h.height,"y")-I-L;if(h.innerHeight)e.h=
d(h.innerHeight,"y");if(!h.innerHeight&&!h.height){h=w.wrapInner("<div style='overflow:auto'></div>").children();e.h=h.height();h.replaceWith(h.children())}w.css({height:e.h});m.position(e.transition==="none"?0:e.speed)}};m.prep=function(h){function k(B){var t,C,Q,N,Y=s.length,la=e.loop;m.position(B,function(){function ma(){v&&u[0].style.removeAttribute("filter")}if(F){v&&j&&w.fadeIn(100);w.show();i(ca);fa.show().html(e.title);if(Y>1){typeof e.current==="string"&&ea.html(e.current.replace(/\{current\}/,
q+1).replace(/\{total\}/,Y)).show();V[la||q<Y-1?"show":"hide"]().html(e.next);U[la||q?"show":"hide"]().html(e.previous);t=q?s[q-1]:s[Y-1];Q=q<Y-1?s[q+1]:s[0];e.slideshow&&R.show();if(e.preloading){N=c.data(Q,A).href||Q.href;C=c.data(t,A).href||t.href;N=c.isFunction(N)?N.call(Q):N;C=c.isFunction(C)?C.call(t):C;if(f(N))c("<img/>")[0].src=N;if(f(C))c("<img/>")[0].src=C}}X.hide();e.transition==="fade"?u.fadeTo(r,1,function(){ma()}):ma();z.bind("resize."+o,function(){m.position(0)});i(l,e.onComplete)}})}
if(F){var j,r=e.transition==="none"?0:e.speed;z.unbind("resize."+o);w.remove();w=b("LoadedContent").html(h);w.hide().appendTo(W.show()).css({width:function(){e.w=e.w||w.width();e.w=e.mw&&e.mw<e.w?e.mw:e.w;return e.w}(),overflow:e.scrolling?"auto":"hidden"}).css({height:function(){e.h=e.h||w.height();e.h=e.mh&&e.mh<e.h?e.mh:e.h;return e.h}()}).prependTo(E);W.hide();c("#"+o+"Photo").css({cssFloat:"none",marginLeft:"auto",marginRight:"auto"});da&&c("select").not(u.find("select")).filter(function(){return this.style.visibility!==
"hidden"}).css({visibility:"hidden"}).one(D,function(){this.style.visibility="inherit"});e.transition==="fade"?u.fadeTo(r,0,function(){k(0)}):k(r)}};m.load=function(h){var k,j,r,B=m.prep;P=true;x=s[q];h||(e=g(c.extend({},c.data(x,A))));i(H);i(O,e.onLoad);e.h=e.height?d(e.height,"y")-I-L:e.innerHeight&&d(e.innerHeight,"y");e.w=e.width?d(e.width,"x")-J-M:e.innerWidth&&d(e.innerWidth,"x");e.mw=e.w;e.mh=e.h;if(e.maxWidth){e.mw=d(e.maxWidth,"x")-J-M;e.mw=e.w&&e.w<e.mw?e.w:e.mw}if(e.maxHeight){e.mh=d(e.maxHeight,
"y")-I-L;e.mh=e.h&&e.h<e.mh?e.h:e.mh}k=e.href;X.show();if(e.inline){b().hide().insertBefore(c(k)[0]).one(H,function(){c(this).replaceWith(w.children())});B(c(k))}else if(e.iframe){u.one(ca,function(){var t=c("<iframe frameborder='0' style='width:100%; height:100%; border:0; display:block'/>")[0];t.name=o+ +new Date;t.src=e.href;if(!e.scrolling)t.scrolling="no";if(v)t.allowtransparency="true";c(t).appendTo(w).one(H,function(){t.src="//about:blank"})});B(" ")}else if(e.html)B(e.html);else if(f(k)){j=
new Image;j.onload=function(){var t;j.onload=null;j.id=o+"Photo";c(j).css({border:"none",display:"block",cssFloat:"left"});if(e.scalePhotos){r=function(){j.height-=j.height*t;j.width-=j.width*t};if(e.mw&&j.width>e.mw){t=(j.width-e.mw)/j.width;r()}if(e.mh&&j.height>e.mh){t=(j.height-e.mh)/j.height;r()}}if(e.h)j.style.marginTop=Math.max(e.h-j.height,0)/2+"px";if(s[1]&&(q<s.length-1||e.loop))c(j).css({cursor:"pointer"}).click(m.next);if(v)j.style.msInterpolationMode="bicubic";setTimeout(function(){B(j)},
1)};setTimeout(function(){j.src=k},1)}else k&&W.load(k,function(t,C,Q){B(C==="error"?"Request unsuccessful: "+Q.statusText:c(this).children())})};m.next=function(){if(!P){q=q<s.length-1?q+1:0;m.load()}};m.prev=function(){if(!P){q=q?q-1:s.length-1;m.load()}};m.close=function(){if(F&&!Z){Z=true;F=false;i(D,e.onCleanup);z.unbind("."+o+" ."+ba);G.fadeTo("fast",0);u.stop().fadeTo("fast",0,function(){i(H);w.remove();u.add(G).css({opacity:1,cursor:"auto"}).hide();setTimeout(function(){Z=false;i(aa,e.onClosed)},
1)})}};m.element=function(){return c(x)};m.settings=y;c(m.init)})(jQuery,this);
(function(c){c.fn.extend({flexslider:function(a){function b(l){if(!ANIMATING){ANIMATING=true;if(a.animation.toLowerCase()=="slide")if(currentSlide==0&&l==i-1)f.animate({marginLeft:"0px"},a.animationDuration,function(){f.css({marginLeft:-1*i*g.filter(":first").width()+"px"});ANIMATING=false;currentSlide=l});else currentSlide==i-1&&l==0?f.animate({marginLeft:-1*(i+1)*g.filter(":first").width()+"px"},a.animationDuration,function(){f.css({marginLeft:-1*g.filter(":first").width()+"px"});ANIMATING=false;
currentSlide=l}):f.animate({marginLeft:-1*(l+1)*g.filter(":first").width()+"px"},a.animationDuration,function(){ANIMATING=false;currentSlide=l});else if(a.animation.toLowerCase()=="show"){g.eq(currentSlide).hide();g.eq(l).show();ANIMATING=false;currentSlide=l}else{d.css({minHeight:g.eq(currentSlide).height()});g.eq(currentSlide).fadeOut(a.animationDuration,function(){g.eq(l).fadeIn(a.animationDuration,function(){ANIMATING=false;currentSlide=l});d.css({minHeight:"inherit"})})}}}a=c.extend({animation:"fade",
slideshow:true,slideshowSpeed:7E3,animationDuration:500,directionNav:true,controlNav:true,keyboardNav:true,touchSwipe:true,prevText:"Previous",nextText:"Next",randomize:false,slideToStart:0,pauseOnAction:true,pauseOnHover:false,controlsContainer:"",manualControls:""},a);var d=this,f=c(".slides",d),g=c(".slides li",d),i=g.length;ANIMATING=false;currentSlide=a.slideToStart;if(a.randomize&&i>1){g.sort(function(){return Math.round(Math.random())-0.5});f.empty().append(g)}if(a.animation.toLowerCase()==
"slide"&&i>1){d.css({overflow:"hidden"});f.append(g.filter(":first").clone().addClass("clone")).prepend(g.filter(":last").clone().addClass("clone"));f.width((i+2)*d.width()+2E3);var p=c(".slides li",d);setTimeout(function(){p.width(d.width()).css({"float":"left"}).show()},100);f.css({marginLeft:-1*(currentSlide+1)*d.width()+"px"})}else g.hide().eq(currentSlide).fadeIn(400);if(a.controlNav&&i>1){if(a.manualControls!=""&&c(a.manualControls).length>0)var n=c(a.manualControls);else{n=c('<ol class="flex-control-nav"></ol>');
for(var y=1,A=0;A<i;A++){n.append("<li><a>"+y+"</a></li>");y++}a.controlsContainer!=""&&c(a.controlsContainer).length>0?c(a.controlsContainer).append(n):d.append(n);n=c(".flex-control-nav li a")}n.eq(currentSlide).addClass("active");n.click(function(l){l.preventDefault();if(!(c(this).hasClass("active")||ANIMATING)){n.removeClass("active");c(this).addClass("active");l=n.index(c(this));b(l);a.pauseOnAction&&clearInterval(o)}})}if(a.directionNav&&i>1){a.controlsContainer!=""&&c(a.controlsContainer).length>
0?c(a.controlsContainer).append(c('<ul class="flex-direction-nav"><li><a class="prev" href="#">'+a.prevText+'</a></li><li><a class="next" href="#">'+a.nextText+"</a></li></ul>")):d.append(c('<ul class="flex-direction-nav"><li><a class="prev" href="#">'+a.prevText+'</a></li><li><a class="next" href="#">'+a.nextText+"</a></li></ul>"));c(".flex-direction-nav li a").click(function(l){l.preventDefault();if(!ANIMATING){l=c(this).hasClass("next")?currentSlide==i-1?0:currentSlide+1:currentSlide==0?i-1:currentSlide-
1;if(a.controlNav){n.removeClass("active");n.eq(l).addClass("active")}b(l);a.pauseOnAction&&clearInterval(o)}})}a.keyboardNav&&i>1&&c(document).keyup(function(l){if(!ANIMATING)if(!(l.keyCode!=39&&l.keyCode!=37)){if(l.keyCode==39)var D=currentSlide==i-1?0:currentSlide+1;else if(l.keyCode==37)D=currentSlide==0?i-1:currentSlide-1;if(a.controlNav){n.removeClass("active");n.eq(D).addClass("active")}b(D);a.pauseOnAction&&clearInterval(o)}});if(a.slideshow&&i>1){var o,T=function(){if(!ANIMATING){var l=currentSlide==
i-1?0:currentSlide+1;if(a.controlNav){n.removeClass("active");n.eq(l).addClass("active")}b(l)}};a.pauseOnHover&&d.hover(function(){clearInterval(o)},function(){o=setInterval(T,a.slideshowSpeed)});if(i>1)o=setInterval(T,a.slideshowSpeed)}a.touchSwipe&&"ontouchstart"in document.documentElement&&i>1&&d.each(function(){function l(){this.removeEventListener("touchmove",D);H=null;isMoving=false}function D(v){if(isMoving){v=H-v.touches[0].pageX;if(Math.abs(v)>=ca){l();v=v>0?currentSlide==i-1?0:currentSlide+
1:currentSlide==0?i-1:currentSlide-1;if(a.controlNav){n.removeClass("active");n.eq(v).addClass("active")}b(v);a.pauseOnAction&&clearInterval(o)}}}function aa(v){if(v.touches.length==1){H=v.touches[0].pageX;isMoving=true;this.addEventListener("touchmove",D,false)}}var H,ca=20;isMoving=false;"ontouchstart"in document.documentElement&&this.addEventListener("touchstart",aa,false)});if(a.animation.toLowerCase()=="slide"&&i>1){var O;c(window).resize(function(){p.width(d.width());f.width((i+2)*d.width()+
2E3);clearTimeout(O);O=setTimeout(function(){b(currentSlide)},300)})}}})})(jQuery);
(function(c,a){var b=function(d){return new b.prototype.init(d)};b.prototype={q:{},apiEndPoint:"/hifi/api",about:"HiFi API Version 1.0",init:function(d){this.q=$.extend(true,{},d);return this},setup:function(d){$.extend(true,b.prototype,d);return this},query:function(){return this.q},find:function(d){this.q=$.extend(true,this.q,d);return this},children:function(d){this.q=$.extend({parent:this.q},d);return this},orderBy:function(d){if(d===a)return this.q.orderBy;this.q.orderBy=d;return this},count:function(d){if(d===
a)return this.q.count;this.q.count=d;return this},versions:function(){this.q.fresh=[0,1];this.q.orderBy="-node";return this},request:function(d,f,g){if(g===a)g=this.q;if(f===a)f="GET";g=JSON.stringify(g);var i={},p=this;if(f=="GET")i.q=g;else i.data=g;$.ajax({url:this.apiEndPoint,type:f,data:i,dataType:"json",cache:false,success:function(n){p.s=true;$.isFunction(d)&&d(n.results,n.success)}});return this},each:function(d,f){return this.request(function(g){for(var i=0;i<g.length;i++){var p=g[i];$.isFunction(d)&&
d(p)}$.isFunction(f)&&f(g)})},get:function(d){this.request(d)},remove:function(d){this.update({fresh:0},d)},append:function(d,f){var g=this;return this.each(function(i){d.parent=i.id;g.create(d,f)})},promote:function(){var d=this;return this.each(function(f){d.q={id:f.id,node:f.node,fresh:1};d.update()})},create:function(d,f){$.isArray(d)||(d=[d]);for(var g=0;g<d.length;g++){var i=d[g];if(i.parent===a)throw"A parent is required for a create.";if(i.type===a)throw"A type is required for a create.";
}return this.request(f,"POST",d)},update:function(d,f){if($.isArray(d))this.request(f,"POST",d);else{var g=this;return this.request(function(i){i=$.map(i,function(p){return $.extend({id:p.id},d)});g.request(f,"POST",i)})}},destroy:function(d){this.q.fresh=0;if(this.q.id===a){console.log("An id is required for a destroy");return this}this.request(d,"POST")}};b.prototype.init.prototype=b.prototype;c.hifi=b})(window);
$(function(){$("a[rel=colorbox]").colorbox();$("#banner").closest(".container").css("zIndex","1000");$("#nav li").hover(function(){$(this).addClass("hover")},function(){$(this).removeClass("hover")});$("#slideshow").flexslider({controlNav:false,prevText:"&laquo;",nextText:"&raquo;"});$(".generated-form, #comment-form").validate();$("header form .query").each(function(){var c=$(this).attr("placeholder");$(this).val()==""&&$(this).val(c);$(this).blur(function(){$(this).val()==""&&$(this).val(c)}).focus(function(){$(this).val()==
c&&$(this).val("")})});$.validator.addMethod("query",function(c){return c!=""&&c!="Search..."},"Please enter a search term");$("#search").validate();$("<div>&nbsp;</div>").css({clear:"both",height:"1px",overflow:"hidden"}).appendTo("#container")});

