// Valida um um formulário e o submete. Obrigatories são os campos que exigem preenchimento obrigatório
function validateSubmit(form,obrigatories)
{
	obrigatories = obrigatories ? obrigatories : form.elements;
	for (i=0; i<obrigatories.length; i++)
	{
		if (obrigatories[i].type!="hidden" && obrigatories[i].type!="button" && obrigatories[i].type!="submit" && obrigatories[i].value=="")
		{
			alert("Preencha corretamente o campo em foco.");
			obrigatories[i].focus();
			return false;
		}
	}

	// submetendo o formulário

	clickMenu(-1,-1,-1,-1,form);
	return true;
}

function validate(form,obrigatories)
{
	obrigatories = obrigatories ? obrigatories : form.elements;
	for (i=0; i<obrigatories.length; i++)
	{
		if (obrigatories[i].type!="hidden" && obrigatories[i].type!="button" && obrigatories[i].type!="submit" && obrigatories[i].value=="")
		{
			alert("Preencha corretamente o campo em foco.");
			obrigatories[i].focus();
			return false;
		}
	}

	return true;
}	
function formatarData(campo) {
	
	if (campo.value != ''){
		campo.value= campo.value.toString().replace('/',''); //APAGA AS BARRAS PARA VERIFICAR SE EXISTE SOMENTE NUMROS
		var ValidChars = "0123456789";
		var IsNumber=true;
		var Char;
		sText = campo.value;
		for (i = 0; i < sText.length && IsNumber == true; i++){
			Char = sText.charAt(i);
			if (ValidChars.indexOf(Char) == -1){
				campo.value = campo.value.toString().replace(Char,''); //SUBSTITUI QQR CARACTER DIFERENTE DE STRIG PARA VAZIO
			}
		}
		return campo.value = campo.value.substr(0,2) + '/' + campo.value.substr(2,2) + '/' + campo.value.substr(4,4);
	}
}
function formatarMesAno(campo) {
	
	if (campo.value != ''){
		campo.value= campo.value.toString().replace('/',''); //APAGA AS BARRAS PARA VERIFICAR SE EXISTE SOMENTE NUMROS
		var ValidChars = "0123456789";
		var IsNumber=true;
		var Char;
		sText = campo.value;
		
		for (i = 0; i < sText.length && IsNumber == true; i++){
			Char = sText.charAt(i);
			if (ValidChars.indexOf(Char) == -1){
				campo.value = campo.value.toString().replace(Char,''); //SUBSTITUI QQR CARACTER DIFERENTE DE STRIG PARA VAZIO
			}
		}
		return campo.value = campo.value.substr(0,2) + '/' + campo.value.substr(2,4);
	}
}



// lê a data no formato europeu: dd/mm/aaaa, validando-a
function euroDate(t)
{
	
	var tecla = event.keyCode;
	event.returnValue = false;
	//PAREI ALTERANDO DATA, PROBLEMA COM TECLADO NUMÉRICO
	if ((tecla>=48 && tecla<=57) || (tecla==46 || tecla==8 || tecla==9) || (tecla>=96 && tecla<=104) )
	{
		
 	 if(tecla>=48 && tecla<=104){
		var num = (tecla>=48 && tecla<=57) ? tecla - 48 : tecla - 96;

		if (t.value.length==0 && num>3)
			return false;
		else
		{
			if (t.value.length==1 && t.value==3 && num>1)
			{
				alert("Dia inválido");
				return false;
			} 
			else if ((t.value.length==2||t.value.length==3) && num>1)
			{
				alert("Mês inválido");
				return false;
			} 
			else if (t.value.length==4)
			{
				
				if ((t.value=="30/1"||t.value=="31/1") && num>2)
				{
					alert("Mês inválido");
					return false;
				} 
				else if (t.value=="31/1" && num!=2 && num!=0)
				{
					alert("Este mês não possui 31 dias");
					return false;
				} 
				else if (t.value=="31/0" && num!=1 && num!=3 && num!=5 && num!=7 && num!=8 && num!=10 && num!=12)
				{
					alert("Este mês não possui 31 dias");
					return false;
				}
				else if (t.value=="30/0" && num==2)
				{
					alert("Fevereiro possui no máximo 29 dias");
					return false;
				}
			}
			else if (t.value.length==9 && t.value.slice(0,5)=="29/02")
			{
				ano = eval(t.value.slice(6)+''+num);
				
				if (ano%4)
				{
					alert(ano+" não é um ano bissexto");
					return false;
				}
			}
			else if (t.value.length==10)
				return false;
		}
	 }
	 event.returnValue = tecla;
	}

	if (t.value.length==2)
		t.value += "/";
	else if (t.value.length==5)
		t.value += "/";
}

// lê a data no formato europeu: dd/mm/aaaa, validando-a
function formatMesAno(t)
{
	var tecla = event.keyCode;
	event.returnValue = false;
	
	//PAREI ALTERANDO DATA, PROBLEMA COM TECLADO NUMÉRICO
	if ((tecla>=48 && tecla<=57) || (tecla==46 || tecla==8 || tecla==9) || (tecla>=96 && tecla<=104) )
	{
 	 if(tecla>=48 && tecla<=104){
		var num = (tecla>=48 && tecla<=57) ? tecla - 48 : tecla - 96;

		if (t.value.length==0 && num>3)
			return false;
		else
		{			
			if ((t.value.length==0) && num>1)
			{
				alert("Mês inválido");
				return false;
			} 
			else if (t.value.length==4)
			{
				
				if ((t.value=="30/1"||t.value=="31/1") && num>2)
				{
					alert("Mês inválido");
					return false;
				} 
				
			}
			
			else if (t.value.length==7)
				return false;
		}
	 }
	 event.returnValue = tecla;
	}

	if (t.value.length==2)
		t.value += "/";	
}






// máscar de entrada de inteiros somente
function integer(e)
{
	if(navigator.userAgent.toLowerCase().indexOf('opera') == -1 && navigator.userAgent.toLowerCase().indexOf('msie') != -1)  
		var tecla = e.keyCode; 
	else var tecla = e.which;

	var tecla = e.keyCode;
	e.returnValue = false;

/*	if ((tecla>=48 && tecla<=57) || (tecla>=96 && tecla<=105) || tecla<47)
	{
		event.returnValue = true;
	} */
	if ((tecla>=48 && tecla<=57) || (tecla==46 || tecla==8 || tecla==9) || (tecla>=96 && tecla<=104) && tecla!=0){
		e.returnValue = true;
	}
}

function IsNumber(campo){

var ValidChars = "0123456789.";
var IsNumber=true;
var Char;
sText = campo.value;
for (i = 0; i < sText.length && IsNumber == true; i++){
	Char = sText.charAt(i);
	if (ValidChars.indexOf(Char) == -1) IsNumber= false;
}
	if(IsNumber== false){
		alert("Digite apenas números.");
		campo.value = "";
		return false;
	}
}
// Semelhante a função anterior, mas aceita números separados por vírgulas
function IsNumber2(campo){

var ValidChars = "0123456789.,-+";
var IsNumber=true;
var Char;
sText = campo.value;
for (i = 0; i < sText.length && IsNumber == true; i++){
	Char = sText.charAt(i);
	if (ValidChars.indexOf(Char) == -1) IsNumber= false;
}
	if(IsNumber== false){
		alert("Digite apenas números.");
		campo.value = "";
		campo.focus();
		return false;
	}
	return true;
}

