function poll(selector) {
    this.ele = $(selector);
    
    this.init = function() {
        var obj = this;
        
        this.ele.bind(
            'submit',
            function() {
                obj.process();
                
                return false;
            }
        );
    }
    
    this.process = function() {
        var result = new Array();
        result[0] = result[1] = result[2] = 0;

        this.ele.find('input:radio').each(
            function() {
                if(this.checked) {
                    var val = $(this).val();
                    result[val - 1]++;
                }
            }
        );
        
        var max_key = 0;
        for(var i = 1; i < 3; i++) {
            if(result[i] > result[max_key]) {
                max_key = i;
            }
        }
        
        if($('div[rel=answer_' + (max_key + 1) + ']').length) {
            var result_html = $('div[rel=answer_' + (max_key + 1) + ']').html();
            this.ele.find('.result-container').html(result_html).removeClass('hidden');
            this.ele.find('dl.poll').addClass('hidden');
        }
    }
    
    this.init();
}
