/**
 *
 * @access public
 * @return void
 **/

var interChecaAtendentesOnline = null;
var interProcessaSalaAtendimento = null;
var interTimeoutInternauta = null;
var bolMensagemOffline = false;
var intTimer = 10;
var inter;
var bitControleImpressao = '-1';
var bitAtendimentoFinalizado = 0;
var int_TimeoutInternauta = 0;
var int_TimerTimeout = 0;
var divBox = '';
var strDSNomeTela = "Netsabe - Euatendo Chat";
var strUltimoNome = "";
var strLado = "";
var aPerguntasEnqueteDetalhada = new Array;
var aCamposPersonalizados = new Array;
var aCamposPersonalizadosObrig = new Array;
var interAcionaFilaUnica  = null;
//Controle de campos obrigatórios
//Os campos Nome e email são sempre obrigatórios
bitObrig_strDDD = false;
bitObrig_strTelefone = false;
bitObrig_strAssunto = false;
bitObrig_strBairro = false;
bitObrig_strEndereco = false;
bitObrig_strCidade = false;



function atendimentoOnline(int_IDEmpresa){
    window.open('salaatendimento.v2.php?cmd=abreSalaAtendimento&int_IDEmpresa='+int_IDEmpresa,"","toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=420, height=480, top=50, left=50");
    return false;
}

/*
 * funcao para remover espacos
 *
 **/
function trim(str){
    return str.replace(/^\s+|\s+$/g,"");
}


/*
 * alteracoes:
 *  validar email - 27-11-08
 *  eduardo stuart
 **/
function is_email(email){
    email = trim(email);
    er = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/;
    if(er.exec(email)){
        return true;
    }else{
        return false;
    }
}


/**
 *
 * @access public
 * @return void
 **/
function loginSalaAtendimento(){
    var _int_IDPagina = $('int_IDPagina').value;
    var _strHashID = $('strHashID').value;
    var strNome = $('strNomeAtendimento').value;
    var strEmail = $('strEmailAtendimento').value;
    var strTelefone = $('strDDD').value + ' ' + $('strTelefone').value;
    var _strCidade = $('strCidade').value;
    var strEndereco = $('strEndereco').value;
    var strBairro = $('strBairro').value;
    var strDadosCamposPers = '';

    if ($('str_DSAssunto').value == undefined) {
        var strAssunto = $('str_DSAssunto').options[$('str_DSAssunto').selectedIndex].value;
    }
    else {
        var strAssunto = $('str_DSAssunto').value;
    }

    if ($('bitPermitirCopia').value == "1") {
        var bitReceberCopia = $('chkReceberCopia').checked == true ? "1" : "0";
    }
    else {
        bitReceberCopia = "0";
    }

    var aMsgValidacao = new Array();

    if (strNome == "") {
        aMsgValidacao.push("É necessário informar o seu nome");
    }

    if (strEmail == "") {
        aMsgValidacao.push("É necessário informar o seu e-mail");
    }

    if (bitObrig_strDDD) {
        if ($('strDDD').value == "") {
            aMsgValidacao.push("É necessário informar o DDD do seu telefone");
        }
    }

    if (bitObrig_strTelefone) {
        if ($('strTelefone').value == "") {
            aMsgValidacao.push("É necessário informar o número do seu telefone");
        }
    }

    if (bitObrig_strAssunto) {
        if (strAssunto == "") {
            aMsgValidacao.push("É necessário selecionar o assunto");
        }
    }

    if(bitObrig_strEndereco){
        if(strEndereco == ""){
            aMsgValidacao.push("É necessário informar um endereço");
        }
    }
    if(bitObrig_strBairro){
        if(strBairro == ""){
            aMsgValidacao.push("É necessário informar um bairro");
        }
    }
    if(bitObrig_strCidade){
        if(_strCidade == ""){
            aMsgValidacao.push("É necessário informar uma cidade");
        }
    }

    //FAZ VALIDACAO DO EMAIL
    if(!is_email(strEmail)){
        aMsgValidacao.push("E-mail inválido. Insira um e-mail válido.");
    }

    //Validando os campos personalizados obrigatórios
    aCamposPersonalizadosObrig.each(function(item) {
        if ($(item[0]).value != undefined) {
            if ( $(item[0]).value == "") {
                aMsgValidacao.push("É necessário preencher o campo " + item[1]);
            }
        }
    });


    var intNumMsg = aMsgValidacao.length;

    if (intNumMsg > 0) {
        strMensagem = "<ul style=\"list-style-type:square; list-style-position:outside; text-indent:0; margin-left:2em; text-align:left\"><li>" + aMsgValidacao.join("</li><li>") + "</li></ul>";
        _mostraMensagem(strMensagem,strDSNomeTela,350, (intNumMsg * 15) + 60);
    }
    else {


        //Carregando os campos personalizados
        aCamposPersonalizados.each(function(item) {

            if ($(item[0]).value != undefined) {
                if (strDadosCamposPers != "") {
                    strDadosCamposPers = strDadosCamposPers + "|";
                }
                strDadosCamposPers = strDadosCamposPers + item[1] + "=" + $(item[0]).value;

            }


        });


        //$('divJanelaAtendimentoOnline').innerHTML = "<center><img src='css/img/progress.gif' style='margin-top:200px;'></center>";
        _aguarde('Aguarde, iniciando Atendimento Online...');
        xajax_saolEntrarSalaAtendimento(_int_IDPagina, strNome, strEmail, strTelefone, _strCidade, bitReceberCopia, strAssunto, _strHashID, strEndereco, strBairro, strDadosCamposPers);
    }
}

