/**jQuery validation plug-in 1.5.1
 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/ http://docs.jquery.com/Plugins/Validation
 * Copyright 2006 - 2009 Joern Zaefferer
 * $Id: jquery.validate.js 6096 2009-01-12 14:12:04Z joern.zaefferer $
 * Dual licensed under the MIT and GPL licenses:  http://www.opensource.org/licenses/mit-license.php http://www.gnu.org/licenses/gpl.html
 * edits by Andy Blackwell to allow jQuery objects to be used as ignore type, and fix to a bug with dependTypes[string]
 */
(function($){$.extend($.fn,{validate:function(c){if(!this.length){c&&c.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing");return}var d=$.data(this[0],'validator');if(d){return d}d=new $.validator(c,this[0]);$.data(this[0],'validator',d);if(d.settings.onsubmit){this.find("input, button").filter(".cancel").click(function(){d.cancelSubmit=true});this.submit(function(a){if(d.settings.debug)a.preventDefault();function b(){if(d.settings.submitHandler){d.settings.submitHandler.call(d,d.currentForm);return false}return true}if(d.cancelSubmit){d.cancelSubmit=false;return b()}if(d.form()){if(d.pendingRequest){d.formSubmitted=true;return false}return b()}else{d.focusInvalid();return false}})}return d},valid:function(){if($(this[0]).is('form')){return this.validate().form()}else{var a=false;var b=$(this[0].form).validate();this.each(function(){a|=b.element(this)});return a}},removeAttrs:function(c){var d={},e=this;$.each(c.split(/\s/),function(a,b){d[b]=e.attr(b);e.removeAttr(b)});return d},rules:function(c,d){var e=this[0];if(c){var f=$.data(e.form,'validator').settings;var g=f.rules;var h=$.validator.staticRules(e);switch(c){case"add":$.extend(h,$.validator.normalizeRule(d));g[e.name]=h;if(d.messages)f.messages[e.name]=$.extend(f.messages[e.name],d.messages);break;case"remove":if(!d){delete g[e.name];return h}var i={};$.each(d.split(/\s/),function(a,b){i[b]=h[b];delete h[b]});return i}}var j=$.validator.normalizeRules($.extend({},$.validator.metadataRules(e),$.validator.classRules(e),$.validator.attributeRules(e),$.validator.staticRules(e)),e);if(j.required){var k=j.required;delete j.required;j=$.extend({required:k},j)}return j}});$.extend($.expr[":"],{blank:function(a){return!$.trim(a.value)},filled:function(a){return!!$.trim(a.value)},unchecked:function(a){return!a.checked}});$.format=function(a,b){if(arguments.length==1)return function(){var c=$.makeArray(arguments);c.unshift(a);return $.format.apply(this,c)};if(arguments.length>2&&b.constructor!=Array){b=$.makeArray(arguments).slice(1)}if(b.constructor!=Array){b=[b]}$.each(b,function(i,n){if(a.replace){a=a.replace(new RegExp("\\{"+i+"\\}","g"),n)}});return a};$.validator=function(a,b){this.settings=$.extend({},$.validator.defaults,a);this.currentForm=b;this.init()};$.extend($.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",errorElement:"label",focusInvalid:true,errorContainer:$([]),errorLabelContainer:$([]),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.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)},highlight:function(a,b){$(a).addClass(b)},unhighlight:function(a,b){$(a).removeClass(b)}},setDefaults:function(a){$.extend($.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).",dateDE:"Bitte geben Sie ein gŸltiges Datum ein.",number:"Please enter a valid number.",numberDE:"Bitte geben Sie eine Nummer ein.",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:$.format("Please enter no more than {0} characters."),minlength:$.format("Please enter at least {0} characters."),rangelength:$.format("Please enter a value between {0} and {1} characters long."),range:$.format("Please enter a value between {0} and {1}."),max:$.format("Please enter a value less than or equal to {0}."),min:$.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){this.labelContainer=$(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||$(this.currentForm);this.containers=$(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var j=(this.groups={});$.each(this.settings.groups,function(c,d){$.each(d.split(/\s/),function(a,b){j[b]=c})});var k=this.settings.rules;$.each(k,function(a,b){k[a]=$.validator.normalizeRule(b)});function l(a){var b=$.data(this[0].form,"validator");b.settings["on"+a.type]&&b.settings["on"+a.type].call(b,this[0])}$(this.currentForm).delegate("focusin focusout keyup",":text, :password, :file, select, textarea",l).delegate("click",":radio, :checkbox",l);if(this.settings.invalidHandler)$(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){this.checkForm();$.extend(this.submitted,this.errorMap);this.invalid=$.extend({},this.errorMap);if(!this.valid())$(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid()},checkForm:function(){this.prepareForm();for(var i=0,a=(this.currentElements=this.elements());a[i];i++){this.check(a[i])}return this.valid()},element:function(a){a=this.clean(a);this.lastElement=a;this.prepareElement(a);this.currentElements=$(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(b){if(b){$.extend(this.errorMap,b);this.errorList=[];for(var c in b){this.errorList.push({message:b[c],element:this.findByName(c)[0]})}this.successList=$.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){if($.fn.resetForm)$(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;for(var i 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{$(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus()}catch(e){}}},findLastActive:function(){var a=this.lastActive;return a&&$.grep(this.errorList,function(n){return n.element.name==a.name}).length==1&&a},elements:function(){var a=this,b={};return $([]).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($(this).rules()))return false;b[this.name]=true;return true})},clean:function(a){return $(a)[0]},errors:function(){return $(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext)},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=$([]);this.toHide=$([]);this.formSubmitted=false;this.currentElements=$([])},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=$(a).rules();var c=false;for(method in b){var d={method:method,parameters:b[method]};try{var f=$.validator.methods[method].call(this,a.value,a,d.parameters);if(f=="dependency-mismatch"){c=true;continue}c=false;if(f=="pending"){this.toHide=this.toHide.not(this.errorsFor(a));return}if(!f){this.formatAndAdd(a,d);return false}}catch(e){this.settings.debug&&window.console&&console.log("exception occured when checking element "+a.id+", check the '"+d.method+"' method");throw e;}}if(c)return;if(this.objectLength(b))this.successList.push(a);return true},customMetaMessage:function(a,b){if(!$.metadata)return;var c=this.settings.meta?$(a).metadata()[this.settings.meta]:$(a).metadata();return c&&c.messages&&c.messages[b]},customMessage:function(a,b){var m=this.settings.messages[a];return m&&(m.constructor==String?m:m[b])},findDefined:function(){for(var i=0;i<arguments.length;i++){if(arguments[i]!==undefined)return arguments[i]}return undefined},defaultMessage:function(a,b){return this.findDefined(this.customMessage(a.name,b),this.customMetaMessage(a,b),!this.settings.ignoreTitle&&a.title||undefined,$.validator.messages[b],"<strong>Warning: No message defined for "+a.name+"</strong>")},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b.method);if(typeof c=="function")c=c.call(this,b.parameters,a);this.errorList.push({message:c,element:a});this.errorMap[a.name]=c;this.submitted[a.name]=c},addWrapper:function(a){if(this.settings.wrapper)a=a.add(a.parents(this.settings.wrapper));return a},defaultShowErrors:function(){for(var i=0;this.errorList[i];i++){var a=this.errorList[i];this.settings.highlight&&this.settings.highlight.call(this,a.element,this.settings.errorClass);this.showLabel(a.element,a.message)}if(this.errorList.length){this.toShow=this.toShow.add(this.containers)}if(this.settings.success){for(var i=0;this.successList[i];i++){this.showLabel(this.successList[i])}}if(this.settings.unhighlight){for(var i=0,b=this.validElements();b[i];i++){this.settings.unhighlight.call(this,b[i],this.settings.errorClass)}}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 $(this.errorList).map(function(){return this.element})},showLabel:function(e,f){var g=this.errorsFor(e);if(g.length){g.removeClass().addClass(this.settings.errorClass);g.attr("generated")&&g.html(f)}else{g=$("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(e),generated:true}).addClass(this.settings.errorClass).html(f||"");if(this.settings.wrapper){g=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()}if(!this.labelContainer.append(g).length)this.settings.errorPlacement?this.settings.errorPlacement(g,$(e)):g.insertAfter(e)}if(!f&&this.settings.success){g.text("");typeof this.settings.success=="string"?g.addClass(this.settings.success):this.settings.success(g)}this.toShow=this.toShow.add(g)},errorsFor:function(a){return this.errors().filter("[for='"+this.idOrName(a)+"']")},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(c){var d=this.currentForm;return $(document.getElementsByName(c)).map(function(a,b){return b.form==d&&b.name==c&&b||null})},getLength:function(a,b){switch(b.nodeName.toLowerCase()){case'select':return $("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,b){return a},"string":function(a,b){return $(a).length>0},"function":function(a,b){return a(b)}},optional:function(a){return!$.validator.methods.required.call(this,$.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()){$(this.currentForm).submit()}else if(!b&&this.pendingRequest==0&&this.formSubmitted){$(this.currentForm).triggerHandler("invalid-form",[this])}},previousValue:function(a){return $.data(a,"previousValue")||$.data(a,"previousValue",previous={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:$.extend(this.classRuleSettings,a)},classRules:function(a){var b={};var c=$(a).attr('class');c&&$.each(c.split(' '),function(){if(this in $.validator.classRuleSettings){$.extend(b,$.validator.classRuleSettings[this])}});return b},attributeRules:function(a){var b={};var c=$(a);for(method in $.validator.methods){var d=c.attr(method);if(d){b[method]=d}}if(b.maxlength&&/-1|2147483647|524288/.test(b.maxlength)){delete b.maxlength}return b},metadataRules:function(a){if(!$.metadata)return{};var b=$.data(a.form,'validator').settings.meta;return b?$(a).metadata()[b]:$(a).metadata()},staticRules:function(a){var b={};var c=$.data(a.form,'validator');if(c.settings.rules){b=$.validator.normalizeRule(c.settings.rules[a.name])||{}}return b},normalizeRules:function(d,e){$.each(d,function(a,b){if(b===false){delete d[a];return}if(b.param||b.depends){var c=true;switch(typeof b.depends){case"string":c=!!$(b.depends,e.form).length;break;case"function":c=b.depends.call(e,e);break}if(c){d[a]=b.param!==undefined?b.param:true}else{delete d[a]}}});$.each(d,function(a,b){d[a]=$.isFunction(b)?b(e):b});$.each(['minlength','maxlength','min','max'],function(){if(d[this]){d[this]=Number(d[this])}});$.each(['rangelength','range'],function(){if(d[this]){d[this]=[Number(d[this][0]),Number(d[this][1])]}});if($.validator.autoCreateRanges){if(d.min&&d.max){d.range=[d.min,d.max];delete d.min;delete d.max}if(d.minlength&&d.maxlength){d.rangelength=[d.minlength,d.maxlength];delete d.minlength;delete d.maxlength}}if(d.messages){delete d.messages}return d},normalizeRule:function(a){if(typeof a=="string"){var b={};$.each(a.split(/\s/),function(){b[this]=true});a=b}return a},addMethod:function(a,b,c){$.validator.methods[a]=b;$.validator.messages[a]=c;if(b.length<3){$.validator.addClassRules(a,$.validator.normalizeRule(a))}},methods:{required:function(a,b,c){if(!this.depend(c,b))return"dependency-mismatch";switch(b.nodeName.toLowerCase()){case'select':var d=$("option:selected",b);return d.length>0&&(b.type=="select-multiple"||($.browser.msie&&!(d[0].attributes['value'].specified)?d[0].text:d[0].value).length>0);case'input':if(this.checkable(b))return this.getLength(a,b)>0;default:return $.trim(a).length>0}},remote:function(d,e,f){if(this.optional(e))return"dependency-mismatch";var g=this.previousValue(e);if(!this.settings.messages[e.name])this.settings.messages[e.name]={};this.settings.messages[e.name].remote=typeof g.message=="function"?g.message(d):g.message;f=typeof f=="string"&&{url:f}||f;if(g.old!==d){g.old=d;var h=this;this.startRequest(e);var i={};i[e.name]=d;$.ajax($.extend(true,{url:f,mode:"abort",port:"validate"+e.name,dataType:"json",data:i,success:function(a){if(a){var b=h.formSubmitted;h.prepareElement(e);h.formSubmitted=b;h.successList.push(e);h.showErrors()}else{var c={};c[e.name]=a||h.defaultMessage(e,"remote");h.showErrors(c)}g.valid=a;h.stopRequest(e,a)}},f));return"pending"}else if(this.pending[e.name]){return"pending"}return g.valid},minlength:function(a,b,c){return this.optional(b)||this.getLength($.trim(a),b)>=c},maxlength:function(a,b,c){return this.optional(b)||this.getLength($.trim(a),b)<=c},rangelength:function(a,b,c){var d=this.getLength($.trim(a),b);return this.optional(b)||(d>=c[0]&&d<=c[1])},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||(a>=c[0]&&a<=c[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)},dateDE:function(a,b){return this.optional(b)||/^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(a)},numberDE: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 c=0,d=0,e=false;if(a.replace){a=a.replace(/\D/g,"")}for(n=a.length-1;n>=0;n--){var f=a.charAt(n);var d=parseInt(f,10);if(e){if((d*=2)>9)d-=9}c+=d;e=!e}return(c%10)==0},accept:function(a,b,c){c=typeof c=="string"?c:"png|jpe?g|gif";return this.optional(b)||a.match(new RegExp(".("+c+")$","i"))},equalTo:function(a,b,c){return a==$(c).val()}}})})(jQuery);(function($){var c=$.ajax;var d={};$.ajax=function(a){a=$.extend(a,$.extend({},$.ajaxSettings,a));var b=a.port;if(a.mode=="abort"){if(d[b]){d[b].abort()}return(d[b]=c.apply(this,arguments))}return c.apply(this,arguments)}})(jQuery);(function($){$.each({focus:'focusin',blur:'focusout'},function(a,b){$.event.special[b]={setup:function(){if($.browser.msie)return false;this.addEventListener(a,$.event.special[b].handler,true)},teardown:function(){if($.browser.msie)return false;this.removeEventListener(a,$.event.special[b].handler,true)},handler:function(e){arguments[0]=$.event.fix(e);arguments[0].type=b;return $.event.handle.apply(this,arguments)}}});$.extend($.fn,{delegate:function(c,d,e){return this.bind(c,function(a){var b=$(a.target);if(b.is(d)){return e.apply(b,arguments)}})},triggerEvent:function(a,b){return this.triggerHandler(a,[$.event.fix({type:a,target:b})])}})})(jQuery);

// VALIDATORS ----->>
$.validator.addMethod(
	"commaSeparatedAlphaNum",
	function(value,element,params){
		return this.optional(element) || /^([a-z0-9-]+(,)?\s*)+$/im.test(value);
	},
	$.format("Please enter comma separated values. Allowed: letters, digits, hyphen).")
);
$.validator.addMethod("exactLength",function(value,element,param){return this.optional(element)||value.length==param;},$.format("Must be exactly {0} characters long."));jQuery.validator.addMethod("maxWords",function(value,element,params){return this.optional(element)||value.match(/\b\w+\b/g).length<params;},$.format("Please enter {0} words or less."));jQuery.validator.addMethod("minWords",function(value,element,params){return this.optional(element)||value.match(/\b\w+\b/g).length>=params;},$.format("Please enter at least {0} words."));jQuery.validator.addMethod("letterswithbasicpunc",function(value,element){return this.optional(element)||/^[a-z-.,()'\"\s]+$/i.test(value);},"Letters or punctuation only please");jQuery.validator.addMethod("alphanumeric",function(value,element){return this.optional(element)||/^\w+$/i.test(value);},"Letters &amp; Numbers only please");jQuery.validator.addMethod("lettersonly",function(value,element){return this.optional(element)||/^[a-z]+$/i.test(value);},"Letters only please");jQuery.validator.addMethod("nowhitespace",function(value,element){return this.optional(element)||/^\S+$/i.test(value);},"No white space please");jQuery.validator.addMethod("ziprange",function(value,element){return this.optional(element)||/^90[2-5]\d\{2}-\d{4}$/.test(value);},"Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx");jQuery.validator.addMethod("phone",function(phone_number,element){if(phone_number.replace){phone_number=phone_number.replace(/\s+/g,"");}return this.optional(element)||phone_number.length>9&&phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);},"Please specify a valid phone number");
/** jQuery Field Plug-in
 * Copyright 2007 Dan G. Switzer
 * Dual licensed under the MIT and GPL licenses: http://www.opensource.org/licenses/mit-license.php http://www.gnu.org/licenses/gpl.html
 * Revision: 13
 * Version: 0.9.1
 */
(function($){var defaults={delimiter:",",checkboxRangeKeyBinding:"shiftKey",useArray:false};$.Field={version:"0.9.1",setDefaults:function(options){$.extend(defaults,options)},setProperty:function(prop,value){defaults[prop]=value},getProperty:function(prop){return defaults[prop]}};$.fn.fieldArray=function(v){var t=$type(v);if(t=="undefined")return getValue(this);if(t=="string"||t=="number"){v=v.toString().split(defaults.delimiter);t="array"}if(t=="array")return setValue(this,v);return this};$.fn.getValue=function(){return getValue(this).join(defaults.delimiter)};var getValue=function(jq){var v=[];jq.each(function(lc){var t=getType(this);switch(t){case"checkbox":case"radio":if(this.checked)v.push(this.value);break;case"select":if(this.type=="select-one"){v.push((this.selectedIndex==-1)?"":getOptionVal(this[this.selectedIndex]))}else{for(var i=0;i<this.length;i++){if(this[i].selected){v.push(getOptionVal(this[i]))}}}break;case"text":v.push(this.value);break}});return v};$.fn.setValue=function(v){return setValue(this,(!v?[""]:v.toString().split(defaults.delimiter)))};var setValue=function(jq,v){jq.each(function(lc){var t=getType(this),x;switch(t){case"checkbox":case"radio":if(valueExists(v,this.value))this.checked=true;else this.checked=false;break;case"select":var bSelectOne=(this.type=="select-one");var bKeepLooking=true;for(var i=0;i<this.length;i++){x=getOptionVal(this[i]);bSelectItem=valueExists(v,x);if(bSelectItem){this[i].selected=true;if(bSelectOne){bKeepLooking=false;break}}else if(!bSelectOne)this[i].selected=false}if(bSelectOne&&bKeepLooking&&!!this[0]){this[0].selected=true}break;case"text":this.value=v.join(defaults.delimiter);break}});return jq};$.fn.formHash=function(inHash){var bGetHash=(arguments.length==0);var stHash={};this.filter("form").each(function(){var els=this.elements,el,n,stProcessed={},jel;for(var i=0,elsMax=els.length;i<elsMax;i++){el=els[i];n=el.name;if(!n||stProcessed[n])continue;var jel=$(el.tagName.toLowerCase()+"[name='"+n+"']",this);if(bGetHash){stHash[n]=jel[defaults.useArray?"fieldArray":"getValue"]()}else if(typeof inHash[n]!="undefined"){jel[defaults.useArray?"fieldArray":"setValue"](inHash[n])}stProcessed[n]=true}});return(bGetHash)?stHash:this};$.fn.autoAdvance=function(callback){return this.find(":text,:password,textarea").bind("keyup",function(e){var $field=$(this),iMaxLength=parseInt($field.attr("maxlength"),10);if(isNaN(iMaxLength)||("|9|16|37|38|39|40|".indexOf("|"+e.keyCode+"|")>-1))return true;if($field.getValue().length>=$field.attr("maxlength")){var $next=$field.moveNext().select();if($.isFunction(callback))callback.apply($field,[$next])}})};$.fn.moveNext=function(){return this.moveIndex("next")};$.fn.movePrev=function(){return this.moveIndex("prev")};$.fn.moveIndex=function(i){var aPos=getFieldPosition(this);if(i=="next")i=aPos[0]+1;else if(i=="prev")i=aPos[0]-1;if(i<0)i=aPos[1].length-1;else if(i>=aPos[1].length)i=0;return $(aPos[1][i]).trigger("focus")};$.fn.getTabIndex=function(){return getFieldPosition(this)[0]};var getFieldPosition=function(jq){var $field=jq.filter("input select textarea").get(0),aTabIndex=[],aPosIndex=[];if(!$field)return[-1,[]];$.each($field.form.elements,function(i,o){if(o.tagName!="FIELDSET"&&!o.disabled){if(o.tabIndex>0){aTabIndex.push(o)}else{aPosIndex.push(o)}}});aTabIndex.sort(function(a,b){return a.tabIndex-b.tabIndex});aTabIndex=$.merge(aTabIndex,aPosIndex);for(var i=0;i<aTabIndex.length;i++){if(aTabIndex[i]==$field)return[i,aTabIndex]}return[-1,aTabIndex]};$.fn.limitSelection=function(limit,options){var opt=jQuery.extend((limit&&limit.constructor==Object?limit:{limit:limit,onsuccess:function(limit){return true},onfailure:function(limit){alert("You can only select a maximum a of "+limit+" items.");return false}}),options);var self=this;var getCount=function(el){if(el.type=="select-multiple")return $("option:selected",self).length;else if(el.type=="checkbox")return self.filter(":checked").length;return 0};var undoSelect=function(){setValue(self,getValue(self).slice(0,opt.limit));return opt.onfailure.apply(self,[opt.limit])};return this.bind((!!self[0]&&self[0].type=="select-multiple")?"change":"click",function(){if(getCount(this)>opt.limit){return(this.type=="select-multiple")?undoSelect():opt.onfailure.apply(self,[opt.limit])}opt.onsuccess.apply(self,[opt.limit]);return true})};$.fn.createCheckboxRange=function(callback){var iLastSelection=0,self=this,bCallback=$.isFunction(callback);if(bCallback)this.each(function(){callback.apply(this,[$(this).is(":checked")])});return this.each(function(){if(this.type!="checkbox")return false;var el=this;var updateLastCheckbox=function(e){iLastSelection=self.index(e.target)};var checkboxClicked=function(e){var bSetChecked=this.checked,current=self.index(e.target),low=Math.min(iLastSelection,current),high=Math.max(iLastSelection,current);if(bCallback)$(this).each(function(){callback.apply(this,[bSetChecked])});if(!e[defaults.checkboxRangeKeyBinding])return;for(var i=low;i<high;i++){var item=self.eq(i).attr("checked",bSetChecked?"checked":"");if(bCallback)callback.apply(item[0],[bSetChecked])}return true};$(this).unbind("blur",updateLastCheckbox).unbind("click",checkboxClicked).bind("blur",updateLastCheckbox).bind("click",checkboxClicked);return true})};var getType=function(el){var t=el.type;switch(t){case"select":case"select-one":case"select-multiple":t="select";break;case"text":case"hidden":case"textarea":case"password":case"button":case"submit":case"submit":t="text";break;case"checkbox":case"radio":t=t;break}return t};var getOptionVal=function(el){return jQuery.browser.msie&&!(el.attributes['value'].specified)?el.text:el.value};var valueExists=function(a,v){return($.inArray(v,a)>-1)};var $type=function(o){var t=(typeof o).toLowerCase();if(t=="object"){if(o instanceof Array)t="array";else if(o instanceof Date)t="date"}return t};var $isType=function(o,v){return($type(o)==String(v).toLowerCase())}})(jQuery);
/** jQuery Calculation Plug-in
 * Copyright 2007 Dan G. Switzer
 * Dual licensed under the MIT and GPL licenses: http://www.opensource.org/licenses/mit-license.php http://www.gnu.org/licenses/gpl.html
 * Revision: 7
 * Version: 0.4.02
 */
(function($){var defaults={reNumbers:/(-|-\$)?(\d+(,\d{3})*(\.\d{1,})?|\.\d{1,})/g,useFieldPlugin:(!!$.fn.getValue),onParseError:null,onParseClear:null};$.Calculation={version:"0.4.02",setDefaults:function(options){$.extend(defaults,options)}};$.fn.parseNumber=function(options){var aValues=[];options=$.extend(options,defaults);this.each(function(){var $el=$(this),sMethod=($el.is(":input")?(defaults.useFieldPlugin?"getValue":"val"):"text"),v=$el[sMethod]().match(defaults.reNumbers,"");if(v==null){v=0;if(jQuery.isFunction(options.onParseError))options.onParseError.apply($el,[sMethod]);$.data($el[0],"calcParseError",true)}else{v=v[0].replace(/[^0-9.\-]/g,"");if($.data($el[0],"calcParseError")&&jQuery.isFunction(options.onParseClear)){options.onParseClear.apply($el,[sMethod]);$.data($el[0],"calcParseError",false)}}aValues.push(parseFloat(v,10))});return aValues};$.fn.calc=function(expr,vars,cbFormat,cbDone){var $this=this,exprValue="",$el,parsedVars={},tmp,sMethod,hVars,bIsError=false;for(var k in vars){if(!!vars[k]&&!!vars[k].jquery){parsedVars[k]=vars[k].parseNumber()}else{parsedVars[k]=vars[k]}}this.each(function(i,el){$el=$(this);sMethod=($el.is(":input")?(defaults.useFieldPlugin?"setValue":"val"):"text");hVars={};for(var k in parsedVars){if(typeof parsedVars[k]=="number"){hVars[k]=parsedVars[k]}else if(typeof parsedVars[k]=="string"){hVars[k]=parseFloat(parsedVars[k],10)}else if(!!parsedVars[k]&&(parsedVars[k]instanceof Array)){tmp=(parsedVars[k].length==$this.length)?i:0;hVars[k]=parsedVars[k][tmp]}if(isNaN(hVars[k]))hVars[k]=0}try{exprValue=eval(expr.replace(/([A-Za-z]+)/g,"hVars.$1"));if(!!cbFormat)exprValue=cbFormat(exprValue)}catch(e){exprValue=e;bIsError=true}$el[sMethod](exprValue.toString())});if(!!cbDone)cbDone(this);return this};$.each(["sum","avg","min","max"],function(i,method){$.fn[method]=function(bind,selector){if(arguments.length==0)return math[method](this.parseNumber());var bSelOpt=selector&&(selector.constructor==Object)&&!(selector instanceof jQuery);var opt=bind&&bind.constructor==Object?bind:{bind:bind||"keyup",selector:(!bSelOpt)?selector:null,oncalc:null};if(bSelOpt)opt=jQuery.extend(opt,selector);if(!!opt.selector)opt.selector=$(opt.selector);var self=this,sMethod,doCalc=function(){var value=math[method](self.parseNumber(opt));if(!!opt.selector){sMethod=(opt.selector.is(":input")?(defaults.useFieldPlugin?"setValue":"val"):"text");opt.selector[sMethod](value.toString())}if(jQuery.isFunction(opt.oncalc))opt.oncalc.apply(self,[value,opt])};doCalc();return self.bind(opt.bind,doCalc)}});var math={sum:function(a){var total=0;$.each(a,function(i,v){total+=v});return total},avg:function(a){return math.sum(a)/a.length},min:function(a){return Math.min.apply(Math,a)},max:function(a){return Math.max.apply(Math,a)}}})(jQuery);
/** date.js : for datePicker */
Date.dayNames=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];Date.abbrDayNames=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];Date.monthNames=['January','February','March','April','May','June','July','August','September','October','November','December'];Date.abbrMonthNames=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];Date.firstDayOfWeek=1;Date.format='dd/mm/yyyy';Date.fullYearStart='20';(function(){function e(a,b){if(!Date.prototype[a]){Date.prototype[a]=b}};e("isLeapYear",function(){var y=this.getFullYear();return(y%4==0&&y%100!=0)||y%400==0});e("isWeekend",function(){return this.getDay()==0||this.getDay()==6});e("isWeekDay",function(){return!this.isWeekend()});e("getDaysInMonth",function(){return[31,(this.isLeapYear()?29:28),31,30,31,30,31,31,30,31,30,31][this.getMonth()]});e("getDayName",function(a){return a?Date.abbrDayNames[this.getDay()]:Date.dayNames[this.getDay()]});e("getMonthName",function(a){return a?Date.abbrMonthNames[this.getMonth()]:Date.monthNames[this.getMonth()]});e("getDayOfYear",function(){var a=new Date("1/1/"+this.getFullYear());return Math.floor((this.getTime()-a.getTime())/86400000)});e("getWeekOfYear",function(){return Math.ceil(this.getDayOfYear()/7)});e("setDayOfYear",function(a){this.setMonth(0);this.setDate(a);return this});e("addYears",function(a){this.setFullYear(this.getFullYear()+a);return this});e("addMonths",function(a){var b=this.getDate();this.setMonth(this.getMonth()+a);if(b>this.getDate())this.addDays(-this.getDate());return this});e("addDays",function(a){this.setDate(this.getDate()+a);return this});e("addHours",function(a){this.setHours(this.getHours()+a);return this});e("addMinutes",function(a){this.setMinutes(this.getMinutes()+a);return this});e("addSeconds",function(a){this.setSeconds(this.getSeconds()+a);return this});e("zeroTime",function(){this.setMilliseconds(0);this.setSeconds(0);this.setMinutes(0);this.setHours(0);return this});e("asString",function(){var r=Date.format;return r.split('yyyy').join(this.getFullYear()).split('yy').join((this.getFullYear()+'').substring(2)).split('mmm').join(this.getMonthName(true)).split('mm').join(g(this.getMonth()+1)).split('dd').join(g(this.getDate()))});Date.fromString=function(s){var f=Date.format;var d=new Date('01/01/1977');var a=f.indexOf('yyyy');if(a>-1){d.setFullYear(Number(s.substr(a,4)))}else{d.setFullYear(Number(Date.fullYearStart+s.substr(f.indexOf('yy'),2)))}var b=f.indexOf('mmm');if(b>-1){var c=s.substr(b,3);for(var i=0;i<Date.abbrMonthNames.length;i++){if(Date.abbrMonthNames[i]==c)break}d.setMonth(i)}else{d.setMonth(Number(s.substr(f.indexOf('mm'),2))-1)}d.setDate(Number(s.substr(f.indexOf('dd'),2)));if(isNaN(d.getTime())){return false}return d};var g=function(a){var s='0'+a;return s.substring(s.length-2)}})();
/** Copyright (c) 2008 Kelvin Luck (http://www.kelvinluck.com/)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * $Id: jquery.datePicker.js 15 2008-12-17 04:40:18Z kelvin.luck $
 **/
 Date.format = 'mm/dd/yyyy';
(function($){$.fn.extend({renderCalendar:function(s){var b=function(a){return document.createElement(a)};s=$.extend({},$.fn.datePicker.defaults,s);if(s.showHeader!=$.dpConst.SHOW_HEADER_NONE){var c=$(b('tr'));for(var i=Date.firstDayOfWeek;i<Date.firstDayOfWeek+7;i++){var e=i%7;var f=Date.dayNames[e];c.append(jQuery(b('th')).attr({'scope':'col','abbr':f,'title':f,'class':(e==0||e==6?'weekend':'weekday')}).html(s.showHeader==$.dpConst.SHOW_HEADER_SHORT?f.substr(0,1):f))}};var g=$(b('table')).attr({'cellspacing':2,'className':'jCalendar'}).append((s.showHeader!=$.dpConst.SHOW_HEADER_NONE?$(b('thead')).append(c):b('thead')));var h=$(b('tbody'));var j=(new Date()).zeroTime();var k=s.month==undefined?j.getMonth():s.month;var l=s.year||j.getFullYear();var m=new Date(l,k,1);var n=Date.firstDayOfWeek-m.getDay()+1;if(n>1)n-=7;var o=Math.ceil(((-1*n+1)+m.getDaysInMonth())/7);m.addDays(n-1);var p=function(){if(s.hoverClass){$(this).addClass(s.hoverClass)}};var q=function(){if(s.hoverClass){$(this).removeClass(s.hoverClass)}};var w=0;while(w++<o){var r=jQuery(b('tr'));for(var i=0;i<7;i++){var t=m.getMonth()==k;var d=$(b('td')).text(m.getDate()+'').attr('className',(t?'current-month ':'other-month ')+(m.isWeekend()?'weekend ':'weekday ')+(t&&m.getTime()==j.getTime()?'today ':'')).hover(p,q);if(s.renderCallback){s.renderCallback(d,m,k,l)}r.append(d);m.addDays(1)}h.append(r)}g.append(h);return this.each(function(){$(this).empty().append(g)})},datePicker:function(s){if(!$.event._0)$.event._0=[];s=$.extend({},$.fn.datePicker.defaults,s);return this.each(function(){var c=$(this);var f=true;if(!this._1){this._1=$.event.guid++;$.event._0[this._1]=new x(this);f=false}if(s.inline){s.createButton=false;s.displayClose=false;s.closeOnSelect=false;c.empty()}var g=$.event._0[this._1];g.init(s);if(!f&&s.createButton){g.button=$('<a href="#" class="dp-choose-date" title="'+$.dpText.TEXT_CHOOSE_DATE+'">'+$.dpText.TEXT_CHOOSE_DATE+'</a>').bind('click',function(){c.dpDisplay(this);this.blur();return false;});c.after(g.button)}if(!f&&c.is(':text')){c.bind('dateSelected',function(e,a,b){this.value=a.asString()}).bind('change',function(){if(this.value!=''){var d=Date.fromString(this.value);if(d){g.setSelected(d,true,true)}}});if(s.clickInput){c.bind('click',function(){c.dpDisplay()})}var d=Date.fromString(this.value);if(this.value!=''&&d){g.setSelected(d,true,true)}}c.addClass('dp-applied')})},dpSetDisabled:function(s){return u.call(this,'setDisabled',s)},dpSetStartDate:function(d){return u.call(this,'setStartDate',d)},dpSetEndDate:function(d){return u.call(this,'setEndDate',d)},dpGetSelected:function(){var c=z(this[0]);if(c){return c.getSelected()}return null},dpSetSelected:function(d,v,m){if(v==undefined)v=true;if(m==undefined)m=true;return u.call(this,'setSelected',Date.fromString(d),v,m,true)},dpSetDisplayedMonth:function(m,y){return u.call(this,'setDisplayedMonth',Number(m),Number(y),true)},dpDisplay:function(e){return u.call(this,'display',e)},dpSetRenderCallback:function(a){return u.call(this,'setRenderCallback',a)},dpSetPosition:function(v,h){return u.call(this,'setPosition',v,h)},dpSetOffset:function(v,h){return u.call(this,'setOffset',v,h)},dpClose:function(){return u.call(this,'_2',false,this[0])},_3:function(){}});var u=function(f,a,b,d,e){return this.each(function(){var c=z(this);if(c){c[f](a,b,d,e)}})};function x(a){this.ele=a;this.displayedMonth=null;this.displayedYear=null;this.startDate=null;this.endDate=null;this.showYearNavigation=null;this.closeOnSelect=null;this.displayClose=null;this.rememberViewedMonth=null;this.selectMultiple=null;this.verticalPosition=null;this.horizontalPosition=null;this.verticalOffset=null;this.horizontalOffset=null;this.button=null;this.renderCallback=[];this.selectedDates={};this.inline=null;this.context='#dp-popup'};$.extend(x.prototype,{init:function(s){this.setStartDate(s.startDate);this.setEndDate(s.endDate);this.setDisplayedMonth(Number(s.month),Number(s.year));this.setRenderCallback(s.renderCallback);this.showYearNavigation=s.showYearNavigation;this.closeOnSelect=s.closeOnSelect;this.displayClose=s.displayClose;this.rememberViewedMonth=s.rememberViewedMonth;this.selectMultiple=s.selectMultiple;this.verticalPosition=s.verticalPosition;this.horizontalPosition=s.horizontalPosition;this.hoverClass=s.hoverClass;this.setOffset(s.verticalOffset,s.horizontalOffset);this.inline=s.inline;if(this.inline){this.context=this.ele;this.display()}},setStartDate:function(d){if(d){this.startDate=Date.fromString(d)}if(!this.startDate){this.startDate=(new Date()).zeroTime()}this.setDisplayedMonth(this.displayedMonth,this.displayedYear)},setEndDate:function(d){if(d){this.endDate=Date.fromString(d)}if(!this.endDate){this.endDate=(new Date('12/31/2999'))}if(this.endDate.getTime()<this.startDate.getTime()){this.endDate=this.startDate}this.setDisplayedMonth(this.displayedMonth,this.displayedYear)},setPosition:function(v,h){this.verticalPosition=v;this.horizontalPosition=h},setOffset:function(v,h){this.verticalOffset=parseInt(v)||0;this.horizontalOffset=parseInt(h)||0},setDisabled:function(s){$e=$(this.ele);$e[s?'addClass':'removeClass']('dp-disabled');if(this.button){$but=$(this.button);$but[s?'addClass':'removeClass']('dp-disabled');$but.attr('title',s?'':$.dpText.TEXT_CHOOSE_DATE)}if($e.is(':text')){$e.attr('disabled',s?'disabled':'')}},setDisplayedMonth:function(m,y,a){if(this.startDate==undefined||this.endDate==undefined){return}var s=new Date(this.startDate.getTime());s.setDate(1);var e=new Date(this.endDate.getTime());e.setDate(1);var t;if((!m&&!y)||(isNaN(m)&&isNaN(y))){t=new Date().zeroTime();t.setDate(1)}else if(isNaN(m)){t=new Date(y,this.displayedMonth,1)}else if(isNaN(y)){t=new Date(this.displayedYear,m,1)}else{t=new Date(y,m,1)}if(t.getTime()<s.getTime()){t=s}else if(t.getTime()>e.getTime()){t=e}var b=this.displayedMonth;var c=this.displayedYear;this.displayedMonth=t.getMonth();this.displayedYear=t.getFullYear();if(a&&(this.displayedMonth!=b||this.displayedYear!=c)){this._4();$(this.ele).trigger('dpMonthChanged',[this.displayedMonth,this.displayedYear])}},setSelected:function(d,v,a,b){if(v==this.isSelected(d)){return}if(this.selectMultiple==false){this.selectedDates={};$('td.selected',this.context).removeClass('selected')}if(a&&(this.displayedMonth!=d.getMonth()||this.displayedYear!=d.getFullYear())){this.setDisplayedMonth(d.getMonth(),d.getFullYear(),true)}this.selectedDates[d.toString()]=v;var c='td.';c+=d.getMonth()==this.displayedMonth?'current-month':'other-month';c+=':contains("'+d.getDate()+'")';var e;$(c,this.ele).each(function(){if($(this).text()==d.getDate()){e=$(this);e[v?'addClass':'removeClass']('selected')}});if(b){var s=this.isSelected(d);$e=$(this.ele);var f=Date.fromString(d.asString());$e.trigger('dateSelected',[f,e,s]);$e.trigger('change')}},isSelected:function(d){return this.selectedDates[d.toString()]},getSelected:function(){var r=[];for(s in this.selectedDates){if(this.selectedDates[s]==true){r.push(Date.parse(s))}}return r},display:function(d){if($(this.ele).is('.dp-disabled'))return;d=d||this.ele;var c=this;var f=$(d);var g=f.offset();var h;var i;var j;var k;if(c.inline){h=$(this.ele);i={'id':'calendar-'+this.ele._1,'className':'dp-popup dp-popup-inline'};k={}}else{h=$('body');i={'id':'dp-popup','className':'dp-popup'};k={'top':g.top+c.verticalOffset,'left':g.left+c.horizontalOffset};var l=function(e){var a=e.target;var b=$('#dp-popup')[0];while(true){if(a==b){return true}else if(a==document){c._2();return false}else{a=$(a).parent()[0]}}};this._5=l;this._2(true)}if(!c.rememberViewedMonth){var m=this.getSelected()[0];if(m){m=new Date(m);this.setDisplayedMonth(m.getMonth(),m.getFullYear(),false)}}h.append($('<div></div>').attr(i).css(k).append($('<h2></h2>'),$('<div class="dp-nav-prev"></div>').append($('<a class="dp-nav-prev-year" href="#" title="'+$.dpText.TEXT_PREV_YEAR+'">&lt;&lt;</a>').bind('click',function(){return c._6.call(c,this,0,-1)}),$('<a class="dp-nav-prev-month" href="#" title="'+$.dpText.TEXT_PREV_MONTH+'">&lt;</a>').bind('click',function(){return c._6.call(c,this,-1,0)})),$('<div class="dp-nav-next"></div>').append($('<a class="dp-nav-next-year" href="#" title="'+$.dpText.TEXT_NEXT_YEAR+'">&gt;&gt;</a>').bind('click',function(){return c._6.call(c,this,0,1)}),$('<a class="dp-nav-next-month" href="#" title="'+$.dpText.TEXT_NEXT_MONTH+'">&gt;</a>').bind('click',function(){return c._6.call(c,this,1,0)})),$('<div></div>').attr('className','dp-calendar')).bgIframe());var n=this.inline?$('.dp-popup',this.context):$('#dp-popup');if(this.showYearNavigation==false){$('.dp-nav-prev-year, .dp-nav-next-year',c.context).css('display','none')}if(this.displayClose){n.append($('<a href="#" id="dp-close">'+$.dpText.TEXT_CLOSE+'</a>').bind('click',function(){c._2();return false}))}c._7();$(this.ele).trigger('dpDisplayed',n);if(!c.inline){if(this.verticalPosition==$.dpConst.POS_BOTTOM){n.css('top',g.top+f.height()-n.height()+c.verticalOffset)}if(this.horizontalPosition==$.dpConst.POS_RIGHT){n.css('left',g.left+f.width()-n.width()+c.horizontalOffset)}$(document).bind('mousedown',this._5)}},setRenderCallback:function(a){if(a==null)return;if(a&&typeof(a)=='function'){a=[a]}this.renderCallback=this.renderCallback.concat(a)},cellRender:function(b,e,f,g){var c=this.dpController;var d=new Date(e.getTime());b.bind('click',function(){var a=$(this);if(!a.is('.disabled')){c.setSelected(d,!a.is('.selected')||!c.selectMultiple,false,true);if(c.closeOnSelect){c._2()}}});if(c.isSelected(d)){b.addClass('selected')}for(var i=0;i<c.renderCallback.length;i++){c.renderCallback[i].apply(this,arguments)}},_6:function(a,m,y){if(!$(a).is('.disabled')){this.setDisplayedMonth(this.displayedMonth+m,this.displayedYear+y,true)}a.blur();return false},_4:function(){this._8();this._7()},_7:function(){$('h2',this.context).html(Date.monthNames[this.displayedMonth]+' '+this.displayedYear);$('.dp-calendar',this.context).renderCalendar({month:this.displayedMonth,year:this.displayedYear,renderCallback:this.cellRender,dpController:this,hoverClass:this.hoverClass});if(this.displayedYear==this.startDate.getFullYear()&&this.displayedMonth==this.startDate.getMonth()){$('.dp-nav-prev-year',this.context).addClass('disabled');$('.dp-nav-prev-month',this.context).addClass('disabled');$('.dp-calendar td.other-month',this.context).each(function(){var a=$(this);if(Number(a.text())>20){a.addClass('disabled')}});var d=this.startDate.getDate();$('.dp-calendar td.current-month',this.context).each(function(){var a=$(this);if(Number(a.text())<d){a.addClass('disabled')}})}else{$('.dp-nav-prev-year',this.context).removeClass('disabled');$('.dp-nav-prev-month',this.context).removeClass('disabled');var d=this.startDate.getDate();if(d>20){var b=new Date(this.startDate.getTime());b.addMonths(1);if(this.displayedYear==b.getFullYear()&&this.displayedMonth==b.getMonth()){$('dp-calendar td.other-month',this.context).each(function(){var a=$(this);if(Number(a.text())<d){a.addClass('disabled')}})}}}if(this.displayedYear==this.endDate.getFullYear()&&this.displayedMonth==this.endDate.getMonth()){$('.dp-nav-next-year',this.context).addClass('disabled');$('.dp-nav-next-month',this.context).addClass('disabled');$('.dp-calendar td.other-month',this.context).each(function(){var a=$(this);if(Number(a.text())<14){a.addClass('disabled')}});var d=this.endDate.getDate();$('.dp-calendar td.current-month',this.context).each(function(){var a=$(this);if(Number(a.text())>d){a.addClass('disabled')}})}else{$('.dp-nav-next-year',this.context).removeClass('disabled');$('.dp-nav-next-month',this.context).removeClass('disabled');var d=this.endDate.getDate();if(d<13){var c=new Date(this.endDate.getTime());c.addMonths(-1);if(this.displayedYear==c.getFullYear()&&this.displayedMonth==c.getMonth()){$('.dp-calendar td.other-month',this.context).each(function(){var a=$(this);if(Number(a.text())>d){a.addClass('disabled')}})}}}},_2:function(a,b){if(!b||b==this.ele){$(document).unbind('mousedown',this._5);this._8();$('#dp-popup a').unbind();$('#dp-popup').empty().remove();if(!a){$(this.ele).trigger('dpClosed',[this.getSelected()])}}},_8:function(){$('.dp-calendar td',this.context).unbind();$('.dp-calendar',this.context).empty()}});$.dpConst={SHOW_HEADER_NONE:0,SHOW_HEADER_SHORT:1,SHOW_HEADER_LONG:2,POS_TOP:0,POS_BOTTOM:1,POS_LEFT:0,POS_RIGHT:1};$.dpText={TEXT_PREV_YEAR:'Previous year',TEXT_PREV_MONTH:'Previous month',TEXT_NEXT_YEAR:'Next year',TEXT_NEXT_MONTH:'Next month',TEXT_CLOSE:'Close',TEXT_CHOOSE_DATE:'Choose date'};$.dpVersion='$Id: jquery.datePicker.js 21 2009-01-11 19:45:13Z kelvin.luck $';$.fn.datePicker.defaults={month:undefined,year:undefined,showHeader:$.dpConst.SHOW_HEADER_SHORT,startDate:undefined,endDate:undefined,inline:false,renderCallback:null,createButton:true,showYearNavigation:true,closeOnSelect:true,displayClose:false,selectMultiple:false,clickInput:false,rememberViewedMonth:true,verticalPosition:$.dpConst.POS_TOP,horizontalPosition:$.dpConst.POS_LEFT,verticalOffset:0,horizontalOffset:0,hoverClass:'dp-hover'};function z(a){if(a._1)return $.event._0[a._1];return false};if($.fn.bgIframe==undefined){$.fn.bgIframe=function(){return this}};$(window).bind('unload',function(){var a=$.event._0||[];for(var i in a){$(a[i].ele)._3()}})})(jQuery);

// For determining if an object is truly empty
function isEmpty(obj){for(var i in obj){ if(obj.hasOwnProperty(i)){return false;}}return true;}

/*
 * Autocomplete - jQuery plugin 1.0.2
 *
 * Copyright (c) 2007 Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, Jšrn Zaefferer
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.autocomplete.js 5747 2008-06-25 18:30:55Z joern.zaefferer $
 *
 */
if(emails === undefined){
	var emails = [];
}
(function(A){A.fn.extend({autocomplete:function(B,C){var D=typeof B=="string";C=A.extend({},A.Autocompleter.defaults,{url:D?B:null,data:D?null:B,delay:D?A.Autocompleter.defaults.delay:10,max:C&&!C.scroll?10:150},C);C.highlight=C.highlight||function(E){return E};C.formatMatch=C.formatMatch||C.formatItem;return this.each(function(){new A.Autocompleter(this,C)})},result:function(B){return this.bind("result",B)},search:function(B){return this.trigger("search",[B])},flushCache:function(){return this.trigger("flushCache")},setOptions:function(B){return this.trigger("setOptions",[B])},unautocomplete:function(){return this.trigger("unautocomplete")}});A.Autocompleter=function(L,G){var C={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var B=A(L).attr("autocomplete","off").addClass(G.inputClass);var J;var P="";var M=A.Autocompleter.Cache(G);var E=0;var U;var X={mouseDownOnSelect:false};var R=A.Autocompleter.Select(G,L,D,X);var W;A.browser.opera&&A(L.form).bind("submit.autocomplete",function(){if(W){W=false;return false}});B.bind((A.browser.opera?"keypress":"keydown")+".autocomplete",function(Y){U=Y.keyCode;switch(Y.keyCode){case C.UP:Y.preventDefault();if(R.visible()){R.prev()}else{T(0,true)}break;case C.DOWN:Y.preventDefault();if(R.visible()){R.next()}else{T(0,true)}break;case C.PAGEUP:Y.preventDefault();if(R.visible()){R.pageUp()}else{T(0,true)}break;case C.PAGEDOWN:Y.preventDefault();if(R.visible()){R.pageDown()}else{T(0,true)}break;case G.multiple&&A.trim(G.multipleSeparator)==","&&C.COMMA:case C.TAB:case C.RETURN:if(D()){Y.preventDefault();W=true;return false}break;case C.ESC:R.hide();break;default:clearTimeout(J);J=setTimeout(T,G.delay);break}}).focus(function(){E++}).blur(function(){E=0;if(!X.mouseDownOnSelect){S()}}).click(function(){if(E++>1&&!R.visible()){T(0,true)}}).bind("search",function(){var Y=(arguments.length>1)?arguments[1]:null;function Z(d,c){var a;if(c&&c.length){for(var b=0;b<c.length;b++){if(c[b].result.toLowerCase()==d.toLowerCase()){a=c[b];break}}}if(typeof Y=="function"){Y(a)}else{B.trigger("result",a&&[a.data,a.value])}}A.each(H(B.val()),function(a,b){F(b,Z,Z)})}).bind("flushCache",function(){M.flush()}).bind("setOptions",function(){A.extend(G,arguments[1]);if("data" in arguments[1]){M.populate()}}).bind("unautocomplete",function(){R.unbind();B.unbind();A(L.form).unbind(".autocomplete")});function D(){var Z=R.selected();if(!Z){return false}var Y=Z.result;P=Y;if(G.multiple){var a=H(B.val());if(a.length>1){Y=a.slice(0,a.length-1).join(G.multipleSeparator)+G.multipleSeparator+Y}Y+=G.multipleSeparator}B.val(Y);V();B.trigger("result",[Z.data,Z.value]);return true}function T(a,Z){if(U==C.DEL){R.hide();return }var Y=B.val();if(!Z&&Y==P){return }P=Y;Y=I(Y);if(Y.length>=G.minChars){B.addClass(G.loadingClass);if(!G.matchCase){Y=Y.toLowerCase()}F(Y,K,V)}else{N();R.hide()}}function H(Z){if(!Z){return[""]}var a=Z.split(G.multipleSeparator);var Y=[];A.each(a,function(b,c){if(A.trim(c)){Y[b]=A.trim(c)}});return Y}function I(Y){if(!G.multiple){return Y}var Z=H(Y);return Z[Z.length-1]}function Q(Y,Z){if(G.autoFill&&(I(B.val()).toLowerCase()==Y.toLowerCase())&&U!=C.BACKSPACE){B.val(B.val()+Z.substring(I(P).length));A.Autocompleter.Selection(L,P.length,P.length+Z.length)}}function S(){clearTimeout(J);J=setTimeout(V,200)}function V(){var Y=R.visible();R.hide();clearTimeout(J);N();if(G.mustMatch){B.search(function(Z){if(!Z){if(G.multiple){var a=H(B.val()).slice(0,-1);B.val(a.join(G.multipleSeparator)+(a.length?G.multipleSeparator:""))}else{B.val("")}}})}if(Y){A.Autocompleter.Selection(L,L.value.length,L.value.length)}}function K(Z,Y){if(Y&&Y.length&&E){N();R.display(Y,Z);Q(Z,Y[0].value);R.show()}else{V()}}function F(Z,b,Y){if(!G.matchCase){Z=Z.toLowerCase()}var a=M.load(Z);if(a&&a.length){b(Z,a)}else{if((typeof G.url=="string")&&(G.url.length>0)){var c={timestamp:+new Date()};A.each(G.extraParams,function(d,e){c[d]=typeof e=="function"?e():e});A.ajax({mode:"abort",port:"autocomplete"+L.name,dataType:G.dataType,url:G.url,data:A.extend({q:I(Z),limit:G.max},c),success:function(e){var d=G.parse&&G.parse(e)||O(e);M.add(Z,d);b(Z,d)}})}else{R.emptyList();Y(Z)}}}function O(b){var Y=[];var a=b.split("\n");for(var Z=0;Z<a.length;Z++){var c=A.trim(a[Z]);if(c){c=c.split("|");Y[Y.length]={data:c,value:c[0],result:G.formatResult&&G.formatResult(c,c[0])||c[0]}}}return Y}function N(){B.removeClass(G.loadingClass)}};A.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:10,max:100,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(B){return B[0]},formatMatch:null,autoFill:false,width:0,multiple:false,multipleSeparator:", ",highlight:function(C,B){return C.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+B.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>")},scroll:true,scrollHeight:180};A.Autocompleter.Cache=function(C){var F={};var D=0;function H(K,J){if(!C.matchCase){K=K.toLowerCase()}var I=K.indexOf(J);if(I==-1){return false}return I==0||C.matchContains}function G(J,I){if(D>C.cacheLength){B()}if(!F[J]){D++}F[J]=I}function E(){if(!C.data){return false}var J={},I=0;if(!C.url){C.cacheLength=1}J[""]=[];for(var L=0,K=C.data.length;L<K;L++){var O=C.data[L];O=(typeof O=="string")?[O]:O;var N=C.formatMatch(O,L+1,C.data.length);if(N===false){continue}var M=N.charAt(0).toLowerCase();if(!J[M]){J[M]=[]}var P={value:N,data:O,result:C.formatResult&&C.formatResult(O)||N};J[M].push(P);if(I++<C.max){J[""].push(P)}}A.each(J,function(Q,R){C.cacheLength++;G(Q,R)})}setTimeout(E,25);function B(){F={};D=0}return{flush:B,add:G,populate:E,load:function(L){if(!C.cacheLength||!D){return null}if(!C.url&&C.matchContains){var K=[];for(var I in F){if(I.length>0){var M=F[I];A.each(M,function(O,N){if(H(N.value,L)){K.push(N)}})}}return K}else{if(F[L]){return F[L]}else{if(C.matchSubset){for(var J=L.length-1;J>=C.minChars;J--){var M=F[L.substr(0,J)];if(M){var K=[];A.each(M,function(O,N){if(H(N.value,L)){K[K.length]=N}});return K}}}}}return null}}};A.Autocompleter.Select=function(E,J,L,P){var I={ACTIVE:"ac_over"};var K,F=-1,R,M="",S=true,C,O;function N(){if(!S){return }C=A("<div/>").hide().addClass(E.resultsClass).css("position","absolute").appendTo(document.body);O=A("<ul/>").appendTo(C).mouseover(function(T){if(Q(T).nodeName&&Q(T).nodeName.toUpperCase()=="LI"){F=A("li",O).removeClass(I.ACTIVE).index(Q(T));A(Q(T)).addClass(I.ACTIVE)}}).click(function(T){A(Q(T)).addClass(I.ACTIVE);L();J.focus();return false}).mousedown(function(){P.mouseDownOnSelect=true}).mouseup(function(){P.mouseDownOnSelect=false});if(E.width>0){C.css("width",E.width)}S=false}function Q(U){var T=U.target;while(T&&T.tagName!="LI"){T=T.parentNode}if(!T){return[]}return T}function H(T){K.slice(F,F+1).removeClass(I.ACTIVE);G(T);var V=K.slice(F,F+1).addClass(I.ACTIVE);if(E.scroll){var U=0;K.slice(0,F).each(function(){U+=this.offsetHeight});if((U+V[0].offsetHeight-O.scrollTop())>O[0].clientHeight){O.scrollTop(U+V[0].offsetHeight-O.innerHeight())}else{if(U<O.scrollTop()){O.scrollTop(U)}}}}function G(T){F+=T;if(F<0){F=K.size()-1}else{if(F>=K.size()){F=0}}}function B(T){return E.max&&E.max<T?E.max:T}function D(){O.empty();var U=B(R.length);for(var V=0;V<U;V++){if(!R[V]){continue}var W=E.formatItem(R[V].data,V+1,U,R[V].value,M);if(W===false){continue}var T=A("<li/>").html(E.highlight(W,M)).addClass(V%2==0?"ac_even":"ac_odd").appendTo(O)[0];A.data(T,"ac_data",R[V])}K=O.find("li");if(E.selectFirst){K.slice(0,1).addClass(I.ACTIVE);F=0}if(A.fn.bgiframe){O.bgiframe()}}return{display:function(U,T){N();R=U;M=T;D()},next:function(){H(1)},prev:function(){H(-1)},pageUp:function(){if(F!=0&&F-8<0){H(-F)}else{H(-8)}},pageDown:function(){if(F!=K.size()-1&&F+8>K.size()){H(K.size()-1-F)}else{H(8)}},hide:function(){C&&C.hide();K&&K.removeClass(I.ACTIVE);F=-1},visible:function(){return C&&C.is(":visible")},current:function(){return this.visible()&&(K.filter("."+I.ACTIVE)[0]||E.selectFirst&&K[0])},show:function(){var V=A(J).offset();C.css({width:typeof E.width=="string"||E.width>0?E.width:A(J).width(),top:V.top+J.offsetHeight,left:V.left}).show();if(E.scroll){O.scrollTop(0);O.css({maxHeight:E.scrollHeight,overflow:"auto"});if(A.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var T=0;K.each(function(){T+=this.offsetHeight});var U=T>E.scrollHeight;O.css("height",U?E.scrollHeight:T);if(!U){K.width(O.width()-parseInt(K.css("padding-left"))-parseInt(K.css("padding-right")))}}}},selected:function(){var T=K&&K.filter("."+I.ACTIVE).removeClass(I.ACTIVE);return T&&T.length&&A.data(T[0],"ac_data")},emptyList:function(){O&&O.empty()},unbind:function(){C&&C.remove()}}};A.Autocompleter.Selection=function(D,E,C){if(D.createTextRange){var B=D.createTextRange();B.collapse(true);B.moveStart("character",E);B.moveEnd("character",C);B.select()}else{if(D.setSelectionRange){D.setSelectionRange(E,C)}else{if(D.selectionStart){D.selectionStart=E;D.selectionEnd=C}}}D.focus()}})(jQuery);

function addFormField() {
var id = document.getElementById("id").value;
$("#divTxt").append("<p id='row" + id + "'><label for='txt" + id + "'>Field " + id + " <input type='text' size='20' name='txt[]' id='txt" + id + "'> <a href='#' onClick='removeFormField(\"#row" + id + "\"); return false;'>Remove</a><p>");

id = (id - 1) + 2;
document.getElementById('id').value = id;
}

function removeFormField(id) {
$(id).remove();
}

$(function(){
	$.metadata.setType('class');
	$validator = $('form.validate').validate({
		meta: "rules",
		ignore: '.ignore, .ignore :input',
		errorPlacement: function(error, element) {
			var $parent = element.parent();
			var count = 5;
			while($parent.is('label,p,select,ul,:input') && count--){
				$parent = $parent.parent();
			}
			error.css({display:'inline-block'});
			if ($parent.not('label,p,select,ul')) {
				if(!$.browser.msie){
					error.appendTo($parent).slideDown();
				}else{
					error.appendTo($parent).show();
				}
			} else {
				if(!$.browser.msie){
					error.insertAfter(element).slideDown(300);
				}else{
					error.insertAfter(element).show();
				}
			}
			$('<br/>').insertBefore(error);
		}
	});
	
	$("form.validate :input:not(:submit,textarea)").bind("keypress", function(e) {
		if (e.keyCode == 13) {
			return false;
		} else {
			return true;
		}
	});
	
	var expandErrors = function(form){
		$.metadata.setType('class');
		if(
			form !== undefined
			&& $(form).is('form') 
			&& $(form).hasClass('validate') 
			&& !$(form).valid()
		){
			var $content = $(".formSteps li .content");
			if( $content.length > 0 && $content.find('.error:input').not($('.ignore,.ignore :input')).length > 0 ){
				if(!$.browser.msie){
					$content.slideDown(300);
				}else{
					$content.show();
				}
			}
		}
		return false;
	};
	
	var setExpanable = function(){
		// $('ul.formSteps li .header .expandContractIcon').remove();
		var headers = $('ul.formSteps li h5.header').not('.current');
		$.each(headers,function(i,el){
			var $el = $(el);
				$el.unbind('click')
					.attr('title', 'Click to Expand / Contract This Step')
					.css({cursor: 'pointer'})
					.click(function(){
						if(!$.browser.msie){
							$(this).closest('li').find('.content').slideToggle(300);
						}else{
							$(this).closest('li').find('.content').toggle();
						}
					});
		});
	};
	setExpanable();
	
	
	$('ul.formSteps li:first').eq(0)
		.addClass('current')
		.find('.content')
		.show()
			.append('<p class="prevNextButtons"><a href="#prev" class="prevStep" tabIndex="999">&laquo; Back</a><a href="#next" class="nextStep"></a></p>');
	$('.expandedByDefault .prevNextButtons').hide();
	$('#FormStepsNav .expandAll').unbind().click(function(e){
		e.preventDefault();
		if(!$.browser.msie){
			$('.formSteps li .content').slideDown(300);
		}else{
			$('.formSteps li .content').show();
		}
		$('.prevNextButtons').hide();
	});
	
	$('#FormStepsNav .collapse').unbind().click(function(e){
		e.preventDefault();
		if(!$.browser.msie){
			$('.formSteps li .content:not(.current)').slideUp(300);
			$('.formSteps li .content.current').slideDown(300);
		}else{
			$('.formSteps li .content:not(.current)').hide();
			$('.formSteps li .content.current').show();
		}
		$('.prevNextButtons').show();
	});
	
	$('#FormStepsNav .showErrors').click(function(e){
		e.preventDefault();
		$.metadata.setType('class');
		var $form = $('form.validate:has(.formSteps)');
		if(!$form.is('form') || !$form.hasClass('validate')){
			return false;
		}
		expandErrors($form);
	});
	
	$('ul.formSteps a.prevStep, ul.formSteps a.nextStep').click(function(e){
		e.preventDefault();
		var $this = $(this);
		var $current_content = $this.closest('div.content');
		$.metadata.setType('class');
		if( ! $current_content.is('div.content') ) {
			return false; // something's wrong with the html markup
		}
		var $current_li = $current_content.parent();
		// make sure we actually get the <li>
		count = 5;
		while ( ! $current_li.is('ul.formSteps > li') && count-- ) {
			$current_li = $current_li.parent();
		}
		if ( ! $current_li.is('ul.formSteps > li') ) {
			return false; // something's wrong with the html markup
		}
		var current_step_completed = true;
		if ( $this.hasClass('disableFields') ) {
			$current_li.find(':input').addClass('ignore');
		}
		if ( $this.hasClass('nextStep') && ! $this.hasClass('bypassValidation') ) {
			// Validate the current steps fields
			$.each($current_li.find(':input:not(.ignore)'), function() {
				var $this = $(this);
				if ( $this.closest('.ignore').length < 1 && $validator.element($this) === false ) {
					current_step_completed = false;
				}
			});
		}
		if ($this.hasClass('prevStep') || current_step_completed === true) {
			if ( $this.hasClass('nextStep') ) {
				var $target_li = $current_li.next('li');
			} else {
				var $target_li = $current_li.prev('li');
			}
			if ( ! $target_li.is('li') ) {
				return false; // something's wrong with the html markup
			}
			var $target_content = $target_li.find(' > div.content:first'); // next_step content <div class="content">
			if ( ! $target_content.is('div.content') ) {
				return false; // something's wrong with the html markup
			}
			
			$('ul.formSteps li .content')
				.hide()
				.add('ul.formSteps li')
				.removeClass('current');
			var $prev_next_buttons = $('ul.formSteps .prevNextButtons').eq(0).clone(true);
			$('ul.formSteps .prevNextButtons').remove();
			
			if(!$.browser.msie){
				$target_content
					.append($prev_next_buttons)
					.slideDown(400, function(){
						$(this)
							.add($target_li)
							.addClass('current');
					});
			}else{
				$target_content
					.append($prev_next_buttons)
					.show()
					.add($target_li)
					.addClass('current');
			}
		}
		setExpanable();
	});
	
	$('form.validate')
		.submit(function(e){
			$.metadata.setType('class');
			expandErrors(this);
			setExpanable();
		});	
		
	$('input.image')
		.click(function(e){
			
			if($('#po_numbers').val() == '') {
				alert('Please include a P.O. number. Thanks.');
				e.preventDefault();
			} 
			
		});
		
	$.each($('form.validate:first :input:first,form.validate a.nextStep'),function(i,el){
		var $this = $(el);
		if ($this == $('form.validate :input')) {
			$this.focus();
		}
	});
	
	// Add new ones like: class="sumVal {sum:'fieldName'}" it will update itself with the sum of name='fieldName[]' values in the current form
	$.each($('.sumVal'),function(){
		$.metadata.setType('class');
		var data = $.metadata.get($(this));
		if(data.sum !== undefined){
			$(this).closest('form').find(":input[name^="+data.sum+"]").sum('keyup change blur',this);
		}
	});
	
	// Add new ones like: 
	// <li class="row">Default Row <a class="addRow" href="#">Add Row</a></li>
	// <li class="row jsHide ignore">Row Content</li> // Initially hidden rows (when Javascript is on anyway)
	$('.row .addRow')
		.css({'cursor':'pointer'})
		.click(function(e){
			e.preventDefault();
			$(this).parents('.row:first').siblings('.row.jsHide:first,.row.hide:first').fadeIn().removeClass('jsHide hide ignore');
		});
	$('.row .hideRow')
		.css({'cursor':'pointer'})
		.click(function(e){
			e.preventDefault();
			$(this).closest('.row').fadeOut().addClass('jsHide hide ignore').find(':input[type=text]').val('').keyup();;
		});
	
	$('form tr.clickable.checkbox, form tr.clickable.radio')
		.find('th:not(:has(a)),td:not(:has(a))')
			.css({'cursor':'pointer'})
			.click(function(e){
				if(this === e.target){
					$(this).closest('tr').find(':radio:first, :checkbox:first').click();
				}
			});
	
	function setInputValues(names_values,$target) {
			if ($target.length > 0) {
				for (name in names_values) {
					var $checkbox = '';
					var $radio = '';
					var $input = '';
					if ($target.is(':input')) {
						if ($target.is(':checkbox[name^="' + name + '"]:not(:hidden)')) {
							$checkbox = $target;
						}
						if ($target.is(':radio[name^="' + name + '"][value=' + names_values[name] + ']:not(:hidden)')) {
							$radio = $target;
						}
						if ($target.not(':hidden,:checkbox,:radio') && $target.is('[name^="' + name + '"]') ) {
							$input = $target;
						}
						
					} else {
						$checkbox = $target.find(':checkbox[name^="' + name + '"]:not(:hidden)');
						$radio = $target.find(':radio[name^="' + name + '"][value=' + names_values[name] + ']:not(:hidden)');
//						$input = $target.find(':input[name^="' + name + '"]').not(':hidden,:checkbox,:radio');
						$input = $target.find(':input[name^="' + name + '"]').not(':checkbox,:radio');
					}
					if ($checkbox.length > 0) {
						var $hidden = $target.find( $(':input:hidden[name^="' + name + '"]') );
						if ($hidden.length > 0) {
							$checkbox.attr('checked', '');
						}
						if ($checkbox.is(':checkbox[value=' + names_values[name] + ']')) {
							$checkbox.attr('checked', 'checked');
						}else{
							$checkbox.attr('checked', '');
						}
					}
					if ($radio.length > 0) {
						$radio.attr('checked', 'checked');
					}
					if ($input.length > 0) {
						$input.val(names_values[name]);
					}
				}
			}
		$.metadata.setType('class');
	}
	
	$('a.thickboxParentSelector').bind('click',function(e){
		e.preventDefault();
		var $this = $(this);
		var parent_target_id = $this.attr('href');
		$.metadata.setType('attr','rel');
		var parent_target_value = $.metadata.get($this);
		$.metadata.setType('class');
		parent.window.tb_remove();
		if (parent_target_id !== undefined && parent_target_value !== undefined) {
			var $target = parent.window.$(parent_target_id);
			setInputValues(parent_target_value,$target);
		}
	});
	
	function addOptionsToParent ( parent_target_id, optionHTML, parent_target_class ) {
		// in dev, needs some work
		var $parent_target = parent.$('#'+parent_target_id);
		var $select = '';
		if ($parent_target.is(':select')) {
			$select = $parent_target;
		} else {
			if (parent_target_class !== undefined && parent_target_class.length > 0) {
				$select = $parent_target.find('.'+parent_target_class+':select');
			}else{
				$select = $parent_target.find(':select');
			}
		}
		if ( $select.length > 0 ) {
			$(optionHTML).appendTo($select);
		}
		parent.tb_remove();
	}
	
	function populateTarget(el) {
		var $this = $(el);
		if($this.length < 1){
			return false;
		}
		var data;
		var $target;
		$.metadata.setType('class');
		var names_values = {};
		data = $.metadata.get($this);
		if ( ! isEmpty(data) ) {
			if( data.PopulateTarget.Selector !== undefined) {
				$target = $(data.PopulateTarget.Selector);
			}
			if( data.PopulateTarget.NamesValues !== undefined 
				 && ! isEmpty(data.PopulateTarget.NamesValues) 
			){
				names_values = data.PopulateTarget.NamesValues;
			}
		}
		if ($target === undefined || $target.length < 1) {
			return false;
		}
		if( isEmpty(names_values) && $this.find(':selected').length > 0 ){
			data = $.metadata.get($this.find(':selected'));
			if( ! isEmpty(data)
				&& data.PopulateTarget.NamesValues !== undefined
			){
				names_values = data.PopulateTarget.NamesValues;
			}
		}else if( isEmpty(names_values) && $this.find(':checked').length > 0 ){
			data = $.metadata.get($this.find(':checked'));
			if( ! isEmpty(data)
				&& data.PopulateTarget.NamesValues !== undefined
			){
				names_values = data.PopulateTarget.NamesValues;
			}
		}
		if (! isEmpty(names_values)) {
			setInputValues(names_values, $target);
		}
	}
	
	$(':input.onChangePopulateTarget').bind('change',function(){
		populateTarget(this);
	});
	
	$(':input.onChangeFilledPopulateTarget').bind('change',function() {
		if($(this).filter(':filled').length > 0){
			populateTarget(this);
		}
	});
	
	$(':input.onChangeBlankPopulateTarget').bind('change',function() {
		if($(this).filter(':blank').length > 0){
			populateTarget(this);
		}
	});
	
	$('#CheckForHazmatGuarantee :checkbox[name^=guaranteed_service], #CheckForHazmatGuarantee :checkbox[name^=contains_hazmat]').click(function(){
		if(this.checked){
			if($(this).is(':checkbox[name^=guaranteed_service]')){
				var $target = $('#CheckForHazmatGuarantee :checkbox[name^=contains_hazmat]');
				if($target.attr('checked') != ''){
					$target.attr('checked','');
					alert("Haz mat shipment cannot be guaranteed. The 'Haz Mat' selection will be unchecked");
				}
			}else{
				var $target = $('#CheckForHazmatGuarantee :checkbox[name^=guaranteed_service]');
				if($target.attr('checked') != ''){
					$target.attr('checked','');
					alert("Haz mat shipment cannot be guaranteed. The 'Guaranteed' selection will be unchecked");
				}
			}
		}
	});	
	

	// auto complete for emails
	// http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
    if(emails.length > 0){
		$("textarea.autocomplete").autocomplete(emails, {
			minChars: 0,
			width: 310,
			matchContains: true,
			autoFill: false,
			multiple:true,
			formatItem: function(row, i, max) {
				return row.to;
			},
			formatMatch: function(row, i, max) {
				return row.to;
			},
			formatResult: function(row) {
				return row.to;
			}
		});
    }
    
  	// auto complete for commodities
	// http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
    
	$("input.commodityAutocomplete").autocomplete('/ajax/commodity_autocomplete.php', {
		minChars: 0,
		width: 310,
		matchContains: true,
		autoFill: false,
		multiple:false,
		max:300,
		formatItem: function(row, i, max) {
			return row[2];
		},
		formatResult: function(row) {
				return row[2];
		}
		
	});
	
	$("input.commodityAutocomplete").result(function(event, data, formatted) {
		if (data) {
			$(this).parent().next().find(">:input").val(data[0]);
			$(this).closest("tr").find("select.classId").val(data[1]);
		}
	});

      
    
	$('input.datePicker,:text[name=date],:text[name^=date_],:text[name$=_date],:text[name*=_date_],:input#beginning,:input#ending').not(':hidden').datePicker({startDate:'01/01/2000'})
		.dpSetOffset(-10, 0)
		.bind('click',function(e) {
			if(this === e.target){
				$(this).siblings('a.dp-choose-date:first').click();
			}
		});
	$('button[id^=trigger]').hide();
	
	/*
	$.each( $("form.validate :input:not(:submit)"), function(i,el){
		$.metadata.setType('class');
		this.validator = $validator;
	});
	*/
	function addValidatorToInput(i,el){
		if(el)
			el.validator = $validator;
	}
	chunk( $.makeArray( $("form.validate :input:not(:submit)") ) , addValidatorToInput);
	
	/*
	$.each( $("form :input").not( $('#UniversalSearch * ') ), function(i,el){
		$(this).attr('tabIndex',i+1);
		if(i == 0){
			$(this).focus();
		}
		if($(this).attr('type') == 'hidden'){
			$(this).css({'display':'none'});
		}
	});
	*/
	var tabIndex = 1;
	function setTabIndex(i,el){
		$(el).attr('tabIndex',tabIndex++);
		if($(el).attr('type') == 'hidden'){
			$(el).css({'display':'none'});
		}
	}
	chunk($.makeArray( $("form :input,form a:not(.prevStep)").not( $('#UniversalSearch * ') ) ), setTabIndex);

 $("#checkboxall").click(function(e) { 
 	
   var checked_status = this.checked;
   $(":input[name^=select]").each(function()
   {
    this.checked = checked_status;
   });
  });	
	
  //activate COD amount and Liability coverage fields on LTL input screen
  $("#LiabilityCoverage").click(function(e) {
  		if($("#liability_amt").css('display') == 'none') {
  			$("#liability_amt").css('display', '');
  			$("#liability_amt_input").addClass("{rules:{required:true,digits:true}}");
  		} else {
  			$("#liability_amt").css('display', 'none');
  			$("#liability_amt_input").removeClass("{rules:{required:true,digits:true}}");
  		}
  });  
  
  $("#CODAmount").click(function(e) {
  		if($("#cod_amt").css('display') == 'none') {
  			$("#cod_amt_input").addClass("{rules:{required:true,digits:true}}");
  			$("#cod_amt").css('display', '');
  		} else {
  			$("#cod_amt_input").removeClass("{rules:{required:true,digits:true}}");
  			$("#cod_amt").css('display', 'none');
  		}
  });
});





