/*-------------------------------------------------------------------------------
 * Copyright (c) 2006, Instituto CTS (www.cts.org.br).
 * Todos os Direitos Reservados.
 *
 * Rybena.js:	Arquivo responsável pela Pela formatação e organização do pacote 
 * 				MENSSAGEM que será interpretado pelo pelo servidor Rybená.
 * Versão: 1.0 - 13/12/2006
 * Autor: Francisco Abrantes (francisco@cts.org.br)
 * Contato: rybena@cts.org.br
 * website Institucional.: www.rybena.org.br
 * website Comercial: www.rybena.com.br
 *
 * As informações neste arquivo são confidenciais e não devem ser divulgadas.
 *
 * Rybená é marca registrada, protegida contra a utilização não autorizada, 
 * conforme preceitua a Lei nº 9.609, de 19 de fevereiro de 1998, regulamentada 
 * pelo Decreto nº 2.556, de 20 de abril de 1998, combinada com a Lei nº 9.610, 
 * de 19 de fevereiro de 1998, estando devidamente registrado no Instituto 
 * Nacional  da Propriedade Industrial - INPI (Decreto nº 2.556/98, art. 1º) 
 * sob o nº 00064074, ficando os infratores sujeitos às sanções cíveis e penais 
 * previstas nos respectivos diplomas legais.
 *----------------------------------------------------------------------------*/
//CAMPO TEMPORÁRIO QUE GUARDA A ÚLTIMA SELEÇÃO
// document.write('<input type="hidden" id="selecao" value=""/>');
 document.write("<input type='hidden' id='Dominio' />");

 
 clienteRybena = new ClienteRybena();
 includeClienteRybena(clienteRybena.endJS);