// verifica se o CNPJ é válido
function verifyCNPJ(e) { 

	var CNPJ = clsSymbols(e.value); 
	
	if(isNumber(CNPJ) != 1) 
		return(0); 
	else 
		if(CNPJ == 0) 
			return(0); 	
		else 
		{ 
			g=CNPJ.length-2; 
			if(RealTestaCNPJ(CNPJ,g) == 1) 
			{ 
				g=CNPJ.length-1; 
				if(RealTestaCNPJ(CNPJ,g) == 1) 
					return(1); 
				else 
					return(0); 
			} 
			else 
				return(0); 
		} 
} 

// subfunção do cnpj
function RealTestaCNPJ(CNPJ,g) { 

	var VerCNPJ=0; 
	var ind=2; 
	var tam; 
	for(f=g;f>0;f--) 
	{ 
		VerCNPJ+=parseInt(CNPJ.charAt(f-1))*ind; 
		if(ind>8) 
			ind=2; 
		else 
			ind++; 
	} 

	VerCNPJ%=11; 
	if(VerCNPJ==0 || VerCNPJ==1) 
		VerCNPJ=0; 
	else 
		VerCNPJ=11-VerCNPJ; 

	if(VerCNPJ!=parseInt(CNPJ.charAt(g))) 
		return(0); 
	else 
		return(1); 
} 

//FORMATA CNPJ

function FormataCNPJ(Form, campo, TamMax, Pos1, Pos2, PosBarra, PosTraco, TeclaPres){
 var tecla, wVr, wTam;
	if(window.event) { tecla = TeclaPres.keyCode; }
	else if(TeclaPres.which) { tecla = TeclaPres.which; }

 wVr = Form[campo].value;
 wVr = wVr.toString();
 wVr = wVr.replace( "-", "" );
 wVr = wVr.replace( ".", "" );
 wVr = wVr.replace( ".", "" );
 wVr = wVr.replace( "/", "" );
 wTam = wVr.length ;

 if (wTam < TamMax && tecla != 8)   wTam = wVr.length + 1 ; 
	 if (tecla == 8 ) wTam = wTam - 1 ; 
	 if ( tecla == 8 || tecla == 88 || tecla >= 48 && tecla <= 57 || (tecla >= 96 && tecla <= 105 && (navigator.userAgent.toLowerCase().indexOf('msie') == -1 && navigator.userAgent.toLowerCase().indexOf('mozilla') != -1))){
	  if ( wTam <= 2 ) Form[campo].value = wVr ;
	  if (wTam > PosTraco && wTam <= TamMax) wVr = wVr.substr(0, wTam - PosTraco) + '-' + wVr.substr(wTam - PosTraco, wTam);
	  if (wTam > PosBarra && wTam <= TamMax) wVr = wVr.substr(0, wTam - PosBarra) + '/' + wVr.substr(wTam - PosBarra, wTam);
	  if ( wTam == TamMax)  wVr = wVr.substr( 0, wTam - Pos1 )+ '.' + wVr.substr(wTam - Pos1, 3) + '.' + wVr.substr(wTam - Pos2, wTam);
		Form[campo].value = wVr;
	 }else TeclaPres.returnValue = false

}


//VERIFICA SE CNPJ É VÁLIDO
 function validaCNPJ(CNPJ,url,id) {
	if(CNPJ.length > 0){
                erro = new String;
				if(navigator.userAgent.toLowerCase().indexOf('msie') != -1)
                if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
                if (erro.length == 0) erro += "É necessário preencher corretamente o número do CNPJ! \n\n";
               }
               if(document.layers && parseInt(navigator.appVersion) == 4){
                      x = CNPJ.substring(0,2);
                      x += CNPJ. substring (3,6);
                      x += CNPJ. substring (7,10);
                      x += CNPJ. substring (11,15);
                      x += CNPJ. substring (16,18);
                      CNPJ = x;
              } else {
                      CNPJ = CNPJ. replace (".","");
                      CNPJ = CNPJ. replace (".","");
                      CNPJ = CNPJ. replace ("-","");
                      CNPJ = CNPJ. replace ("/","");
              }
              var nonNumbers = /\D/;
              if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números! \n\n";
              var a = [];
               var b = new Number;
               var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
               for (i=0; i<12; i++){
                       a[i] = CNPJ.charAt(i);
                       b += a[i] * c[i+1];
		 }
               if (CNPJ.length < 14) erro += "É necessario preencher corretamente o número do CNPJ! \n\n";
              if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
               b = 0;
               for (y=0; y<13; y++) {
                       b += (a[y] * c[y]);
               }
               if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
               if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
                       erro +="Dígito verificador com problema!\n Verifique os 02 últimos números.";
               }
               if (erro.length > 0){
                       alert("CNPJ Inválido!!!");
                       return false;
              } else if(CNPJ && id && url){
			  		//PARA O CASO DE HAVER CONSULTA
			  		ajaxUPDATE(id,url+"?cnpj="+CNPJ);
			  }
               return true;
	}
}



//------------------------------------- FUNCOES CPF -----------------------------------\\
// Verifica o CPF
function verifyCPF(e) { 
	if (e.value)
	{
		var i; 
		s = e.value; 
		s = s.toString().replace( ".", "" );
		s = s.toString().replace( ".", "" );
		s = s.toString().replace( "-", "" );
	
		var c = s.substr(0,9); 	  
		var dv = s.substr(9,2);	  
		var d1 = 0; 
		  
		for (i = 0; i < 9; i++) 	  
			d1 += c.charAt(i)*(10-i); 
		  
		if (d1 == 0) { 	 
			e.value = '';
			e.focus();
			alert("CPF Inválido")   
			return false;   
		} 
		  
		d1 = 11 - (d1 % 11); 
		  
		if (d1 > 9) d1 = 0; 
		  
		if (dv.charAt(0) != d1) 
		{ 	  
			e.value = '';
			e.focus();
			alert("CPF Inválido") 	  		
			return false; 	  
		} 
		  
		  
		d1 *= 2; 
		  
		for (i = 0; i < 9; i++) 	  
			d1 += c.charAt(i)*(11-i); 	  
		  
		d1 = 11 - (d1 % 11); 
	  
		if (d1 > 9) d1 = 0; 
	  
		if (dv.charAt(1) != d1) 
		{ 	  
			e.value = '';
			e.focus();
			alert("CPF Inválido") 			
			return false; 	  
		} 
	}
	return true;   
} 

