            /**
             * Handler for server's response to notes.xml request.
             * Notes are pulled from notes.xml and replace the
             * contents of the DIV with id 'notesSection'.
             */


            function notesResponseHandler()
            {
                // Make sure the request is loaded (readyState = 4)
                if (req.readyState == 4)
                {
                    // Make sure the status is "OK"
                    if (req.status == 200)
                    {
                    	var panel = document.getElementById('votePanel');
                    	panel.innerHTML = '<strong>;)</strong>';//czysci panel do glosowania
                    
                        var swappableSection = document.getElementById('ratingSpan');
                        var ratings = req.responseXML.getElementsByTagName('rating');
						ratingValue = parseFloat(ratings.item(0).firstChild.nodeValue);
                        var votes = req.responseXML.getElementsByTagName('vote');
						voteValue = parseFloat(votes.item(0).firstChild.nodeValue);
						var dzielenie = ((ratingValue/voteValue)*10)|0;
                                                
                        swappableSection.innerHTML = dzielenie + '/'+ voteValue;                        
                    }
                    else
                    {
                        alert("There was a problem retrieving the XML data:\n" +
                            req.statusText);
                    }
                }
            }




/**
 * Open a connection to the specified URL, which is
 * intended to provide an XML message.  The specified data
 * is sent to the server as parameters.  This is the same as
 * calling xmlOpen("POST", url, toSend, responseHandler).
 *
 * @param string url    The URL to connect to.
 * @param string toSend The data to send to the server; must be URL encoded.
 * @param function responseHandler The Javascript function handling server response.
 */
function xmlPost(url, toSend, responseHandler)
{
    xmlOpen("POST", url, toSend, responseHandler);
}

/**
 * Open a connection to the specified URL, which is
 * intended to provide an XML message.  No other data is
 * sent to the server.  This is the same as calling
 * xmlOpen("GET", url, null, responseHandler).
 *
 * @param string url    The URL to connect to.
 * @param function responseHandler The Javascript function handling server response.
 */
function xmlGet(url, egzamin, odpowiedz, responseHandler)
{
	var nowyUrl = url+'?egzamin='+egzamin+'&odpowiedz='+odpowiedz;

    xmlOpen("GET", nowyUrl, null, responseHandler); //bylo url
}

/**
 * Open a connection to the specified URL, which is
 * intended to respond with an XML message.
 * 
 * @param string method The connection method; either "GET" or "POST".
 * @param string url    The URL to connect to.
 * @param string toSend The data to send to the server; must be URL encoded.
 * @param function responseHandler The Javascript function handling server response.
 */
function xmlOpen(method, url, toSend, responseHandler)
{
    if (window.XMLHttpRequest)
    {
        // browser has native support for XMLHttpRequest object
        req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        // try XMLHTTP ActiveX (Internet Explorer) version
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    if(req)
    {
        req.onreadystatechange = responseHandler;
        req.open(method, url, true);
        req.setRequestHeader("content-type","application/x-www-form-urlencoded");
        req.send(toSend);
    }
    else
    {
        alert('Your browser does not seem to support XMLHttpRequest.');
    }
}

/**
 * Gets the first child node of <code>parent</code> with the
 * specified tag name.
 *
 * @param parent the parent XML DOM node to search
 * @param tagName the tag name of the child node to search for
 */
function getNode(parent, tagName)
{
    var i;
    var max = parent.childNodes.length;
    
    // Check each child node
    for(i = 0; i < max; i++)
    {
        if(parent.childNodes[i].tagName)
        {
            if(parent.childNodes[i].tagName.toUpperCase() == tagName.toUpperCase())
            {
                // We found a matching child node; return it.
                return parent.childNodes[i];
            }
        }
    }
    // One was not found; return null
    return null;
}

/**
 * Gets the first child node of <code>parent</code> with the
 * specified tag name and whose value of the 'key' attribute
 * is <code>key</code>.
 *
 * @param parent the parent XML DOM node to search
 * @param tagName the tag name of the child nodes to search in
 * @param key the value of the 'key' attribute to search on
 */
function getNodesWithKey(parent, tagName, key)
{
    var i;
    var cellNodes = parent.getElementsByTagName(tagName);
    var max = cellNodes.length;
    
    // Check each cell node for the specified value for
    // the 'key' attribute
    for(i = 0; i < max; i++)
    {
        if(cellNodes[i].getAttribute('key') == key)
        {
            // We found a matching cell node; return it.
            return cellNodes[i];
        }
    }
    // One was not found; return null
    return null;
}
