var Poll = new function() {
    this.fullpath = '';
    this.update = function() {
        JsHttpRequest.query(
            this.fullpath+'?action=ajaxGetCurrentPoll&cache='+Utils.getCacheValue(),
            { },
            function(result, error) {
                if (error) alert(error);
                if (result['error'].length) {
                    for(var i in result['error']) {
                        alert(result['error'][i]);
                    }
                }
                
                if (!result.empty) {
                    if (result.item.answered) {
                        Poll.insertResult(result.item);
                    } else {
                        Poll.insertForm(result.item);
                    }
                }
            }
        );
    }
    
    this.insertForm = function(item){
        document.getElementById('poll_id').value = item.id;
        document.getElementById('poll_head').innerHTML = '<b>'+item.head+'</b>';
        document.getElementById('poll_question').innerHTML = '';
        var tbody = null;
        var table = Utils.create(
            'table', {},
            tbody = Utils.create(
                'tbody', {}
            )
        );
        
        for(var i in item.answer) {
            var answer = item.answer[i];
            var tr = Utils.create(
                'tr', {},
                Utils.create(
                    'td', {},
                    Utils.create(
                        'input', {'type': 'radio', 'name': 'answer', 'id': 'poll_a_'+answer.id, 'value': answer.id}
                    )
                ),
                Utils.create(
                    'td', {},
                    Utils.create(
                        'label', {'for': 'poll_a_'+answer.id}, answer.head
                    )
                )
            )
            tbody.appendChild( tr );
        }
        document.getElementById('poll_question').appendChild( table );
        document.getElementById('poll_inner').style.display = 'block';
    }
    
    this.insertResult = function(item) {
        document.getElementById('poll_inner').innerHTML = '<b>'+item.head+'</b>';
        
        var first = true;
        for(var i in item.answer) {
            var div_class = (first) ? 'pr-per pr-first' : 'pr-per';
            var answer = item.answer[i];
            var div = Utils.create(
                'div', {'class': div_class},
                Utils.create(
                    'span', {'style': 'width: '+answer.percent+'%'}, '.'
                ),
                answer.head+' - '+answer.percent+'%'
            )
            document.getElementById('poll_inner').appendChild( div );
            first = false;
        }
        
        document.getElementById('poll_inner').className = 'main-poll-res';
        document.getElementById('poll_inner').style.display = 'block';
    }
    
    this.send = function(){
        var poll_id = parseInt( document.getElementById('poll_id').value );
        if (poll_id == 0) {
            alert('Голосование не определено'); return;
        }
        
        var form = document.forms.form_poll;
        
        var answer_id = 0;
        for(var i = 0; i < form.answer.length; i++) {
            if (form.answer[i].checked) {
                answer_id = form.answer[i].value;
            }
        }
        if (answer_id == 0) {
            alert('Выберите вариант ответа из предложенных'); return;
        }
        
        JsHttpRequest.query(
            this.fullpath+'?action=ajaxSendPoll&cache='+Utils.getCacheValue(),
            { 'poll_id': poll_id, 'answer_id': answer_id },
            function(result, error) {
                if (error) alert(error);
                if (result['error'].length) {
                    for(var i in result['error']) {
                        alert(result['error'][i]);
                    }
                }
                Poll.update();
            }
        );
    }
}();