//No Botão de chamada do chat
var popup = '';

function solicitaChat(codigo, nome, confirmar){
	var querystring = "codigo="+codigo+"&nome="+nome+"&confirmar="+confirmar;
	loadXMLDoc("/chatnovo/xml_testaPopup.php",querystring,"GET");
}

function xmlSolicitaChat(codigo, nome, confirmar){
	var querystring = "codigo="+codigo+"&nome="+nome+"&confirmar="+confirmar;
	loadXMLDoc("/chatnovo/xml_solicitaChat.php",querystring,"GET");
}

function testaPopup(codigo, nome, confirmar){
	var popup = window.open("/chatnovo/popup_teste.php",'branco','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=1,height=1');
	if(popup == null || popup == '')
	{
		alert("Não foi possível abrir a janela do chat.\nVerifique se seu navegador possui bloqueador de pop-ups ativo\ne desabilite-o a fim de poder conversar via chat. \n");
		return false;
	}else{
		xmlSolicitaChat(codigo, nome, confirmar);
		return true;
	}
}

function focusWindow(){
	if(popup != '')
		popup.focus();
}

//Verificação retitiva rodada no "rodape.php" do site a cada 10 segundos
function checkChat(){ //OK
	loadXMLDoc("/chatnovo/tools/rotina.php","","GET");
}

//Abre uma url na janela principal (usado no link de ver perfil no chat)
function openAtMain(url){
	opener.document.location.href = url;
}

//Rotina.php chama a abertura da janela do usuário origem (que solicitou o chat)
function openChatOrigem(codigo, jaberto)
{
	//if(document.getElementById("popupcontrol").value == 0)
	if(! jaberto)
	{

		abreChatWindow(codigo);
		return 1;

	}else{

		//EXECUTAR JS PARA ADICIONAR USUÁRIO (CODIGO) NA JANELA DELE
		return 0;

	}//end else / if(document.getElementById("popupcontrol").value == 0)

}//end function

//Rotina.php chama a abertura da janela do usuário destino (que recebe a chamada do chat)
function openChatDestino(codigo, nome)
{

	if(document.getElementById("popupcontrol").value == 0)
	{

		loadPHPDoc("/chatnovo/tools/chatEvento.php","nome="+nome+"&codigo="+codigo,"GET","divChat");
/*
		if(confirm('Usuário ' + nome + ' deseja entrar em Chat com você.\nAceita?'))
		{
			//CASO ACEITAR A SOLICITAÇÃO DE CHAT
			abreChatWindow(codigo);
			porteiro('entrando');
			return 1;
		}else{
			//CASO NÃO ACEITAR A SOLICITAÇÃO DE CHAT
			porteiro("naoAceitaChat");
			return 1;
		}
*/
	}else{
		//EXECUTAR JS PARA ADICIONAR USUÁRIO (CODIGO) NA JANELA DELE
	}//end else / if(document.getElementById("popupcontrol").value == 0)

}//end function


//Função para abrir a janela usada nas funções
//openChatOrigem e openChatDestino
function abreChatWindow(codigo){

	//var nmPopup = "chat" + codigo
	var nmPopup = "nchat";
	var url = "/chatnovo/janela.php?codigo=" + codigo;
	
	if (!popup.closed && popup.location)
	{
		popup.location.href = url;
	}else{
		popup = window.open(url,nmPopup,'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=600,height=560');

		if(popup != null && popup != '')
		{
			if (!popup.opener) popup.opener = self;
		}

	}

	if(popup == null || popup == '')
	{
		alert("Não foi possível abrir a janela do chat.\nVerifique se seu navegador possui bloqueador de pop-ups ativo. \n");
	}else{
		document.getElementById("popupcontrol").value = 1;
		if (window.focus) {popup.focus()}
	}//end else / if(popup == null)
}//end function


function porteiro(acao)
{
	//alert("porteiro acao=" + acao);
	loadXMLDoc("/chatnovo/tools/porteiro.php","acao="+acao,"GET");
}

function porteiroFW(chatId, acao)
{
	if(acao == 'naoAceitaChat')
		alert('Usuário será notificado de sua decisão\n e retirado do chat em segundos.');
//alert("porteiro acao=" + acao);
	loadXMLDoc("/chatnovo/tools/porteiro.php","chatId="+chatId+"&acao="+acao,"GET");
}

var ft = 0;
function reloadConversa()
{
	var chatId = document.getElementById("chatId").value;
	loadXMLDoc("xml_reloadConversa.php", "chatId="+chatId, "GET");

	//Auto-scrooling ----- INICIO
	var conversa = document.getElementById("conversa").innerHTML;
	var ancora = document.getElementById("ancora").innerHTML;
	
	if(ancora != conversa.length)
		document.location.href='#ancora';
	document.getElementById("ancora").innerHTML = conversa.length;
	//Auto-scrooling ----- FIM

	if(ft >= 1)
	{
		if(parent.document.getElementById("user_list").innerHTML.length <= 1)
			parent.sair();
	}
	ft++;
}