//FORMATA CPF
function FormataCPF(Form, campo, TamMax, Pos1, Pos2, PosTraco, TeclaPres){
 var tecla, wVr, wTam;
	if(window.event) { tecla = TeclaPres.keyCode; }
	else if(TeclaPres.which) { tecla = TeclaPres.which; }

 wVr = Form[campo].value;
 wVr = wVr.toString();
 wVr = wVr.replace( "-", "" );
 wVr = wVr.replace( ".", "" );
 wVr = wVr.replace( ".", "" );
 wVr = wVr.replace( "/", "" );
 wTam = wVr.length ;

 if (wTam < TamMax && tecla != 8)   wTam = wVr.length + 1 ; 
 if (tecla == 8 )  wTam = wTam - 1 ; 

 if ( tecla == 8 || tecla == 88 || tecla >= 48 && tecla <= 57 || (tecla >= 96 && tecla <= 105 && (navigator.userAgent.toLowerCase().indexOf('msie') == -1 && navigator.userAgent.toLowerCase().indexOf('mozilla') != -1))  ){
  if ( wTam <= 2 )  Form[campo].value = wVr ;
  if (wTam > PosTraco && wTam <= TamMax)     wVr = wVr.substr(0, wTam - PosTraco) + '-' + wVr.substr(wTam - PosTraco, wTam);
  if ( wTam == TamMax) wVr = wVr.substr( 0, wTam - Pos1 ) + '.' + wVr.substr(wTam - Pos1, 3) + '.' + wVr.substr(wTam - Pos2, wTam);
  Form[campo].value = wVr;
 
 }else TeclaPres.returnValue = false;

}

//------------------------------------ -- ------------------------------------------------------\\

//----------------FORMATA CEP -----------

function formataCEP(e,src,mask) {
	if(window.event) { tecla = e.keyCode; }
	else if(e.which) { tecla = e.which; }
	
	if(tecla > 47 && tecla < 58) {
	 var i = src.value.length; var saida = mask.substring(0,1); var texto = mask.substring(i)
	 if (texto.substring(0,1) != saida) { src.value += texto.substring(0,1); }
	    return true; } else { if (tecla != 8) { return false; }
	 else { return true; }
	}
}

//--------------------------------------
// Recebe um campo strField e dada uma máscara de entrada 99999.99-99, onde 9 é um dígito, e evtKeyPress é o p´ropio event
// e formata a entrada deste campo.
function txtBoxFormat(strField, sMask, evtKeyPress) {

	var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
    evtKeyPress.returnValue = false;
	
	if(document.all)  // Internet Explorer
		nTecla = evtKeyPress.keyCode; 
	else if(document.layers)  // Nestcape
		nTecla = evtKeyPress.which;
 
	sValue = strField.value;
	 
	// Limpa todos os caracteres de formatação que
	// já estiverem no campo.
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	fldLen = sValue.length;
	mskLen = sMask.length;
	 
	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;
 
	while (i <= mskLen) {
		bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
		 
		if (bolMask) {
			sCod += sMask.charAt(i);
			mskLen++; }
		else {
			sCod += sValue.charAt(nCount);
			nCount++;
		}
		i++;
	}
 
	strField.value = sCod;
	 
	if (nTecla != 8) { // backspace
		if (sMask.charAt(i-1) == "9")  // apenas números...
		{
			if (((nTecla > 47) && (nTecla < 58)))
		        evtKeyPress.returnValue = nTecla;
			return ((nTecla > 47) && (nTecla < 58));  // números de 0 a 9
		}
		else 
			return true;
	}
	else 
		return true;
}

// verifica se um e-mail é válido
function verifyEmail(e,url) { 
	if(e.value.length > 0){
		strMail = new String(e.value);
	//	re = /^\w+([\.-_]?\w+)*@\w+([\.-_]?\w+)*(\.\w{2,4})+$/ ;
	//	re = /^[^@]+@[^@]+.[a-z]{2,}$/i;
		re = new RegExp("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]{2,64}(\.[a-z0-9-]{2,64})*\.[a-z]{2,4}$");
		if(!re.test(strMail)){
    	 alert("O endereço de email não é válido");
		 e.focus();
		}else if(url){
			consulta_email(url+"?mail="+e.value,e);
		}
	}

}

// Verifica se é um email válido || Semelhante a função anterior no entanto return verdadeiro ou falso em em ves de ir p/ uma url
function verificaEmail(e) { 

	if(e.value.length > 0){
		strMail = new String(e.value);
	
		re = new RegExp("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]{2,64}(\.[a-z0-9-]{2,64})*\.[a-z]{2,4}$");
		
		if(!re.test(strMail)) {
    	  alert("O endereço de email não é válido");
		  e.focus();
		  return false;
		}		
		return true;
	}

}


//-------------------------------------------|VERIFICA SE EXISTE ARQUIVO|---------------------------------------------\\

//Consulta arquivo, veriica se existe
function consulta_url(url,campo){

	try{
	    xmlhttp = new XMLHttpRequest();
	}catch(xmlhttp){
	    try{
	        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	    }catch(xmlhttp){
	        try{
	            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	        }catch(xmlhttp){
	            xmlhttp = false;
	        }
	    }
	}

	if(url.indexOf('.') == -1 && url!=""){ alert("Endereço Incorreto\n Por favor coloque o endereço e o nome do arquivo corretamente!"); campo.focus();  }
	if(url!="" && url.indexOf('.') != -1){
	//tenta criar um objeto XMLHttpRequest
	 xmlhttp.open("HEAD",url,true);
	 xmlhttp.onreadystatechange=function() {
	  if (xmlhttp.readyState==4) {
	   //if (xmlhttp.status==200) alert("URL Existe!");
	    //else 
		if (xmlhttp.status==404){ alert("Este Arquivo não exite OU não está neste endereço\nVerifique se está correto!"); if(campo) campo.focus(); }
	     //else alert("Status is "+xmlhttp.status);
	  }
	 }
 xmlhttp.send(null)	
 }
}

//-------------------------------------------|ATUALIZA OBJETO|---------------------------------------------\\

arr=[];
ind=0;
function LoadAjax(id,url,r,texto,opc,msn){
	msn =(msn)?msn:'Aguarde, carregando dados...';

	if(xmlhttp){
	   	//Carregando...
		r = (r=='normal') ? r : '';
		document.getElementById(id).style['display']= 'block';
		document.getElementById(id).innerHTML = (texto) ? '<span id="carregando" align=center><img src="site_2007/imagens/aguarde.gif" border="0" /> '+texto+'</span>' : '<span id="carregando" align=center><img src="site_2007/imagens/aguarde.gif" border="0" /> '+msn+'</span>';
		ajaxUPDATE(id,url,r,opc);
	}
	
}

function ajaxUPDATE(id,url,r,opc){
	if(xmlhttp){
//tenta criar um objeto XMLHttpRequest
	  //  if(document.getElementById(id)) document.getElementById(id).innerHTML="<span class='carregando'>"+"Carregando...</span>";
    	//Adiciona à fila
		r = (r=='normal' || r=='normal_opc') ? r : '';
		if(opc && opc!=""){
			opc.className="opacObjeto1";
			opc.style.filter='alpha(opacity=30)';
		}
		arr[arr.length]=[id,url,r,opc];
    	//Se não há conexões pendentes, executa
	    if((ind+1)== arr.length) Run(); 
	}

}

