var Soap = {
    createEnvelope: function(action, ns, parameters)
    {
        var soap = '<?xml version="1.0" encoding="utf-8"?><soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><soap12:Body>';
        soap += '<' + action + ' xmlns="' + ns + '">';
        soap += Soap.__parseParameters(parameters);
        soap += '</' + action + '></soap12:Body></soap12:Envelope>';
        return soap;
    },
    
    __parseParameters: function(parameters)
    {
        var params = "";
        if (typeof parameters == 'object')
        {
            // check if we were provided an array or an object
            if (typeof parameters.push == 'function')
            {
                for (var i = 0, length = parameters.length; i < length; i += 2)
                {
                    params += "<" + parameters[i] + ">" + parameters[i+1] + "</" + parameters[i] + ">";
                }
            }
            else
            {
                a$H(parameters).each(
                    function(pair)
                    {
                        params += "<" + pair.key + ">" + pair.value + "</" + pair.key + ">";
                    });
            }
        }

        return params;
    }
}

function posljiOceno(tip,element,ocena,skupaj, glasov)
{
	//select list
	var seznam = "{BAE061D6-CC0B-4E37-8137-B8038B0CE982}";

	//recalculation 
	var novaOcena = ocena + skupaj; //(skupaj + ocena) / (glasov + 1)
	
	// create xml that will create a new list item
    var batch = '<Batch OnError="Continue"><Method ID="1" Cmd="Update"><Field Name="ID">'+element+'</Field><Field Name="Ocena">'+novaOcena+'</Field><Field Name="glasov">'+(glasov +1)+'</Field></Method></Batch>';
    
    // build parameter object
    var parameters = 
    {
        listName: seznam,
        updates: batch       // xml created earlier
    }
    
    // create soap envelope
    var soap = Soap.createEnvelope(
        "UpdateListItems",
        "http://schemas.microsoft.com/sharepoint/soap/",
        parameters);
    // call web service
    new Ajax.Request(
        "http://www.dostop.si/_vti_bin/lists.asmx",
        {
            method: "post",
            contentType: "application/soap+xml",
            postBody: soap,
            onSuccess: function(transport) { location.reload(true); disableRatings(); },
            onFailure: function(transport) { alert("Prislo je do napake. Prosim poskusi znova."); } // znotraj alerta še + transport.responseText
        });
}
function posljiOcenoNovo(tip,element,ocena)
{
	//select list
	var seznam = "{BAE061D6-CC0B-4E37-8137-B8038B0CE982}";
	
	// create xml that will create a new list item
    var batch = '<Batch OnError="Continue"><Method ID="1" Cmd="New"><Field Name="ID">New</Field><Field Name="ID_x0020_Vsebine">'+element+'</Field><Field Name="Title">'+tip+'</Field><Field Name="Ocena">'+ocena+'</Field><Field Name="glasov">1</Field></Method></Batch>';
    
    // build parameter object
    var parameters = 
    {
        listName: seznam,
        updates: batch       // xml created earlier
    }
    
    // create soap envelope
    var soap = Soap.createEnvelope(
        "UpdateListItems",
        "http://schemas.microsoft.com/sharepoint/soap/",
        parameters);
    // call web service
    new Ajax.Request(
        "http://www.dostop.si/_vti_bin/lists.asmx",
        {
            method: "post",
            contentType: "application/soap+xml",
            postBody: soap,
            onSuccess: function(transport) { location.reload(true); disableRatings(); },
            onFailure: function(transport) { alert("Prislo je do napake. Prosim poskusi znova."); } // znotraj alerta še + transport.responseText
        });
}
