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

var interChecaAtendentesOnline = null;
var interProcessaSalaAtendimento = null;
var bolMensagemOffline = false;
var intTimer = 10;
var interAcionaFilaUnica;

function atendimentoOnline(int_IDEmpresa){
  window.open('http://atendimentoonline.netsabe.com.br/salaatendimento.php?cmd=abreSalaAtendimento&int_IDPagina=1','','toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=575, height=552, top=50, left=50'); return false;
  return false;
}

/**
 *
 * @access public
 * @return void
 **/
function loginSalaAtendimento(){
  var int_IDPagina = $('int_IDPagina').value;
  var strNome = $('strNomeAtendimento').value;
  var strEmail = $('strEmailAtendimento').value;
  var strTelefone = $('strDDD').value + ' ' + $('strTelefone').value;
  var strCidade = $('strCidade').value;
  var bitReceberCopia = $('chkReceberCopia').checked == true ? "1" : "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");
  }

  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,"Netsabe - Atendimento Online",350, (intNumMsg * 15) + 60);
  }
  else {
    //$('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);
  }
}

/**
 *
 * @access public
 * @return void
 **/
function mensagemOfflineSalaAtendimento(){
  if ($('mensagemOffline').value == "") {
    _mostraMensagem('<br/>É necessário preencher a mensagem.',"Netsabe - Atendimento Online",350, 100);
  }
  else {
    //xajax_mensagemOfflineSalaAtendimento(xajax.getFormValues('frmSalaAtendimento'));
    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){
  Dialog.confirm(
    '<br/>Sair do Atendimento Online?',
    {className: "alphacube",
     title: "Netsabe - Atendimento Online",
     width:300,
     height:95,
     okLabel: "Sim",
     cancelLabel:"Não",
     ok:function(win) {clearInterval(interChecaAtendentesOnline);xajax_saolFinalizaSalaAtendimento(int_IDSalaAtendimento);window.close(); return true;}
    }
  );
}

/**
 *
 * @access public
 * @return void
 **/
function enviarMensagemSalaAtendimento(int_IDSalaAtendimento){
  if ($('strMensagem').value == "") {
    _mostraMensagem('<br/>É necessário digitar uma mensagem.',"Netsabe - Atendimento Online",350, 100);
  }
  else {
    //xajax_mensagemOfflineSalaAtendimento(xajax.getFormValues('frmSalaAtendimento'));
    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>";
    clearInterval(interProcessaSalaAtendimento);
    xajax_saolEnviarMensagem(int_IDSalaAtendimento, int_IDDialogo, strMensagem);
  }
}

/**
 *
 * @access public
 * @return void
 **/
function processaSalaAtendimento(){
  if ($('int_IDSalaAtendimento') == undefined) {
    clearInterval(interProcessaSalaAtendimento);
  }
  else {
    var int_IDSalaAtendimento = $('int_IDSalaAtendimento').value;
    var int_IDDialogo = $('int_IDDialogo').value;
    xajax_saolProcessaSalaAtendimento(int_IDSalaAtendimento, int_IDDialogo);
  }
}

/**
 *
 * @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(){
  interProcessaSalaAtendimento = window.setInterval(processaSalaAtendimento,5000);
}

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

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

  if (strTitulo == undefined) {
    strTitulo = "Netsabe";
  }

  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);
}