function createXMLHttpRequest(){
    var xmlhttp = null;
    try {
        // Moz supports XMLHttpRequest. IE uses ActiveX.
        // browser detction is bad. object detection works for any browser
        xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {
        // browser doesn’t support ajax.
        alert("Folosesti un browser care nu suporta obiectul XMLHttpRequest.\n Pentru mai multe detalii, vezi: http://www.w3.org/TR/XMLHttpRequest/");
    }
    return xmlhttp;
}

var xhr = createXMLHttpRequest();

function karma(id, ck_action, path, t_prefix){
    xhr.open('get', 'http://'+ path +'ck-processkarma.php?id='+ id +'&action='+ ck_action +'&path='+ path +'&prefix='+ t_prefix);
    xhr.onreadystatechange = handleResponse;
    xhr.send(null);
}

// Removes leading whitespaces
function LTrim( str ) {

	var re = /\s*((\S+\s*)*)/;
	return str.replace(re, "$1");

}

// Removes ending whitespaces
function RTrim( str ) {

	var re = /((\s*\S+)*)\s*/;
	return str.replace(re, "$1");

}

// Removes leading and ending whitespaces
function trim( str ) {

	return LTrim(RTrim(str));

}

function handleResponse(){
    if(xhr.readyState == 4){
        var response = xhr.responseText.split('|');

        if(response[0] == 'done'){
            if(response[1]){
                var className;
                if(response[2] == 0){
                      className = 'noVotes';
                }
                else if(response[2] > 0){
                      className = 'upVotes';
                }
                else{
                      className = 'downVotes';
                }
                //Hides thumbs
                document.getElementById("down-"+response[1]).style.display = 'none';
                document.getElementById("down-"+response[1]).onclick       = '';
                document.getElementById("up-"+response[1]).style.display   = 'none';
                document.getElementById("up-"+response[1]).onclick         = '';
                document.getElementById("karma-"+response[1]).className    = className;
                //Grab prefix for minus and positive numbers
                if(response[2] <= 0 ){
                    var prefix = '';
                } else {
                    var prefix = '+';
                }
                if(!response[2]){
                	alert("Raspunsul de pe server nu are nicio valoare");
                }
                //Update the karma number display
                var karmanumber = prefix + response[2];
                document.getElementById("karma-"+response[1]).innerHTML = karmanumber;
                // Create the voted icon
                var image = document.createElement('img');
                image.src = 'http://mascarit.ro/wp-content/themes/mascarit/!res/img/voted.gif';
                document.getElementById("vote-"+response[1]).appendChild(image);
                image.style.marginTop = '10px';
                image.style.marginLeft = '5px';
            } else {
                alert("Eroare!\nIncearca un pic mai tarziu!");
            }
        }
        else if(response[0] == 'eroare')
        {
            var error = 'Eroare: '+response[1];
            alert(error);
        } else {
            alert("Raspuns: \n"+response[0]);
            alert("Votul nu a fost inregistrat!\nIncearca un pic mai tarziu.");
        }
    }
}