function Run(){
	if(!xmlhttp){
//CRIA UM OBJETO XHR
	try{
		    xmlhttp = new XMLHttpRequest();
		}catch(xmlhttp){
	    	try{
    		    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		    }catch(xmlhttp){
	    	    try{
    		        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	        	}catch(xmlhttp){
            		xmlhttp = false;
	    	    }
    		}
		}
	}

	if(xmlhttp){
    	xmlhttp.open("GET",arr[ind][1],true); 
	//	xmlhttp.setRequestHeader("Content-type", "charset=utf-8")
		xmlhttp.setRequestHeader('content-type', 'text/html');
		xmlhttp.setRequestHeader('Content-Type','charset=iso-8859-1');
		xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    	//Função para tratamento do retorno
	    xmlhttp.onreadystatechange=function() {
			//alert(xmlhttp.status+" - "+xmlhttp.readyState);
	        if (xmlhttp.readyState==4){
    	        //Mostra o HTML recebido
        	    retorno=unescape(xmlhttp.responseText); //.replace(/\+/g," "));
				//alert(retorno);
				if(document.getElementById(arr[ind][0])){
					 document.getElementById(arr[ind][0]).innerHTML=retorno.toString();
					 //CASO NÃO TENHA SIDO PASSADO O PARAMETRO PARA NÃO REDIMENSIONAMENTO
					 scriptAjax(retorno.toString(),arr[ind][1]);
					 if(document.getElementById('globalSource') && (arr[ind][2]== '' || !arr[ind][2])) reDimensiona();
					 //document.getElementById(arr[ind][0]).scrollIntoView(); 
				 }
				if(arr[ind][3] && arr[ind][3]!=""){
					arr[ind][3].className="opacObjeto";
					arr[ind][3].style.filter='alpha(opacity=100)';
				}
	            //Roda o próximo
    	        ind++;
        	    if(ind<arr.length) setTimeout("Run()",20);
	        }
    	}
	    //Executa
	    xmlhttp.send(null);
	}
}


//-------------------------------------------|VERIFICA SE EXISTE EMAIL, PODE SER USADO PARA VERIFICAR CONDIÇÕES, EX: VERIFICA SE CNPJ É VÁLIDO, SE FOR INVÁLIDO RETORNA ALERTA|---------------------------------------------\\
function consulta_email(url,campo){
    //Abre a conexão
    xmlhttp.open("GET",url,true);
    //Função para tratamento do retorno
    xmlhttp.onreadystatechange=function() {
	//alert(xmlhttp.readyState);
	if (xmlhttp.readyState==4){
            //Mostra o HTML recebido
            retorno=unescape(xmlhttp.responseText); //.replace(/\+/g," "));
			if(retorno.length>10){
				alert(retorno);
				campo.focus();
			}
        }
    }
    //Executa
    xmlhttp.send(null)
}


//-------------------------------------------|EXECUTA AÇÃO E INFOMRA O QUE FOI FEITO -> praticamente igual a de cima, só nao dá foco em campo|---------------------------------------------\\
function AjaxExec(url,id,texto){
		if(id && document.getElementById(id)){
			document.getElementById(id).style['display']= 'block';
			document.getElementById(id).innerHTML = (texto) ? '<span id="carregando" align=center><img src="site_2007/imagens/aguarde.gif" border="0" /> '+texto+'</span>' : '<span id="carregando" align=center><img src="site_2007/imagens/aguarde.gif" border="0" /> Aguarde, carregando dados...</span>';
		}
	//Abre a conexão
    xmlhttp.open("GET",url,true);
    //Função para tratamento do retorno
    xmlhttp.onreadystatechange=function() {
	//alert(xmlhttp.readyState);
	if (xmlhttp.readyState==4){
            //Mostra o HTML recebido
            retorno=unescape(xmlhttp.responseText); //.replace(/\+/g," "));
			if(retorno.length>10){
				alert(retorno);
				document.getElementById(id).style['display']= 'none';
			}
        }
    }
    //Executa
    xmlhttp.send(null);
}




// PARA CAMPOS DESTAQUE	
	function verify(campo,tam){
		if(campo.value > tam){
		 alert("Este campo não pode ser maior que "+tam+"!");
		 campo.value = "";
		 campo.focus();
		 }
	}

//FUNÇÃO SIMILAR A DE ONLOAD
/*	function reDimensiona(){ 
		var menu02 = (document.getElementById('menu02').offsetHeight)? parseInt(document.getElementById('menu02').offsetHeight):0;
		var tamanho = (document.getElementById('globalSource')) && (parseInt(document.getElementById('globalSource').offsetHeight) > parseInt(document.getElementById('conteudo').offsetHeight) &&  parseInt(document.getElementById('globalSource').offsetHeight) > parseInt(document.getElementById('REcentro').offsetHeight) ) ? (parseInt(document.getElementById('globalSource').offsetHeight)+ menu02) : ( (parseInt(document.getElementById('globalSource').offsetHeight) < parseInt(document.getElementById('REcentro').offsetHeight)) ? parseInt(document.getElementById('REcentro').offsetHeight)+ menu02 :parseInt(document.getElementById('conteudo').offsetHeight));
		if(parseInt(document.getElementById('globalSource').offsetHeight) < tamanho){
			document.getElementById('conteudo').style['height'] = (tamanho < (parseInt(document.getElementById('globalSource').offsetHeight) +menu02) ) ? tamanho+"px" : tamanho+(menu02-15)+"px";
			document.getElementById('REcentro').style['height'] = tamanho-menu02+"px";
		}

	}*/
	
	function reDimensiona2(valor){ 
				var centro 	= (document.getElementById('centro'))? 	document.getElementById('centro'):0;
				centro.style['height'] = centro.offsetHeight-valor+'px';
				
	}
	
	function reDimensiona3(valor){ 
				var centro 	= (document.getElementById('centro'))? 	document.getElementById('centro'):0;
				
					centro.style['height'] = centro.offsetHeight+valor+'px';
				
	}
	
	/* a PARTE DE COONTEUDO FICA DO TAMANHO DO RODAPÉ */
	function reDimensiona4(){ 
	
		document.getElementById('conteudo').style['height']=350+document.getElementById('globalSource').offsetHeight+'px';
	}
	function reDimensiona5(valor){ 
	
		
		if (valor>0)document.getElementById('conteudo').style['height']=valor+document.getElementById('globalSource').offsetHeight+'px';

	}
	
	function reDimensiona6(){ 
				
				var rodape	= (document.getElementById('rodape'))? 	document.getElementById('rodape'):0;
				
				rodape.style['top'] = document.getElementById('REcentro').offsetHeight+300+'px';
								
	}
	
	
