var Sajara={Managers:{},Widgets:{},Data:{},Config:{Client:{}}};(function(A){A.Util={};A.Util.path="";A.Util.onAjaxError=null;A.Util.ready=function(C){if(C&&typeof C==="function"){if(window.jQuery){jQuery(document).ready(C)}else{if(window.Ext){Ext.onReady(C)}else{window.onload=C}}}};A.Util.extend=function(){if(window.jQuery){return jQuery.extend.apply(this,arguments)}else{if(window.Ext){return Ext.apply.apply(this,arguments)}else{var D=false,H={},E=[];var I=0;if(arguments.length>0&&typeof arguments[0]==="boolean"){D=arguments[0];I++}if(arguments.length>I){H=arguments[I]}I++;var F,C;if(arguments.length>I){C=arguments.length;for(F=I;F<C;F++){E.push(arguments[F])}}C=E.length;for(F=0;F<C;F++){for(var G in E[F]){if(E[F].hasOwnProperty(G)){if(D&&typeof E[F][G]==="object"){H[G]=A.Util.extend(true,{},E[F][G])}else{H[G]=E[F][G]}}}}return H}}};A.Util.isArray=function(C){return Object.prototype.toString.call(C)==="[object Array]"};A.Util.each=function(F,G){if(window.jQuery){jQuery.each(F,G)}else{if(window.Ext&&A.Util.isArray(F)){Ext.each(F,function(I,H){return G.call(this,H,I)===false})}else{if(A.Util.isArray(F)){for(var D=0,C=F.length;D<C;D++){if(G.call(F[D],D,F[D])===false){break}}}else{if(typeof F==="object"){for(var E in F){if(F.hasOwnProperty(E)){if(G.call(F[E],E,F[E])===false){break}}}}}}}};A.Util.ajax=function(C){if(window.jQuery){jQuery.ajax({url:A.Util.path+C.url,data:C.data,dataType:C.dataType||"json",type:C.method||"GET",success:C.success||function(E){},cache:false,error:function(E){if(window.console){console.log(E.responseText)}if(C.error&&typeof C.error==="function"){C.error.call(this,E)}else{if(A.Util.onAjaxError&&typeof A.Util.onAjaxError==="function"){A.Util.onAjaxError.call(this,E)}}}})}else{if(window.Ext){var D;if(C.success&&typeof C.success==="function"){if(C.dataType&&typeof C.dataType==="string"&&C.dataType.toLowerCase()==="json"){D=function(E){var F=Ext.decode(E.responseText);C.success.call(this,F)}}else{D=C.success}}else{D=function(){}}Ext.Ajax.request({url:A.Util.path+C.url,params:C.data,method:C.method||"GET",success:D,failure:function(E){if(window.console){console.log(E.responseText)}if(C.error&&typeof C.error==="function"){C.error.call(this,arguments)}}})}else{throw new Error({message:"No suitable library to handle XHR."})}}};A.Util.format=function(H,E){if(!E){E="string"}var G=H;switch(E.toLowerCase()){case"date":if(G.getDate){G=(G.getMonth()+1)+"/"+G.getDate()+"/"+G.getFullYear()}break;case"time":if(G.getDate){var F=H.getMinutes(),C=H.getHours(),D="AM";if(F<10){F="0"+F}if(C===0){C=12}else{if(C>=12){if(C>12){C-=12}D="PM"}}return C+":"+F+" "+D}break;case"datetime":G=A.Util.format(H,"date")+" "+A.Util.format(H,"time");break;case"number":break;case"money":break;default:break}return G};var B={};A.Util.bind=function(D,E){if(window.jQuery){jQuery(B).bind(D,E)}else{var C=B[D]||[];C.push(E);B[D]=C}};A.Util.unbind=function(D,F){if(window.jQuery){jQuery(B).unbind(D,F)}else{if(B[D]){if(F){for(var E=0,C=B[D].length;E<C;E++){if(B[D][E]===F){B[D].splice(E,1);break}}}else{delete B[D]}}}};A.Util.trigger=function(G){var J=this;if(G){var F=[];for(var E=1,D=arguments.length;E<D;E++){F.push(arguments[E])}if(window.jQuery){jQuery(B).trigger(G,F)}else{if(B[G]){var I={type:G};F.splice(0,0,I);for(var H=0,C=B[G].length;H<C;H++){B[G][H].apply(J,F)}}}}};A.Util.scrollTo=function(I,E){if(window.jQuery){var C=$(I);E=$.extend({},{type:"top",amount:0,duration:"normal"},E);var F={};if(E.type==="top"){F.scrollTop=E.amount}else{F.scrollLeft=E.amount}var D={slow:1000,normal:500,fast:200},H=0;if(typeof E.duration==="number"){H=E.duration}else{if(typeof E.duration==="string"&&D[E.duration.toLowerCase()]){H=D[E.duration.toLowerCase()]}}if(H){C.animate(F,{duration:H,complete:function(){if(E.complete){E.complete()}}})}else{C.css(F);if(E.complete){E.complete()}}}else{if(window.Ext){var G=Ext.get(I);if(G){G.scrollTo(E.type,E.amount,!!H)}}else{throw new Error("No suitable library for scrollTo.")}}};A.Util.executeAll=function(D,C){var E=D.length,F=0;A.Util.each(D,function(G,H){H(function(){if(++F===E){C()}})})};A.Util.jsonEncode=function(C){if(window.Ext){return Ext.encode(C)}throw new Error("Ext is required for json serialization.")};A.Util.jsonDecode=function(C){if(window.Ext){return Ext.decode(C)}throw new Error("Ext is required for json serialization.")};A.Util.arrayCompare=function(E,D,C){var G=true;var F={};A.Util.each(E,function(H,I){F[I]=H});A.Util.each(D,function(H,I){if(I in F){if(!C&&F[I]!==H){G=false;return false}delete F[I]}else{G=false;return false}});A.Util.each(F,function(H,I){G=false;return false});return G}})(Sajara);(function(A){A.Data={};A.Data.getCollections=function(B,C){var D={};if(B){D.limited=true}A.Util.ajax({url:"Collections.ashx",data:D,dataType:"json",method:"GET",success:function(E){if(C&&typeof C==="function"){C.call(A,E)}}})};A.Data.getSurveyDefinitions=function(C,E,B){var D={};if(C){D.detailed=true}A.Util.ajax({url:"SurveyDefinitions.ashx",data:D,dataType:"json",method:"GET",success:E,error:B})};A.Data.getSurveys=function(C,D,B){A.Util.ajax({url:"Admin/Surveys.ashx",data:C||{},dataType:"json",method:"GET",success:D,error:B})};A.Data.getComments=function(B,C){A.Util.ajax({url:"Admin/Comments.ashx",data:B,dataType:"json",method:"GET",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.saveComment=function(C,D,B){A.Util.ajax({url:"Admin/Comments.ashx",data:C,dataType:"json",method:"POST",success:D,error:B})};A.Data.getCommentUsers=function(B){A.Util.ajax({url:"Admin/Comments.ashx",data:{userlist:true},dataType:"json",method:"GET",success:function(C){if(B&&typeof B==="function"){B.call(A,C)}}})};A.Data.getRegions=function(C,B){A.Util.ajax({url:"Regions.ashx",data:B,dataType:"json",method:"GET",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.getFeatures=function(C,B){A.Util.ajax({url:"FeatureHandler.ashx",data:B,dataType:"json",method:"POST",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.getFavorites=function(C,B){A.Util.ajax({url:"Members/FavoriteData.ashx",data:B,dataType:"json",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.getFavoritesGeo=function(B){A.Util.ajax({url:"Members/FavoriteData.ashx",data:{request:"maplist"},dataType:"json",success:function(C){if(B&&typeof B==="function"){B.call(A,C)}}})};A.Data.deleteFavorite=function(B,C){A.Util.ajax({url:"Members/FavoriteActions.ashx",data:{id:C,action:"deleteFavorite"},dataType:"html",method:"POST",success:function(D){if(B&&typeof B==="function"){B.call(A,D)}}})};A.Data.addTag=function(C,B){A.Util.ajax({url:"Members/FavoriteActions.ashx",data:{id:B,action:"saveTag"},dataType:"html",method:"POST",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.deleteTag=function(C,B){A.Util.ajax({url:"Members/FavoriteActions.ashx",data:{id:B,action:"deleteTag"},dataType:"html",method:"POST",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.editTag=function(D,C,B){A.Util.ajax({url:"Members/FavoriteActions.ashx",data:{id:C,newName:B,action:"editTag"},dataType:"html",method:"POST",success:function(E){if(D&&typeof D==="function"){D.call(A,E)}}})};A.Data.addTagToFavorite=function(C,B,D){A.Util.ajax({url:"Members/FavoriteActions.ashx",data:{id:D,tag:B,action:"addTag"},dataType:"html",method:"POST",success:function(E){if(C&&typeof C==="function"){C.call(A,E)}}})};A.Data.deleteTagFromFavorite=function(C,B,D){A.Util.ajax({url:"Members/FavoriteActions.ashx",data:{id:D,tag:B,action:"removeTag"},dataType:"html",method:"POST",success:function(E){if(C&&typeof C==="function"){C.call(A,E)}}})};A.Data.getFeedback=function(C,B){B.getcount=false;A.Util.ajax({url:"Feedback.ashx",data:B,dataType:"json",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.getFeedbackCount=function(C,B){B.getcount=true;A.Util.ajax({url:"Feedback.ashx",data:B,dataType:"json",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.updateFeedbackStatus=function(C,D,B){A.Util.ajax({url:"Feedback.ashx",data:{Id:D,Status:B},dataType:"json",method:"POST",success:function(E){if(C&&typeof C==="function"){C.call(A,E)}}})};A.Data.batchUpdateFeedbackStatus=function(D,C,B){A.Util.ajax({url:"Feedback.ashx",data:{Ids:C.join(","),Status:B},dataType:"json",method:"POST",success:function(E){if(D&&typeof D==="function"){D.call(A,E)}}})};A.Data.deleteFeedback=function(C,B){A.Util.ajax({url:"Feedback.ashx",data:{Ids:B.join(","),_method:"DELETE"},dataType:"json",method:"POST",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.getAuth=function(B){A.Util.ajax({url:"Auth.ashx",dataType:"json",method:"GET",success:function(C){if(B&&typeof B==="function"){B.call(A,C)}}})};A.Data.getMember=function(B){A.Util.ajax({url:"Members/Account.ashx",dataType:"json",method:"GET",success:function(C){if(B&&typeof B==="function"){B.call(A,C)}}})};A.Data.addMember=function(D,C,B){D._method="PUT";A.Util.ajax({url:"Members/Account.ashx",data:D,dataType:"json",method:"POST",success:function(E){if(C&&typeof C==="function"){C.call(A,E)}},error:function(E){if(B&&typeof B==="function"){B.call(A,E)}}})};A.Data.saveMember=function(D,C,B){if(D.Preferences){D.Preferences=A.Util.jsonEncode(D.Preferences)}A.Util.ajax({url:"Members/Account.ashx",data:D,dataType:"json",method:"POST",success:function(E){if(C&&typeof C==="function"){C.call(A,E)}},error:function(E){if(B&&typeof B==="function"){B.call(A,E)}}})};A.Data.setPassword=function(D,C,B){A.Util.ajax({url:"Members/Password.ashx",data:D,dataType:"json",method:"POST",success:function(E){if(C&&typeof C==="function"){C.call(A,E)}},error:function(E){if(B&&typeof B==="function"){B.call(A,E)}}})};A.Data.registerMember=function(D,C,B){D._method="PUT";D.register=true;A.Util.ajax({url:"Register.ashx",data:D,dataType:"json",method:"POST",success:function(E){if(C&&typeof C==="function"){C.call(A,E)}},error:function(E){if(B&&typeof B==="function"){B.call(A,E)}}})};A.Data.getRoles=function(C,B){A.Util.ajax({url:"Admin/Roles.ashx",dataType:"json",method:"GET",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}},error:function(D){if(B&&typeof B==="function"){B.call(A,D)}}})};A.Data.getUsers=function(F,B,I,D,C,G,E){var H=F;if(B!==undefined){H.limit=B}if(I!==undefined){H.start=I}if(D!==undefined){H.sort=D}if(C!==undefined){H.sortDir=C}A.Util.ajax({url:"Admin/Users.ashx",data:H,dataType:"json",method:"GET",success:function(J){if(G&&typeof G==="function"){G.call(A,J)}},error:function(J){if(E&&typeof E==="function"){E.call(A,J)}}})};A.Data.getFormFields=function(C,B,D){A.Util.ajax({url:"FormFields.ashx",data:{type:C,context:B},dataType:"json",method:"GET",success:function(E){if(D&&typeof D==="function"){D.call(A,E)}}})};A.Data.geocode=function(B,C){A.Util.ajax({url:"Geocode.ashx",data:{address:B},dataType:"json",method:"GET",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.getAssets=function(E,G,B,D,C,F){A.Util.ajax({url:"Thumbnails.ashx",data:{request:E,start:G,limit:B,urlqs:D,noStore:C},dataType:"json",method:"GET",success:function(H){if(F&&typeof F==="function"){F.call(A,H)}}})};A.Data.getAsset=function(B,D,E,C){A.Util.ajax({url:"Admin/AssetData.ashx",data:{identifier:B,field:D,collection:E},dataType:"json",method:"GET",success:function(F){if(C&&typeof C==="function"){C.call(A,F)}}})};A.Data.getAssetById=function(C,B){A.Util.ajax({url:"Admin/Assets.ashx",data:{assetId:C},dataType:"json",method:"GET",success:function(D){if(B&&typeof B==="function"){B.call(A,D)}}})};A.Data.getFieldDefinitions=function(C,D,B){A.Util.ajax({url:"Admin/FieldDefinitions.ashx",data:C,dataType:"json",method:"GET",success:D,error:B})};A.Data.getSurveyFields=function(B,C){A.Util.ajax({url:"SurveyFields.ashx",data:B,dataType:"json",method:"GET",success:function(D){if(C&&typeof C==="function"){C.call(A,D)}}})};A.Data.saveSurvey=function(E,C,G,I,B,F,D){var H={Data:E,SurveyDefinitionId:C,AssetId:G,Status:B};if(I){H.SurveyId=I}else{H._method="PUT"}A.Util.ajax({url:"Admin/Surveys.ashx",data:H,dataType:"json",method:"POST",success:F,error:D})}})(Sajara);(function(A){A.Widgets.Menu=function(L){var G={},J=A.Util.extend({id:"sajara-mainmenu",target:"body",submenuEvent:"hover",menus:[]},L),B;var E={},I;var D={login:function(M){M.addClass("sajara-mainmenu-auth");var N=encodeURIComponent(window.location.pathname+window.location.search);if(I&&I.UserId){M.append('<a title="My Account" href="'+A.Util.path+'Members/AccountSettings.aspx">('+I.UserName+")</a>");M.append('<a title="Log out" href="'+A.Util.path+"Logout.aspx?ReturnUrl="+N+'">'+(this.loginText||"Log out")+"</a>")}else{M.append('<a title="Login" href="'+A.Util.path+"Login.aspx?ReturnUrl="+N+'">'+(this.logoutText||"Login")+"</a>")}}};function K(N){var M=true;if(N.requiredRole){M=false;if(I.Roles){A.Util.each(I.Roles,function(O,P){if((typeof N.requiredRole==="object"&&N.requiredRole[P])||(typeof N.requiredRole==="string"&&N.requiredRole===P)){M=true;return false}})}}return M}function H(N,M){if(N.requireLogin){if(I&&I.UserId){if(N.requiredRole){if(I.Roles){if(K(N)){M()}}}else{M()}}}else{M()}}function C(O,S,Q,M){var P=$('<ul id="'+S+'-menu" class="sajara-list sajara-mainmenu"></ul>').appendTo(Q);if(!M){P.addClass("sajara-mainmenu-submenu")}var R,N;A.Util.each(O,function(U,V){if(!K(V)){return true}R=S+"-"+V.id;var X=$('<li class="sajara-mainmenu-item"></li>').appendTo(P);if(V.renderer){if(typeof V.renderer==="string"&&D[V.renderer]){D[V.renderer].call(V,X)}else{if(typeof V.renderer==="function"){V.renderer.call(V,X)}}}else{var W=$('<a id="'+R+'">'+(V.text||"")+"</a>").appendTo(X);if(V.title){W.attr("title",V.title)}if(V.href){N=V.href;if(!V.external){N=A.Util.path+N}W.attr("href",N)}if(V.target){W.attr("target",V.target)}if(V.onclick&&typeof V.onclick==="function"){W.click(V.onclick)}}if(V.items&&V.items.length){var T=C(V.items,R,X,false);if(J.submenuEvent==="click"){W.click(function(){if(T.data("open")){T.slideUp("fast").data("open",false)}else{T.slideDown("fast").data("open",true)}})}else{X.hover(function(){T.show();if(T.width()+T.offset().left>$(window).width()){var Y=(T.width()+T.offset().left)-$(window).width();T.css({left:"-"+(Y+10)+"px"})}},function(){T.hide()})}}});return P}function F(){var N,M;A.Util.each(J.menus,function(O,P){if(P){H(P,function(){N=J.id+"-"+O;M=P.target||J.target;var Q=C(P.items,N,M,true);E[N]=Q})}})}G.init=function(M){B=M;A.Data.getAuth(function(N){I=N;F()})};return G}})(Sajara);Sajara.Config.Menu={menus:{login:{target:"#sajara-mainmenu-auth",items:[{id:"login",renderer:"login"}]},member:{target:"#sajara-mainmenu-member",requireLogin:true,items:[{id:"acct",href:"",text:"your account",items:[{id:"acct",title:"Manage Your Account",href:"Members/AccountSettings.aspx",text:"Account Settings"},{id:"favs",title:"View Your Favorite Murals",href:"Members/Favorites.aspx",text:"View Favorites"},{id:"pwd",title:"Change Your Password",href:"Members/ChangePassword.aspx",text:"Change Password"},{id:"pwd",title:"Photo Request Status",href:"Members/ScanRequestStatus.aspx",text:"Photo Request Status"}]}]},admin:{target:"#sajara-mainmenu-admin",requireLogin:true,requiredRole:{Administrator:true,Editor:true,Contributor:true},items:[{id:"assets",href:"",text:"assets",requiredRole:{Administrator:true,Editor:true,Contributor:true},items:[{id:"assets",title:"Manage Assets",href:"Admin/ManageAssets.aspx",text:"Manage Assets",requiredRole:{Administrator:true,Editor:true,Contributor:true}},{id:"addasset",title:"Add a New Asset",href:"Admin/EditAsset.aspx",text:"Add New Asset",requiredRole:{Administrator:true,Editor:true,Contributor:true}},{id:"features",title:"Manage Features",href:"Admin/ManageFeaturedPhotos.aspx",text:"Manage Features",requiredRole:{Administrator:true,Editor:true}},{id:"approve",title:"Approve Pending Assets",href:"Admin/ApproveAssets.aspx",text:"Assets Pending Approval",requiredRole:{Administrator:true,Editor:true}}]},{id:"ops",href:"",text:"operations",requiredRole:{Administrator:true,Editor:true,Contributor:true},items:[{id:"assets",title:"Photo Requests",href:"Admin/ManageScanRequests.aspx",text:"Photo Requests",requiredRole:{Administrator:true,Editor:true,Contributor:true}},{id:"comments",title:"Manage Comments",href:"Admin/ManageComments.aspx",text:"Manage Comments",requiredRole:{Administrator:true,Editor:true,Contributor:true}}]},{id:"config",href:"",text:"configuration",requiredRole:{Administrator:true},items:[{id:"users",title:"Manage Users",href:"Admin/ManageUsers.aspx",text:"Users"},{id:"orgs",title:"Manage Organizations",href:"Admin/ManageOrganizations.aspx",text:"Organizations"},{id:"fields",title:"Manage Field Definitions",href:"Admin/ManageFieldDefinitions.aspx",text:"Field Definitions"},{id:"people",title:"Manage People",href:"Admin/ManageMultiLists.aspx",text:"People &amp; Orgs"},{id:"themes",title:"Manage Themes",href:"Admin/ManageTags.aspx",text:"Themes"},{id:"colls",title:"Manage Collections",href:"Admin/ManageCollections.aspx",text:"Collections"}]},{id:"reports",href:"",text:"reports",requiredRole:{Administrator:true,Editor:true},items:[{id:"query",title:"Activity Query",href:"Admin/ActivityQuery.aspx",text:"Activity Query",requiredRole:{Administrator:true}},{id:"summary",title:"Activity Summary",href:"Admin/ActivitySummary.aspx",text:"Activity Summary",requiredRole:{Administrator:true}},{id:"stats",title:"Site Stats",href:"Admin/ViewSiteStats.aspx",text:"Miscellaneous Site Stats",requiredRole:{Administrator:true,Editor:true}}]}]}}};Sajara.Config.Client.Menu={menus:{login:{target:"#sajara-mainmenu-auth",items:[{id:"login",text:"logout",renderer:"login"}]},site:{target:"#sajarasample-mainmenu-site",items:[{id:"home",href:"Home.aspx",text:"Home"},{id:"search",href:"Search.aspx",text:"Search",items:[{id:"searchThumb",href:"Search.aspx",text:"Thumbnail View"},{id:"searchMap",href:"Search2.aspx",text:"Map View"}]},{id:"features",href:"Features.aspx?FeatureType=Asset",text:"Featured Photos",items:[{id:"fasset",href:"Features.aspx?FeatureType=Asset",text:"Featured Gardens"},{id:"farea",href:"Features.aspx?FeatureType=Neighborhood",text:"Featured Regions"}]},{id:"about",href:"StaticContent.aspx?page=About",text:"About",items:[{id:"links",href:"Links.aspx",text:"Related Sites"},{id:"about",href:"StaticContent.aspx?page=About",text:"About",title:"About MuralFarm"},{id:"contact",href:"StaticContent.aspx?page=Contact",text:"Contact"},{id:"searchhelp",href:"SearchHelp.aspx",text:"Search Help"},{id:"faq",href:"FAQ.aspx",text:"Frequently Asked Questions"},{id:"browsers",href:"SupportedBrowsers.aspx",text:"Recommended Browsers"}]},{id:"buy",href:"http://www.azavea.com/Products/Sajara/Purchase.aspx",text:"Purchase Sajara"}]}}};Sajara.Config.Client.ReducedMenu={menus:{site:{target:"#muralfarm-mainmenu-site",items:[{id:"search",title:"Search MuralFarm",href:"Search.aspx",text:"Search"}]}}};