/**
 *
 * @access public
 * @return void
 **/
function mensagemOfflineSalaAtendimento(){
    if ($('mensagemOffline').value == "") {
        _mostraMensagem('<br/>É necessário preencher a mensagem.',strDSNomeTela,350, 100);
    }
    else {
        //xajax_mensagemOfflineSalaAtendimento(xajax.getFormValues('frmSalaAtendimento'));
        clearInterval(interChecaAtendentesOnline);
        _aguarde('Aguarde, enviando mensagem ...');
        xajax_saolMensagemOfflineSalaAtendimento($('int_IDSalaAtendimento').value, $('mensagemOffline').value);
    }
}

/**
 *
 * @access public
 * @return void
 **/
function iniciaDialogo(int_IDSalaAtendimento, int_IDAtendente){
    xajax_saolIniciaDialogo(int_IDSalaAtendimento, int_IDAtendente);
}

/**
 *
 * @access public
 * @return void
 **/
function finalizaSalaAtendimento(int_IDSalaAtendimento){
    if (bitAtendimentoFinalizado == 0) {
        Dialog.confirm(
            '<br/>Sair do Atendimento Online?',
            {
                className: "alphacube",
                title: strDSNomeTela,
                width:300,
                height:95,
                okLabel: "Sim",
                cancelLabel:"Não",
                ok:function(win) {
                    clearInterval(interChecaAtendentesOnline);
                    _aguarde('Aguarde, finalizando Atendimento Online...');
                    xajax_saolFinalizaSalaAtendimento(int_IDSalaAtendimento);
                    return true;
                }
            }
            );
    }
    else {
        _aguarde('Aguarde, finalizando Atendimento Online...');
        xajax_saolFinalizaSalaAtendimento(int_IDSalaAtendimento);
    }
}

function finalizaSalaAtendimentoBeforeUnload(_int_IDSalaAtendimento){
    if (bitAtendimentoFinalizado == 0) {
        return "Você realmente deseja sair do Atendimento Online?";
    }
    else {
        return 'Obrigado por utilizar nosso Atendimento Online!';
    }

}

function finalizaSalaAtendimentoUnload(_int_IDSalaAtendimento){
    if (bitAtendimentoFinalizado == 0) {
        var response = xajax.call('saolFinalizaSalaAtendimento', {
            parameters:[_int_IDSalaAtendimento],
            mode:'synchronous'
        });
        alert('Obrigado por utilizar nosso Atendimento Online!');
    }
}



