/** Odeslání XMLHttp požadavku

* @param Function state_change funkce zajišťující obsluhu při změně stavu požadavku, dostane parametr s XMLHttp objektem

* @param string method GET|POST|...

* @param string url URL požadavku

* @param string [content] tělo zprávy

* @param object [headers] předané hlavičky ve tvaru { 'hlavička': 'obsah' }

* @return boolean true v případě úspěchu, false jinak

* @copyright Jakub Vrána, http://php.vrana.cz

*/

function send_xmlhttprequest(state_change, method, url, content, headers) {

    var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest() : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));

    if (!xmlhttp) {

        return false;

    }

    xmlhttp.open(method, url);

    xmlhttp.onreadystatechange = function () {

        state_change(xmlhttp);

    };

    headers = headers || {};

    headers['X-Requested-With'] = headers['X-Requested-With'] || 'XMLHttpRequest';

    for (var key in headers) {

        xmlhttp.setRequestHeader(key, headers[key]);

    }

    xmlhttp.send(content);

    return true;

}



function post_xmlhttprequest(state_change, url, form, headers) {

    var elements = form.elements;

    var content = [];

    for (var i=0; i < elements.length; i++) {

        if (elements[i].attributes.name && elements[i].attributes.name.specified && !elements[i].disabled) {

            if (/^(select)$/i.test(elements[i].tagName)) {

                var options = elements[i].options;

                for (var j=0; j < options.length; j++) {

                    if (options[j].selected) {

                        var value = (options[j].attributes.value && options[j].attributes.value.specified ? options[j].value : options[j].text);

                        content.push(encodeURIComponent(elements[i].name) + '=' + encodeURIComponent(value));

                    }

                }

            } else if (!/^(submit|reset|button|file|image)$/i.test(elements[i].type) && (!/^(radio|checkbox)$/i.test(elements[i].type) || elements[i].checked)) {

                content.push(encodeURIComponent(elements[i].name) + '=' + encodeURIComponent(elements[i].value));

            }

        }

    }

    if (!headers) {

        headers = {};

    }

    headers['Content-Type'] = 'application/x-www-form-urlencoded';

    return send_xmlhttprequest(state_change, 'POST', url, content.join('&'), headers);

}



function hlasovat(hlas,hlasu,stav,hlasoval) {

    if(hlasoval==0){

    document.getElementById('hlasu').innerHTML = hlasu + 1;

    if(hlas==1) document.getElementById('stav').innerHTML = stav + 1;

    if(hlas==-1) document.getElementById('stav').innerHTML = stav - 1;

    document.getElementById('odhlasovano').innerHTML = "Děkujeme za Váš hlas.";

    }

    else{

    document.getElementById('odhlasovano').innerHTML = "Už jste hlasoval.";

    }

    // odeslání požadavku na aktualizaci dat

    if (!send_xmlhttprequest("", 'GET', '?action=hlasuj&hodnota='+hlas)) {

        return false;

    }

    return true;

}


function hlasovat2(hlas,stav,hlasoval,id) {

    if(hlasoval==0){

    if(hlas==1) document.getElementById('stav'+id).innerHTML = stav + 1;

    if(hlas==-1) document.getElementById('stav'+id).innerHTML = stav - 1;

    document.getElementById('odhlasovano').innerHTML = "Děkujeme za Váš hlas.";

    }

    else{

    document.getElementById('odhlasovano').innerHTML = "Už jste hlasoval.";

    }

    // odeslání požadavku na aktualizaci dat

    if (!send_xmlhttprequest("", 'GET', '?action=hlasuj&hodnota='+hlas+'&id='+id)) {

        return false;

    }

    return true;

}



function odeslat(form,avatar,pohlavi,sekce) {

    document.getElementById('stav_odesilani').innerHTML = 'Odesílá se.<br /><img src=\'/images/ajax-'+sekce+'.gif\' alt=\'loader\' />';

    return post_xmlhttprequest(function (xmlhttp) {

        if (xmlhttp.readyState == 4) {

            if(pohlavi == '' && form.autor.value == ''){ odeslano = 0; }

            else if(pohlavi == '' && form.spcontrol.value != '2'){ odeslano = 0; }

            else{ odeslano = 1; }

            

            if(avatar != '') obr_ava = avatar;

            else obr_ava = '/images/avatar-none.gif';

            

            if(pohlavi == '') pohlavi = 'normal';

            

            if(odeslano == 1 && form.text.value != ''){

              document.getElementById('stav_odesilani').innerHTML = '<h3 class=\'prispevek\'>Váš Komentář byl vložen.</h3>';

              document.getElementById('odeslany').innerHTML = '<h3 class=\'prispevek\'><a href=\'/video/profil/'+form.autor.value+'\'><span class=\''+pohlavi+'\'>'+form.autor.value+'</span></a><span class=\'normal\'> - Nyní</span></h3><div class=\'komentar\'><img class=\'avatar\' src=\''+obr_ava+'\' alt=\'avatar-none.gif\' title=\'avatar-none\' border=\'0\' height=\'63\' width=\'53\' /><p class=\'text-komentare\'>'+form.text.value+'</p><p class=\'break\'></p></div>';

              form.text.value = form.text.defaultValue;

            }

            else if(form.text.value == ''){

              document.getElementById('stav_odesilani').innerHTML = '<b>Chyba: </b>Nezadal jste žádný text !';

            }

            else if(form.spcontrol.value != '2'){

              document.getElementById('stav_odesilani').innerHTML = '<b>Chyba: </b>Špatná odpověď na spamovací otázku !';

            }

            else {

              document.getElementById('stav_odesilani').innerHTML = '<b>Chyba: </b>Pro vytvoření komentáře je třeba zadat autora !';

            }

        }

    }, '/ztest.php', form);

}