function reDimensiona () {
		
		var pagina 		 = (document.getElementById('pagina'))?			document.getElementById('pagina'):0;
		var conteudo 	 = (document.getElementById('conteudo'))? 		document.getElementById('conteudo'):0;
		var centro 	 	 = (document.getElementById('centro'))? 		document.getElementById('centro'):0;
		var REcentro 	 = (document.getElementById('REcentro'))? 		document.getElementById('REcentro'):0;
		var globalSource = (document.getElementById('globalSource'))? 	document.getElementById('globalSource'):0;
		var cabecalho 	 = (document.getElementById('cabecalho'))? 		document.getElementById('cabecalho'):0;
		var menu01 	  	 = (document.getElementById('menu01'))? 		document.getElementById('menu01'):0;
		var digitus 	 = (document.getElementById('digitus'))? 		document.getElementById('digitus'):0;
		
		var tamanhoRealPagina =0;
		
		if(globalSource && REcentro &&	(parseInt(globalSource.offsetHeight) > parseInt(REcentro.offsetHeight))) {		
			REcentro.style['height'] = globalSource.offsetHeight+'px'; 
		}
		if(REcentro && centro && (parseInt(REcentro.offsetHeight) > parseInt(centro.offsetHeight)))
			centro.style['height'] = REcentro.offsetHeight+'px';
			
		if(REcentro && conteudo && (parseInt(REcentro.offsetHeight) > parseInt(conteudo.offsetHeight)))
			conteudo.style['height'] = REcentro.offsetHeight+'px';
		
		tamanhoRealPagina = menu01.offsetHeight + cabecalho.offsetHeight + conteudo.offsetHeight; 
		
		if(tamanhoRealPagina  > parseInt(pagina.offsetHeight))
			pagina.style['height'] = tamanhoRealPagina+'px';
		
		
		if(REcentro && conteudo && parseInt(REcentro.offsetHeight) == 0 )
				REcentro.style['height'] = conteudo.offsetHeight+'px';
		
		//Redimenciona página de download do quefacil
		if(digitus && conteudo && parseInt(digitus.offsetHeight) > parseInt(conteudo.offsetHeight))
				conteudo.style['height'] = digitus.offsetHeight+'px';
		else if(digitus && conteudo && parseInt(digitus.offsetHeight) < parseInt(conteudo.offsetHeight))
				digitus.style['height'] = conteudo.offsetHeight+'px';
	}
	
	
//---------------------------------------||CONCATENA VALORES DE UM FORMULARIO PARA SUBMISSAO||--------------------------------------\\
function cValores(formulario,act,id,url,texto){
//	alert(formulario.name+" - "+act+" - "+id+" - "+url+" - "+texto);
id = (document.getElementById(id)) ? document.getElementById(id) : id;
	var	valores = "act="+act;
	for (i=0; i < formulario.elements.length; i++){
		if ((formulario.elements[i].value && formulario.elements[i].type != 'button' && formulario.elements[i].type != 'submit' )){
			if(formulario.elements[i].type == 'checkbox' && formulario.elements[i].checked == true){
				valores += "&"+formulario.elements[i].name+"="+formulario.elements[i].value;
			}else if(formulario.elements[i].type == 'select-multiple'){	//PARA SELECTS MULTIPLOS
				var mult = formulario.elements[i];
				for(a=0;a<mult.length;a++){
					if(mult.options[a].selected){
						valores += "&"+formulario.elements[i].name+"="+mult.options[a].value;
					}
				}
			}else if(formulario.elements[i].type == 'radio' && formulario.elements[i].checked == true){ //PARA RADIOBUTTON
					valores += "&"+formulario.elements[i].name+"="+formulario.elements[i].value;
			}else if((formulario.elements[i].type == 'text' || formulario.elements[i].type == 'password' || formulario.elements[i].type == 'select-one' || formulario.elements[i].type == 'textarea' || formulario.elements[i].type == 'hidden') && (formulario.elements[i].type != 'checkbox' && formulario.elements[i].type != 'select-multiple')){
					nVal = "";
					nVal = escape(formulario.elements[i].value);
				valores += "&"+formulario.elements[i].name+"="+nVal;
				}
		}
	}
	if(id){ 
		id.style['display']= 'block';
		id.innerHTML = (texto) ? '<span id="carregando" align=center><img src="site_2007/imagens/aguarde.gif" border="0" /> '+texto+'</span>' : '<span id="carregando" align=center><img src="site_2007/imagens/aguarde.gif" border="0" /> Aguarde, carregando dados...</span>';
	}
	frm[Ap.length]=valores.toString();
    Ap[Ap.length]=[id,url];
    if((p+1)==Ap.length) RunPost();
}

Ap=[]; p=0; frm=[];

function RunPost(){
	if(xmlhttp){
		//Abre a conexão
		xmlhttp.open("POST", Ap[p][1], true);
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;'); 
		//Função para tratamento do retorno
	    xmlhttp.onreadystatechange=function() {
			//alert(xmlhttp.status+" - "+xmlhttp.readyState);
	        if (xmlhttp.readyState==4){
    	        //Mostra o HTML recebido
	            retorno=unescape(xmlhttp.responseText); //.replace(/\+/g," "));
				//document.getElementById(Ap[p][0]).scrollIntoView();
				//alert(retorno);
				if(Ap[p][0]){
					 Ap[p][0].innerHTML=retorno;
					// if(document.getElementById('globalSource')) reDimensiona();
					 scriptAjax(retorno.toString(),Ap[p][1]);
				 }
	            //Roda o próximo
            	p++;
        	    if(p<Ap.length) setTimeout("RunPost()",20);
    	    }
	    }
    	//Executa	
	    xmlhttp.send(frm[p]);
	}
}


//------------------------------SUBMETE FORM E SALVA CONTEUDO DE UMA BLOCO DE REGIÃO EDITÁVEL --------------->
function salvaConteudo(formulario,act,Oid,url,texto,tipo){
	cValores(formulario,act,Oid,url,texto);
	if(tipo=="reload") window.location.reload();
}
//---------------------------------------||CRIA CAMPOS NO FORMMAIN||--------------------------------------\\

function cFields(param){
	for (i=0; i<param.elements.length; i++){
		if (((param.elements[i].type != 'select-multiple' && param.elements[i].type != 'checkbox') && param.elements[i].value && param.elements[i].type != 'button' && param.elements[i].type != 'radio' && param.elements[i].type != 'submit') || (param.elements[i].type == 'radio' && param.elements[i].checked))
		{
			if(navigator.userAgent.toLowerCase().indexOf('opera') == -1 && navigator.userAgent.toLowerCase().indexOf('msie') != -1){ 
				eNew = document.createElement("<INPUT TYPE='hidden' NAME='"+param.elements[i].name+"' VALUE='"+param.elements[i].value+"'>");
				document.formMain.appendChild(eNew);
			}else{
				var el = document.createElement('input');
			 	el.setAttribute('type', 'hidden');
			 	el.setAttribute('name', param.elements[i].name);
			 	el.setAttribute('value', param.elements[i].value);
		 		document.formMain.appendChild(el);		
			}
		}
	}

}
//---------------------------------------||abre o site dos correios para buscar o CEP||---------------------------------------\\
	function ShowCep()
	{
		window.open('http://www.correios.com.br/servicos/cep/cep_default.cfm','ShowCep','location=no,resize=no, width=730,height=400,left=18,top=18,maximized=0,scrollbars=1');
	}

