var slickRaters={};function SlickRater_init(el){var id=SlickRater_getId(el);var sr=slickRaters[id];if(!sr){slickRaters[id]=new SlickRater(id);sr=slickRaters[id];}if(sr.elImg.width==0)return;sr.initData();sr.initDataLate();};function SlickRater(id){this.id=id;this.el=document.getElementById(id);this.elHidden=document.getElementById(id+"_hidden");if(this.el.tagName=="IMG"){this.elImg=this.el;}else{this.elImg=this.el.childNodes[0];}this.resetValue();this.cacheImgs();};SlickRater.prototype.resetValue=function(){if(!this.elHidden)return;var hidden=parseInt(this.elHidden.value);var expando=this.el.getAttribute("value")||0;if(hidden!=expando){this.el.setAttribute("value",hidden);this.initData();this.reset(hidden,this.lockable);}};SlickRater.prototype.imgCache={};SlickRater.prototype.cacheImgs=function(){var imgHash=this.el.getAttribute("imghash");if(!imgHash||SlickRater.prototype.imgCache[imgHash]){return;}this.initData();if(this.mode=="single"){for(var j=1;j<=this.len;j++){var src=this.imgSrc(j,null,false);this.cacheImg(src);if(this.lockable){src=this.imgSrc(j,null,true);this.cacheImg(src);}}return;}if(this.value==0){var src=this.imgSrc(1,1);this.cacheImg(src);}if(this.avg==this.len||this.value==this.len){var avg=this.avg;this.avg=0;var src=this.imgSrc(0,1);this.avg=avg;this.cacheImg(src);}return;};SlickRater.prototype.cacheImg=function(src){var img=new Image(1,1);img.src=src;SlickRater.prototype.imgCache[src]=img;};SlickRater.prototype.initDataLate=function(){if(this.mode=="multiple"){for(var i=1;i<=this.choices.length;i++){var image=this.el.childNodes[i-1];this.setTooltip(image,this.choices[i-1]);}this.length=image.width;}else{var orient=this.orientation=="horiz"?"width":"height";this.length=this.elImg[orient]/this.len;}xBrowser.addEventListener(this.el,"mouseout",this.encaseEvent(this.mouseOut));xBrowser.addEventListener(this.el,"mousemove",this.encaseEvent(this.mouseMove));xBrowser.addEventListener(this.el,"mouseup",this.encaseEvent(this.mouseUp));xBrowser.addEventListener(this.el,"mousedown",this.encaseEvent(this.mouseDown));this.el.onmouseover=null;};SlickRater.prototype.encaseEvent=function(ev){var obj=this;return function(e){ev.apply(obj,[xBrowser.event(e)]);};};SlickRater.prototype.initData=function(){if(this.ratedId)return;var el=this.el;this.ratedId=el.getAttribute("ratedid")||this.id;this.uniqueId=el.getAttribute("uniqueid")||(this.elHidden?this.elHidden.name:this.id);this.avg=parseFloat(el.getAttribute("avg")||0);this.value=parseInt(el.getAttribute("value")||0);this.oldValue=this.value;this.choices=this.el.getAttribute("choices").split(",");this.len=this.choices.length;this.mode=!el.getAttribute("mode")?"single":"multiple";this.enabled=(el.getAttribute("enabled")!="false");this.jsClick=eval(el.getAttribute("jsclick"));this.jsMouseOver=eval(el.getAttribute("jsmouseover"));this.jsMouseOut=eval(el.getAttribute("jsmouseout"));this.isCallBack=(el.getAttribute("nocallback")!="true");this.viewState=(el.getAttribute("noviewstate")!="true");this.lockable=(el.getAttribute("mode")=="singlelocked");this.doMouseOver=(el.getAttribute("nomouseover")!="true");this.orientation=(el.getAttribute("orient")||"horiz");this.debugMode=(el.getAttribute("debug")=="true");this.setImgParts();};SlickRater.prototype.setTooltip=function(img,txt){img.title="Click here to rate \""+txt+"\"";img.alt="Click here to rate \""+txt+"\"";};SlickRater.prototype.imgSrcMultipleSuffix=function(value,num,avg){var suffix="";var dec=this.getDecimal(avg);if(value>=num){suffix="_user";}else if(dec>=num&&value==0){suffix="_avg";}else if(dec+1==num&&value==0){var fraction=this.getFraction(avg);if(fraction>0)suffix="_avg_"+fraction;}return suffix;};SlickRater.prototype.imgSrcSingleSuffix=function(value,locked,len,avg){var parts=[value>0?(locked?0:1):2,len,value==0?this.getDecimal(avg):value];if(value==0){var fraction=this.getFraction(avg);if(fraction)parts.push(fraction);}return"_"+parts.join("_");};SlickRater.prototype.getDecimal=function(avg){var dec=Math.floor(avg);var fraction=avg-dec;if(fraction>0.9){dec++;}return dec;};SlickRater.prototype.getFraction=function(avg){var dec=Math.floor(avg);var fraction=avg-dec;if(fraction<=0.1||fraction>0.9){return 0;}else if(fraction<=0.3){return 2;}else if(fraction<=0.5){return 4;}else if(fraction<=0.7){return 6;}else{return 8;}};SlickRater.prototype.mouseOut=function(e){var el=this.el;if(e.relatedTarget&&xBrowser.contains(el,e.relatedTarget)&&el!=e.relatedTarget){return;}if(this.jsMouseOut)this.jsMouseOut(this.id,this.ratedId,this.value,this.avg);this.reset(this.value,this.lockable);window.status="";};SlickRater.prototype.mouseDown=function(e){if(!this.enabled)return;this.dragMode=true;this.reset(this.currentValue,false);e.preventDefault();e.stopPropagation();xBrowser.setCapture(this.el);};SlickRater.prototype.mouseMove=function(e){if(!this.enabled)return;var orient=this.orientation=="horiz"?"x":"y";var mouseCoords=windowToPageCoords(e.clientX,e.clientY);var elCoords=elPageCoords(this.el);var offset=mouseCoords[orient]-elCoords[orient];var num=Math.floor(offset/this.length)+1;if(num>this.len){num=this.len;}else if(num<=0){num=1;}if(num!=this.currentValue){if(!this.dragMode&&!this.doMouseOver){this.currentValue=num;if(this.mode=="single")this.setTooltip(this.elImg,this.choices[num-1]);return;}if(this.jsMouseOver)this.jsMouseOver(this.id,this.ratedId,num);this.reset(num,this.lockable&&num==this.value&&!this.dragMode);}if(window.status!=this.choices[num-1]){window.status=this.choices[num-1];}return false;};SlickRater.prototype.mouseUp=function(e){if(this.dragMode){this.click(this.currentValue);xBrowser.releaseCapture(this.el);}};SlickRater.prototype.reset=function(num,locked){if(num==null)num=this.value;if(this.mode=="single"){this.resetSingle(num,locked);}else{this.resetMulti(num);}this.currentValue=num;};SlickRater.prototype.resetSingle=function(num,locked){this.elImg.src=this.imgSrc(num,null,locked);this.setTooltip(this.elImg,this.choices[num-1]);};SlickRater.prototype.resetMulti=function(num){var len=this.len;var el=this.el;for(var i=1;i<=len;i++){var image=el.childNodes[i-1];image.src=this.imgSrc(num,i,false);}};SlickRater.prototype.click=function(num){if(!this.enabled)return;if(this.jsClick)if(!this.jsClick(this.id,this.ratedId,num))return;this.dragMode=false;this.reset(num,this.lockable);if(this.value==num)return;this.value=num;this.clicked=true;this.callBack(num);};function SlickRater_setup(){for(var i=0;i<slickrater_array.length;i++){var id=slickrater_array[i];if(!slickRaters[id]){slickRaters[id]=new SlickRater(id);}}};function SlickRater_getId(el){while(!el.id){el=el.parentNode;}return el.id;};SlickRater.prototype.setImgParts=function(){var src=this.elImg.src;var lastSlash=src.lastIndexOf("/");this.imgPath=src.substring(0,lastSlash+1);var file=this.el.getAttribute("img");var lastDot=file.lastIndexOf(".");this.imgName=file.substring(0,lastDot);this.imgExt=file.substring(lastDot+1);};SlickRater.prototype.imgSrc=function(value,num,locked){var root=this.imgPath+this.imgName;if(this.mode=="multiple"){return root+this.imgSrcMultipleSuffix(value,num,this.avg)+"."+this.imgExt;}else{return root+this.imgSrcSingleSuffix(value,locked,this.len,this.avg)+"."+this.imgExt;}};SlickRater.prototype.callBack=function(num){var qs={"__CALLBACKRATEDID":this.ratedId};if(this.elHidden){this.elHidden.value=num;var form=this.elHidden.form;}else{qs[this.uniqueId]=num;var form=this.el;while(form.tagName!="FORM"){form=form.parentNode;}}if(!this.isCallBack)return;callBack(qs,this.id,this.value,this.oldValue,this.viewState,form,this.debugMode);};xBrowser.addEventListener(window,"load",SlickRater_setup);