(function(E){var A={number:{mask:/^(-)?(\d*)(\.?)(\d*)$/},date:{mask:/^\d{1,2}\/\d{1,2}\/\d{4}/},time:{mask:/^\d{1,2}:\d{2}[ ]?(am|pm)?$/i},datetime:{mask:/^\d{1,2}\/\d{1,2}\/\d{4} \d{1,2}:\d{2}[ ]?(am|pm)?$/i},email:{mask:/^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/i}};function B(K){var J=E(K);var L=true;if((J.is(":checkbox")&&J.is(":checked")===false)||(J.is("input, select, textarea")&&!J.val())){L=false}return L}function H(M,J){var K=this,L=true;if(J.mask&&J.mask.test&&M){var N=J.mask.test(M);if((!N&&!J.validIfFalse)||(N&&J.validIfFalse)){L=false}}return L}function D(M){var O=this,L=E(M),K=this.options;var N=true;var J=this._getData("_validators");E.each(J,function(Q,P){if(L.hasClass("ui-simplevalidator-validator-"+Q)){var S;try{S=L[0].value}catch(R){}if(!P.validate.apply(M,[S,P])){N=false;return false}}});return N}function I(L){var N=this,J=this.options,K=E(L);var M=true;if(J.ignoreHidden&&K.is(":hidden")){return }if((K.hasClass("ui-simplevalidator-required")&&!B.call(N,L))||(K.hasClass("ui-simplevalidator-validator")&&!D.call(N,L))){M=false}if(M){K.removeClass(J.errorClass)}else{K.addClass(J.errorClass)}}function F(){var K=this,J=E(this.element[0]);J.find("input, select, textarea, .ui-simplevalidator-validator").each(function(){I.call(K,this)})}function G(){var K=this,L=this.options;var J={};E.each(L.validators,function(N,M){if(M.mask&&typeof M.mask==="string"&&A[M.mask]){M.validIfFalse=A[M.mask].validIfFalse;M.mask=A[M.mask].mask;M.validate=H}else{if(M.mask&&typeof M.mask==="object"&&M.test){M.validate=H}}J["v"+N]=M});K._setData("_validators",J)}function C(){var N=this,K=this.options,M=E(this.element[0]);var O=function(){I.call(N,this)};var L=M.find("input, select, textarea");E.each(K.events,function(P,Q){L[Q](O)});if(K.requiredSelector){M.find(K.requiredSelector).addClass("ui-simplevalidator-required")}var J=N._getData("_validators");E.each(J,function(Q,P){if(P.selector){M.find(P.selector).addClass("ui-simplevalidator-validator").addClass("ui-simplevalidator-validator-"+Q)}});if(K.submitButton){E(K.submitButton).click(function(P){F.call(N);if(M.find("."+K.errorClass).length){P.stopImmediatePropagation()}})}}E.widget("ui.simpleValidator",{_init:function(){var J=this,K=this.options;G.call(J);C.call(J);if(K.validateOnInit){F.call(J)}},validate:function(){F.call(this)},valid:function(){F.call(this);return E(this.element[0]).find("."+this.options.errorClass).length===0},reset:function(){E(this.element[0]).find("."+this.options.errorClass).removeClass(this.options.errorClass)}})})(jQuery);$.extend($.ui.simpleValidator,{version:"1.5",getter:"valid",defaults:{validators:[],events:["blur","change"],errorClass:"ui-state-error",submitButton:"",requiredSelector:"[rel=required]",validateOnInit:false,ignoreHidden:true}});var Walkshed=Walkshed||{};Walkshed.Master=function(D){var B={},C;var A={linkSel:".dialog-link",linkContentSel:".dialog-content",skipStartupSel:"#skip-startup",skipStartupCookie:"walkshed.skip-startup",contactContentSel:".contact-dialog",dropDownLink:".drop-down-link"};if(D){$.extend(A,D)}B.init=function(E){C=E;$(A.linkContentSel).dialog({autoOpen:false,bgiframe:true,modal:true,resizable:false,width:600,height:450,buttons:{Close:function(){$(this).dialog("close")}}});$(A.linkSel).click(function(){var F=$(this).attr("rel");var G=$("#"+F+"-content");var H=G.attr("rel");$(A.linkContentSel).dialog("close");$("input, textarea",G).removeClass("ui-state-error").val("");G.dialog("option","title",H).dialog("open");C.trackEvent("Links","Click",F)});$(A.contactContentSel).simpleValidator({requiredSelector:"input[type=text], textarea",validators:[{selector:"[rel=email]",mask:"email"}]});$(A.dropDownLink+" > label").toggle(function(){$("ul",$(this).parent()).slideDown(200)},function(){$("ul",$(this).parent()).slideUp(200)});$(A.dropDownLink+" li").click(function(){$("label",$(this).parent().parent()).click()});$(A.skipStartupSel).click(function(){if($(this).is(":checked")){$.cookie(A.skipStartupCookie,true,30)}else{$.cookie(A.skipStartupCookie,null)}})};return B};var Walkshed=Walkshed||{};Walkshed.ApplicationManager=function(E){var C={};var B;var D;var A={city:"",tools:{},managers:{}};if(E){$.extend(A,E)}D=(A.managers.layout||Walkshed.LayoutManager)();B=(A.managers.map||Walkshed.MapManager)({city:A.city});C.init=function(){(D&&D.init(C));(B&&B.init(C));$.each(A.tools,function(G,F){F.init(C)});return C};C.getTool=function(F){return A.tools[F]};C.getMapManager=function(){return B};C.getLayoutManager=function(){return D};C.trackEvent=function(G,I,F,H){try{_pageTracker._trackEvent(G,I,F,H)}catch(J){if(window.console){console.log(G+", "+I+", "+F+", "+H)}}};C.getOption=function(F){return A[F]};return C};var Walkshed=Walkshed||{};Walkshed.Mail=function(D){var B={},C;var A={emailUrl:"handlers/mailer.ashx",btnSel:".contact-dialog > button"};if(D){$.extend(A,D)}B.sendEmail=function(F){var G=$(F);var E=G.find("form");var H=E.serialize();C.trackEvent("Mail","Send","Attempt");$.ajax({type:"POST",data:H,url:A.emailUrl,timeout:15000,success:function(J,I){C.trackEvent("Mail","Send","Success");E.find("input, textarea").val("");G.dialog("close");C.getLayoutManager().showMessage("Email successfully sent.")},error:function(K,I,J){C.trackEvent("Mail","Send","Error");C.getLayoutManager().showMessage("An error occured while sending your email. Please try again. It will probably work this time.")}})};B.init=function(E){C=E;$(A.btnSel).click(function(){var F="#"+$(this).parent().attr("id");if($(F).simpleValidator("valid")){B.sendEmail(F)}else{C.getLayoutManager().showMessage("Oops. You need to fix some of your form fields.")}})};return B};