// JavaScript Document




var navegador = navigator.userAgent.toLowerCase(); //Cria e atribui à variável global 'navegador' (em caracteres minúsculos) o nome e a versão do navegador
var navTipo = "";
var xmlhttp = []; //Cria uma variável global chamada 'xmlhttp'
var fila = [];
var ifila = 0;
var contPag = -1;
var ctgl = 0;

//********************************************
//Função que inicia o objeto XMLHttpRequest
function objetoXML(){
	contPag++;
	if(navegador.indexOf('msie') != -1){ //Internet Explorer
		var controle = (navegador.indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';
		try{
			navTipo = "IE";
			xmlhttp[contPag] = new ActiveXObject(controle); //Inicia o objeto no IE
		}
		catch(e){ }
	}
	else{ //Firefox, Safari, Mozilla
		navTipo = "MZ";
		xmlhttp[contPag] = new XMLHttpRequest(); //Inicia o objeto no Firefox, Safari, Mozilla
	}
}

//********************************************
//Função que trata as linhas das variaveis e lista as ações solicitadas pelo sistema.
var block = 0;
function enviarForm(form,url,variaveis,div,acao,pasta){	
	
	if(variaveis.indexOf('REPETIR=1') == -1){
		acaoLoad('campoLoader', 1);
	}
	
	if(div=='chat'){
		if(document.getElementById('mensagem').value!=""){
			variaveis += "&mensagemStatus=1";
		}
	}
	
	objetoXML();
	
	if((fila.length)==0){
		fila[contPag] = [form,url,variaveis,div,acao,pasta];
		block = 1;
		acaoAjax(acao);
	}
	else{
		fila[contPag] = [form,url,variaveis,div,acao,pasta];
	}
	carregarSetores(form,url,variaveis,div,acao,pasta);
//	alert(variaveis);
}


//********************************************
//Função que envia dados do formulário e abre url requisitada.
function acaoAjax(acao){	
	//var elemento = document.getElementById(fila[ifila][2]);
	if(!xmlhttp[contPag]){
		statusProcesso('campo_mensagem','ERRO: Não foi possível encontrar o arquivo solicitado!');
		campo = 'campo_mensagem';
		setTimeout(limparAlerta, "6000");
		return;
	}
	if(block==1){
//		alert("fila["+ifila+"][0] = "+fila[ifila][0]+"\n"+"fila["+ifila+"][1] = "+fila[ifila][1]+"\n"+"fila["+ifila+"][2] = "+fila[ifila][2]+"\n"+"fila["+ifila+"][3] = "+fila[ifila][3]+"\n"+"fila["+ifila+"][4] = "+fila[ifila][4]+"\n"+"fila["+ifila+"][5] = "+fila[ifila][5]);
//		alert(fila[ifila][5]+'/'+fila[ifila][1]+'?ctgl='+ctgl+'&'+fila[ifila][2]);
	//	alert(fila[ifila][5]+'/'+fila[ifila][1]+'?ctgl='+ctgl+'&sessaoIMG='+fila[ifila][4]+'&'+fila[ifila][2]);
		
		xmlhttp[ifila].open("POST",fila[ifila][5]+'/'+fila[ifila][1]+'?ctgl='+ctgl+'&sessaoIMG='+fila[ifila][4]+'&'+fila[ifila][2],true,fila[ifila][3]);
		xmlhttp[ifila].send(fila[ifila][2]);
		
		if(fila[ifila][2].indexOf('REPETIR=1') == -1){
			acaoLoad('campoLoader', 1);
		}
		else{
//			acaoLoad('campoLoader', 0);
		}
		
		xmlhttp[ifila].onreadystatechange = function(){
			if(xmlhttp[ifila].readyState == 4){
				if(xmlhttp[ifila].status == 200){
					retorno = unescape(xmlhttp[ifila].responseText.replace(/\+/g," "));
            		iframe = "";
					while(fila[ifila][4].indexOf('IFRAME=') != -1){
						fila[ifila][4] = fila[ifila][4].replace('IFRAME=', '');
						iframe = 1;
					}
					
					if(iframe==1){
						window.frames[fila[ifila][4]].document.getElementById(fila[ifila][3]).innerHTML = retorno;
						iframe = "";
					}
					else{
						document.getElementById(fila[ifila][3]).innerHTML = retorno;
					}
					
					if(fila[ifila][2].indexOf('IFOCO') != -1){
						campoFoco = fila[ifila][2];
						campoFoco = campoFoco.slice(parseInt(campoFoco.indexOf('IFOCO'))+5, parseInt(campoFoco.indexOf('FFOCO')));
						focar(decodeURI(campoFoco));
					}
					
					retorno = "";
					ifila++;
					
					if(ifila<fila.length){
						block = 1;
						objetoXML();
						acaoAjax(acao);
						if(fila[ifila][4]=="positivo"){
							alerta('campoAlerta','positivo','Operação realizada com sucesso!');	
							alert("Operação realizada com sucesso!");
						}
					}
					else{
						contPag = -1;
						ifila = 0;
						fila = [];
						xmlhttp = [];
						block = 0;
						acaoLoad('campoLoader', 0);
					}
				}
				else{
    				alerta('campoAlerta','erro','ERRO '+xmlhttp[ifila].status+': Setor não encontrado!');
				//	campo = 'campoAlerta';
					contPag = -1;
					ifila = 0;
					fila = [];
					block = 0;
				//	limp = setTimeout(limparAlerta, "6000");
    			}
    		}
		}
		ctgl++;
	}
}


function carregarSetores(form,url,variaveis,div,acao,pasta){
	
	if(pasta=="conteudo"){
		if(acao=="email"){
			enviarForm('','form.contato.php','','divFormEmail','positivo','conteudo');
		}
	}
	
}


//***************************************************
//Função que trava com load do processo em andamento
function acaoLoad(div, controle){
	if(controle==1){
		div = document.getElementById(div);
		div.width = screen.width;
		div.height = screen.height;
		div.top = 0;
		div.left = 0;
		div.style.display = '';
		div.innerHTML = '<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0"><tr><td align="center" background="adm/imagens/load/sombra.png"><table width="100%" border="0" cellpadding="0" cellspacing="0" background="imagens/load/bgLoad.png"><tr><td>&nbsp;</td></tr><tr><td align="center"><img src="adm/imagens/load/logoAnimado.gif" width="50" height="50" style="cursor:pointer" onclick="stopLoad()" title="Clique aqui para cancelar este processo" /></td></tr><tr><td align="center" height="30"><font size="-3" face="Verdana, Arial, Helvetica, sans-serif" color="#666666">PROCESSANDO</font></td></tr></table></td></tr></table>';
	}
	else{
		//alert(document.getElementById(div).style.display+"\n"+div);
		if(document.getElementById(div).style.display!='none'){
			document.getElementById(div).style.display = 'none';
		}
	}
}


//***************************************************
//Função cancela ações AJAX dando STOP no navegador
function stopLoad(){
	contPag = -1;
	ifila = 0;
	fila = [];
	xmlhttp = [];
	acaoLoad('campoLoader', 0);
	alerta("campoAlerta","info","Processamento cancelado!");
}



//***************************************************
//Função que troca o estilo do objeto
function trocarEstilo(objeto,estilo){
	document.getElementById(objeto).className = estilo;
}



//***************************************************
//Função que gera mensagens no campo solicitado
var campo;
var limp;
function alerta(div,tipo,mensagem){
	
	campo = div;
	
	if(tipo=="positivo"){
		stCorpo = "corpoPositivo";
		stTexto = "textoPositivo";
		stIcone = "adm/imagens/composicao/positivo.png";
	} else if(tipo=="alerta"){
		stCorpo = "corpoAlerta";
		stTexto = "textoAlerta";
		stIcone = "adm/imagens/composicao/alerta.png";
	} else if(tipo=="info"){
		stCorpo = "corpoInfo";
		stTexto = "textoInfo";
		stIcone = "adm/imagens/composicao/info.png";
	} else if(tipo=="erro"){
		stCorpo = "corpoErro";
		stTexto = "textoErro";
		stIcone = "adm/imagens/composicao/erro.png";
	}
	
	document.getElementById(div).style.display = '';
	document.getElementById(div).style.zIndex = 10000;
	document.getElementById(div).innerHTML = '<table width="100%" border="0" align="center"><tr><td class="'+stCorpo+'"><table border="0" cellspacing="0" cellpadding="0" align="center"><tr><td style="width:40px;"><img src="'+stIcone+'" width="30" height="30" /></td><td class="'+stTexto+'">'+mensagem+'</td></tr></table></td></tr></table>';
	
	clearTimeout(limp);
	limp = setTimeout(limparAlerta, "6000");
	
}


//***************************************************
//Função apaga mensagem enviada
function limparAlerta(){
	document.getElementById(campo).style.display = 'none';
	document.getElementById(campo).innerHTML = "";
	document.getElementById(campo).style.zIndex = 0;
	acaoLoad('campoLoader', 0);
}




var infoTime;
var objANT = 0;
function showInfo(obj,div,posH,posV,texto,event){
	if(objANT==0){
		var funcao = function (){
			montarInfo(obj,div,posH,posV,texto,event);
		}
		removeInfo(div);
		infoTime = setTimeout(funcao, "500");
		
	} else {
//		infoTime = setTimeout(funcao, "1200");
		montarInfo(obj,div,posH,posV,texto,event);
	}
}
	
function montarInfo(obj,div,posH,posV,texto,ev){
	ev = ev || window.event;
	while(texto.indexOf("***LINHA***") != -1){
		texto = texto.replace("***LINHA***", "<br />");	
	}
	
	mousePos = mouseCoords(ev);
	document.getElementById(div).style.visibility = "visible";
	if(document.getElementById(div).style.visibility == "visible"){
		objANT = 1;
	}

	document.getElementById(div).style.zIndex = 10000;
	document.getElementById(div).style.left = mousePos.x +(parseInt(posH))+"px";
	document.getElementById(div).style.top = mousePos.y +(parseInt(posV))+"px";
	html = '<table width="0" border="0" cellspacing="0" cellpadding="0"><tr class="ESPACO"><td background="adm/imagens/informacoes/bgInfo_SUP_LE.png" style="width:20px; height:20px; background-repeat:no-repeat;">&nbsp;</td><td background="adm/imagens/informacoes/bgInfo_SUP_CE.png" style="background-repeat:repeat-x;">&nbsp;</td><td background="adm/imagens/informacoes/bgInfo_SUP_LD.png" style="width:20px; background-repeat:no-repeat;">&nbsp;</td></tr><tr><td background="adm/imagens/informacoes/bgInfo_CE_LE.png" style="background-repeat:repeat-y;">&nbsp;</td><td background="adm/imagens/informacoes/bgInfo_CE_CE.png" class="txInfo">'+texto+'</td><td background="adm/imagens/informacoes/bgInfo_CE_LD.png" style="background-repeat:repeat-y;">&nbsp;</td></tr><tr class="ESPACO"><td background="adm/imagens/informacoes/bgInfo_INF_LE.png" style="height:20px; background-repeat:no-repeat;">&nbsp;</td><td background="adm/imagens/informacoes/bgInfo_INF_CE.png" style="background-repeat:repeat-x;">&nbsp;</td><td background="adm/imagens/informacoes/bgInfo_INF_LD.png" style="background-repeat:no-repeat;">&nbsp;</td></tr></table>';
	document.getElementById(div).innerHTML = html;
}

function removeInfo(div){
	objANT = 0;
	clearTimeout(infoTime);
	document.getElementById(div).style.zIndex = 0;
	document.getElementById(div).style.visibility = "hidden";
}


function mouseCoords(ev){    
    var ev = ev || window.event;
	if(typeof(ev.pageX)!="undefined"){
      return {x:ev.pageX, y:ev.pageY};
    }else{
	//	document.onmousemove = mouseCoords;
	//	alert(window.event.clientX);
	    return {
	    	x:window.event.clientX + document.body.scrollLeft - document.body.clientLeft,y:window.event.clientY + document.body.scrollTop  - document.body.clientTop
        };
    }
}


//***************************************************
//Função que exibe um preview de imagem miniatura
function previewImagem(base,img,descricao){
	document.images[base].src = img;
}


//***************************************************
//Função que abre URLs em novas janelas
function abrirBotaoWindow(form,caminho,variaveis,campo,acao,pasta){
	if(pasta!=""){
		pasta += "/";
	}
	if(acao!=""){
		acao = ","+acao;
	}
	window.open(pasta+caminho+"?"+variaveis,campo,'menubar=yes,scrollbars=yes'+acao.toString());
}


//***************************************************
//Função que abre URLs em novas janelas
function abrirWindow(caminho,campo){
	window.open(caminho,campo);
}


//*******************************************************
//Função que formata paginação
function formatarPaginacao(objeto,url,variaveis,div,pasta){
	var qtde = objeto.value;
	variaveis += "&qtde="+qtde;
	enviarForm('',url,variaveis,div,'0',pasta);
}


//*******************************************************
//Função que adiciona campos no formulário
function addCampos(form,url,variaveis,div,acao,pasta){
	variaveis = captarObjetos(form,variaveis);
	enviarForm(form,url,variaveis,div,acao,pasta);	
}


//*************************************************************
//Função que seta os campos transformando-os em variaveis e prosseguindo com todo processo solicitado
function setarCampos(form,url,variaveis,div,acao,pasta){

	if(checarCampo(form)){
		variaveis = captarObjetos(form,variaveis);
		if(variaveis.indexOf('pedirConfirmacao=nao') != -1){
			enviarForm(form,url,variaveis,div,acao,pasta);
			return true;
		}
		else{
			var ok = window.confirm('Prosseguir com esta operação?');
			if(ok==true){
				enviarForm(form,url,variaveis,div,acao,pasta);
				return true;
			}
		}
	}
	else{
		return false;
	}
	
}


//********************************************************
//Função que checa os campos vazios modelos text, textfield, checkbox, radiobutton
function checarCampo(form){
	
	var objeto;
	var qtde;
	
	objeto = form.elements;
	qtde = objeto.length;
	
	for(i=0; i<qtde; i++){
		
	//	alert("OBJ = "+objeto[i].id+"\nTITULO = "+objeto[i].title+"\nVALOR = "+objeto[i].value+"\nTIPO = "+objeto[i].type);
		if(objeto[i].title.indexOf('*')!=-1 && (objeto[i].type!="checkbox" && objeto[i].type!="radio")){
			if(objeto[i].value==""){
				var divFoco = objeto[i].title.toString();
				if(divFoco.indexOf('DIV')!= -1){
					posINI = divFoco.indexOf('DIV')+3;
					posFIM = divFoco.indexOf('FDIV');
					divFoco = divFoco.slice(posINI, posFIM);
					divFoco = divFoco.split("|");
					
					objFoco = objeto[i].title.substr(0, posINI-3);
					tFoco = objeto[i].id;
				
					trocarAba(divFoco[4],divFoco[1]+'['+divFoco[2]+']', divFoco[1]);
					setValor(divFoco[3],divFoco[2]);
					
					focarAbas(divFoco[4],divFoco[0]+divFoco[2], divFoco[0]);
					focar(tFoco);
					
				} else {
					objFoco = objeto[i].title;
					objeto[i].focus();
				}
				alerta("campoAlerta","alerta","Por favor, digite corretamente o valor do campo "+objFoco+".");
				return false;
				break;
			}
		}
	}
	
	if(i==qtde){
		return true;
	}
}


//*******************************************************
//Função que capta todos os objetos do formulário e seus respectivos valores.
function captarObjetos(form,variaveis){
	
	var objeto;
	var qtde;
	
	objeto = form.elements;
	qtde = objeto.length;
	var objetoT = [];
	
	for(i=0; i<qtde; i++){
	
		objetoT[i] = objeto[i].value;
		
		while(objetoT[i].indexOf('\n') != -1){
			objetoT[i] = objetoT[i].replace('\n', '**LINHA**');
		}
		while(objetoT[i].indexOf('%0A') != -1){
			objetoT[i] = objetoT[i].replace('%0A', '**LINHA**');
		}
		while(objetoT[i].indexOf('<br />') != -1){
			objetoT[i] = objetoT[i].value.replace('<br />', '**LINHA**');
		}
		while(objetoT[i].indexOf('&')!=-1){
			objetoT[i] = objetoT[i].replace('&', '**ECOM**');
		}
		while(objetoT[i].indexOf('#')!=-1){
			objetoT[i] = objetoT[i].replace('#', '**SUST**');
		}
	
		var obg = objeto[i].value;
		if(objeto[i].type=="text"){
		//	if(objeto[i].value!=""){
				variaveis += "&"+objeto[i].id+"="+objetoT[i];
		//	}
		}
		else if(objeto[i].type=="password"){
			if(objeto[i].value != ""){
				variaveis += "&"+objeto[i].id+"="+objetoT[i];
			}
		}
		else if(objeto[i].type=="textarea"){
			if(objeto[i].value != ""){
				variaveis += "&"+objeto[i].id+"="+objetoT[i];
			}
		}
		else if(objeto[i].type=="select" || objeto[i].type=="select-one"){
			if(objeto[i].value != ""){
				variaveis += "&"+objeto[i].id+"="+objetoT[i];
			}
		}
		else if(objeto[i].type=="checkbox"){
			if(objeto[i].checked == true){
				variaveis += "&"+objeto[i].id+"="+objetoT[i];
			}
		}
		else if(objeto[i].type=="radio"){
			if(objeto[i].checked == true){
				variaveis += "&"+objeto[i].id+"="+objetoT[i];
			}
		}
		else if(objeto[i].type=="hidden"){
			if(objeto[i].value != ""){
				variaveis += "&"+objeto[i].id+"="+objetoT[i];
			}
		}
	}
	variaveis = encodeURI(variaveis);
//	alert(variaveis);
	return variaveis;
}


function setarCheckValor(objRef,objDest,valor){
	
	if(document.getElementById(objRef).checked){
		document.getElementById(objDest).value = valor;	
	} else {
		document.getElementById(objDest).value = "";
	}
	
}