//OPACIDADE
function changeOpacity(Oid,Ev){
	var a;
	if(Ev == 'over'){
		Oid.style.filter='alpha(opacity=50)';
		Oid.className = "suporteProdutosDescOp";
	}else if(Ev == 'out'){
		Oid.style.filter='alpha(opacity=100)';
		Oid.className = "suporteProdutosDescOp1";
		//Oid.style['+moz+opacity']='.0';
	}
	
}

//-------------------------------------------|||||||||||||||||||||||||||||---------------------------------------------\\

	//PARA EXIBIR E OCULTAR COMENTARIOS E BLOCOS
	function exibe(bloco,stat){
		if(document.getElementById(bloco) && stat)	document.getElementById(bloco).style.display = stat;
		else if(document.getElementById(bloco) && !stat)	document.getElementById(bloco).style.display = (document.getElementById(bloco).style.display=='block')?'none':'block';
	}


//---------FUNÇÃO PARA FOCO NO LOGIN ----------------
function visualizaF(){
	if(document.getElementById('login').style.visibility == 'hidden' || !document.getElementById('login').style.visibility){
		document.getElementById('login').style.visibility = 'visible';
		 document.frmLogin.username.focus();
	}else{
		document.getElementById('login').style.visibility = 'hidden';
	}
}
//---------Traz os emails dos usuários que já logaram na máquina--------
//campo = propriedades do campo enviado
var obj;
function  MostraEmails(campo){
	var ar,i =0,ckvalores,valores="";
	var a = document.cookie;
	ar = a.split(';');
/*		if(campo.removeEventListener){
			removeEventListener("onfocus", document.getElementById(campo.name), true);
		//window.detachEvent("onfocus", campo); //removeEventListener("onfocus",true);
		} */
	do{
		if(ar[i].indexOf('userDigithoBrasilEmail')!=-1){ //se existir cookie gravado dos valores dos emails
			ckvalores = ar[i].split('='); //QUEBRA A STING PARA PEGAR O VALOR
			valores = ckvalores[1].toString();
			while(valores.indexOf('%2C')!=-1) valores = valores.replace('%2C',',');
			while(valores.indexOf('%40')!=-1) valores = valores.replace('%40','@');
		}
		i++;
	}while((!valores || valores=="") && i<ar.length);
	if(valores){
	valores = valores.split(',');
	valores = valores.sort();
	var obj = autocomp(campo,valores);
	}
}

//UTILIZADA PARA EFICIENCIA EM SUPORTE
//EFICIENCIA DO PROCEDIMENTO
function eficiencia(formulario,act,destino,url){
	with(formulario){
		sel = "";
		for(a=0;a<eficiencia.length;a++){
			if(eficiencia[a].checked== true) sel=eficiencia[a].value;
		}
		if(sel!=""){
			cValores(formulario,act,destino,url);
			}
		else{
			 alert("Por favor, selecione uma opção para o procedimento.");
			 return false;
		 }
	}
}


	//ADICIONA EVENTO A OBJETO
		function AddEvent(obj,evento,func){
				if (obj.attachEvent){
					return	obj.attachEvent(evento,func);
					}else if(obj.addEventListener){
					return obj.addEventListener(evento,func,true);
					}else{
					return obj[evento] = func;
				}
		}
	//REMOVE EVENTO
		function removeEvent(obj,evento){
			if (obj.detachEvent){
				obj.detachEvent(evento);
			}else if(obj.removeEventListener){
				obj.removeEventListener(evento,true);
			}else{
				obj[evento] = null;
			}
		}
		
		
//DRAG EM BLOCO
	var ie=document.all;
	var ns6=document.getElementById&&!document.all;
	var dragapproved = false;
	var z1, x1, y1;
//INICIA O DRAG
function move(e){
	if(dragapproved){
		z1.style.left = ns6 ? temp1+e.clientX-x1+"px" : temp1+event.clientX-x1;
		z1.style.top = ns6 ? temp2+e.clientY-y1+"px" : temp2+event.clientY-y1;
		return false;
	}
}
function drags(e){
	if(!ie&&!ns6)
	return;
	var firedobj = ns6 ? e.target : event.srcElement;
	var topelement = ns6 ? "HTML" : "BODY";
	while((firedobj.tagName!=topelement) && (firedobj.className!="drag")){
		firedobj = ns6 ? firedobj.parentNode : firedobj.parentElement;
	}
	if(firedobj.className=="drag"){
		dragapproved = true;
		z1 = firedobj;
		temp1 = parseInt(z1.style.left+0);
		temp2 = parseInt(z1.style.top+0);
		x1 = ns6 ? e.clientX : event.clientX;
		y1 = ns6 ? e.clientY : event.clientY;
		document.onmousemove = move;
		return false
	}
}
//PARA O DRAG
function noDrags(e){
	dragapproved=false;
}


// Verifica se a data passada é menor que a data atual

function validaData(dt) {
		
		if(dt != '') {
			data = dt.split('/');
			var newdate = new Date(data[2],(data[1] - 1),data[0],23,59,59);		
			var date= new Date();
			
			if(date.getTime() > newdate.getTime()) {
				alert('Data prevista menor que a data atual!');
				return false;
			}
		}
		return true;
	}


// Verifica se a data inicial passada é menor que a data final
function validaIntervaloData(dt_inicial,dt_final) {
		
		if(dt_inicial != '' && dt_final != '') {
			
			dataI = dt_inicial.split('/');
			dataF = dt_final.split('/');
			
			var newdateI = new Date(dataI[2],(dataI[1] - 1),dataI[0],23,59,59);		
			var newdateF = new Date(dataF[2],(dataF[1] - 1),dataF[0],23,59,59);		
			
			if(newdateI.getTime() > newdateF.getTime()) {
				alert('Data inicial maior que a data final!');
				return false;
			} else
				return true;
		}
		
	}	
	
//MUDA FOLHA DE ESTILOS
function getAllSheets() {
  if( !window.ScriptEngine && navigator.__ice_version ) { return document.styleSheets; }
  if( document.getElementsByTagName ) { var Lt = document.getElementsByTagName('link'), St = document.getElementsByTagName('style');
  } else if( document.styleSheets && document.all ) { var Lt = document.all.tags('LINK'), St = document.all.tags('STYLE');
  } else { return []; } for( var x = 0, os = []; Lt[x]; x++ ) {
    var rel = Lt[x].rel ? Lt[x].rel : Lt[x].getAttribute ? Lt[x].getAttribute('rel') : '';
    if( typeof( rel ) == 'string' && rel.toLowerCase().indexOf('style') + 1 ) { os[os.length] = Lt[x]; }
  } for( var x = 0; St[x]; x++ ) { os[os.length] = St[x]; } return os;
}
function changeStyle() {
  for( var x = 0, ss = getAllSheets(); ss[x]; x++ ) {
    if( ss[x].title ) { ss[x].disabled = true; }
    for( var y = 0; y < arguments.length; y++ ) {
     if( ss[x].title == arguments[y] ) { ss[x].disabled = false; }
} } }

