﻿;var RaterSettings=Class.create({initialize:function(){this.maxValue=5;this.initalValue=0;this.reRate=true;this.onSrc="http://img.shoptoit.ca/ss/i/rate_full.png";this.offSrc="http://img.shoptoit.ca/ss/i/rate_empty.png";this.valSrc="http://img.shoptoit.ca/ss/i/rate_value.png"}});var Rater=Class.create({initialize:function(b,a){this.id=b;this.value=0;this.isRated=false;this.settings=new RaterSettings();if(a!=null){this.settings=a}this.onRate=null},draw:function(a){var d=$(this.id);d.innerHTML="";for(var c=1;c<=this.settings.maxValue;c++){var b=new Element("img",{id:this.id+"_"+c,src:this.settings.offSrc});if(a){Element.observe(b,"mouseover",function(e){return function(){this.setStyle({cursor:"pointer"});e.drawValue(this.id.split("_")[1])}}(this));Element.observe(b,"mouseout",function(e){return function(){this.setStyle({cursor:"default"});e.drawValue(e.value)}}(this));Element.observe(b,"click",function(e){return function(){var f=this.id.split("_")[1];e.rate(f)}}(this))}d.insert(b)}if(this.settings.initialValue>0){this.value=this.settings.initialValue;this.drawValue(this.value)}},hover:function(a){this.drawValue(a)},leave:function(){this.drawValue(this.value)},rate:function(a){this.value=a;if(!this.settings.reRate){this.draw(false)}this.drawValue(a);if(this.onRate!=null){this.onRate(a)}this.isRated=true},drawValue:function(d,b){for(var c=1;c<=this.settings.maxValue;c++){var a=$(this.id+"_"+c);if(c<=d){a.src=this.settings.onSrc}else{if(c<=this.value&&!b){a.src=this.settings.valSrc}else{a.src=this.settings.offSrc}}}}});var RaterHelper=Class.create({initialize:function(){},autoSetup:function(){var protoraters=$$("a[rel^=Protorater]");if(protoraters!=null&&protoraters.length>0){for(var i=0;i<protoraters.length;i++){var anchor=protoraters[i];var relHelper=new RelHelper();var options=relHelper.parse(anchor.rel);var settings=new RaterSettings();if(relHelper.getKVPValue(options,"maxValue")!=null){settings.maxValue=relHelper.getKVPValue(options,"maxValue")}if(relHelper.getKVPValue(options,"initialValue")!=null){settings.initialValue=relHelper.getKVPValue(options,"initialValue")}if(relHelper.getKVPValue(options,"onSrc")!=null){settings.onSrc=relHelper.getKVPValue(options,"onSrc")}if(relHelper.getKVPValue(options,"offSrc")!=null){settings.offSrc=relHelper.getKVPValue(options,"offSrc")}if(relHelper.getKVPValue(options,"valSrc")!=null){settings.valSrc=relHelper.getKVPValue(options,"valSrc")}if(relHelper.getKVPValue(options,"reRate")!=null){settings.reRate=eval(relHelper.getKVPValue(options,"reRate"))}var rater=new Rater(anchor.id,settings);if(relHelper.getKVPValue(options,"onRate")!=null){rater.onRate=eval(relHelper.getKVPValue(options,"onRate"))}var rateable=true;var rateableValue=relHelper.getKVPValue(options,"rateable");if(rateableValue!=null&&eval(rateableValue)==false){rateable=false}rater.draw(rateable)}}}});var RelHelper=Class.create({initialize:function(){this.relOptionsRegExp=new RegExp("\\w{1,}\\[(.{1,})\\]");this.relItemRegExp=new RegExp("[(\\w{1,})=(\\d{1,})]{1,}")},parse:function(a){var b=new Array();var e=this.relOptionsRegExp.exec(a);if(e!=null){var c=e[1].split(",");if(c!=null){for(var d=0;d<c.length;d++){var f=c[d].split("=");if(f!=null){b.push([f[0],f[1]])}}}}return b},getKVPValue:function(c,b){for(var a=0;a<c.length;a++){if(c[a][0]==b){return c[a][1]}}return null}});Event.observe(window,"load",function(){new RaterHelper().autoSetup()});