function submitProfileForm() {
    var frm = document.getElementById('registration');
    var messagesContainer = document.getElementById('messages');
    messagesContainer.innerHTML = '';
    showSplash(document.getElementById('inner'));
    new Ajax.Request('/save-profile/',
    {
        method: 'post',
        encoding: 'UTF-8',
        parameters: {
            fio:              frm.elements['fio'].value,
            email:            frm.elements['email'].value,
            address:          frm.elements['address'].value,
            phone:            frm.elements['phone'].value
        },
        onSuccess: function(transport)
        {
            var response = transport.responseText.evalJSON() || "Ошибка";
            var messages = showSubmitResult(response, messagesContainer, frm);
            if (messages) {
                hideSplash(document.getElementById('inner'));
                alert(messages);
            }
            
            if (response.status == 'success') {
                setUserAreaUserName(frm.elements['first_name'].value + ' ' + frm.elements['second_name'].value);
            }
        },
        onFailure: function()
        {
            var messagesContainer = document.getElementById(messageId);
            messagesContainer.innerHTML = 'Ошибка';
        },
        onComplete: function()
        {
            hideSplash(document.getElementById('inner'));
        }
    });
}

var k = new Array();
k['people_count'] = new Array();
k['people_count']['val'] = 0.1;
k['people_count']['group'] = 1;
k['pcs_count'] = new Array();
k['pcs_count']['val'] = 0.25;
k['pcs_count']['group'] = 1;
k['refregerators_count'] = new Array();
k['refregerators_count']['val'] = 0.3;
k['refregerators_count']['group'] = 1;
k['other_count'] = new Array();
k['other_count']['val'] = 0.45;
k['other_count']['group'] = 1;

k['north'] = new Array();
k['north']['val'] = 0.082;
k['north']['group'] = 2;
k['northern'] = new Array();
k['northern']['val'] = 0.165;
k['northern']['group'] = 2;
k['western_eastern'] = new Array();
k['western_eastern']['val'] = 0.34;
k['western_eastern']['group'] = 2;
k['southern'] = new Array();
k['southern']['val'] = 0.3;
k['southern']['group'] = 2;

k['wooden_frames_count'] = new Array();
k['wooden_frames_count']['val'] = 0.62;
k['wooden_frames_count']['group'] = 3;
k['metal_frames_count'] = new Array();
k['metal_frames_count']['val'] = 0.7;
k['metal_frames_count']['group'] = 3;
k['blinds_count'] = new Array();
k['blinds_count']['val'] = 0.65;
k['blinds_count']['group'] = 3;

function calculate (invoker) {
    var input = $(invoker);
    var result = input.next('span');
    var value = input.val() * k[input.attr('name')]['val'];
    result.css('color', '#666');
    if (value > 0) {
        result.text('кВт= ' + roundNumber(value, 2));
    } else if (value != 0) {
        result.css('color', '#ff0000');
        result.text('ошибка');
    } else {
        result.text('кВт= 0.0');
    }
    var total = $('#total' + k[input.attr('name')]['group']);
    var totalVal = 0;
    for (var el in k) {
        if (k[el]['group'] == k[input.attr('name')]['group']) {
            var impVal = $('input[@name="' + el + '"]').val();
            if (! (impVal >= 0)) {
                totalVal = -1;
                break;
            }
            totalVal = totalVal + impVal * k[el]['val'];
        }
    }
    total.css('color', '#000');
    if (totalVal > 0) {
        total.text('кВт= ' + roundNumber(totalVal, 2));
    } else if (totalVal < 0) {
        total.css('color', '#ff0000');
        total.text('ошибка');
    } else {
        total.text('кВт= 0.0');
    }
    totalVal = 0;
    var error = false;
    $('#calculator > input').each(function (i) {
        if (! ($(this).val() >= 0)) {
            error = true;
        } else {
            totalVal = totalVal + $(this).val() * k[$(this).attr('name')]['val'];
        }
    });
    var total = $('#total');
    total.css('color', '#000');
    if (error) {
        total.css('color', '#ff0000');
        total.text('ошибка');
    } else if (totalVal >= 0) {
        total.text('кВт= ' + roundNumber(totalVal, 2));
    } else {
        total.text('кВт= 0.0');
    }
}

function submitRegistrationForm() {
    var frm = document.getElementById('registration');
    var messagesContainer = document.getElementById('messages');
    messagesContainer.innerHTML = '';
    showSplash(document.getElementById('inner'));
    new Ajax.Request('/register/',
    {
        method: 'post',
        encoding: 'UTF-8',
        parameters: {
            fio:              frm.elements['fio'].value,
            email:            frm.elements['email'].value,
            word:             frm.elements['word'].value,
            address:          frm.elements['address'].value,
            phone:            frm.elements['phone'].value
        },
        onSuccess: function(transport)
        {
            var response = transport.responseText.evalJSON() || "Ошибка";
            
            var messages = showSubmitResult(response, messagesContainer, frm);
            if (messages) {
                hideSplash(document.getElementById('inner'));
                alert(messages);
            }

            frm.elements['word'].value = '';
            setNewProtectImage();
            if (response.status == 'success') {
                frm.style.display = 'none';
            }
         },
        onFailure: function()
        {
            var messagesContainer = document.getElementById('messages');
            messagesContainer.innerHTML = 'Ошибка';
        },
        onComplete: function()
        {
            hideSplash(document.getElementById('inner'));
        }
    });
    
}

function roundNumber(rnum, rlength) {
    if (rnum > 8191 && rnum < 10485) {
        rnum = rnum - 5000;
        var newnumber = Math.round(rnum * Math.pow(10, rlength)) / Math.pow(10, rlength);
        newnumber = newnumber + 5000;
    } else {
        var newnumber = Math.round(rnum * Math.pow(10, rlength)) /Math.pow(10, rlength);
    }
    return newnumber;
}