// Verifica se a data inicial é maior que a data final
// By: Priscila - 05/12/2007
function ConfereData(dt_i,dt_f,campo){
	
	if(dt_i=='' && dt_f!=''){
		alert('Informe a data inicial');
		campo.focus();
		return false;	
	} else if ( new Date(dt_i) > new Date(dt_f)){	
	
		alert('A data inicial não pode ser maior que a data final!');
		campo.focus();
		return false;	
	}

}
//-------------------------------------------------------------------------------------
// mascara para telefone/cep/cpf/nascimento
// By: priscila - Data:20/02/2008
//--------------------------------------------------------------------------------------
function Mascara (formato, keypress, objeto){
campo = eval (objeto);

	// cep
	if (formato=='cep'){
	separador = '-';
	conjunto1 = 5;
	if (campo.value.length == conjunto1){
	campo.value = campo.value + separador;}
	}

	// cpf
	if (formato=='cpf'){
	separador1 = '.'; 
	separador2 = '-'; 
	conjunto1 = 3;
	conjunto2 = 7;
	conjunto3 = 11;
	if (campo.value.length == conjunto1)
	  {
	  campo.value = campo.value + separador1;
	  }
	if (campo.value.length == conjunto2)
	  {
	  campo.value = campo.value + separador1;
	  }
	if (campo.value.length == conjunto3)
	  {
	  campo.value = campo.value + separador2;
	  }
	}

	// nascimento
	if (formato=='nascimento'){
	separador = '/'; 
	conjunto1 = 2;
	conjunto2 = 5;
	if (campo.value.length == conjunto1)
	  {
	  campo.value = campo.value + separador;
	  }
	if (campo.value.length == conjunto2)
	  {
	  campo.value = campo.value + separador;
	  }
	}

	// telefone
	if (formato=='telefone'){
	separador1 = '(';
	separador2 = ') ';
	separador3 = '-';
	conjunto1 = 0;
	conjunto2 = 3;
	conjunto3 = 9;
	if (campo.value.length == conjunto1){
	campo.value = campo.value + separador1;
	}
	if (campo.value.length == conjunto2){
	campo.value = campo.value + separador2;
	}
	if (campo.value.length == conjunto3){
	campo.value = campo.value + separador3;
	}
}

}

/*
-----------------------------------------------------------------------------------------------------------------
FUNÇÕES PARA MÁSCARA E VALIDAÇÃO DE DATA
-----------------------------------------------------------------------------------------------------------------
*/
function mascara_data(data){ 
  var mydata = ''; 
  mydata = mydata + data.value; 
  if (mydata.length == 2){ 
	  mydata = mydata + '/'; 
	  data.value = mydata; 
  } 
  if (mydata.length == 5){ 
	  mydata = mydata + '/'; 
	  data.value = mydata; 
  } 
  if (mydata.length == 10){ 
	  verifica_data(data); 
  } 
} 

function verifica_data (data) { 

	dia = (data.value.substring(0,2)); 
	mes = (data.value.substring(3,5)); 
	ano = (data.value.substring(6,10)); 

	situacao = ""; 
	// verifica o dia valido para cada mes 
	if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) { 
		situacao = "falsa"; 
	} 
	
	// verifica se o mes e valido 
	if (mes < 01 || mes > 12 ) { 
		situacao = "falsa"; 
	} 
	
	// verifica se e ano bissexto 
	if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
		situacao = "falsa"; 
	} 
	
	if (data.value == "") { 
		situacao = "falsa"; 
	} 
	
	if (situacao == "falsa") { 
		alert("Data inválida!"); 
		data.value=""
		data.focus(); 
		return false
	} 
	return true
} 

/* converte string para md5 - by: Priscila - Data: 27/05/2008 */

function MD5(string) {

    function RotateLeft(lValue, iShiftBits) {
        return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
    }

    function AddUnsigned(lX,lY) {
        var lX4,lY4,lX8,lY8,lResult;
        lX8 = (lX & 0x80000000);
        lY8 = (lY & 0x80000000);
        lX4 = (lX & 0x40000000);
        lY4 = (lY & 0x40000000);
        lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
        if (lX4 & lY4) {
            return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
        }
        if (lX4 | lY4) {
            if (lResult & 0x40000000) {
                return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
            } else {
                return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
            }
        } else {
            return (lResult ^ lX8 ^ lY8);
        }
     }

     function F(x,y,z) { return (x & y) | ((~x) & z); }
     function G(x,y,z) { return (x & z) | (y & (~z)); }
     function H(x,y,z) { return (x ^ y ^ z); }
    function I(x,y,z) { return (y ^ (x | (~z))); }

    function FF(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };

    function GG(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };

    function HH(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };

    function II(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };

    function ConvertToWordArray(string) {
        var lWordCount;
        var lMessageLength = string.length;
        var lNumberOfWords_temp1=lMessageLength + 8;
        var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
        var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
        var lWordArray=Array(lNumberOfWords-1);
        var lBytePosition = 0;
        var lByteCount = 0;
        while ( lByteCount < lMessageLength ) {
            lWordCount = (lByteCount-(lByteCount % 4))/4;
            lBytePosition = (lByteCount % 4)*8;
            lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
            lByteCount++;
        }
        lWordCount = (lByteCount-(lByteCount % 4))/4;
        lBytePosition = (lByteCount % 4)*8;
        lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
        lWordArray[lNumberOfWords-2] = lMessageLength<<3;
        lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
        return lWordArray;
    };

    function WordToHex(lValue) {
        var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
        for (lCount = 0;lCount<=3;lCount++) {
            lByte = (lValue>>>(lCount*8)) & 255;
            WordToHexValue_temp = "0" + lByte.toString(16);
            WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
        }
        return WordToHexValue;
    };

    function Utf8Encode(string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    };

    var x=Array();
    var k,AA,BB,CC,DD,a,b,c,d;
    var S11=7, S12=12, S13=17, S14=22;
    var S21=5, S22=9 , S23=14, S24=20;
    var S31=4, S32=11, S33=16, S34=23;
    var S41=6, S42=10, S43=15, S44=21;

    string = Utf8Encode(string);

    x = ConvertToWordArray(string);

    a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;

    for (k=0;k<x.length;k+=16) {
        AA=a; BB=b; CC=c; DD=d;
        a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
        d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
        c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
        b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
        a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
        d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
        c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
        b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
        a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
        d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
        c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
        b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
        a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
        d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
        c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
        b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
        a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
        d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
        c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
        b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
        a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
        d=GG(d,a,b,c,x[k+10],S22,0x2441453);
        c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
        b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
        a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
        d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
        c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
        b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
        a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
        d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
        c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
        b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
        a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
        d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
        c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
        b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
        a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
        d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
        c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
        b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
        a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
        d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
        c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
        b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
        a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
        d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
        c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
        b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
        a=II(a,b,c,d,x[k+0], S41,0xF4292244);
        d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
        c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
        b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
        a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
        d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
        c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
        b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
        a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
        d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
        c=II(c,d,a,b,x[k+6], S43,0xA3014314);
        b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
        a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
        d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
        c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
        b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
        a=AddUnsigned(a,AA);
        b=AddUnsigned(b,BB);
        c=AddUnsigned(c,CC);
        d=AddUnsigned(d,DD);
    }

    var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);

    return temp.toLowerCase();
}

