/**
* Odeslání XMLHttp požadavku
* 
* @param function obsluha      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 array [headers]       pole předaných hlaviček ve tvaru { 'hlavička': 'obsah' }
* @return boolean              true v případě úspěchu, false jinak
* 
*/
function send_xmlhttprequest(obsluha, 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() {
        obsluha(xmlhttp);
    };
    if (headers) {
        for (var key in headers) {
            xmlhttp.setRequestHeader(key, headers[key]);
        }
    }
    xmlhttp.send(content);
    return true;
}