//CONTA O TEMPO PARA A CHAMADA DA FUNÇÃO: buscaSelecao()
//setInterval("buscaSelecao(clienteRybena);", 5000); // Intervalo de 5 segundos

 function ClienteRybena(){
	var dirCliente	= "XYS-123";
	var hostCliente	= "http://redesocial.srv.br";
 	this.dominio	= "";
 	this.endJS		= hostCliente + "/libras/js/RybenaCliente.js"; //Host Cliente
 	this.action		= "http://www.rybenamobile.com.br/player/" + dirCliente + "/php/player_rybena.php";
	this.janela		= "webPlayerRybena";
	this.message	= "";
	this.winprops	= "";
	this.formulario	= new Object();
 }
 
 function includeClienteRybena( endJS ) {
	var html_doc = document.getElementsByTagName('head').item(0);
	var arqJS = document.createElement('script');
	arqJS.setAttribute('language', 'javascript');
	arqJS.setAttribute('type', 'text/javascript');
	arqJS.setAttribute('src', endJS);
	html_doc.appendChild(arqJS);
	return false;
 }

 function getPlayerRybena(clienteRybena) {
	//Detect Firefox 1.0+
	firefox = (navigator.userAgent.indexOf("Firefox")!=-1)?true:false;
	msie = (navigator.appVersion.indexOf("MSIE")!=-1)?true:false;
	
	if(firefox) {
		var nav	= navigator.userAgent.toLowerCase();
		var erroVersaoFirefox = "http://www.rybenamobile.com.br/player/erros/versaoFirefox.htm";		
		if ((nav.indexOf('firefox/1.5.0.0')) != -1){ clienteRybena.action = erroVersaoFirefox; }
		if ((nav.indexOf('firefox/1.5.0.1')) != -1){ clienteRybena.action = erroVersaoFirefox; }
		if ((nav.indexOf('firefox/1.5.0.2')) != -1){ clienteRybena.action = erroVersaoFirefox; }
		if ((nav.indexOf('firefox/1.5.0.3')) != -1){ clienteRybena.action = erroVersaoFirefox; }
		if ((nav.indexOf('firefox/1.5.0.4')) != -1){ clienteRybena.action = erroVersaoFirefox; }
		if ((nav.indexOf('firefox/1.5.0.5')) != -1){ clienteRybena.action = erroVersaoFirefox; }
		if ((nav.indexOf('firefox/1.5.0.6')) != -1){ clienteRybena.action = erroVersaoFirefox; }
		if ((nav.indexOf('firefox/1.5.0.7')) != -1){ clienteRybena.action = erroVersaoFirefox; }
		if ((nav.indexOf('firefox/1.5.0.8')) != -1){ clienteRybena.action = erroVersaoFirefox; }
		if ((nav.indexOf('firefox/1.5.0.9')) != -1){ clienteRybena.action = erroVersaoFirefox; }
		if ((nav.indexOf('firefox/1.5.1.0')) != -1){ clienteRybena.action = erroVersaoFirefox; }
	} 

	clienteRybena.message = buscaSelecao(clienteRybena); //FUNÇÃO RETIRADA - CHAMADA NO setInterval()

	if ( clienteRybena.message != '' && clienteRybena.message != null || clienteRybena.action == erroVersaoFirefox) {
		/*MENSAGEM*/
		clienteRybena.message = trataMenssagem( clienteRybena.message );
		/*FORMULARIO*/
		clienteRybena.formulario = criaFormulario( clienteRybena );
		/*JANELA*/
		clienteRybena.winprops = criaJanela();
		/*ENVIO*/
		try {
			var myWin = window.open("about:blank", clienteRybena.janela, clienteRybena.winprops);
			clienteRybena.formulario.elements[0].value = clienteRybena.message; 
//			clienteRybena.formulario.elements[1].value = "www.nome_do_cliente.com.br";
			clienteRybena.formulario.elements[1].value = clienteRybena.dominio;
			clienteRybena.formulario.elements[2].value = clienteRybena.endJS;
			clienteRybena.formulario.submit();
			myWin.focus();
		}catch(err){
			if (myWin != null){ myWin.close(); }
			alert("Um bloqueador de popups impediu a janela do Rybena.");
		}
	} else {
		alert("Favor selecionar um texto na pagina com o mouse e chamar o tradutor LIBRAS novamente.");
	}
 }
 //VERIFICA BROWSER - PEGA TEXTO SELECIONADO
  //VERIFICA BROWSER - PEGA TEXTO SELECIONADO
 function buscaSelecao(clienteRybena){	
	var message	= "";	
	var tipBrowser = 2; // 1 == "Firefox"; 2 == "Internet Explorer"; 3 == "" ;
	var comando = "";

	try {
		//VERIFICA BROWSER - PEGA TEXTO FORA DO FRAME
		if (window.getSelection) { 	
			message = new String(window.getSelection()); 
			comando = "getSelection()";
		}else if (document.selection) { 
			message = new String(document.selection.createRange().text); 
			comando = "selection.createRange().text"
		}
		
	} catch (err) {
		window.status = "Player Rybená - buscando seleção... " + err.message;
	}


	//PEGA TEXTO DENTRO DOS FRAMES
	if ( message == '' || message == null ) {
		message = buscaSelecaoFrames(comando);
	}


/*
	var lastMessage = document.getElementById("selecao").value;

	//CHAMA A FUNÇÃO getPlayerRybena()
	//SOMENTE SE message FOR MAIOR QUE 1 E DIFERENTE DA ÚLTIMA MENSSAGEM TRADUZIDA PARA NÃO ENTRAR EM LOOP
	if(message != "" && message != null && message != "null" && message.length > 1 && message != lastMessage) {
		document.getElementById("selecao").value = null;
		clienteRybena.message = message;
		getPlayerRybena(clienteRybena);
	}
	//CAMPO TEMPORÁRIO - GUARDA A ÚLTIMA SELEÇÃO
	document.getElementById("selecao").value = message;
*/	
	return message; 
 }



