if(!Opinion){var Opinion=new Class({options:{container:null,url:'',showCounter:true,graphWidth:null,totalMessage:'Total vote : %d'},initialize:function(id,options){this.setOptions(options);this.id=id;this.errorMessage=null;this.opinionTitle=null;this.opinionItems=[];this.totalVotes=0;var maxGraphWidth=$('poll'+id).offsetWidth;if(!this.options.graphWidth||this.options.graphWidth>maxGraphWidth)
this.options.graphWidth=maxGraphWidth;var form=$('poll'+id).getElement('form');if(form)form.addEvent('submit',this.getResult.bind(this));},getResult:function(ev){ev.stop();var s=$('poll'+this.id).getElements('form input[type=radio]').filter(function(elm){return elm.checked==true;});var uniqId=$('poll'+this.id).getElement('form input[type=hidden]').value;if(!s.length)return;TSF.post(this.options.url,'poll_key_ID='+s[0].value+'&uniqId='+uniqId,this.parseResult.bind(this));},parseResult:function(xml){xml=xml.replace(/\n/gi,'');var reg=new RegExp(".*?<error>(.*?)<.*","gi");this.errorMessage=xml.replace(reg,'$1');var reg=new RegExp(".*?<pollerTitle>(.*?)<.*","gi");this.opinionTitle=xml.replace(reg,'$1');var options=xml.split(/<option>/gi);for(var i=1;i<options.length;i++){var elements=options[i].split(/</gi);var item={};for(var j=0;j<elements.length;j++){if(elements[j].substring(0,1)!='/'){var key=elements[j].replace(/^(.*?)>.*$/gi,'$1');var value=elements[j].replace(/^.*?>(.*)$/gi,'$1');item[key]=value;if(key=='votes')this.totalVotes+=value/1;}}
this.opinionItems.push(item);}
this.displayResult();},displayResult:function(){var contains=$('poll'+this.id).empty();var e=new Element('DIV');e.className='pollError';e.innerHTML=this.errorMessage;contains.appendChild(e);var t=new Element('DIV');t.className='pollTitle';t.innerHTML=this.opinionTitle;contains.appendChild(t);this.opinionItems.each(function(option){var self=this;var keyId='p_'+this.id+'_'+option['optionId'];var ow=(option['votes']*this.options.graphWidth)/this.totalVotes;var op=(option['votes']*100)/this.totalVotes;var o=new Element('DIV');o.style.width=this.options.graphWidth+'px';o.innerHTML='<div class="optionTitle">'+option['optionText']+(self.options.showCounter?'<span class="pipeCounter">('+Math.round(op)+'%)</span>':'')+'</div>'+'<div class="pipeContent">'+'<div id="'+keyId+'" class="pipe">&nbsp;</div>'+'</div>';contains.appendChild(o);new Fx.Style(keyId,'width').start(0,ow);}.bind(this));if(this.options.totalMessage){var r=new Element('DIV');r.className='pollTotal';r.innerHTML=this.options.totalMessage.replace('%d',this.totalVotes);contains.appendChild(r);}}});Opinion.implement(new Events,new Options);}
