QueryFilter.SERVICE_NAME="/services/Search";if(window.WIDGET_MODE){QueryFilter.SERVICE_NAME+=".php"}QueryFilter.MAX_FILTER_ITEMS=5;var queryFilter;function preInit(){queryFilter=new QueryFilter(true);YAHOO.util.History.onReady(function(){queryFilter.loadStart()});var B=YAHOO.util.History.getBookmarkedState("app");var A=B||"init";YAHOO.util.History.register("app",A,queryFilter.navHandler,queryFilter,true)}function QueryFilter(){this.entityType=0;this.listingType=0;this.guideType=0;this.itemIndex=0;this.setItemsPerPage(5);this.hasFilterGroups=false;this.hasTags=false;this.loadStarted=false;this.started=false;this.showCategories=false;this.showTypes=false;this.busy=false;this.anchorGuide=null}QueryFilter.prototype.init=function(E,A,D,F){this.localMode=window.WIDGET_MODE||this!=queryFilter;this.renderFilterResults=E;this.searchStarted=A;this.filterArea=D;if(F.anchorGuide){this.anchorGuide=F.guide}if(F.guide){this.guide=F.guide}var C="";for(var B in F){if(B=="showCategories"){this.showCategories=F[B]}else{if(B=="showTypes"){this.showTypes=F[B]}else{C+="&"+B+"="+F[B]}}}this.extractState(C)};QueryFilter.prototype.setSortMode=function(A){this.sortMode=A};QueryFilter.prototype.setItemsPerPage=function(A){this.itemsPerPage=A};QueryFilter.prototype.showLoading=function(A){this.renderLoading=A};QueryFilter.prototype.navHandler=function(B){this.whenFiltersChange();if(this.searchStarted){this.searchStarted()}this.extractState(B);url=B;var C="";if(url.match(/(.*?)\?(.*)/)){url=RegExp.$1;C=RegExp.$2}if(window.WIDGET_MODE){C+="&"+getSessionParams()}if(this.skipListing){C+="&skipListing="+this.skipListing}var A=this;YAHOO.util.Connect.asyncRequest("POST",url,{success:this.renderResults,failure:function(){},scope:A},C)};QueryFilter.prototype.doQuery=function(B){if(!this.started){this.started=true}if(B){this.lastGuides=null}this.busy=true;if(this.renderLoading){this.renderLoading()}var A=this.buildState(B);if(this.localMode){this.navHandler(A)}else{YAHOO.util.History.navigate("app",A)}};QueryFilter.prototype.start=function(){this.started=true;if(this.localMode){var A="";if(!A){A=this.buildState(true)}this.navHandler(A)}else{if(this.loadStarted){this.startNow()}}};QueryFilter.prototype.loadStart=function(){this.loadStarted=true;if(this.started){this.startNow()}};QueryFilter.prototype.startNow=function(){var A=YAHOO.util.History.getCurrentState("app");if(A=="init"){A=this.buildState(true)}this.navHandler(A)};QueryFilter.prototype.searchTerm="";QueryFilter.prototype.setSearchTerm=function(A){if(A){this.searchTerm=A+" "}};QueryFilter.prototype.getSearchTerm=function(){return this.searchTerm.replace(/ $/,"")};QueryFilter.prototype.renderFilterControls=function(){if(!this.filterArea){return }this.filterArea.onclick=function(A){if(this.busy){YAHOO.util.Event.stopEvent(A)}};this.hasFilterGroups=false;if(this.showTypes){this.initTypes()}if(this.entityType!=10&&this.listingType!=1){this.initGuides();this.initTags()}this.initSearch()};QueryFilter.prototype.newFilterArea=function(C,B){var A="fa"+B;var E=document.getElementById(A);if(E){D=E.childNodes[1];D.innerHTML=""}else{E=document.createElement("DIV");E.id=A;if(this.hasFilterGroups){E.className="filter-group"}else{E.className="filter-group filter-group-first";this.hasFilterGroups=true}if(this.lastGroup&&this.lastGroup.nextSibling){this.filterArea.insertBefore(E,this.lastGroup.nextSibling)}else{this.filterArea.appendChild(E)}var D=document.createElement("DIV");E.appendChild(D);D.innerHTML=C;D.className="filter-header";D=document.createElement("DIV");E.appendChild(D);D.className="filter-body"}this.lastGroup=E;return D};QueryFilter.prototype.initTags=function(){var A=getTagLabelByType(this.entityType,this.listingType);if(A){this.tagGroupElem=this.newFilterArea(A,"tags")}if(this.listingType==10){this.activityTagGroupElem=this.newFilterArea("Activities","activities")}if(A){this.hasTags=true}};QueryFilter.prototype.setRelatedTag=function(D,C,B){var A=(B)?this.activityTags:this.mainTags;A.push(new Tag(D,C));var E=this.buildState(true);YAHOO.util.History.setCurrentState("app",E)};QueryFilter.prototype.initGuides=function(){var A=document.getElementById("tocExploreMenu");if(A){A=A.firstChild.firstChild.firstChild.innerHTML}else{A=Locale.FILTER_DESTINATIONS}this.guideGroupElem=this.newFilterArea(A,"guides")};QueryFilter.prototype.initTypes=function(){this.typeElem=this.newFilterArea(Locale.FILTER_TYPE,"types");var A="";A+="<li><a href='javascript:selectType(10);'>Destinations</a></li>";A+="<li><a href='javascript:selectType(11,10);'>Attractions</a></li>";A+="<li><a href='javascript:selectType(11,14);'>Restaurants</a></li>";A+="<li><a href='javascript:selectType(11,15);'>Nightlife</a></li>";A+="<li><a href='javascript:selectType(11,13);'>Lodging</a></li>";A+="<li><a href='javascript:selectType(40);'>Tips</a></li>";A+="<li><a href='javascript:selectType(60);'>Answers</a></li>";A+="<li><a href='javascript:selectType(70);'>Blogs</a></li>";A="<div id='typeSelector'><ul class='filter-list'>"+A+"</ul></div><div id='currentType' class='applied-filters'></div>";this.typeElem.innerHTML=A};QueryFilter.prototype.renderTypes=function(){var A=(this.entityType||this.listingType);var B="";if(A){B=this.getNameForType(this.entityType,this.listingType)+" <a title='Remove Filter' href='javascript:removeType()'><img src='http://ui.geckogo.com/ui/media/delete-orange.png'></a><br>"}document.getElementById("currentType").innerHTML=B;document.getElementById("typeSelector").style.display=A?"none":""};QueryFilter.prototype.getNameForType=function(A,B){if(A==10){return"Destinations"}else{if(A==40){return"Tips"}else{if(A==60){return"Answers"}else{if(A==70){return"Blogs"}else{if(B==10){return"Attractions"}else{if(B==12){return"Transportation"}else{if(B==13){return"Lodging"}else{if(B==14){return"Restaurants"}else{if(B==15){return"Nightlife"}else{if(B==16){return"Tour"}else{return"Other Resources"}}}}}}}}}}};function removeType(){queryFilter.entityType=null;queryFilter.listingType=null;if(this.filterArea){queryFilter.renderTypes()}queryFilter.doQuery(true)}QueryFilter.prototype.initSearch=function(){this.searchElem=this.newFilterArea(Locale.FILTER_SEARCH,"search");var A="";A+="<div id='searchTerms'></div>";A+="<div><input type='text' name='search' size='16' style='margin:0px'></div>";A+="<div><input type='radio' name='searchScope' value='all'>All <input type='radio' name='searchScope' checked value='within'>Within</div>";A+="<div style='text-align:right;padding-top:8px'><button type='button'>Search</button></div>";this.searchElem.innerHTML=A;YAHOO.util.Event.addListener(this.searchElem.childNodes[3],"click",this.doSearch,this,true);YAHOO.util.Event.addListener(this.searchElem.childNodes[1],"keypress",function(B,D){var C=YAHOO.util.Event.getCharCode(B);if(C==13){YAHOO.util.Event.stopEvent(B);this.doSearch()}},this,true)};QueryFilter.prototype.doSearch=function(){if(document.form.searchScope[0].checked){this.searchTerm="";this.guide=null;this.guideName=null;this.mainTags=[];this.activityTags=[]}var A=document.form.search.value;if(A){this.searchTerm+=A+" ";document.form.search.value="";this.doQuery(true)}return A};function removeSearchTerm(A){queryFilter.searchTerm=queryFilter.searchTerm.replace(A+" ","");queryFilter.doQuery(true)}QueryFilter.prototype.renderSearchTerms=function(){var C=this.searchTerm.split(" ");var D="";for(var A=0;A<C.length;A++){if(C[A]){D+=C[A]+" <a title='Remove Filter' href='javascript:removeSearchTerm(\""+C[A]+"\")'><img src='http://ui.geckogo.com/ui/media/delete-orange.png'></a><br>"}}if(D){D="<div class='applied-filters'>"+D+"</div>"}var B=document.getElementById("searchTerms");B.innerHTML=D;B.style.display=(D)?"":"none"};QueryFilter.prototype.buildState=function(E){if(E){this.itemIndex=0}var F="?event=query";if(this.showCategories&&E){F+="&getCategories=true"}if(this.user){F+="&user="+this.user}if(this.lat||this.lng){F+="&lat="+this.lat+"&lng="+this.lng}if(this.guide){F+="&guide="+this.guide}if(this.guideType&&!this.guide){F+="&guideType="+this.guideType}if(this.entityType){F+="&entityType="+this.entityType}if(this.listingType){F+="&listingType="+this.listingType}if(this.discussionType){F+="&discussionType="+this.discussionType}if(this.tagSection){F+="&tagSection="+this.tagSection}if(this.mainTags.length>0){var D="",A="";for(var C=0;C<this.mainTags.length;C++){D+=","+this.mainTags[C].id;A+=","+this.mainTags[C].name}F+="&tags="+D.substring(1);F+="&tagNames="+A.substring(1)}if(this.activityTags.length>0){var D="",A="";for(var C=0;C<this.activityTags.length;C++){D+=","+this.activityTags[C].id;A+=","+this.activityTags[C].name}F+="&activityTags="+D.substring(1);F+="&activityTagNames="+A.substring(1)}if(this.searchTerm){F+="&q="+encode(this.searchTerm)}if(this.sortMode){F+="&sortMode="+this.sortMode}F+="&count="+this.itemsPerPage;F+="&start="+this.itemIndex;var B=QueryFilter.SERVICE_NAME+F;return B};QueryFilter.prototype.extractState=function(A){this.mainTags=[];this.activityTags=[];var J,F;var D=A.split(/[\?&]/);for(var E=0;E<D.length;E++){var K=D[E].split("=");var B=K[0];var H=decode(K[1]);if(B=="start"){this.itemIndex=parseInt(H)}else{if(B=="count"){this.itemsPerPage=parseInt(H)}else{if(B=="search"){this.searchTerm=H}else{if(B=="discussionType"){this.discussionType=H}else{if(B=="listingType"){this.listingType=H}else{if(B=="tagSection"){this.tagSection=H}else{if(B=="guideType"){this.guideType=H}else{if(B=="entityType"){this.entityType=H}else{if(B=="lat"){this.lat=H}else{if(B=="lng"){this.lng=H}else{if(B=="guide"){this.guide=H}else{if(B=="skipListing"){this.skipListing=H}else{if(B=="user"){this.user=H}else{if(B=="tags"){J=H}else{if(B=="activityTags"){F=H}else{if(B=="tagNames"){tmpTagNames=H}else{if(B=="activityTagNames"){tmpActivityTagNames=H}}}}}}}}}}}}}}}}}}if(J&&tmpTagNames){var I=J.split(",");var G=tmpTagNames.split(",");for(var C=0;C<I.length;C++){this.mainTags.push(new Tag(I[C],G[C]))}}if(F&&tmpActivityTagNames){var I=F.split(",");var G=tmpActivityTagNames.split(",");for(var C=0;C<I.length;C++){this.activityTags.push(new Tag(I[C],G[C]))}}};QueryFilter.prototype.renderResults=function(B){var D=JSON.parse(B.responseText);this.itemCount=D.resultCount;if(!this.isPaging){this.renderFilterControls();this.renderFilters(B)}var A=Math.floor(this.itemIndex/this.itemsPerPage)+1;var C=Math.ceil(this.itemCount/this.itemsPerPage);this.renderFilterResults(D.results,this.itemIndex,this.itemCount,A,C);this.busy=false;this.isPaging=false};QueryFilter.prototype.getIcon=function(A){var B=getIconNameForType(A.entityType,A.listingType);return"http://ui.geckogo.com/ui/media/"+B+".png"};QueryFilter.prototype.getPhoto=function(A,C){if(this.entityType==40||this.entityType==60){if(A.userPhotoUrl){return A.userPhotoUrl}else{return"http://ui.geckogo.com/ui/media/no_pic_small.gif"}}else{if(A.photo){if(C){A.photo=A.photo.replace(/-qt/,"-qm")}return A.photo}else{var B=getIconNameForType(A.entityType,A.listingType);if(C){return"http://ui.geckogo.com/ui/media/types/qm/no-"+B+".gif"}else{return"http://ui.geckogo.com/ui/media/types/q-120/no-"+B+".png"}}}};QueryFilter.prototype.renderFilters=function(A){if(!this.filterArea){return }if(this.showTypes){this.renderTypes()}this.renderSearchTerms();if(this.showCategories&&this.entityType!=10&&this.listingType!=1){var B=JSON.parse(A.responseText);this.parentGuide=B.parentGuide;this.guideName=(B.guide)?B.guide.name:"";if(B.guides){this.lastGuides=B.guides}else{this.lastGuides=null}this.renderGuides(this.lastGuides,this.guideGroupElem);if(this.hasTags){this.lastTags=B.tags;this.lastActivityTags=B.activityTags;this.renderTags(this.lastTags,this.tagGroupElem,this.mainTags,false);if(this.listingType==10){this.renderTags(this.lastActivityTags,this.activityTagGroupElem,this.activityTags,true)}}}};QueryFilter.prototype.renderGuides=function(G,D){var C=0;if(G){C=G.length<QueryFilter.MAX_FILTER_ITEMS?G.length:QueryFilter.MAX_FILTER_ITEMS}var F="";for(var E=0;E<C;E++){var A=G[E];F+="<li><a href='javascript:filterGuide("+A.id+", this)'>"+A.name+"</a> ("+A.freq+")</li>"}var B="";if(G&&G.length>=QueryFilter.MAX_FILTER_ITEMS){G.sort(function(J,I){if(J.name<I.name){return -1}else{if(J.name>I.name){return 1}else{return 0}}});for(var E=0;E<G.length;E++){var A=G[E];if(E>0&&E%6==0){B+="</div><div class='filter-popup-column'>"}B+="<div><a href='javascript:filterGuide("+A.id+", this)'>"+A.name+"</a> ("+A.freq+")</div>"}B="<div class='filter-popup' style='display:none'><div class='filter-popup-column'>"+B+"</div><div class='filter-more'><a href='#' onclick='hideMore(this);return false'>Close</a></div></div>"}if(F||this.guide!=this.anchorGuide){F="<ul class='filter-list'>"+F+"</ul>";if(B){F+="<div class='filter-more'><a href='#' onclick='showMore(this);return false'>(More)</a></div>"}var H="";if(this.guide&&this.guide!=this.anchorGuide){H="<div class='applied-filters'>"+this.guideName+" <a href='javascript:filterGuideBack("+this.guide+")' title='Remove Filter'><img src='http://ui.geckogo.com/ui/media/delete-orange.png'></a></div>"}D.innerHTML=H+B+F;D.parentNode.style.display=""}else{D.parentNode.style.display="none"}};function showMore(A){var B=A.parentNode.previousSibling.previousSibling;B.style.display=""}function hideMore(A){var B=A.parentNode.parentNode;B.style.display="none"}QueryFilter.prototype.renderTags=function(K,D,I,H){if(!K){return }var G=[];for(var E=0;E<K.length;E++){var L=K[E];for(var C=0;C<I.length;C++){if(I[C].id==L.id){break}}if(C<I.length){continue}if(L.freq==this.itemCount){continue}G.push(L)}K=G;var B=0;if(K){B=K.length<QueryFilter.MAX_FILTER_ITEMS?K.length:QueryFilter.MAX_FILTER_ITEMS}var F="";for(var E=0;E<B;E++){var L=K[E];F+="<li><a href='javascript:filterTag("+L.id+',"'+encode(L.name)+'",'+H+", this)'>"+L.name+"</a> ("+L.freq+")</li>"}var A="";if(K.length>=QueryFilter.MAX_FILTER_ITEMS){K.sort(function(N,M){if(N.name<M.name){return -1}else{if(N.name>M.name){return 1}else{return 0}}});for(var E=0;E<K.length;E++){var L=K[E];if(E>0&&E%6==0){A+="</div><div class='filter-popup-column'>"}A+="<div><a href='javascript:filterTag("+L.id+',"'+encode(L.name)+'",'+H+", this)'>"+L.name+"</a> ("+L.freq+")</div>"}A="<div class='filter-popup' style='display:none'><div class='filter-popup-column'>"+A+"</div><div class='filter-more'><a href='#' onclick='hideMore(this);return false'>Close</a></div></div>"}F="<ul class='filter-list'>"+F+"</ul>";if(A){F+="<div class='filter-more'><a href='#' onclick='showMore(this);return false'>(More)</a></div>"}var J="";for(var C=0;C<I.length;C++){J+=I[C].name+" <a title='Remove Filter' href='javascript:filterTagBack("+I[C].id+","+H+")'><img src='http://ui.geckogo.com/ui/media/delete-orange.png'></a><br>"}D.innerHTML=J+A+F};function selectType(A,B){queryFilter.selectType(A,B)}QueryFilter.prototype.selectType=function(A,B){this.entityType=A;this.listingType=B;this.mainTags=[];this.activityTags=[];this.guide=null;this.doQuery(true)};function filterTagBack(B,A){queryFilter.filterTagBack(B,A)}QueryFilter.prototype.filterTagBack=function(D,C){var B=(C)?this.activityTags:this.mainTags;for(var A=0;A<B.length;A++){if(B[A].id==D){B.splice(A,1);if(C){this.activityTags=B}else{this.mainTags=B}break}}this.doQuery(true)};function filterTag(D,C,B,A){queryFilter.filterTag(D,C,B,A)}QueryFilter.prototype.filterTag=function(F,E,D,A){E=decode(E);var C=(D)?this.activityTags:this.mainTags;for(var B=0;B<C.length;B++){if(C[B].id==F){return }}C.push(new Tag(F,E));this.doQuery(true)};function filterGuide(B,A){queryFilter.filterGuide(B,A)}QueryFilter.prototype.filterGuide=function(B,A){this.guide=B;this.doQuery(true)};function filterGuideBack(A){queryFilter.filterGuideBack(A)}QueryFilter.prototype.filterGuideBack=function(A){if(this.parentGuide){this.guide=this.parentGuide.id;this.guideName=this.parentGuide.name}else{this.guide=null;this.guideName=null}this.doQuery(true)};QueryFilter.prototype.registerPagers=function(A,B){if(A){YAHOO.util.Event.addListener(A,"click",this.movePreviousPage,this,true)}if(B){YAHOO.util.Event.addListener(B,"click",this.moveNextPage,this,true)}};QueryFilter.prototype.registerPagerJump=function(A,B){var C=this;YAHOO.util.Event.addListener(A,"click",function(D){C.moveJumpPage(D,B)},this,true)};QueryFilter.prototype.movePreviousPage=function(A){if(this.itemIndex-this.itemsPerPage>=0){this.itemIndex-=this.itemsPerPage;this.isPaging=true;this.doQuery()}YAHOO.util.Event.stopEvent(A)};QueryFilter.prototype.moveNextPage=function(A){if(this.itemIndex+this.itemsPerPage<this.itemCount){this.itemIndex+=this.itemsPerPage;this.isPaging=true;this.doQuery()}YAHOO.util.Event.stopEvent(A)};QueryFilter.prototype.moveJumpPage=function(A,B){this.itemIndex=B*this.itemsPerPage;this.isPaging=true;this.doQuery();YAHOO.util.Event.stopEvent(A)};QueryFilter.prototype.renderPager=function(M,H,L,K,E,C){var D="<b>"+(L+1)+"</b> to <b>"+(L+H.length)+"</b> of <b>"+K+"</b>";if(C>1){D+=" | Go to page ";var J=Math.max(1,E-QueryFilter.PAGER_RANGE/2);var I=Math.min(C,E+QueryFilter.PAGER_RANGE/2);for(var F=J;F<I+1;F++){if(F==E){D+=F+" "}else{D+="<a href=''>"+F+"</a> "}}}D+="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";if(E>1){D+='&nbsp;<a rel="nofollow" href="#"><img src="http://ui.geckogo.com/ui/media/arrow-left.png"></a>'}if(E<C){D+='&nbsp;<a rel="nofollow" href="#"><img src="http://ui.geckogo.com/ui/media/arrow-right.png"></a>'}M.innerHTML=D;var A=M.getElementsByTagName("A");for(var F=0;F<A.length;F++){var G=A[F];var B=G.innerHTML;if(B.indexOf("left")>=0){this.registerPagers(G,null)}else{if(B.indexOf("right")>=0){this.registerPagers(null,G)}else{this.registerPagerJump(G,parseInt(B)-1)}}}};QueryFilter.PAGER_RANGE=8;function Tag(B,A){this.id=B;this.name=A}QueryFilter.prototype.whenFiltersChange=function(){};