/**
 *
 * @access public
 * @return void
 **/
function enviarMensagemSalaAtendimento(int_IDSalaAtendimento){
    if ($('strMensagem').value == "") {
        _mostraMensagem('<br/>É necessário digitar uma mensagem.',strDSNomeTela,350, 100);
    }else {
        var int_IDDialogo = $('int_IDDialogo').value;
        var strMensagem = $('strMensagem').value;
        $('strMensagem').value = "";
        $('strMensagem').focus();
        $('statusEnvio').innerHTML = "<div id='barra_espera' style='margin-top:0px;'></div>";

        $("strMensagem").setStyle({
            'background-color':'#fff',
            'background-repeat':'no-repeat',
            'background-image':"url('../css/img/load.gif')",
            'background-position':'right top'
        });

        interTimeoutInternauta = window.clearInterval(interTimeoutInternauta);
        $('divTimerInatividade').innerHTML = "&nbsp";

        xajax_saolEnviarMensagem(int_IDSalaAtendimento, int_IDDialogo, strMensagem, strUltimoNome, divBox, strLado);
    }
}

/**
 *
 * @access public
 * @return void
 **/
function processaSalaAtendimento(){
    //console.log("INICIA PROCESSAMENTO");
    clearInterval(interProcessaSalaAtendimento);
    //console.log("MATA TIMER");
    interProcessaSalaAtendimento = null;
    if ($('int_IDSalaAtendimento') != undefined) {
        //console.log("CHAMA PROCESSAMENTO");
        var int_IDSalaAtendimento = $('int_IDSalaAtendimento').value;
        var int_IDDialogo = $('int_IDDialogo').value;
        //bitProcessando = true;
        xajax_saolProcessaSalaAtendimento(int_IDSalaAtendimento, int_IDDialogo, strUltimoNome, divBox, strLado);
		
    }

}

function processaTimeoutInternauta(){
    if ($('int_IDSalaAtendimento') == undefined) {
        clearInterval(interTimeoutInternauta);
    }
    else {
        int_TimeoutInternauta = int_TimeoutInternauta - 1;
        if (int_TimeoutInternauta <= 0) {
            clearInterval(interTimeoutInternauta);
            var int_IDDialogo = $('int_IDDialogo').value;
            xajax_saolFinalizaSalaAtendimentoInatividade($('int_IDSalaAtendimento').value, int_IDDialogo, strUltimoNome, strLado);
        }
        else {
            var intMinutos = Math.floor(int_TimeoutInternauta / 60);
            var intSegundo = (int_TimeoutInternauta % 60);
            if (intSegundo < 10) {
                var tempoRestante = intMinutos + ':0' + intSegundo;
            }
            else {
                var tempoRestante = intMinutos + ':' + intSegundo;
            }

            $('divTimerInatividade').innerHTML = 'Tempo restante: ' + tempoRestante;
        }
    }
}

/**
 *
 * @access public
 * @return void
 **/
function rolaPainelMensagens(){
    var altura = $('painelMensagem').clientHeight;
    var alturaScroll = $('painelMensagem').scrollHeight;

    if (alturaScroll > altura) {
        $('painelMensagem').scrollTop = (alturaScroll - altura);
    }
}

/**
 *
 * @access public
 * @return void
 **/
function preparaSalaAtendimento(int_IDEmpresa){
    soundManager.onload = function() {
        // soundManager should be ready to use/call at this point
        //soundManager.createSound('novaMensagem','./mensagem.wav');
        soundManager.createSound({
            id:'novaMensagem',
            url:'mensagem.mp3',
            volume: 100
        });

    }
}

/**
 *
 * @access public
 * @return void
 **/
function checaAtendentesOnline(int_IDSalaAtendimento){
    interChecaAtendentesOnline = window.setInterval(function(){
        carregarAtendentesOnline(int_IDSalaAtendimento)
    },1000);

}

