(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 h=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&&h.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,h){b[h]=d.attr(h);d.removeAttr(h)});return b},rules:function(a,b){var d=this[0];if(a){var f=c.data(d.form,"validator").settings,h=f.rules,i=c.validator.staticRules(d);switch(a){case "add":c.extend(i,c.validator.normalizeRule(b));h[d.name]=i;if(b.messages)f.messages[d.name]=c.extend(f.messages[d.name],b.messages);break;case "remove":if(!b){delete h[d.name];
return i}var m={};c.each(b.split(/\s/),function(x,z){m[z]=i[z];delete i[z]});return m}}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 h=c.data(this[0].form,"validator");f="on"+f.type.replace(/^validate/,"");h.settings[f]&&h.settings[f].call(h,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,h){c.each(h.split(/\s/),function(i,m){b[m]=f})});var d=this.settings.rules;c.each(d,function(f,h){d[f]=c.validator.normalizeRule(h)});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 h=c.validator.methods[method].call(this,a.value.replace(/\r/g,""),a,f.parameters);if(h=="dependency-mismatch")d=true;else{d=false;if(h=="pending"){this.toHide=this.toHide.not(this.errorsFor(a));return}if(!h){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 h=true;switch(typeof f.depends){case "string":h=!!c(f.depends,b.form).length;break;case "function":h=f.depends.call(b,b)}if(h)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 h=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(m){h.settings.messages[b.name].remote=
f.originalMessage;var x=m===true;if(x){var z=h.formSubmitted;h.prepareElement(b);h.formSubmitted=z;h.successList.push(b);h.showErrors()}else{z={};m=f.message=m||h.defaultMessage(b,"remote");z[b.name]=c.isFunction(m)?m(a):m;h.showErrors(z)}f.valid=x;h.stopRequest(b,x)}},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,h=false;a=a.replace(/\D/g,"");for(var i=a.length-1;i>=
0;i--){f=a.charAt(i);f=parseInt(f,10);if(h)if((f*=2)>9)f-=9;d+=f;h=!h}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 h=c(f.target);if(h.is(a))return d.apply(h,arguments)})}})})(jQuery);
(function(c,a){function b(g,k){g=g?' id="'+q+g+'"':"";k=k?' style="'+k+'"':"";return c("<div"+g+k+"/>")}function d(g,k){k=k==="x"?v.width():v.height();return typeof g==="string"?Math.round(/%/.test(g)?k/100*parseInt(g,10):parseInt(g,10)):g}function f(g){return e.photo||/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i.test(g)}function h(g){for(var k in g)if(c.isFunction(g[k])&&k.substring(0,2)!=="on")g[k]=g[k].call(u);g.rel=g.rel||u.rel||"nofollow";g.href=g.href||c(u).attr("href");g.title=g.title||
u.title;return g}function i(g,k){k&&k.call(u);c.event.trigger(g)}function m(){var g,k=q+"Slideshow_",j="click."+q,o,w;if(e.slideshow&&p[1]){o=function(){N.text(e.slideshowStop).unbind(j).bind(Y,function(){if(n<p.length-1||e.loop)g=setTimeout(l.next,e.slideshowSpeed)}).bind(Z,function(){clearTimeout(g)}).one(j+" "+U,w);s.removeClass(k+"off").addClass(k+"on");g=setTimeout(l.next,e.slideshowSpeed)};w=function(){clearTimeout(g);N.text(e.slideshowStart).unbind([Y,Z,U,j].join(" ")).one(j,o);s.removeClass(k+
"on").addClass(k+"off")};e.slideshowAuto?o():w()}}function x(g){if(!V){u=g;e=h(c.extend({},c.data(u,A)));p=c(u);n=0;if(e.rel!=="nofollow"){p=c("."+O).filter(function(){return(c.data(this,A).rel||this.rel)===e.rel});n=p.index(u);if(n===-1){p=p.add(u);n=p.length-1}}if(!C){C=K=true;s.show();if(e.returnFocus)try{u.blur();c(u).one(ia,function(){try{this.focus()}catch(j){}})}catch(k){}D.css({opacity:+e.opacity,cursor:e.overlayClose?"pointer":"auto"}).show();e.w=d(e.initialWidth,"x");e.h=d(e.initialHeight,
"y");l.position(0);aa&&v.bind("resize."+W+" scroll."+W,function(){D.css({width:v.width(),height:v.height(),top:v.scrollTop(),left:v.scrollLeft()})}).trigger("scroll."+W);i(ja,e.onOpen);ba.add(P).add(Q).add(N).add(ca).hide();da.html(e.close).show()}l.load(true)}}var z={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",q="cbox",ja=q+"_open",Z=q+"_load",Y=q+"_complete",U=q+"_cleanup",ia=
q+"_closed",X=q+"_purge",ka=q+"_loaded",L=c.browser.msie&&!c.support.opacity,aa=L&&c.browser.version<7,W=q+"_IE6",D,s,G,B,ea,fa,ga,ha,p,v,t,R,S,ca,ba,N,Q,P,da,H,I,E,F,u,n,e,C,K,V=false,l,O=q+"Element";l=c.fn[A]=c[A]=function(g,k){var j=this,o;if(!j[0]&&j.selector)return j;g=g||{};if(k)g.onComplete=k;if(!j[0]||j.selector===undefined){j=c("<a/>");g.open=true}j.each(function(){c.data(this,A,c.extend({},c.data(this,A)||z,g));c(this).addClass(O)});o=g.open;if(c.isFunction(o))o=o.call(j);o&&x(j[0]);return j};
l.init=function(){v=c(a);s=b().attr({id:A,"class":L?q+"IE":""});D=b("Overlay",aa?"position:absolute":"").hide();G=b("Wrapper");B=b("Content").append(t=b("LoadedContent","width:0; height:0; overflow:hidden"),S=b("LoadingOverlay").add(b("LoadingGraphic")),ca=b("Title"),ba=b("Current"),Q=b("Next"),P=b("Previous"),N=b("Slideshow").bind(ja,m),da=b("Close"));G.append(b().append(b("TopLeft"),ea=b("TopCenter"),b("TopRight")),b(false,"clear:left").append(fa=b("MiddleLeft"),B,ga=b("MiddleRight")),b(false,"clear:left").append(b("BottomLeft"),
ha=b("BottomCenter"),b("BottomRight"))).children().children().css({"float":"left"});R=b(false,"position:absolute; width:9999px; visibility:hidden; display:none");c("body").prepend(D,s.append(G,R));B.children().hover(function(){c(this).addClass("hover")},function(){c(this).removeClass("hover")}).addClass("hover");H=ea.height()+ha.height()+B.outerHeight(true)-B.height();I=fa.width()+ga.width()+B.outerWidth(true)-B.width();E=t.outerHeight(true);F=t.outerWidth(true);s.css({"padding-bottom":H,"padding-right":I}).hide();
Q.click(l.next);P.click(l.prev);da.click(l.close);B.children().removeClass("hover");c("."+O).live("click",function(g){if(!(g.button!==0&&typeof g.button!=="undefined"||g.ctrlKey||g.shiftKey||g.altKey)){g.preventDefault();x(this)}});D.click(function(){e.overlayClose&&l.close()});c(document).bind("keydown",function(g){if(C&&e.escKey&&g.keyCode===27){g.preventDefault();l.close()}if(C&&e.arrowKey&&!K&&p[1])if(g.keyCode===37&&(n||e.loop)){g.preventDefault();P.click()}else if(g.keyCode===39&&(n<p.length-
1||e.loop)){g.preventDefault();Q.click()}})};l.remove=function(){s.add(D).remove();c("."+O).die("click").removeData(A).removeClass(O)};l.position=function(g,k){function j(y){ea[0].style.width=ha[0].style.width=B[0].style.width=y.style.width;S[0].style.height=S[1].style.height=B[0].style.height=fa[0].style.height=ga[0].style.height=y.style.height}var o,w=Math.max(document.documentElement.clientHeight-e.h-E-H,0)/2+v.scrollTop(),r=Math.max(v.width()-e.w-F-I,0)/2+v.scrollLeft();o=s.width()===e.w+F&&s.height()===
e.h+E?0:g;G[0].style.width=G[0].style.height="9999px";s.dequeue().animate({width:e.w+F,height:e.h+E,top:w,left:r},{duration:o,complete:function(){j(this);K=false;G[0].style.width=e.w+F+I+"px";G[0].style.height=e.h+E+H+"px";k&&k()},step:function(){j(this)}})};l.resize=function(g){if(C){g=g||{};if(g.width)e.w=d(g.width,"x")-F-I;if(g.innerWidth)e.w=d(g.innerWidth,"x");t.css({width:e.w});if(g.height)e.h=d(g.height,"y")-E-H;if(g.innerHeight)e.h=d(g.innerHeight,"y");if(!g.innerHeight&&!g.height){g=t.wrapInner("<div style='overflow:auto'></div>").children();
e.h=g.height();g.replaceWith(g.children())}t.css({height:e.h});l.position(e.transition==="none"?0:e.speed)}};l.prep=function(g){function k(w){var r,y,M,J,T=p.length,la=e.loop;l.position(w,function(){function ma(){L&&s[0].style.removeAttribute("filter")}if(C){L&&j&&t.fadeIn(100);t.show();i(ka);ca.show().html(e.title);if(T>1){typeof e.current==="string"&&ba.html(e.current.replace(/\{current\}/,n+1).replace(/\{total\}/,T)).show();Q[la||n<T-1?"show":"hide"]().html(e.next);P[la||n?"show":"hide"]().html(e.previous);
r=n?p[n-1]:p[T-1];M=n<T-1?p[n+1]:p[0];e.slideshow&&N.show();if(e.preloading){J=c.data(M,A).href||M.href;y=c.data(r,A).href||r.href;J=c.isFunction(J)?J.call(M):J;y=c.isFunction(y)?y.call(r):y;if(f(J))c("<img/>")[0].src=J;if(f(y))c("<img/>")[0].src=y}}S.hide();e.transition==="fade"?s.fadeTo(o,1,function(){ma()}):ma();v.bind("resize."+q,function(){l.position(0)});i(Y,e.onComplete)}})}if(C){var j,o=e.transition==="none"?0:e.speed;v.unbind("resize."+q);t.remove();t=b("LoadedContent").html(g);t.hide().appendTo(R.show()).css({width:function(){e.w=
e.w||t.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||t.height();e.h=e.mh&&e.mh<e.h?e.mh:e.h;return e.h}()}).prependTo(B);R.hide();c("#"+q+"Photo").css({cssFloat:"none",marginLeft:"auto",marginRight:"auto"});aa&&c("select").not(s.find("select")).filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one(U,function(){this.style.visibility="inherit"});e.transition==="fade"?s.fadeTo(o,0,function(){k(0)}):
k(o)}};l.load=function(g){var k,j,o,w=l.prep;K=true;u=p[n];g||(e=h(c.extend({},c.data(u,A))));i(X);i(Z,e.onLoad);e.h=e.height?d(e.height,"y")-E-H:e.innerHeight&&d(e.innerHeight,"y");e.w=e.width?d(e.width,"x")-F-I:e.innerWidth&&d(e.innerWidth,"x");e.mw=e.w;e.mh=e.h;if(e.maxWidth){e.mw=d(e.maxWidth,"x")-F-I;e.mw=e.w&&e.w<e.mw?e.w:e.mw}if(e.maxHeight){e.mh=d(e.maxHeight,"y")-E-H;e.mh=e.h&&e.h<e.mh?e.h:e.mh}k=e.href;S.show();if(e.inline){b().hide().insertBefore(c(k)[0]).one(X,function(){c(this).replaceWith(t.children())});
w(c(k))}else if(e.iframe){s.one(ka,function(){var r=c("<iframe frameborder='0' style='width:100%; height:100%; border:0; display:block'/>")[0];r.name=q+ +new Date;r.src=e.href;if(!e.scrolling)r.scrolling="no";if(L)r.allowtransparency="true";c(r).appendTo(t).one(X,function(){r.src="//about:blank"})});w(" ")}else if(e.html)w(e.html);else if(f(k)){j=new Image;j.onload=function(){var r;j.onload=null;j.id=q+"Photo";c(j).css({border:"none",display:"block",cssFloat:"left"});if(e.scalePhotos){o=function(){j.height-=
j.height*r;j.width-=j.width*r};if(e.mw&&j.width>e.mw){r=(j.width-e.mw)/j.width;o()}if(e.mh&&j.height>e.mh){r=(j.height-e.mh)/j.height;o()}}if(e.h)j.style.marginTop=Math.max(e.h-j.height,0)/2+"px";if(p[1]&&(n<p.length-1||e.loop))c(j).css({cursor:"pointer"}).click(l.next);if(L)j.style.msInterpolationMode="bicubic";setTimeout(function(){w(j)},1)};setTimeout(function(){j.src=k},1)}else k&&R.load(k,function(r,y,M){w(y==="error"?"Request unsuccessful: "+M.statusText:c(this).children())})};l.next=function(){if(!K){n=
n<p.length-1?n+1:0;l.load()}};l.prev=function(){if(!K){n=n?n-1:p.length-1;l.load()}};l.close=function(){if(C&&!V){V=true;C=false;i(U,e.onCleanup);v.unbind("."+q+" ."+W);D.fadeTo("fast",0);s.stop().fadeTo("fast",0,function(){i(X);t.remove();s.add(D).css({opacity:1,cursor:"auto"}).hide();setTimeout(function(){V=false;i(ia,e.onClosed)},1)})}};l.element=function(){return c(u)};l.settings=z;c(l.init)})(jQuery,this);
(function(c){c.fn.nmcSlide=function(){return c(this).each(function(){c(this).append('<div class="controls"><a class="previous">&laquo;</a><a class="next">&raquo;</a></div>');var a=c(this),b=c(this).children().eq(0),d=b.children(),f=a.find(".controls"),h=d.eq(0).width();b.css("width",h*d.length+"px");a.data("position",0).data("slidewidth",h).data("size",d.length-1);a.bind("previous",function(){a.trigger("advance",[a.data("position")-1])}).bind("next",function(){a.trigger("advance",[a.data("position")+
1])}).bind("advance",function(i,m){if(m<0)m=a.data("size");if(m>a.data("size"))m=0;a.data("position",m);var x=-(m*a.data("slidewidth"));b.animate({left:x+"px"})});f.find(".previous").click(function(){a.trigger("previous")});f.find(".next").click(function(){a.trigger("next")})})}})(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,h){if(h===a)h=this.q;if(f===a)f="GET";h=JSON.stringify(h);var i={},m=this;if(f=="GET")i.q=h;else i.data=h;$.ajax({url:this.apiEndPoint,type:f,data:i,dataType:"json",cache:false,success:function(x){m.s=true;$.isFunction(d)&&d(x.results,x.success)}});return this},each:function(d,f){return this.request(function(h){for(var i=0;i<h.length;i++){var m=h[i];$.isFunction(d)&&
d(m)}$.isFunction(f)&&f(h)})},get:function(d){this.request(d)},remove:function(d){this.update({fresh:0},d)},append:function(d,f){var h=this;return this.each(function(i){d.parent=i.id;h.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 h=0;h<d.length;h++){var i=d[h];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 h=this;return this.request(function(i){i=$.map(i,function(m){return $.extend({id:m.id},d)});h.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();$("#nav li").hover(function(){$(this).addClass("hover")},function(){$(this).removeClass("hover")});$(".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")});