function reloadConversaAux(chatId)
{

	loadPHPDoc("tools/mostraConversa.php","chatId="+chatId,"GET","conversa");
	parent.loadPHPDoc("tools/listaUsers.php","chatId="+chatId,"GET","user_list");

	parent.document.getElementById("chatId").value = chatId;
}

function fechouJanela()
{
	cancelInterval();
	if(confirm('Deseja encerrar o bate-papo?')){
		closeChat();
		document.getElementById("popupcontrol").value = 0;
		//loadXMLDoc("/chatnovo/tools/porteiro.php","acao=sair","GET");
	}
	startInterval();
}

function sair()
{
	window.close();
}

function closeChat(){
	var nmPopup = "closechat";
	var url = "/chatnovo/tools/closechat.php";
	var popup = null;
	popup = window.open(url,nmPopup,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=1 height=1');
	if(popup == null)
	{
		alert("Não foi possível encerrar corretamente o chat.\nVerifique se seu navegador possui bloqueador de pop-ups ativo. \n");
	}
}

function closeChatButton(id){
	loadXMLDoc("/chatnovo/tools/closechat_xml.php","id="+id,"GET");
}

function enviarMsg(){
	var msg = document.getElementById("mensagem").value;
	var chatId = document.getElementById("chatId").value;
	msg = url_encode(msg);
	if(msg != "" && chatId != "")
	{
		document.getElementById("mensagem").value = "";
		//alert('chat id no envio: ' + chatId);
		//document.getElementById("statusMsg").innerHTML = "Enviado: " + msg;
		loadXMLDoc("enviaMensagem_exe.php","chatId="+chatId+"&msg="+msg,"GET");
		//checaListaUsers(chatId);
	}
}


function chatAceitar(codigo){
	abreChatWindow(codigo);
	porteiro('entrando');
	callw_rightLeft();
	return 1;
}

function chatNaoAceitar(){
	porteiro("naoAceitaChat");
	callw_rightLeft();
	return 1;
}

//CONTROLE DA CHAMADA DO CHAT - ENTRADA
var posw = -300;
function callw_leftRight() {
	document.getElementById(idiv).style.visibility = "visible";
    if(posw < 0){
        posw += 5;
        document.getElementById("divChat").style.left = posw + "px";
        setTimeout('callw_leftRight()', 10);
    }
}

//CONTROLE DA CHAMADA DO CHAT - SAIDA
function callw_rightLeft() {
    if(posw > -300){
        posw -= 5;
        document.getElementById("divChat").style.left = posw + "px";
        setTimeout('callw_rightLeft()', 10);
    }
	if(posw <= -300){
		document.getElementById("divChat").innerHTML = " ";
		document.getElementById(idiv).style.visibility = "hidden";
	}
}

function mudaConversa(idchat){
	//cancelInterval();
	//alert(idchat + '\n' + document.getElementById("iframe_conversa").src);
	parent.document.getElementById("mensagem").disabled = true;
	parent.document.getElementById("chatId").value = "";
	var conversa = document.getElementById("iframe_conversa");
	conversa.src = 'conversa.php?chatId='+idchat;
	checaListaUsers(idchat);
	//startInterval();
}

function checaListaUsers(chatId)
{
	//Verifica lista de usuários na janela de chat
	loadPHPDoc("tools/listaUsers.php","chatId="+chatId,"GET","user_list");
}

function startInterval(){
//	alert('START Interval');
	timerID = window.setInterval(checkChat, 10000);
}

function cancelInterval(){
//	alert('STOP Interval');
	timerID = clearInterval(timerID);
}

// url_encode version 1.0 
function url_encode(str) { 
    var hex_chars = "0123456789ABCDEF"; 
    var noEncode = /^([a-zA-Z0-9\_\-\.])$/; 
    var n, strCode, hex1, hex2, strEncode = ""; 

    for(n = 0; n < str.length; n++) { 
        if (noEncode.test(str.charAt(n))) { 
            strEncode += str.charAt(n); 
        } else { 
            strCode = str.charCodeAt(n); 
            hex1 = hex_chars.charAt(Math.floor(strCode / 16)); 
            hex2 = hex_chars.charAt(strCode % 16); 
            strEncode += "%" + (hex1 + hex2); 
        } 
    } 
    return strEncode; 
} 

// url_decode version 1.0 
function url_decode(str) { 
    var n, strCode, strDecode = ""; 

    for (n = 0; n < str.length; n++) { 
        if (str.charAt(n) == "%") { 
            strCode = str.charAt(n + 1) + str.charAt(n + 2); 
            strDecode += String.fromCharCode(parseInt(strCode, 16)); 
            n += 2; 
        } else { 
            strDecode += str.charAt(n); 
        } 
    } 
    return strDecode; 
}  
/*
function verifChat(){
	porteiro("verificar");	
}

*/


