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) {
        //alert("Your browser does not support the XMLHttpRequest Object!");
    }
    return xmlhttp;
}

var xhr = createXMLHttpRequest();

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

function handleResponse() {
	if (xhr.readyState == 4) {
	var response = xhr.responseText.split('|');
	
	if (response[0] == 'done') {
		if (response[1]) {
				var div_parent = document.getElementById('karma-' + response[1]);
				var href_up = document.getElementById('up-' + response[1]);
				var href_down = document.getElementById('down-' + response[1]);
				var text_up = document.createTextNode("yes");
				var text_down = document.createTextNode("no");
				div_parent.replaceChild(text_up, href_up);
				div_parent.replaceChild(text_down, href_down);
                //Update the karma number display
                if(response[2] < 0) var prefix = '<span class="negative">-';
				else if(response[2] > 0) var prefix = '<span class="positive">+';
				else var prefix = '<span class="neutral">';

                if (!response[2]) alert("Response has no value");
                
		var karmanumber = prefix + Math.abs(response[2])+'</span>';
		document.getElementById("karma-value-" + response[1]).innerHTML = karmanumber;
		} else alert("error");
	} else if (response[0] == 'error') {
		var error = 'Error: ' + response[1];
		alert("error");
	} else {
		//alert("Reponse: " + response[0]);
		alert("please try again later");
	 }
	}
}
