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. handle however you want
        //document.getElementById("errormsg").innerHTML = "Your browser doesnt support XMLHttpRequest.";
        alert("Your browser does not support the XMLHttpRequest Object!");
    }
    return xmlhttp;
}

var xhr = createXMLHttpRequest();

function karma(id, action, path, t_prefix){
    xhr.open('get', '/func.process_kudos.php?id='+ id +'&action='+ action);
    xhr.onreadystatechange = handleResponse;
    xhr.send(null);
}

function videoAction(action, c_id) {
	var params = "";
	
	document.getElementById('please_wait').style.display = "block";
	
	if (action == "share") {
		params += "id="+c_id;
		params += "&emails="+document.getElementById('emails_box').value;
		params += "&your_name="+document.getElementById('name_box').value;
		params += "&message="+document.getElementById('message_box').value;
		params += "&action=share";
		
		document.getElementById('share_panel').style.display = "none";
	} else if (action == "download") {
		document.getElementById('download_panel').style.display = "none";
		params += "id="+c_id;
		params += "&action=download";
	}
	xhr.open('post', '/func.video_actions.php', true);

	//Send the proper header information along with the request
	xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr.setRequestHeader("Content-length", params.length);
	xhr.setRequestHeader("Connection", "close");

	xhr.onreadystatechange = function() {//Call a function when the state changes.
		if(xhr.readyState == 4 && xhr.status == 200) {
			var response = xhr.responseText.split('|');
			
			document.getElementById('please_wait').style.display = "none";
			
	        if(response[0] == 'ok'){
	            if (action == "share") {
					document.getElementById('share_div').innerHTML = response[1];
					document.getElementById('share_panel').style.display = "block";
				} else {
					document.getElementById('download_td').innerHTML = response[1];
					document.getElementById('download_panel').style.display = "block";
				}
	        }
	        else if(response[0] == 'error')
	        {
				if (action == "share") {
					document.getElementById('share_panel').style.display = "block";
				} else if (action == "download") {
					document.getElementById('download_panel').style.display = "block";
				}
				
	            var error = 'Error: '+response[1];
	            alert(error);
	        } else {
				if (action == "share") {
					document.getElementById('share_panel').style.display = "block";
				} else if (action == "download") {
					document.getElementById('download_panel').style.display = "block";
				}
				
	        	alert("Reponse: "+response[0]);
	            alert("An error occured.");
	        }
		}
	}
	xhr.send(params);
}

function handleResponse(){
    if(xhr.readyState == 4){
        var response = xhr.responseText.split('|');
        
        if(response[0] == 'done'){
            if(response[1]){
				if (response[4] >= 1) {
                //Changes the thumbs to dull gray and disable the action
					if (response[6] == "subtract") {
						document.getElementById("kudosDown").src        = "/gfx/kudos_down_grey.gif.png";
						document.getElementById("kudosDown").onclick    = '';
					} else {
						document.getElementById("kudosUp").src          = "/gfx/kudos_up_grey.gif.png";
						document.getElementById("kudosUp").onclick      = '';
					}
				}
                document.getElementById("scoretochange").innerHTML = response[5];
            } else {
                alert("WTF ?");
            }
        }
        else if(response[0] == 'error')
        {
            var error = 'Error: '+response[1];
            alert(error);
        } else {
        	alert("Reponse: "+response[0]);
            alert("Kudos not changed, please try again later.");
        }
    }
}