/**
 *
 * @access public
 * @return void
 **/
function carregarAtendentesOnline(int_IDSalaAtendimento){
    intTimer = intTimer - 1;
    if (intTimer <= 0) {
        clearInterval(interChecaAtendentesOnline);
        $('divTimerListaAtendentes').innerHTML = "<div id='barra_espera' style='margin-top:0px;'></div>";
        intTimer = 10;
        var strFiltroAtendentes = $('strFiltroAtendentes').value;
        xajax_saolCarregarAtendentesOnline(int_IDSalaAtendimento, strFiltroAtendentes);
    }
    else {
        $('divTimerListaAtendentes').innerHTML = 'A lista de atendentes será atualizada em ' + intTimer + ' segundos...';
    }
}

/**
 *
 * @access public
 * @return void
 **/
function entrarFila(int_IDSalaAtendimento, int_IDDepartamento, int_IDAtendente){
    clearInterval(interChecaAtendentesOnline);
    clearInterval(interAcionaFilaUnica);
    intTimer = 10;
    $('divTimerListaAtendentes').innerHTML = "<div id='barra_espera' style='margin-top:0px;'></div>";
    xajax_saolEntrarFila(int_IDSalaAtendimento, int_IDDepartamento, int_IDAtendente);
}

/**
 *
 * @access public
 * @return void
 **/
function iniciaProcessamentoSalaAtendimento(){
    //console.log("INICIA TIMER");
    clearInterval(interProcessaSalaAtendimento);
    interProcessaSalaAtendimento = null;

    interProcessaSalaAtendimento = window.setInterval(processaSalaAtendimento,5000);
}

function removeLoader() {
    $("strMensagem").setStyle({
        'background-color':'#fff',
        'background-repeat':'no-repeat',
        'background-image':"none",
        'background-position':'right top'
    });
}

/**
 *
 *
 * @access public
 * @return void
 **/
function _mostraMensagemOffline(strMensagem){
    if (!bolMensagemOffline) {
        bolMensagemOffline = true;
        _mostraMensagem(strMensagem, strDSNomeTela, 350, 100, function(win) {
            bolMensagemOffline = false;
            win.close();
        }, null, 'Fechar');
    }
}

function _mostraMensagem(strMensagem, strTitulo, intLargura, intAltura, eventoOK, objRecebeFoco, strLabelOK){

    if (strTitulo == undefined) {
        strTitulo = strDSNomeTela;
    }

    if (intLargura == undefined) {
        intLargura = 300;
    }

    if (intAltura == undefined) {
        intAltura = 100;
    }

    if (eventoOK == undefined) {
        eventoOK = "";
    }

    if (objRecebeFoco == undefined) {
        objRecebeFoco = null
    }

    if (strLabelOK == undefined) {
        strLabelOK = "OK";
    }

    WindowCloseKey.init(13);

    if (eventoOK != "") {
        Dialog.alert(
            strMensagem,
            {
                className: "alphacube",
                title: strTitulo,
                width: intLargura,
                height: intAltura,
                setaFocoBotaoOK: true,
                zIndex:100,
                objFocoOnClose: objRecebeFoco,
                okLabel: strLabelOK,
                ok:eventoOK
            }
            )
    }
    else {
        Dialog.alert(
            strMensagem,
            {
                className: "alphacube",
                title: strTitulo,
                width: intLargura,
                height: intAltura,
                setaFocoBotaoOK: true,
                zIndex:100,
                okLabel: strLabelOK,
                objFocoOnClose: objRecebeFoco
            }
            )
    }

}

function _validaEnter(e, rotina){
    var unicode = e.charCode ? e.charCode : e.keyCode;
    if (unicode == 13) {
        rotina();
        return false;
    }
    else {
        return true;
    }
}

