/** 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 bool true v případě úspěchu, false jinak
*/
var anketa_sent = false;
var anketa_odpovedi;
function send_xmlhttprequest(obsluha, method, url, content, headers)
{
    if(window.XMLHttpRequest){
		xmlhttp = new XMLHttpRequest();
		if(xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType('text/xml'); }
	}
	else if(window.ActiveXObject){
		try{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch(e){
			try{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
			catch(e){}
		}
	}
	
	if(!xmlhttp)
		return false;
	
	xmlhttp.open(method, url, true);
    xmlhttp.onreadystatechange = function() {
        obsluha(xmlhttp);
    };
    if (headers) {
        for (var key in headers) {
            xmlhttp.setRequestHeader(key, headers[key]);
        }
    }
    xmlhttp.send(content);
    return true;
}
function anketa_hlasovat(hlas, text, comm)
{
	anketa_sent = true;
    
    // odeslání požadavku na aktualizaci dat
    xmlheaders = new Array();
    xmlheaders['Content-Type']='application/x-www-form-urlencoded';
    d = new Date();
    
    if (!send_xmlhttprequest(anketa_obsluha, 'POST', '?aact=anketa&answer=' + hlas, 'atext=' + text +'&acomm=' + comm + '&rnd='+d.getTime(), xmlheaders)) {
        return false;
    }
	// zobrazení hlasu u klienta
    document.getElementById('anketa_answer_' + hlas).innerHTML = '<strong>'+document.getElementById('anketa_answer_' + hlas).innerHTML+'</strong>';
    // znemožnění opětovného hlasování smazáním odkazů
    for (var key in document.getElementById('anketa').getElementsByTagName('LI')) {
        var val = document.getElementById('anketa').getElementsByTagName('LI')[key];
        if (val.className == 'anketa-answer' || val.className == 'anketa-answer-active') {
            if (val.firstChild)
            	val.innerHTML = val.firstChild.innerHTML;
        } 
    }
    document.getElementById('anketa-state').innerHTML = 'Ukládá se';
    return false;
}

function anketa_obsluha(xmlhttp)
{
    if (xmlhttp.readyState == 4) {
        // aktualizace odpovědí na základě aktuálního stavu
        //alert(xmlhttp.responseText);
        anketa_odpovedi = xmlhttp.responseXML.getElementsByTagName('odpoved');
        anketa_data();

    }
}
function anketa_data(){
		var odpovedi = anketa_odpovedi;
		if (odpovedi.length){
			for (var i=0; i < odpovedi.length; i++) {
	            document.getElementById(odpovedi[i].getAttribute('id')).innerHTML = odpovedi[i].firstChild.data;
	        }
	        document.getElementById('anketa-state').innerHTML = 'Uloženo, děkujeme.';	
		} else
			document.getElementById('anketa-state').innerHTML = 'Chyba při ukládání.';	
}
function anketa_switch(e){
	for (var key in document.getElementById('anketa').getElementsByTagName('LI')) {
        var val = document.getElementById('anketa').getElementsByTagName('LI')[key];
		val.className = 'anketa-answer';
	}
	e.parentNode.className = 'anketa-answer-active';
}
function anketa_admin_switch(e){
	e.blur();
	if (e.parentNode.className == 'anketa-answer-active'){
		e.parentNode.className = 'anketa-answer';
		return;
	}
	for (var key in document.getElementById('anketa_admin').getElementsByTagName('LI')) {
        var val = document.getElementById('anketa_admin').getElementsByTagName('LI')[key];
		if (val.className == 'anketa-answer-active')
			val.className = 'anketa-answer';
	}
	e.parentNode.className = 'anketa-answer-active';
}