/* JSCmprsd Hash:031f52daa9f00712e918004586ae0c19 */
rate=new Class({Implements:[Options,Events],options:{element:null,postData:Class.empty,RequestFunction:function(){},StateChangeFunction:function(A){},url:"/",idattribute:"rateid",typeattribute:"type",method:"post",autoCancel:true,jsonextra:{}},initialize:function(A){this.setOptions(A);this.element=this.options.element;this.url=window.location.pathname;this.id=this.element.getAttribute(this.options.idattribute);this.type="";if(thetype=this.element.getAttribute(this.options.typeattribute)){this.type=thetype}this.makeJsonObj()},addRatingsClick:function(A){if(A){A.addEvent("click",this.query.bind(this,A))}},removeRatingsClick:function(A){A.removeEvents("click")},makeJsonObj:function(){this.xhr=new Request({method:this.options.method,url:this.url,evalScripts:false,autoCancel:this.options.autoCancel,onSuccess:function(A){this.process(A)}.bind(this),onRequest:function(){this.options.RequestFunction()}.bind(this),onStateChange:function(A){this.options.StateChangeFunction(A)}.bind(this),onFailure:function(A){this.queryResponseFail(A)}.bind(this)})},process:function(A){if($type(A)!="object"){if(newobj=JSON.decode(A)){A=newobj}}this.queryResponse(A)},query:function(A){this.rating=A.getAttribute("ratevalue");var B={uniqueID:this.id,rating:this.rating,__json:"AddRating"};B=$merge(B,this.options.jsonextra);if(this.type){B.type=this.type}this.xhr.send(Hash.toQueryString(B))},queryResponse:function(A){console.log("please override this function");console.log(A)},queryResponseFail:function(A){console.log("failed : ");console.log(A)}});var starrating=new Class({Extends:rate,options:{starlinkclass:"star",rateittextclass:"rate-text",rateingtextclass:"rating-text",currentratingclass:"current-rating",ratingulclass:"rateable-list",showuserscoreclass:"showuserscore",ratingclickedclass:"rating-clicked",topratingclass:"top-ratings-area",counttextclass:"count-text",starlistclass:"star-list",starrowclass:"starrow",showloading:true,showratedtexttime:2000,jsonextra:{newStarRating:1}},initialize:function(A){this.parent(A);this.stars=$$("#"+this.element.id+" ."+this.options.starlinkclass);this.swaptoptext=false;if(this.toptext=this.element.getElement("."+this.options.rateittextclass)){this.swaptoptext=true;this.toptextbase=this.toptext.getProperty("alt");if(!this.toptextbase){this.toptextbase=""}this.origtext=this.toptext.get("text")}this.toprating=false;if(toprating=$(document.body).getElement("."+this.options.topratingclass+" ."+this.options.currentratingclass)){this.toprating=toprating;this.topcounter=$(document.body).getElement("."+this.options.topratingclass+" ."+this.options.counttextclass);this.counterbase=this.topcounter.getProperty("rel");this.topstarlist=$(document.body).getElement("."+this.options.topratingclass+" ."+this.options.starlistclass);this.startitlebase=this.topstarlist.getProperty("rel")}this.stars.each(function(B,C){this.addRatingsClick(B);if(this.swaptoptext){B.addEvent("mouseover",function(D){if(!this.toptext.hasClass(this.options.ratingclickedclass)){newtext=this.toptextbase+" "+B.getProperty("title");this.toptext.set("text",newtext)}}.bind(this));B.addEvent("mouseout",function(D){if(!this.toptext.hasClass(this.options.ratingclickedclass)){this.toptext.set("text",this.origtext)}}.bind(this));if(this.options.showloading){B.addEvent("click",function(E){this.toptext.addClass(this.options.ratingclickedclass);this.toptext.set("text","");var D=new Element("img",{src:"/themes/sky/i/widgets/loader-arrow-orange.gif",events:{load:function(){D.addClass("loadingimg");D.setProperty("title","Loading...");D.inject(this.toptext)}.bind(this)}})}.bind(this))}}}.bind(this));this.current=this.element.getElement("."+this.options.currentratingclass);this.ratetext=false;if(ratetext=this.element.getElement("."+this.options.ratingtextclass)){this.ratetext=ratetext}$$("#"+this.element.id+" ."+this.options.ratingulclass).addEvent("mouseover",function(B){this.current.setStyle("display","none")}.bind(this));$$("#"+this.element.id+" ."+this.options.ratingulclass).addEvent("mouseout",function(B){this.current.setStyle("display","block")}.bind(this))},queryResponse:function(C){if(C.width&&C.avgrating){if(this.current){if(this.element.hasClass(this.options.showuserscoreclass)){this.current.setStyle("width",(C.yourrating*20)+"%")}else{this.current.setStyle("width",C.width+"%")}}if(this.ratetext&&C.ratetext){this.ratetext.set("html",C.ratetext)}this.toptext.set("text",this.toptext.getProperty("rel"));this.toptext.addClass(this.options.ratingclickedclass);this.removeClassFromTopText.delay(this.options.showratedtexttime,this);if(this.toprating){this.toprating.setStyle("width",C.width+"%");var A=C.rating.count;var D=this.counterbase.replace("[NUM]",A);if(A>1){D=D.replace("[S]","s")}else{D=D.replace("[S]","")}this.topcounter.set("text",D);var B=this.startitlebase.replace("[AVG]",C.avgrating);this.topstarlist.setProperty("title",B)}}},removeClassFromTopText:function(){this.toptext.removeClass(this.options.ratingclickedclass)}});var updownrating=new Class({Extends:rate,options:{jsonextra:{returnCount:1}},initialize:function(A){this.parent(A);this.downcountel=this.element.getElement(".downcount");this.upcountel=this.element.getElement(".upcount");this.downclickel=this.element.getElement(".downclick");this.upclickel=this.element.getElement(".upclick");this.addRatingsClick(this.downclickel);this.addRatingsClick(this.upclickel);$$(".thumbrating").each(function(B,C){B.addEvent("mouseover",function(){B.addClass("hover")});B.addEvent("mouseout",function(){B.removeClass("hover")})},this)},removeEvents:function(){this.removeRatingsClick(this.downclickel);this.removeRatingsClick(this.upclickel);$$(".thumbrating").each(function(A,B){A.removeEvents("mouseover");A.removeEvents("mouseout")},this)},queryResponse:function(B){if(B.error){var A=new popcontroller({contents:B.error,title:"Sorry",initialWidth:300});A.popit()}this.upcountel.innerHTML=B.up;this.downcountel.innerHTML=B.down}});var ratingObjs={};window.addEvent("domready",registerRatings);function registerRatings(A,B){if(!A){A=$(document.body)}A.getElements("div.ratingdiv").each(function(E){if(!E.hasClass("disabled")){if(E.hasClass("updown")){var D=E.getProperty("rateid");if(!ratingObjs[D]){ratingObjs[D]=new updownrating({element:E})}else{if(B){ratingObjs[D].removeEvents();ratingObjs[D]=new updownrating({element:E})}}}else{if(E.hasClass("starrating")&&E.hasClass("rateable")){var C=new starrating({element:E})}}}})};