var yuh=YAHOO.util.History;Y.namespace("Goodrec.add");Y.Goodrec.add=function(){var _catId=-1;var _currentTab=0;var _currentLocation="";var _exclude="";var handleAddBoxBlur=function(e){if(this.value===""){yud.addClass(this,"dimText");this.value="Type a name"}};var handleAddBoxFocus=function(e){var inputBox=yud.get("ac_input");if(yud.hasClass(inputBox,"dimText")){yud.removeClass(inputBox,"dimText");inputBox.value=""}};var addWishListHandling=function(){var listingBrowse=yud.getElementsByClassName("listing-browse");if(listingBrowse&&listingBrowse[0]){var list=listingBrowse[0].childNodes;for(var i=0;i<list.length;i++){if(list[i]&&list[i].tagName=="LI"){Y.Goodrec.Wishlist.addHandlingForWL(list[i])}}}};var removeWishListHandling=function(){var listingBrowse=yud.getElementsByClassName("listing-browse");if(listingBrowse&&listingBrowse[0]){yue.purgeElement(listingBrowse[0],1)}};var processSearchResults=function(transport){var jsonData=eval("("+transport.responseText+")");_entitiesSearchData=jsonData;var resultsHtml=[];if(jsonData.entities.length>0){resultsHtml.push('<ul class="listing-browse">');for(var i=0;i<jsonData.entities.length;i++){var entity_data=jsonData.entities[i];if(i==0){resultsHtml.push('<li class="search-li '+create_entity_header_class(entity_data)+' first" id="entity_'+entity_data.id+'">')}else{resultsHtml.push('<li class="search-li '+create_entity_header_class(entity_data)+'" id="entity_'+entity_data.id+'">')}if(_catId==1||_catId==12){resultsHtml.push(createEntityLocListingDetailed(entity_data,_catId)+"</li>")}else{resultsHtml.push(createEntityListingDetailed(entity_data,_catId)+"</li>")}}resultsHtml.push('<br class="clr"/>');resultsHtml.push("</ul>")}resultsHtml.push('<br class="clr"/>');var f=document.getElementById("addSearch");var href="/entity_add/"+_catId+"/"+encodeURIComponentPlus(f.name.value)+"/"+encodeURIComponent(f.loc.value)+"/";resultsHtml.push("<div class='emptyAdd'>Can't find what you're looking for? Be the first to rec it! <a href=\""+href+'">Add '+f.name.value+"</a></div>");removeWishListHandling();yud.get("results").innerHTML=resultsHtml.join("");addWishListHandling()};var showTab=function(e,i){if(i==_currentTab){return }if(i==0){yud.addClass("searchTab","hide");yud.removeClass("suggestTab","hide");yud.removeClass("tab-Search-li","current");yud.addClass("tab-Suggestions-li","current")}else{yud.removeClass("searchTab","hide");yud.addClass("suggestTab","hide");yud.addClass("tab-Search-li","current");yud.removeClass("tab-Suggestions-li","current")}_currentTab=i;if(e){yue.preventDefault(e);yuh.navigate("add",_currentTab+"."+_catId+"."+_exclude+"."+_currentLocation)}};var restoreCatState=function(obj){var cat=yud.get("categories");var imgs=cat.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){var img=imgs[i];if(img.parentNode.id=="cat_"+_catId){continue}switch(img.parentNode.id){case"cat_1":img.src="/site_media/img/car_restaurants.gif";break;case"cat_12":img.src="/site_media/img/car_bars.gif";break;case"cat_11":img.src="/site_media/img/car_wine.gif";break;case"cat_4":img.src="/site_media/img/car_movies.gif";break;case"cat_13":img.src="/site_media/img/car_books.gif";break;default:break}yud.setStyle(img,"width","126px");yud.setStyle(img,"height","104px");yud.setStyle(img,"margin-top","0px");yud.setStyle(img,"margin-left","0px");yud.setStyle(img,"z-index","1")}};var hoverCat=function(e){var img=this.getElementsByTagName("img");switch(this.id){case"cat_1":img[0].src="/site_media/img/car_restaurants_hover.gif";break;case"cat_12":img[0].src="/site_media/img/car_bars_hover.gif";break;case"cat_11":img[0].src="/site_media/img/car_wine_hover.gif";break;case"cat_4":img[0].src="/site_media/img/car_movies_hover.gif";break;case"cat_13":img[0].src="/site_media/img/car_books_hover.gif";break;default:break}if(img[0]){yud.setStyle(img[0],"width","132px");yud.setStyle(img[0],"height","110px");yud.setStyle(img[0],"margin-top","-3px");yud.setStyle(img[0],"margin-left","-3px")}};var removeHoverCat=function(e){restoreCatState(this)};var enlargeCat=function(obj){var img=obj.getElementsByTagName("img");switch(obj.id){case"cat_1":img[0].src="/site_media/img/car_restaurants_pressed.gif";break;case"cat_12":img[0].src="/site_media/img/car_bars_pressed.gif";break;case"cat_11":img[0].src="/site_media/img/car_wine_pressed.gif";break;case"cat_4":img[0].src="/site_media/img/car_movies_pressed.gif";break;case"cat_13":img[0].src="/site_media/img/car_books_pressed.gif";break;default:break}if(img[0]){yud.setStyle(img[0],"width","132px");yud.setStyle(img[0],"height","110px");yud.setStyle(img[0],"margin-top","-3px");yud.setStyle(img[0],"margin-left","-3px");yud.setStyle(img[0],"z-index","6");var attributes={width:{to:146},height:{to:119},marginTop:{to:-8},marginLeft:{to:-10}};var doFade=new yut.Anim(img[0],attributes,0.1);doFade.animate()}yue.removeListener(obj,"mouseout",removeHoverCat);yue.removeListener(obj,"mouseover",hoverCat)};var selectCat=function(e){var catId=parseInt(this.id.substring(4));yue.preventDefault(e);if(catId==_catId){return }_catId=catId;var prev=yud.get("cat_"+_catId);if(prev){restoreCatState(prev);yue.on(prev,"mouseover",hoverCat);yue.on(prev,"mouseout",removeHoverCat)}enlargeCat(this);changeCat(_catId);getNewSuggestions(false)};var changeCat=function(catId){if((catId=="1")||(catId=="12")){yud.removeClass("addSearch","noLoc");yud.removeClass("suggest-loc-frm","hide")}else{yud.addClass("addSearch","noLoc");yud.addClass("suggest-loc-frm","hide")}var queryTip=yud.get("addForm-query-tip");var pop=yud.get("h-popular");var tip=yud.get("tip-search");var btn=yud.get("suggest-more-btn");var bsug=yud.get("browse-suggestions");yud.get("results").innerHTML="";yud.get("ac_input").value="Type a name";yud.addClass("ac_input","dimText");switch(catId){case 1:pop.innerHTML="Popular Restaurants near";tip.innerHTML="Search Restaurants";btn.value="Show Me More Restaurants";queryTip.innerHTML="(e.g Joe's)";bsug.innerHTML="Browse popular restaurants for ideas!";break;case 12:pop.innerHTML="Popular Bars & Nightlife near";tip.innerHTML="Search Bars & Nightlife";btn.value="Show Me More Bars & Nightlife";queryTip.innerHTML="(e.g Joe's)";bsug.innerHTML="Browse popular bars & nightlife for ideas!";break;case 11:pop.innerHTML="Popular Wines";tip.innerHTML="Search Wines";queryTip.innerHTML="(e.g Mondavi)";btn.value="Show Me More Wines";bsug.innerHTML="Browse popular wines for ideas!";break;case 4:pop.innerHTML="Popular Movies";tip.innerHTML="Search Movies";queryTip.innerHTML="(e.g Shrek)";btn.value="Show Me More Movies";bsug.innerHTML="Browse popular movies for ideas!";break;case 13:pop.innerHTML="Popular Books";tip.innerHTML="Search Books";queryTip.innerHTML="(e.g Harry Potter)";btn.value="Show Me More Books";bsug.innerHTML="Browse popular books for ideas!";break;default:break}};var searchEntity=function(e){if(e){yue.preventDefault(e)}var inputBox=yud.get("ac_input");if(inputBox.value=="Type a name"&&yud.hasClass(inputBox,"dimText")){return false}var frm=yud.get("addSearch");if(frm.name.value){yud.get("results").innerHTML='<span class="saving">Searching...</span>';var params="cat="+_catId+"&name="+frm.name.value+"&loc="+frm.loc.value;var callback={success:processSearchResults};yud.get("suggest-loc").value=frm.loc.value;var a_req=YAHOO.util.Connect.asyncRequest("GET","/entity/"+_catId+"/find/json/?"+params,callback)}};var getNewSuggestionsEx=function(e){window.scrollTo(0,0);getNewSuggestions(true);yue.preventDefault(e)};var showError=function(catid,location){if(location&&catid&&(catid==1||catid==12)){yud.get("tblCont").innerHTML='<span class="saving">Sorry, we have no '+(catid==1?"Restaurant":"Bar and Nightlife")+" listings near "+location+'. <a href="/entity_add/'+catid+"//"+escape(location)+'/">Be the first to add one!</a></span>'}else{yud.get("tblCont").innerHTML='<span class="saving">Please try a different category.</span>'}};var showSuggestions=function(jsonData){var html=[];html.push('<table id="tblSuggestion"><tr class="first-row">');var i=0;if(jsonData.entities.length==0){showError(jsonData.catid,jsonData.curr_loc)}else{for(var s in jsonData.entities){suggestion=jsonData.entities[s];html.push("<td>");html.push("<div class='tbl-cont");if(i%3==0){html.push(" first-col")}if(suggestion.my_rec&&suggestion.my_rec.rate_class){html.push(" "+suggestion.my_rec.rate_class)}if(i==0){html.push(" showTag1 ")}html.push("' id=\"entity_"+suggestion.id+'">');html.push('<div class="top">');html.push("<h3>");var name=suggestion.name;html.push('<a href="'+suggestion.url+'" title="'+name+'">');if(_catId==1||_catId==12){if(name.length>30){name=name.substring(0,28)+"..."}}else{if(_catId==4&&name.length>56){var movieName=name.substring(0,name.indexOf("("));var movieYear=name.substring(name.indexOf("("));movieName=movieName.substring(0,50)+"...";name=movieName+movieYear}else{if(name.length>56){name=name.substring(0,56)+"..."}}}html.push(name);html.push("</a>");html.push("</h3>");if(_catId==1||_catId==12){html.push('<div class="addr">');if(suggestion.addr1){html.push("<p>"+suggestion.addr1+"</p>")}if(suggestion.addr2){html.push("<p>"+suggestion.addr2+"</p>")}html.push("</div>")}html.push("</div>");html.push('<ul class="recIcon"><li><a title="I recommend it" onclick="showQuickTip2(this, '+suggestion.id+', 2); return false;" href="#" class="goodIcon"></a></li><li><a title="It\'s a mixed bag" onclick="showQuickTip2(this, '+suggestion.id+', 1); return false;" href="#" class="mixedbagIcon"></a></li><li><a title="I don\'t recommend it" onclick="showQuickTip2(this, '+suggestion.id+', 0); return false;" href="#" class="badIcon"></a></li></ul>');html.push('<span class="tagline">Click a button to rec!</span>');html.push("</div>");html.push("</td>");if((i+1)%3==0){html.push("</tr><tr>")}i++;if(suggestion.my_rec&&suggestion.my_rec.rate_class){gEntityQuickTips[suggestion.id]={rating:suggestion.my_rec.rating,qt:suggestion.my_rec.quick_tip}}else{gEntityQuickTips[suggestion.id]={}}}html.push("</tr></table>");yud.get("tblCont").innerHTML=html.join("");var d=yud.getElementsByClassName("tbl-cont","div","tblCont");yue.on(d,"mouseover",showTag);yue.on(d,"mouseout",removeTag);var btn=yud.get("suggestions-more");if(jsonData.more!=undefined&&jsonData.more==false){yud.addClass(btn,"hide")}else{yud.removeClass(btn,"hide")}}};function showTag(){yud.addClass(this,"showTag")}function removeTag(){yud.removeClass(this,"showTag")}var getNewSuggestions=function(excludeFlag){var btn=yud.get("suggestions-more");yud.addClass(btn,"hide");yud.get("tblCont").innerHTML='<span class="saving">Loading...</span>';enlargeCat(yud.get("cat_"+_catId));var more_url="/entity/"+_catId+"/recjson/";if(_catId==1||_catId==12){more_url=more_url+_currentLocation+"/"}if(excludeFlag){more_url=more_url+"?exclude="+_exclude}jQuery.ajax({type:"GET",url:more_url,dataType:"json",error:function(){showError()},success:function(jsonData){showSuggestions(jsonData);if(jsonData.exclude){_exclude=jsonData.exclude;yuh.navigate("add",_currentTab+"."+_catId+"."+_exclude+"."+_currentLocation)}},timeout:15000})};var changeLocation=function(e){var location=yud.get("suggest-loc").value;if(location==_currentLocation){return }_currentLocation=location;getNewSuggestions(false);yud.get("loc_ac_input").value=location;yue.preventDefault(e)};function loadState(section){var s=section.split(".");if(s[0]!=_currentTab||s[1]!=_catId||s[2]!=_exclude||s[3]!=_currentLocation){if(s[0]!=_currentTab){showTab(null,s[0])}_currentTab=s[0];var prev=yud.get("cat_"+_catId);_catId=parseInt(s[1]);if(prev){restoreCatState(prev);var listeners=yue.getListeners(prev,"mouseover");if(!yue.getListeners(prev,"mouseover")){yue.on(prev,"mouseover",hoverCat);yue.on(prev,"mouseout",removeHoverCat)}}enlargeCat(yud.get("cat_"+_catId));changeCat(_catId);_exclude=s[2];_currentLocation=s[3];yud.get("suggest-loc").value=_currentLocation;var btn=yud.get("suggestions-more");yud.addClass(btn,"hide");var more_url="/entity/recbackjson/?exclude="+_exclude;jQuery.ajax({type:"GET",url:more_url,dataType:"json",error:function(){showError()},success:function(jsonData){showSuggestions(jsonData)},timeout:15000})}}return{init:function(catid,location,exclude){_catId=catid;_currentLocation=location;_exclude=exclude;var acSchema=["resultset.results","name"];var acDataSource=new YAHOO.widget.DS_XHR("/entity/"+catid+"/ac",acSchema);var acAutoComp=new YAHOO.widget.AutoComplete("ac_input","yui_ac_container",acDataSource);acAutoComp.prehighlightClassName="yui-ac-prehighlight";acAutoComp.useShadow=true;acAutoComp.minQueryLength=2;acAutoComp.maxResultsDisplayed=11;acAutoComp.autoHighlight=false;acAutoComp.typeAhead=false;acAutoComp.allowBrowserAutocomplete=false;acAutoComp.itemSelectEvent.subscribe(function(){searchEntity()},this,true);acAutoComp.textboxFocusEvent.subscribe(function(){var sInputValue=YAHOO.util.Dom.get("ac_input").value;acDataSource.scriptQueryAppend="loc="+YAHOO.util.Dom.get("loc_ac_input").value+"&cat="+_catId;acDataSource.flushCache();if(sInputValue.length===0){var oSelf=this;setTimeout(function(){oSelf.sendQuery(sInputValue)},0)}});var entityAddSearchBox=yud.get("ac_input");yud.addClass(entityAddSearchBox,"dimText");entityAddSearchBox.value="Type a name";yue.on(entityAddSearchBox,"blur",handleAddBoxBlur);yue.on(entityAddSearchBox,"focus",handleAddBoxFocus);yue.on("tab-Suggestions","click",showTab,0);yue.on("tab-Search","click",showTab,1);yue.on("tip-search","click",showTab,1);yue.on("browse-suggestions","click",showTab,0);var cat=yud.get("categories");var a_cat=cat.getElementsByTagName("a");yue.on(a_cat,"mouseover",hoverCat);yue.on(a_cat,"mouseout",removeHoverCat);yue.on(a_cat,"click",selectCat);var locSearchBox=yud.get("loc_ac_input");var loc_tr=yud.get("recent-locs-dd-add");var locDS=null;if(locSearchBox){var entitySchema=["resultset.results","name","id"];locDS=new YAHOO.widget.DS_XHR("/locationarea/ac/",entitySchema);var locAC=new YAHOO.widget.AutoComplete(locSearchBox,"loc_yui_ac_container",locDS);locAC.prehighlightClassName="yui-ac-prehighlight";locAC.useShadow=true;locAC.minQueryLength=2;locAC.maxResultsDisplayed=11;locAC.autoHighlight=false;locAC.typeAhead=false;var recent_locs=yud.get("recent-locs-ac-add");if(recent_locs&&loc_tr){var recent_widget=new YAHOO.Goodrec.widget.recentLocations(recent_locs,loc_tr,"rec-loc-add-",locSearchBox)}}yue.on("addSearch","submit",searchEntity,this,true);yue.on(document,"mousedown",clearQuickTip);var locSuggestSearchBox=yud.get("suggest-loc");if(locSuggestSearchBox&&locDS){var locSuggestAC=new YAHOO.widget.AutoComplete(locSuggestSearchBox,"loc_suggest_ac_cont",locDS);locSuggestAC.prehighlightClassName="yui-ac-prehighlight";locSuggestAC.useShadow=true;locSuggestAC.minQueryLength=2;locSuggestAC.maxResultsDisplayed=11;locSuggestAC.autoHighlight=false;locSuggestAC.typeAhead=false;locSuggestAC.itemSelectEvent.subscribe(changeLocation,this,true);locSuggestAC.textboxBlurEvent.subscribe(changeLocation,this,true);yue.on("suggest-loc-frm","submit",changeLocation)}bookmark=yuh.getBookmarkedState("add");addState=bookmark||"";yuh.register("add",addState,function(state){if(state){loadState(state)}});yuh.onReady(function(){if(addState){loadState(addState)}else{getNewSuggestions(false)}});try{yuh.initialize("history-field","history-iframe")}catch(e){loadState(state)}yue.on("get-more-suggestions","submit",getNewSuggestionsEx)}}}();Y.Goodrec.add.init(_catId,_loc,_exclude);