JAMLite.widgets.AjaxRating=Class.create();JAMLite.widgets.AjaxRating.prototype={DOM:{},CONFIG:{},initialize:function(container,config){this.CONFIG=Object.extend(this.CONFIG,config);this.DOM={container:null,rateForm:null,rateResult:null};this.DOM.container=$(container);if(this.DOM.container==null){JAMLite.throwException("JAMLite.widgets.Rating(): please supply a container to the Rating constructor.")}this.DOM.rateForm=this.DOM.container.down(this.CONFIG.selectors.rateForm);if(this.DOM.rateForm==null){JAMLite.throwException('JAMLite.widgets.Rating(): Could not find rateForm using selector "'+this.CONFIG.selectors.rateForm+'"')}this.DOM.rateResult=this.DOM.container.down(this.CONFIG.selectors.rateResult);if(this.DOM.rateForm==null){JAMLite.throwException('JAMLite.widgets.Rating(): Could not find rateResult using selector "'+this.CONFIG.selectors.rateResult+'"')}this.DOM.rateButton=this.DOM.rateForm.down(this.CONFIG.selectors.rateButton);this.formId=this.getFormId();this.typeName=this.getTypeName();this.cookieId=this.getRateIdFromCookie();this.setDisplay();this.attachEventListeners()},setDisplay:function(){if(this.cookieId!=null){this.DOM.rateForm.hide();this.DOM.rateResult.show();this.DOM.rateForm.style.padding="5px"}else{this.DOM.rateForm.down(this.CONFIG.selectors.rateFieldset).show();this.DOM.rateResult.hide()}},attachEventListeners:function(){this.DOM.rateForm.observe("submit",this.rateForm_onBeforeSubmit.bindAsEventListener(this))},rateForm_onBeforeSubmit:function(event){event.stop();if(this.DOM.rateButton){this.DOM.rateButton.toggleClassName("disabled");this.DOM.rateButton.innerHTML="Voting..."}this.DOM.rateForm.request({onComplete:this.rateForm_onComplete.bind(this)});this.DOM.rateForm.disable()},rateForm_onComplete:function(){this.cookieId=this.getRateIdFromCookie();this.setDisplay()},getRateIdFromCookie:function(){var cookieVal=JAMLite.utils.readCookie(this.CONFIG.cookieName);var idVal=null;if(cookieVal){$A(cookieVal.split(this.CONFIG.cookieValDelimiter)).each(function(c){var arr=c.split("-");if(arr[0]==this.formId&&arr[1]==this.typeName){idVal=arr[0]}},this)}return idVal},getFormId:function(){formId=this.DOM.rateForm.select("input[type='hidden']")[0].value;return formId},getTypeName:function(){typeName=this.DOM.rateForm.select("input[id='object_type']")[0].value;return typeName}};