/**
 * Funkcija vrne objekt, katerega id podamo kot parameter.
 *
 * @param string id id objekta, ki ga poiscemo med elementi HTML strani.
 */
function getById(id) {
        if (document.getElementById)
                return document.getElementById(id);
        return document.all[id];
}


/**
 * Funkcija vrne XMLHttpRequest objekt, ki izvede AJAX
 */
function getRPCObject() {
        var req;
        if (window.XMLHttpRequest)
                req = new XMLHttpRequest();
        else if (window.ActiveXObject)
                req = new ActiveXObject("Microsoft.XMLHTTP");
        return req;
}


/**
 * Funkcija poklice XMLHttpRequest objekt in nastavi katera funkcija se bo klicala, ko XMLHttpRequest dobi podatke
 *
 * @param string method POST ali GET
 * @param string URL, ki se poklice
 * @param string data podatki, ki se posljejo, ce gre request rpeko POST metode (null za GET)
 * @param function procRequestFunct pointer na funkcijo, ki naj se poklice, ko XMLHttpRequest dobi podatke
 */
function loadXMLDoc( method, url, data, procRequestFunct ) {

        req = getRPCObject();

        if(!req)
                return false;

        req.onreadystatechange = procRequestFunct;
        req.open(method, url, true);

//        req.setRequestHeader("Content-Type", "text/html; charset=ISO-8859-2");

        if (data != null) {
                req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-2' );
                req.send( data );
        } else {
                req.send('');
        }

        return req;
}


/**
 * Funkcija vrne:
 *      0: XMLHttpRequest se ni dobil podatkov,
 *      1: XMLHttpRequest je dobil podatke (200 ali 404 je status serverja),
 *     -1: server ni vrnil 200 ali 404
 */
function processReqChange(req) {

        if (!req)
                return 0;

        if (req.readyState == 4) {
                // only if "OK"
                if ((req.status == 200) || (req.status == 404)) {
                        return 1; // it's safe now go ahead
                } else {
                        return -1;
                }
        }

        return 0;
}




/**
 * This function execute PHP file, which write into database rating for current article
 */
function ajax_put_vote(idek, vote) {
	var url = 'anketa_vote.php?vote_id=' + idek + '&rate=' + vote;
        var func = function() {
        	if (processReqChange(req)) {

                var result = req.responseText.substring(0,3);
                var vpic = req.responseText.substring(3,4);
				var votes = req.responseText.substring(5,85);  
				
                if (result == 'OK-') {
                        var result_container = getById('ngm_vote' + idek + '_result');
                        //var picek = getById('picek' + idek );
                        if (!result_container)
                                return false;
                        result_container.innerHTML = votes;
						//picek.src="http://www.nationalgeographic.si/pic/star_" + vpic + ".gif";
						//document.getElementById('ngm_vote'+ idek +'_rleft_containero').style.display='block';
						document.getElementById('ngm_vote'+ idek +'_result').style.display='block';
						document.getElementById('ngm_vote'+ idek +'_rleft_container').style.display='none';
						document.getElementById('vote' + idek).style.display = 'none';
						document.getElementById('mouseOutId' + idek).style.display = 'none';
						document.getElementById('ngm_vote'+idek+'_rleft_container').style.display = 'none';				
                }
            } 
		}
        var req = loadXMLDoc( 'POST', url, null, func );
}

