
function tieneSoporteUserMedia() {
    return !!(navigator.getUserMedia || (navigator.mozGetUserMedia || navigator.mediaDevices.getUserMedia) || navigator.webkitGetUserMedia || navigator.msGetUserMedia)
}
function _getUserMedia() {
    return (navigator.getUserMedia || (navigator.mozGetUserMedia || navigator.mediaDevices.getUserMedia) || navigator.webkitGetUserMedia || navigator.msGetUserMedia).apply(navigator, arguments);
}

var $video = document.getElementById("video"),
	$canvas = document.getElementById("canvas"),
	$boton = document.getElementById("boton"),
	$estado = document.getElementById("estado");
if (tieneSoporteUserMedia()) {
    _getUserMedia(
        {video: true},
        function (stream) {
            console.log("Permiso concedido");
			$video.srcObject = stream;
			$video.play();
			$boton.addEventListener("click", function(){
				$video.pause();
				var contexto = $canvas.getContext("2d");
				$canvas.width = $video.videoWidth;
				$canvas.height = $video.videoHeight;
				contexto.drawImage($video, 0, 0, $canvas.width, $canvas.height);

				var foto = $canvas.toDataURL();                                
				$estado.innerHTML = "<h4>Enviando foto. Por favor, espera...</h4>";
				var xhr = new XMLHttpRequest();

				xhr.open("POST", "GuardarFoto", true);

				xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				xhr.send(encodeURIComponent(foto));


				xhr.onreadystatechange = function() {
				    if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
				        console.log("La foto fue enviada correctamente");
				        console.log(xhr);
                                        alert('FOTO GUARDADA CON EXITO');
                                        $("#Visitante_foto").val("" + xhr.responseText + "");
               
                                        $("#mi_imagen").attr("src","" + xhr.responseText + "");
                                
				    }
				}
				$video.play();
			});
        }, function (error) {
            console.log("Permiso denegado o error: ", error);
            alert("No se puede acceder a la cámara, o no diste permiso.");
        });
} else {
    alert("Lo siento. Tu navegador no soporta esta característica");
}