var paciente,
    isCalling = false,
    isSearching = false,
    tipoExibicao,
    linkStream,
    background;

$(document).ready(function () {
		
    

    $.post("televisao/getConstant", {idConstant: "TELEVISAO_TIPO_EXIBICAO"}, function (data) {
        tipoExibicao = data;

        switch (tipoExibicao) {
            case 'I':
                // TEMPORIZADOR DE TROCA DE IMAGEM
                setInterval('alteraImagem()', 9000);

                break;
            case 'V':
                alteraVideo();
                break;
				
			case 'S':
			$.post("televisao/getConstant", {idConstant: "TELEVISAO_STREAM_LINK"}, function (data) {
        linkStream = data;
    }, "json");
    $.post("televisao/getConstant", {idConstant: "TELEVISAO_COR_FUNDO_BODY"}, function (data) {
        background = data;
    }, "json");
	
	videojs("exibicaoStream").volume(0.9);
    $("#exibicaoStream").width($("#exibicao").width());
    $('#exibicaoStream').height($('#exibicao').height());
			
             break;
        }
    }, "json");

    //Busca fila Paciente
    setInterval('buscaPacienteFila()', 3000);
	
	//Remove erro inicial da tabela de senhas
	primeiraAtualizacao()
	
	function primeiraAtualizacao() {
		var atualizado = false;
		if (atualizado == false) {
			setTimeout('atualizaTabelaSenhas()', 5000);
			atualizado = true;
		}
	}
});

function chamarPaciente() {
    tipoExibicao == "V" ? exibicaoVideo.pause() : '';
    tipoExibicao == "S" ? document.getElementById('exibicaoStream').player.muted(true) : '';

    if($('body').css('background-color')  != 'rgb(255, 255, 255)'){
        $('body').css('background-color', "rgb(255, 255, 255)");
        $('#divShowGuiche').css('background-color', "rgb(255, 255, 255)");
    }


    var status = setInterval(function () {
        if (!isCalling && paciente.length > 0) {
            alteraStatus();
            //TEMPO DE APRESENTACAO DO NOME DO PACIENTE
            setTimeout('alteraStatus()', 7000);
        } else if (!isCalling && paciente.length == 0) {
            clearInterval(status);
            tipoExibicao == "V" ? exibicaoVideo.play() : '';
            $('body').css('background-color', background);
            tipoExibicao == "S" ? document.getElementById('exibicaoStream').player.src(linkStream) : '';
			tipoExibicao == "S" ? document.getElementById('exibicaoStream').player.volume(0.9) : '';
			setTimeout('atualizaTabelaSenhas()', 3000);
        }
    }, 500);
}


function alteraImagem() {
    var ativa = $('#exibicao .active');
    var proxima = (ativa.next().length > 0) ? ativa.next() : $('#exibicao img:first');
    proxima.css('z-index', 2);
    ativa.fadeOut(1500, function () {
        ativa.css('z-index', 1).show().removeClass('active');
        proxima.css('z-index', 3).addClass('active');
    });
}

function alteraVideo() {
    var video = document.getElementById('exibicaoVideo');
    video.muted = false;
    video.addEventListener('ended', function (e) {
        var activesource = document.querySelector("#exibicaoVideo source.active");
        var nextsource = document.querySelector("#exibicaoVideo source.active + source") || document.querySelector("#exibicaoVideo source:first-child");
        activesource.className = "";
        nextsource.className = "active";
        video.src = nextsource.src;
        video.play();
    });
}

function alteraStatus() {
    var audio = new Audio('assets/musica.wav');
	audio.volume = 0.2;

    if ($('#exibicao').hasClass('hidden')) {
        $.post("televisao/setFilaTVChamado", {handleFila: paciente[0].HANDLE}, function (data) {
            paciente.splice(0, 1);
            isCalling = false;
            if (paciente.length == 0)
                isSearching = false;
            $('#exibicao').removeClass('hidden');
            $('#divShowPaciente').addClass('hidden');
            $('#divShowGuiche').addClass('hidden');
        });
    } else {

        if (paciente[0].GUICHE != null)
            $('#guiche').text(paciente[0].GUICHE);
        $('#nomePaciente').text(paciente[0].NOMEPACIENTE);
        $('#exibicao').addClass('hidden');
        $('#divShowPaciente').removeClass('hidden');
        $('#divShowGuiche').removeClass('hidden');
        isCalling = true;
		var audioInterval = 0;
		var audioPlay = setInterval(function(){
			audio.play();
			if(audioInterval == 2){
				clearInterval(audioPlay);
			}
			audioInterval++;
		}, 1000);	
    }
}

function alteraHora() {	
    $.post("televisao/getDataHoraServidor", function (data) {
        var dataHoraMinuto = $.parseJSON(data);
        $('#relogio-rodape').html(dataHoraMinuto);
    });
	
}

//Atualiza a tabela de últimas senhas chamadas
function atualizaTabelaSenhas() {
	var i = 1;
	for (; i < 13; i++) {
		$("#senha" + i).load(location.href + " #senha" + i);
		$("#guiche" + i).load(location.href + " #guiche" + i);
	}
}

function buscaPacienteFila() {
    //alteraHora();
	

	 $('#relogio-rodape').html(new Date().toLocaleString().slice(0, 16));

    if (!isSearching) {
        $.post("televisao/getPacienteFilaTV", function (data) {
            var retorno = $.parseJSON(data);
            if (retorno != null && retorno.length > 0) {
                paciente = retorno;
                isSearching = true;
                chamarPaciente();
            }

        });
    }
}