// -------------------------------------------------------------------------------------------------------------------------------------------------------
// Funções para ativar e desativar scroll do menu principal do site
// Data:14/11/2008 - Priscila
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
function scrollMenu(p,u,direcao,t,parar){	
		
		//inicia
		if(direcao=='e' && u<t){
			document.getElementById('pri').value = parseInt(p)+1;
			document.getElementById('ult').value = parseInt(u)+1;
			document.getElementById('m1'+parseInt(p)).style.display = 'none';
			document.getElementById('m1'+parseInt(u)).style.display = 'block';
			document.getElementById('divArrowLeft').style.display = 'block';
			if(u==(t-1)) { document.getElementById('divArrowRight').style.display = 'none';}
			p = parseInt(p)+1;
			u = parseInt(u)+1;
			if(u<t)	{
				parar_e = setTimeout('scrollMenu('+p+','+u+',"e",'+t+');',200);
			}

		} else if (direcao=='d' && (p>0)) {
			document.getElementById('pri').value = parseInt(p)-1;
			document.getElementById('ult').value = parseInt(u)-1;
			document.getElementById('m1'+document.getElementById('pri').value).style.display = 'block';
			document.getElementById('m1'+document.getElementById('ult').value).style.display = 'none';
			document.getElementById('divArrowRight').style.display = 'block';
			if(p==1){ document.getElementById('divArrowLeft').style.display = 'none';}
			p = parseInt(p)-1;
			u = parseInt(u)-1;
			if(p>0) {
				 parar_d =setTimeout('scrollMenu('+p+','+u+',"d",'+t+');',200);
			}

		}
	}
	//para
	function stopScrollMenu(direcao){
		if(direcao=='e'){
			clearTimeout(parar_e);
		}
		if(direcao=='d'){
			clearTimeout(parar_d);
		}
	}

// -------------------------------------------------------------------------------------------------------------------------------------------------------
// Fim funções scroll menu
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------


// -------------------------------------------------------------------------------------------------------------------------------------------------------
//  Retorna MD - By: Priscila - 05/02/2009
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------

function retornaMd5(valor){

	var md5 = MD5(valor);

	return md5;

}
// -------------------------------------------------------------------------------------------------------------------------------------------------------
// Verifica se um valor foi selecionado em um campo select   - By: Priscila - 25/02/2009
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
function verificaSelecaoCampo(campo,men){
	
	if( campo.value=='' || campo.value=='selecione' ){
		alert(men);	
		campo.focus();
		return false;
	
	}
	return true;	
	
}
// -------------------------------------------------------------------------------------------------------------------------------------------------------
// Mostra texto em um campo input/textarea caso ele não esteja preenchido. - By: Danton - 17/03/2009
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
function mostarTexto(campo,cursor){
	if(!campo.alt)campo.alt=campo.value
	if(cursor){
		if(campo.value==campo.alt)campo.value=''
	}else{
		if(campo.value=='')campo.value=campo.alt
	}
}

// -------------------------------------------------------------------------------------------------------------------------------------------------------
// Converte o valor do campo para valor em reais. - By: Danton - 14/04/2009
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
function ValorEmReais(campo){
	var tecla = event.keyCode;
	var val=campo.value.replace(/[^0-9]*/g,'').replace(/^[0]/g,''),newval='';
	if((48<=tecla&&tecla<=57)||(96<=tecla&&tecla<=105)){
		while(val.length<2)val='0'+val
		newval=val.replace(/([0-9]{1})$/,',$1')
		while(newval!=(newval=newval.replace(/([0-9])([0-9]{3}[,.])/,'$1.$2'))){}
		campo.value=newval
	}else if(tecla==8){
		campo.value=campo.value.replace(/([0-9])([,.])/g,"$2$1").replace(/^[.]/,"").replace(/^([,])/,"0$1")
		if(campo.value.length<5)campo.value='0,000'
	}else{
		lista=[9,13,17,18]
		for(var i=0;i<lista.length;i++)if(lista[i]==tecla)return false
		event.returnValue=false;
	}
}

// -------------------------------------------------------------------------------------------------------------------------------------------------------
// Copila os codegos javascript de pagina trazidas por ajax. - By: Danton - 27/04/2009
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
function scriptAjax(r,endereco){
	function verifica_sintax(str){
		try{
			var a=eval(str);
			return 1;
		}catch(e){
			return 0;
		}
	}
	rl=r.length;
	r2=r;
	r=r.split("");
	i=-1;
	nometag='';
	while(i<rl){
		//Inicio da tag
		while(++i<rl)if(r[i]=="<"){initag=i;nometag='';fimnometag=false;break}
		//Nome da tag
		while(++i<rl){
			if(r[i]==">"){
				fimnometag=true;
				fimtag=i+1;
				break
			}else if(r[i]=='\''||r[i]=='"'){
				iniaspa=i;
				c=r[i];
				while(++i<rl)if(r[i]==c&&verifica_sintax(r2.substring(iniaspa,i+1)))break
			}else if(r[i]==' '){
				fimnometag=true;
			}else{
				if(!fimnometag)nometag+=r[i]
			}
		}
		if(nometag.toLowerCase()=='script'){
			iniscript=fimtag
			while(++i<rl){
				if(r[i]=="<"&&r2.substring(i,i+9).toLowerCase()=="</sc"+"ript>"){
					script=r2.substring(iniscript,i);
					script=script.replace(/(function)[ ]+([$a-zA-Z_]{1}[$a-zA-Z0-9_]*)(\([^)]*\)[ ]*{)/g,"$2=$1$3");
					setTimeout("try{eval(unescape('"+escape(script)+"'))}catch(err){msgErro(err,'Endereço: "+endereco+"');}",1);
					i+=8;
					break;
				}
			}
		}
	}
}

// -------------------------------------------------------------------------------------------------------------------------------------------------------
// Altera o tamanho de uma div pai de acordo com o tamanho de uma div filha. - By: Danton - 30/04/2009
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
newSizeArray=[null,null,null]
function newSize(objFilho,objPai){
	if(typeof objPai=="string")try{objPai=document.getElementById(objPai)}catch(e){return 0}
	if(typeof objFilho=="string")try{objFilho=document.getElementById(objFilho)}catch(e){return 0}
	if(typeof objFilho=="object" && typeof objPai=="object"){
		newSizeArray[0]=objFilho
		newSizeArray[1]=objPai
		newSizeArray[2]=setInterval('try{minimo=600;newSizeArray[1].style.height=(newSizeArray[0].offsetHeight>minimo?newSizeArray[0].offsetHeight:minimo)+"px"}catch(e){clearInterval(newSizeArray[2])}',100)
	}
}

// -------------------------------------------------------------------------------------------------------------------------------------------------------
// Alerta um erro de javascript detalhadamente. - By: Danton - 21/05/2009
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
function msgErro(error,msg2){
	msg='Erro de javascript:\n';
	for(key in error)msg+=key+': '+error[key]+'\n';
	if(msg2!=null)msg+="\n"+msg2;
	alert(msg);
}