Y.namespace("Goodrec.entity");Y.Goodrec.entity=function(){var jsonURL="",catId=null,recText="",entityId=null,rating=null,newRating=null,_friends=2,queryState="",userId=null,entityNameURL="";var handleMenuMouseOut=function(e,obj){var oRelatedTarget=yue.getRelatedTarget(e);if(oRelatedTarget==this||!yud.isAncestor(this,oRelatedTarget)){hideMenu(this)}};var handleFilterFriendsShow=function(e){var menu=yud.get("friends-menu");yud.removeClass(menu,"hide");yue.on(menu,"mouseout",handleMenuMouseOut,menu,true);yue.on(this,"mouseout",handleFriendsTriggerMO,this,true)};var handleFriendsTriggerMO=function(e){var menu=yud.get("friends-menu");var oRelatedTarget=yue.getRelatedTarget(e);if(!yud.isAncestor(this.parentNode,oRelatedTarget)||(this.parentNode==oRelatedTarget)){hideMenu(menu)}yue.removeListener(this,"mouseout",handleFriendsTriggerMO)};var handleMenuDDClick=function(e){yue.preventDefault(e)};var showRecs=function(data){var content=[];content.push('<ul class="listing qt">');for(var i=0;i<data.recs.length;i++){var rec=data.recs[i];content.push("<li>");if(rec.is_branded){content.push('<div class="smallicon smallicon_grey')}else{content.push('<div class="smallicon smallicon_'+rec.rate_class)}content.push('"></div>');content.push('<p class="listing-qt"> ');switch(rec.platform){case 1:content.push('<img title="Rec\'d from a mobile phone. Visit m.goodrec.com from your mobile." src="/site_media/img/mobile_rec.gif" /> ');break;case 2:content.push('<img title="Rec\'d from an iPhone. Visit m.goodrec.com from your mobile." src="/site_media/img/iphone_rec.gif" /> ');break}content.push(rec.quick_tip);if(rec.quick_tip){content.push(" - ")}if(rec.is_branded){if(rec.url){content.push('<a href="'+rec.url+'" target="_blank" >'+rec.display_name+"</a>")}else{content.push("<cite>"+rec.display_name+"</cite> ")}}else{if(!rec["private"]){content.push('<a href="/users/'+rec.user.url+'/" rel="nofollow">'+rec.display_name+"</a>")}else{content.push('<a href="#" onclick="showAddUser('+rec.user.id+","+rec.user.friendType+'); return false;" rel="nofollow">'+rec.display_name+"</a>")}}content.push("</p>")}content.push("</ul>");yud.get("list-ent").innerHTML=content.join("")};var handleHintQt=function(e,obj){yud.addClass(this,"hint")};var handleRemoveHintQt=function(e,obj){yud.removeClass(this,"hint")};var handleShowQtBox=function(e,obj){var qt_body=yud.get("qt-body");var attributes={height:{to:150}};var doGrow=new yut.Anim(qt_body,attributes,0.1);doGrow.onComplete.subscribe(growAnimComplete);doGrow.animate()};var growAnimComplete=function(e){yud.setStyle("qt-static","display","none");var parent=yud.get("qt-body");if(newRating===null){newRating=rating}showInlineQuickTip(parent,newRating)};var shrinkAnimComplete=function(e){yud.setStyle("qt-static","display","block")};var showInlineQuickTip=function(parent,rating){var el=document.createElement("div");el.id="qt";el.className="quick-tip";qt=recText;if(!qt){qt=""}var exists=yud.get("qt");if(exists){return }el.innerHTML='<div class="qt-tip"></div><div class="bd" id="qt-bd"><form method="post" action="/entity/rec/'+entityId+'/" id="rate_entity_'+entityId+'" onkeypress="return quickTipKeyPress(event, '+entityId+' );" onsubmit="return false;"><label>Quick Tip:</label><input type="hidden" id="hidden-rating" name="rating" value="'+rating+'"><textarea id="id_quick_tip_textarea" name="quick_tip" class="quick_tip_auto_expanding" maxlength="160" onkeyup="postQuickTipKeypress(this, event);" >'+qt+'</textarea><div class="ft"><div class="cta-btn" id="cta-qt-save"><input id="qt-save" type="submit" name="save" value="Save" onclick="recEntity('+entityId+'); return false;"/></div><div class="cta-btn gray"><input id="qt-cancel" type="submit" name="cancel" value="Cancel" onclick="YAHOO.Goodrec.entity.removeInlineQuickTip(); return false;"/></div></div><br class="clr"/></form><span id="qt-msg" >160</span></div><div id="qt-shadow" class="shadow"></div>';parent.appendChild(el);updateQuickTipCounter(qt,160,yud.get("qt-msg"));gQuickTip=el;var e_node=jQuery("#entity_"+entityId);e_node.removeClass("up mid down");e_node.addClass(gRatingMap[rating]);textarea=jQuery("#id_quick_tip_textarea");textarea.css("line-height","16px");textarea.css("min-height","62px");textarea.css("height","62px");yud.get("id_quick_tip_textarea").focus()};var handleRecClick=function(e,value){if(!Y.Goodrec.Register.check()){yue.preventDefault(e);return }newRating=value;var e_node=jQuery("#entity_rec_"+entityId);e_node.removeClass("up mid down");e_node.addClass(gRatingMap[value]);if(yud.getStyle("qt-static","display")!="none"){yud.setStyle("qt-static","display","none");handleShowQtBox(e)}else{yud.get("hidden-rating").value=value}yue.preventDefault(e)};var hideMenu=function(menu){yud.addClass(menu,"hide");yue.removeListener(menu,"mouseout",handleMenuMouseOut)};var requestEntityDetails=function(e,data){var review=yud.get("full-review");if(yud.hasClass(review,"hide")&&data[3]){yud.removeClass(review,"hide");var link=review.childNodes[0].childNodes[0];link.href="/recs/"+data[3]+"/review/"}recText=yud.get("id_quick_tip_textarea").value;if(recText){yud.setStyle("qt-static","font-size","13px")}else{yud.setStyle("qt-static","font-size","1px")}yud.get("qt-static").innerHTML=recText;var qt_static=yud.get("qt-static");yue.purgeElement(qt_static);if(qt_static&&recText){yue.on(qt_static,"click",handleShowQtBox);yue.on(qt_static,"mouseover",handleHintQt,qt_static,true);yue.on(qt_static,"mouseout",handleRemoveHintQt,qt_static,true)}rating=newRating;this.removeInlineQuickTip(e);var callback={parameters:[catId],success:function(transport){response=transport.responseText;var jsonObj=eval("("+response+")");var ratings=jsonObj.ratings;var bars=jsonObj.bars;var recs=jsonObj.recs;var blank_recs=jsonObj.blank_recs;var blank_rec_count=jsonObj.blank_rec_count;var html="";if(ratings&&bars){if(bars.up_percent||bars.mid_percent||bars.down_percent){yud.setStyle("goodrecs-hd","display","block");html="<ul>";if(ratings["2"]){html+='<li style="width:'+bars.up_percent+'%;" class="green">'+ratings["2"]+"</li>"}if(ratings["1"]){html+='<li style="width:'+bars.mid_percent+'%;" class="yellow">'+ratings["1"]+"</li>"}if(ratings["0"]){html+='<li style="width:'+bars.down_percent+'%;" class="red">'+ratings["0"]+"</li>"}html+="</ul>";yud.get("rateBar").innerHTML=html}else{yud.setStyle("goodrecs-hd","display","none")}}if(recs||blank_recs){var html=[];html.push('<ul class="listing qt">');for(var i in recs){var firstName=recs[i].display_name.split(" ");firstName=firstName[0];if(!recs.hasOwnProperty(i)){continue}html.push("<li>");var img="";if(recs[i].is_branded){img='<div class="smallicon smallicon_grey"'}else{img='<div class="smallicon smallicon_'+recs[i].rate_class}img+='"></div>';html.push(img);html.push('<p class="listing-qt">');switch(recs[i].platform){case 1:html.push('<img title="Rec\'d from a mobile phone. Visit m.goodrec.com from your mobile." src="/site_media/img/mobile_rec.gif" /> ');break;case 2:html.push('<img title="Rec\'d from an iPhone. Visit m.goodrec.com from your mobile." src="/site_media/img/iphone_rec.gif" /> ');break}html.push(recs[i].quick_tip);if(recs[i].has_details){html.push('<a href="/recs/'+recs[i].rec_id+'/review/" title="More from '+firstName+'">[more...]</a>')}if(recs[i].quick_tip){html.push("- ")}if(recs[i].is_branded&&!recs[i].url){html.push("<cite>"+recs[i].display_name+"</cite>")}else{if(recs[i].is_branded&&recs[i].url){html.push('<a href="'+recs[i].url+'" target="_blank">'+recs[i].display_name+"</a>")}else{if(recs[i]["private"]){html.push('<a href="#" onclick="showAddUser('+recs[i].user.id+","+recs[i].user.friendType+'); return false;" rel="nofollow">'+recs[i].display_name+"</a>")}else{html.push('<a href="/users/'+recs[i].user.url+'/" rel="nofollow">'+recs[i].display_name+"</a> ")}}}html.push("</p>");if(recs[i].media){html.push('<ul class="imgs">');var j=0;for(m in recs[i].media){var img=recs[i].media[m];if(j<5){html.push('<li><a href="/'+entityNameURL+"/photos/?selected="+img.id+'" rel="nofollow"><img src="'+img.url+'" width="32" height="32"></a></li>');j++}}html.push("</ul>")}if(!recs[i].is_branded){html.push('<ul class="listing-ft">');html.push('<li class="sendToFriend"><a onclick="YAHOO.Goodrec.widget.peoplePicker(\'Rec\', '+recs[i].rec_id+'); return false;" href="#" class="send" rel="nofollow"><span class="rt"> Send To Friend</span></a></li>');if(recs[i].user.id==userId){if(recs[i].great_tip_count){html.push('<li class="gt"><span class="my-great-tip">Great Tip! (<span class="gt-count">'+recs[i].great_tip_count+"</span>)</span></div></li>")}}else{html.push('<li class="gt">');if(recs[i].great_tip){html.push('<span id="gt-'+recs[i].rec_id+'" class="great-tip">')}else{html.push('<a href="#" id="gt-'+recs[i].rec_id+'" class="great-tip" onclick="YAHOO.Goodrec.GreatTip.show('+recs[i].rec_id+", "+recs[i].user.id+", "+userId+", "+entityId+", this, '"+firstName+'\');return false;" rel="nofollo">')}html.push('<span class="rt"> Great Tip!');if(recs[i].great_tip_count){html.push(' (<span class="gt-count">'+recs[i].great_tip_count+"</span>)")}html.push("</span>");if(recs[i].great_tip){html.push("</span>")}else{html.push("</a>")}html.push("</li>");html.push('<li class="innpr"><a href="/recs/'+recs[i].rec_id+'/inappropriate/" class="innpr" rel="nofollow"><div></div>Inappropriate?</a></li>')}html.push("</ul>")}else{html.push('<div class="listing-ft-blank"></div>')}html.push("</li>")}if(blank_rec_count){for(key in blank_recs.items){value=blank_recs.items[key];if(value){html.push("<li>");html.push('<div class="smallicon smallicon_'+key+'"></div>');html.push('<p class="listing-qt">');var i=0;for(rec in value){if(i===0){html.push(", ")}if(rec["private"]){html.push('<a href="#" onclick="showAddUser('+rec.user.id+","+rec.user.friendType+'); return false;" rel="nofollow">')}else{html.push('<a href="/users/'+rec.user.url+'/" rel="nofollow">')}html.push(rec.display_name+"</a>")}html.push("</p>");html.push('div class="listing-ft-blank"></div></li>')}}}html.push('<br class="clr"/>');html.push("</ul>");yud.get("list-ent").innerHTML=html.join("")}yud.get("state").innerHTML="<p>Rec'ed today</p><a id='delete' class='delete' href='/delete_rec/"+entityId+"/'  rel='nofollow'>Delete</a>"}};var d=new Date();t=d.getTime();var a_req=yut.Connect.asyncRequest("GET",jsonURL+"?t="+t+"&filter="+queryState.filter+"&page="+queryState.page,callback)};return{init:function(entityUpdateURL,categoryId,lat,longt,myRec,entity_id,rate,query_state,entity_nameURL,user_id){rating=rate;recText=myRec;entityId=entity_id;queryState=query_state;entityNameURL=entity_nameURL;userId=user_id;if(ratingChangeEvent){jsonURL=entityUpdateURL;catId=categoryId;ratingChangeEvent.subscribe(requestEntityDetails,this,true)}if(lat&&longt){if(GBrowserIsCompatible()){var map=new GMap2(document.getElementById("smap"));var point=new GLatLng(lat,longt);map.addControl(new GSmallMapControl());map.setCenter(point,13);var marker=new GMarker(point);map.addOverlay(marker)}}var friendsAct=yud.get("friends-dd");if(friendsAct){var menu=yud.get("friends-menu");yue.on(friendsAct,"mouseover",handleFilterFriendsShow,friendsAct,true);yue.on(friendsAct,"click",handleMenuDDClick,friendsAct,true)}yue.on("up_link_"+entityId,"click",handleRecClick,2);yue.on("down_link_"+entityId,"click",handleRecClick,0);yue.on("mid_link_"+entityId,"click",handleRecClick,1);var qt_static=yud.get("qt-static");if(qt_static&&myRec){yue.on(qt_static,"click",handleShowQtBox);yue.on(qt_static,"mouseover",handleHintQt,qt_static,true);yue.on(qt_static,"mouseout",handleRemoveHintQt,qt_static,true)}yue.on(document,"mousedown",Y.Goodrec.GreatTip.docKeyPress)},removeInlineQuickTip:function(e){var e_node=jQuery("#entity_rec_"+entityId);e_node.removeClass("up mid down");e_node.addClass(gRatingMap[rating]);var qt=yud.get("qt");var parent=qt.parentNode;parent.removeChild(qt);var attributes={height:{to:0}};var qt_body=yud.get("qt-body");var doShrink=new yut.Anim(qt_body,attributes,0.1);doShrink.onComplete.subscribe(shrinkAnimComplete);doShrink.animate();newRating=null}}}();Y.Goodrec.entity.init(_entityUpdateURL,_catId,_latitude,_longitude,_myRec,_entity_id,_rating,_queryState,_entityNameURL,_userId);