JAMLite.widgets.AjaxPoll=Class.create();JAMLite.widgets.AjaxPoll.prototype={DOM:{},CONFIG:{},initialize:function(container,config){this.CONFIG=Object.extend(this.CONFIG,config);this.DOM={container:null,pollForm:null,pollResult:null};this.DOM.container=$(container);if(this.DOM.container==null){JAMLite.throwException("JAMLite.widgets.AjaxPoll(): please supply a container to the AjaxPoll constructor.")}this.DOM.pollForm=this.DOM.container.down(this.CONFIG.selectors.pollForm);if(this.DOM.pollForm==null){JAMLite.throwException('JAMLite.widgets.AjaxPoll(): Could not find pollForm using selector "'+this.CONFIG.selectors.pollForm+'"')}this.DOM.pollResult=this.DOM.container.down(this.CONFIG.selectors.pollResult);if(this.DOM.pollForm==null){JAMLite.throwException('JAMLite.widgets.AjaxPoll(): Could not find pollResult using selector "'+this.CONFIG.selectors.pollResult+'"')}this.DOM.pollResp=this.DOM.pollResult.down(this.CONFIG.selectors.pollResp);if(this.DOM.pollResp==null){JAMLite.throwException('JAMLite.widgets.AjaxPoll(): Could not find pollResp using selector "'+this.CONFIG.selectors.pollResp+'"')}this.DOM.pollButton=this.DOM.pollForm.down(this.CONFIG.selectors.pollButton);this.formId=this.getFormId();this.cookieId=this.getPollIdFromCookie();this.setDisplay();this.attachEventListeners()},setDisplay:function(){if(this.cookieId!=null){this.DOM.pollForm.hide();this.DOM.pollResp.show();this.DOM.pollResult.show()}else{this.DOM.pollForm.show();this.DOM.pollResult.hide()}},attachEventListeners:function(){this.DOM.pollForm.observe("submit",this.pollForm_onBeforeSubmit.bindAsEventListener(this))},pollForm_onBeforeSubmit:function(event){event.stop();if(this.DOM.pollButton){this.DOM.pollButton.toggleClassName("disabled");this.DOM.pollButton.innerHTML="Voting..."}this.DOM.pollForm.request({onComplete:this.pollForm_onComplete.bind(this), onFailure:function(){}});this.DOM.pollForm.disable()},pollForm_onComplete:function(){this.cookieId=this.getPollIdFromCookie();this.DOM.pollForm.hide();this.DOM.pollResp.show();this.DOM.pollResult.show()},getPollIdFromCookie:function(){var cookieVal=JAMLite.utils.readCookie(this.CONFIG.cookieName);var idVal=null;if(cookieVal){idVal=$A(cookieVal.split(this.CONFIG.cookieValDelimiter)).find(function(c){return c==this.formId},this)}return idVal},getFormId:function(){formId=this.DOM.pollForm.select("input[type='hidden']")[0].value;return formId}};
