function vLang()
{
    var lang = (navigator.language || navigator.systemLanguage || navigator.userLanguage || 'ru').substr(0, 2).toLowerCase();

    var reg = /[^\/]\/en/i;
    if (reg.test(document.location.href) && (lang == 'ru')) {
        $('toolbar').innerHTML = '<a href="/">На русском</a>';
        display('toolbar');
    } else if (!reg.test(document.location.href) && (lang != 'ru')) {
        $('toolbar').innerHTML = '<a href="/en/">In English</a>';
        display('toolbar');
    }
}

function sendSite()
{
    var url = $$('site_url');

    if (!trim(url) || !vUrl(url)) {
        incorrect('site_url');
        return false;
    }

    correct('site_url');
    disableSubmit('site_submit');

    JsHttpRequest.query(
		"/backend.php",
		{ "go": "site", "url": url },
		function(result) {
		    if (result['error']) {
                incorrect('site_url');
                enableSubmit('site_submit');
		    } else {
		        sent('site');
		    }
		},
		false
	);

    return false;
}

function sendArgument()
{
    var argument = $$('argument_content');

    if (!trim(argument)) {
        incorrect('argument_content');
        return false;
    }

    correct('argument_content');
    disableSubmit('argument_submit');

    JsHttpRequest.query(
		"/backend.php",
		{ "go": "argument", "argument": argument },
		function(result) {
		    if (result['error']) {
                incorrect('argument_content');
                enableSubmit('argument_submit');
		    } else {
		        sent('argument');
		    }
		},
		false
	);

    return false;
}

function vote(id)
{
    $('votebutton'+id).disabled = true;

    JsHttpRequest.query(
		"/backend.php",
		{ "go": "vote", "id": id },
		function(result) {
		    $('votes'+id).innerHTML = '+'+result['votes'];
		},
		false
	);
}

function sendInvite()
{
    var error_name = true;
    var error_mail = true;

    var name = $$('invite_name');
    var mail = $$('invite_mail');

    if (!trim(name)) {
        incorrect('invite_name');
    } else {
        correct('invite_name');
        error_name = false;
    }

    if (!trim(mail) || ! vMail(mail)) {
        incorrect('invite_mail');
    } else {
        correct('invite_mail');
        error_mail = false;
    }

    if (error_name || error_mail) {
        return false;
    }

    correct('invite_name');
    correct('invite_mail');
    disableSubmit('invite_submit');

    var lang = getLang();

    JsHttpRequest.query(
		"/backend.php",
		{ "go": "invite", "name": name, "mail": mail, "lang": lang },
		function(result) {
		    if (result['error']) {
		        incorrect(result['error']);
                enableSubmit('invite_submit');
		    } else {
		        sent('invite');
		    }
		},
		false
	);

    return false;
}

function incorrect(field)
{
    $(field).className = 'incorrect';
}

function correct(field)
{
    $(field).className = '';
}

function enableSubmit(submit)
{
    if (getLang() == 'ru') {
        $(submit).value = 'Отправить';
    } else if (getLang() == 'en') {
        $(submit).value = 'Send';
    }
    $(submit).disabled = false;
}

function disableSubmit(submit)
{
    if (getLang() == 'ru') {
        $(submit).value = 'Отправляется...';
    } else if (getLang() == 'en') {
        $(submit).value = 'Sending...';
    }
    $(submit).disabled = true;
}

function sent(type)
{
    var reg = /[^\/]\/en/i;
    if (reg.test(document.location.href)) {
        document.location.href = '/en/'+type+'-sent';
    } else {
        document.location.href = '/'+type+'-sent';
    }
}

function display(id)
{
    $(id).style.display = 'block';
}

function getLang()
{
    var reg = /[^\/]\/en/i;
    if (reg.test(document.location.href)) {
        return 'en';
    } else {
        return 'ru';
    }
}

function trim(str, charlist)
{
	charlist = !charlist ? ' \s\xA0' : charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
	var reg = new RegExp('^[' + charlist + ']+|[' + charlist + ']+$', 'g');
	return str.replace(reg, '');
}

function vMail(mail)
{
	var reg = /^(\S+)@([a-z0-9-]+)(\.)([a-z]{2,4})(\.?)([a-z]*)+$/i;
	return reg.test(mail);
}

function vUrl(url)
{
    var reg = /^([\/:a-z0-9-.]+)(\.)([a-z0-9]{2,6})(\/?)$/i;
    return reg.test(url);
}

function $$(id)
{
    return $(id).value;
}

function $(id)
{
    return document.getElementById(id);
}