/*	BUSCA SELEÇÃO DENTRO DO FRAMES */
 function buscaSelecaoFrames(comando) {

	//try {
		
		//var range = document.body.createTextRange();
		//javascript:alert(this.frames[2][0].document.body.createTextRange().text)

   		var message="";
 		x= parent.frames.length;
              var x2;
		var x3;
		var x4;
  		for(i=0;i<x; i++) {
				try {  
					message = eval("top.frames[i].document."+ comando);
					if (message != "" && message != null && message != "null" && message.length > 1 ) break;
					x2=parent.frames[i].length;
				} catch(err) {
					//alert("erro i " + i + " -> " + err.message);   
					window.status = "Player Rybená - buscando seleção... " + err.message;
				}
				for(j=0; j<=3; j++) {
						try { 
							message = eval("top.frames[i][j].document."+ comando);
							if(message != "" && message != null && message != "null" && message.length > 1 ) break; 
            			              	x3=parent.frames[i][j].length;
						} catch(err) {
							//alert("erro j " + j  + " -> " + err.message);   
							window.status = "Player Rybená - buscando seleção... " + err.message;
						}
						//alert("x3 = " + x3 );
       					for(k=0;k<=3;k++) {
								//alert("AQUI K");
       						       try{ 
									message = eval("top.frames[i][j][k].document."+ comando);
									if(message != "" && message != null && message != "null" && message.length > 1 ) break; 
        	        			              	x4 = parent.frames[i][j][k].length;
								} catch(err) {
									//alert("erro k " + k  + " -> " + err.message);   
									window.status = "Player Rybená - buscando seleção... " + err.message;
								}
								for(l=0;l<=3;l++) {
									try {
										top.frames[i][j][k][l].focus();					
										message = eval("top.frames[i][j][k][l].document"+ comando);
										if(message != "" && message != null && message != "null" && message.length > 1 ) break; 
									} catch(err) {
										//alert("erro l " + l  + " -> " + err.message);   
										window.status = "Player Rybená - buscando seleção... " + err.message;
									}
								}
		 					
		 				}	
		 				
      			       }
			
		}		

		return message;
	//} catch (err) {
	//	window.status = "Player Rybená - buscaSelecaoFrames... " + err.message;
	//}
	
 }

 /*MENSAGEM*/
 function trataMenssagem( message ) {	
	var msg= "";
	message = trim(message);
	message = message.replace('-', '');
	message = message.replace('”', '');
	message = message.replace('“', '');
	message = message.replace('"', '');
	message = message.replace("'", '');

	message = message.replace(/\n/g, ' ');
	for(i = 0; i < message.length; i++) {
		if (message.charAt(i) == '\n' || message.charCodeAt(i) == 10){
			msg += " ";
		} else {
			msg += message.charAt(i);
		}
	}
	msg = escape(msg);
	msg = msg.replace(new RegExp('\\+','g'),'%2B');
	msg = msg.replace(new RegExp('%20','g'),'+');

	return msg;
 }
 /*FORMULARIO*/
 function criaFormulario(clienteRybena) {
	clienteRybena.formulario = document.getElementById("sendform");
	if (clienteRybena.formulario == null){
		clienteRybena.formulario = document.createElement("form");
		clienteRybena.formulario.id = "sendform";
		clienteRybena.formulario.target = clienteRybena.janela;
		clienteRybena.formulario.action = clienteRybena.action;
		clienteRybena.formulario.method = "POST";
		var newField0 = document.createElement("input");
		newField0.setAttribute('name', "msg");
		newField0.setAttribute('type', "hidden");
		clienteRybena.formulario.appendChild(newField0);
		var newField1 = document.createElement("input");
		newField1.setAttribute('name', "Dominio");
		newField1.setAttribute('type', "hidden");
		clienteRybena.formulario.appendChild(newField1);
		var newField2 = document.createElement("input");
		newField2.setAttribute('name', "EndJS");
		newField2.setAttribute('type', "hidden");
		clienteRybena.formulario.appendChild(newField2);
		document.body.appendChild(clienteRybena.formulario);
	}
	return clienteRybena.formulario;
 }
 /*JANELA*/
 function criaJanela() {
	var w = 255, h = 385;
	var winl = (screen.width - w) / 2, wint = (screen.height - h) / 2;
	var winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',resizable=0,status=no';
	return winprops;
 }
 /*DOMINIO*/
 function setDominio(clienteRybena, dominio)  {
	 clienteRybena.dominio = dominio;
	 return false;
 }

 function trim(s)
 {
	return rtrim(ltrim(s));
 }

 function ltrim(s)
 {
	var l=0;
	while(l < s.length && s[l] == ' ')
	{	l++; }
	return s.substring(l, s.length);
 }

 function rtrim(s)
 {
	var r=s.length -1;
	while(r > 0 && s[r] == ' ')
	{	r-=1;	}
	return s.substring(0, r+1);
 }

 /*FORMATAÇÃO - CSS*/
 document.write('<style type="text/css">');
 document.write('.selo-player{position: relative; z-index: 1;}');
 document.write('.image-selo{width: 100px; height: 47px; border: 0px solid;}');
 document.write('.image-mao{width: 23px; height: 18px; border: 0px solid;}');
 document.write('</style>');