function _aguarde(strMensagem, intLargura, intAltura){
    if (strMensagem == undefined) {
        strMensagem = "Aguarde, processando ...";
    }

    if (intLargura == undefined) {
        intLargura = 250;
    }

    if (intAltura == undefined) {
        intAltura = 90;
    }

    strMensagem = "<div style='text-align: center; width:100%;'>" + strMensagem + "<div id='barra_espera'></div></div>";

    return Dialog.info(strMensagem,{
        className: "alphacube",
        width:intLargura,
        height:intAltura,
        showProgress: false,
        destroyOnClose: true
    });
}

/**
 *
 * @access public
 * @return void
 **/
function filtrarAtendentes(int_IDSalaAtendimento){
    intTimer = 1;
    carregarAtendentesOnline(int_IDSalaAtendimento);
    acionaFilaUnica(int_IDSalaAtendimento,30000);
}

/**
 *
 * @access public
 * @return void
 **/
function redimensionaJanela(intLargura, intAltura){

    window.resizeTo(intLargura, intAltura);

    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
        //Non-IE
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
        //IE 6+ in 'standards compliant mode'
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
    } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
    }

    var intNovaLargura = intLargura + (intLargura - myWidth);
    var intNovaAltura = intAltura + (intAltura - myHeight);

    window.resizeTo(intNovaLargura, intNovaAltura);

}

/**
 *
 * @access public
 * @return void
 **/
function acionaFilaUnica(int_IDSalaAtendimento, intTempo){
    clearInterval(interAcionaFilaUnica);
    interAcionaFilaUnica = window.setInterval(function(){
        entrarFila(int_IDSalaAtendimento,'','')
    },intTempo);
}

/**
 *
 * @access public
 * @return void
 **/
function verificaF5(e) {
    try {
        var unicode = e.charCode ? e.charCode : e.keyCode;
    //	  alert(unicode);
    }
    catch(err) {
        var unicode = window.event.keyCode;
    //	  alert(unicode);
    }

    if(unicode == 116) { // Capture and remap F5
        unicode = 505;
    }

    if(unicode == 505) { // New action for F5
        window.onbeforeunload = null;
        window.onunload = null;
    }
    return true;
}

/**
 *
 * @access public
 * @return void
 **/
function gravarEnquete(){
    if ($('str_DSOpcao').value == "") {
        _mostraMensagem('<br/>Por favor selecione uma opção.',strDSNomeTela, 350, 100);
    }
    else {
        _aguarde('Aguarde, gravando...');
        xajax_saolGravaEnquete($('int_IDSalaAtendimento').value, $('str_DSOpcao').value);
    }
}

/**
 *
 * @access public
 * @return void
 **/
function enqueteDet_gravaRespAberta(int_IDPergunta, objResposta){
    $('resp_'+int_IDPergunta).value = objResposta.value;
}

/**
 *
 * @access public
 * @return void
 **/
function enqueteDet_gravaRespMultipla(int_IDPergunta, objResposta){
    $('resp_'+int_IDPergunta).value = objResposta.options[objResposta.selectedIndex].value;
}

function enqueteDet_gravaRespMultiplaResposta(int_IDPergunta, objResposta){
    if (objResposta.checked == true) {
        $('resp_'+int_IDPergunta).value = objResposta.value;
    }
    else {
        $('resp_'+int_IDPergunta).value = "";
    }
}

/**
 *
 * @access public
 * @return void
 **/
function gravarEnqueteDetalhada(){
    var _int_IDSalaAtendimento = $('int_IDSalaAtendimento').value;
    var _int_IDEnquete = $('int_IDEnquete').value;
    var aRespostas = new Array;

    aPerguntasEnqueteDetalhada.each(function(item) {
        aRespostas.push($('resp_'+item).value);
    });

    xajax_saolGravaEnqueteDetalhada(_int_IDSalaAtendimento, _int_IDEnquete, aPerguntasEnqueteDetalhada.join("|"), aRespostas.join("|"));
}

/**
 *
 * @access public
 * @return void
 **/
function participarEnquete(){
    $("enqueteConfirmaPart").style.display = "none";
    $("enqueteCorpoPerguntas").style.visibility = "visible";
}
