//<script language="javascirpt">
//***********************************************************************************************//
//***********************************FUNCAO QUE RETORNA VALOR (TRUE, FALSE ETC)*************//<br>
//******Não são valores Booleanos apenas textuais, mas podem servir para comparações*************//
//**********************************************************************************************//

function retorna(pValor){
	return(pValor);
};


function fAbreLocation(plocation){
	alert(plocation);
	location.replace(plocation);
	return retorna('false'); 
}

//******************************************************************************//
//************************Variaveis usadas no Editor****************************//
//******************************************************************************//
           _editor_url = "includes/editor/";
           _editor_lang = "pt_br";
		       var xDT = parent.xDT;
           var sBasePath = "../biblioteca/js/fckeditor/";   


///--------------------------------------------------------------------
///-----------------------REFERENTE AO UPLOAD -------------------------
///--------------------------------------------------------------------

  
		var f1;
		function winOnLoad(){
			//xResizeTo('caixinha', 10, 10);
			//xMoveTo('caixinha',0,5)

			f1 = xGetElementById('arquivo');
		  xAddEventListener(document, 'keypress', onKeypress, false);
		  xAddEventListener(document, 'keyup', onKeyup, false);
		  xAddEventListener(document, 'keydown', onKeydown, false);

			//f2  =  xGetElementById('tela');
			//xAddEventListener(document, 'mousemove', onMousemove, false);

		}

		function onKeypress(evt){
		  var e = new xEvent(evt);
		  //f1.kp.value = e.keyCode;
		  return onKeyEvent(evt, e);
		}

		function onKeyup(evt){
		  var e = new xEvent(evt);
		  //f1.ku.value = e.keyCode;
		  return onKeyEvent(evt, e);
		}
		function onKeydown(evt){
		  var e = new xEvent(evt);
		  //f1.kd.value = e.keyCode;
		  return onKeyEvent(evt, e);
		}

		function onKeyEvent(evt, xe){
		  //f1.et.value = xName(xe.target);
		  //f1.mx.value = xe.pageX;
		  //f1.my.value = xe.pageY;
		  switch (evt.keyCode) {
		    case 16:
		      shiftMode = false;
		      //log('onkeyup, keyCode = shift');
		      break;
		    case 17:
		      ctrlMode = false;
		      //log('onkeyup, keyCode = ctrl');
		      break;
		    case 18:
		      altMode = false;
		      //log('onkeyup, keyCode = alt');
		      break;
		
		  }
		
		  // these should never be true in keyup event:
		  if (evt.shiftKey) alert('onkeyup, shiftKey');
		  if (evt.ctrlKey) alert('onkeyup, ctrlKey');
		  if (evt.altKey) alert('onkeyup, altKey');			
			if (evt.keyCode == '13') alert('Enter');
			
		  //xResizeTo('caixinha', 10, 10);
		  //xMoveTo('caixinha', (xClientWidth()-10)/2, (xClientHeight()-10)/2);
		  //xShow('caixinha');

			//alert(xName(xe.target));
		  //if (f1.sp.checked) 
			xStopPropagation(evt);
		  //if (f1.pd.checked) {
		  xPreventDefault(evt);
		  return false;
		  //}
		  //return true;
		}

		function onMousemove(evt){
			var e = new xEvent(evt);
			return mouseMove(evt, e);
		}

		function mouseMove(evt, xe){
			
			xMoveTo('caixinha',xe.pageX + 10, xe.offsetY + 10);
			//xShow('caixinha');
		}
		
///	-----------------------------------------------




var carregado = '0';

function verificaCarregado(){
    if (frames['docarquivo'].document.getElementById('carregado')){
    
    
        if (frames['docarquivo'].document.getElementById('carregado').value == '1'){
        
            carregado = '1';
            document.getElementById('conteudomarcador').style.display='none';
            if (String(frames['docarquivo'].document.getElementById('erro').value).indexOf('0') >= 0){
                pAcao('adicionaarquivo');
            }else{
                alert('Erro ao vincular arquivo!');
            }
            return true;

        }else{  
            document.getElementById('marcador').innerHTML=document.getElementById('marcador').innerHTML + '&nbsp;';
             window.setTimeout('verificaCarregado()','200');
             
        }
        
    }else{
         document.getElementById('marcador').innerHTML=document.getElementById('marcador').innerHTML + '&nbsp;';
        window.setTimeout('verificaCarregado()','200');
    }
    
}



                   

//******************************************************************************//
//******************** Validação padronizada de Campos *************************//
//******************************************************************************//

function validacao(){
      //RetornaAtributo(pobj, patributo) - Função que traz a tag personalizada

              var urlencoded = '';
              var valida = false;
              var mensagemvalida = '';
            	for (var i = 0; i < document.forms[0].elements.length; i++){
            	valida = retornaAtributo(document.forms[0].elements[i], 'cscvalida');

                	if (valida == "true"){
                	   
                		if (document.forms[0].elements[i].name != ''){
                		mensagemvalida = retornaAtributo(document.forms[0].elements[i], 'cscmsgvalida')
                		tipo = retornaAtributo(document.forms[0].elements[i], 'csctipo')
                        			//alert(document.forms[0].elements[i].type);
                        			if (document.forms[0].elements[i].type == 'select-multiple') {
                        				
                                				/*for (var i2=0;i2<document.forms[0].elements[i].options.length;i2++){
                                					
                                					if (!document.forms[0].elements[i].options[i2].selected){
                                							//urlencoded += document.forms[0].elements[i].name + '='+ escape(document.forms[0].elements[i].options[i2].value);	
                                                
                                
                                							if ((i2+1) < document.forms[0].elements[i].options.length){
                                							//urlencoded += '&';
                                						}						
                                					}
                                
                                				}*/
                        
                        			}else if ((document.forms[0].elements[i].type == 'radio') || (document.forms[0].elements[i].type == 'checkbox'))  {
                        				
                        					
                              					if (!document.forms[0].elements[i].checked){
                              					
                              							urlencoded += mensagemvalida;	
                              							urlencoded += '\n';
                              				
                              					}
                        		
                        
                        			}else{
                              					if (document.forms[0].elements[i].value == ''){
                              					
                              							urlencoded += mensagemvalida;
                                            urlencoded += '\n';	
                              				
                              					}
                              					if (tipo != ''){
                                          retornotipo = configuraTipo();
                                          if (retornotipo != ''){
                              							urlencoded += retornotipo;	
                              							urlencoded += '\n';
                                          }
                                        }
                                        //alert(document.forms[0].elements[i].name + ' - ' + document.forms[0].elements[i].value);
                        				        //urlencoded += document.forms[0].elements[i].name + '=' + escape(document.forms[0].elements[i].value);
                        
                        			}
                        
                        
                				if ((i+1) < document.forms[0].elements.length){
                					//urlencoded += '\n';
                				}
                			}
                			//alert(urlencoded);
                	}
            	}
        
            	return urlencoded;

}

function configuraTipo(tipo){
return '';

} 		
     
        
//******************************************************************************//
//************************herança de String para usar Trim**********************//
//******************************************************************************//


String.prototype.sTrim = sTrim; //Implementa o método superTrim() no objeto String.
function sTrim(){ 
    return(this.replace( /^\s+|\s+$/gi, "" ).replace( /\s{2,}/gi, " " ))
}		   


/**
 * Adiciona método lpad() à classe String.
 * Preenche a String à esquerda com o caractere fornecido,
 * até que ela atinja o tamanho especificado.
 */
String.prototype.lpad = function(pSize, pCharPad)
{
	var str = this;
	var dif = pSize - str.length;
	var ch = String(pCharPad).charAt(0);
	for (; dif>0; dif--) str = ch + str;
	return (str);
} //String.lpad


//******************************************************************************//
//*****************************Funçõesa do X-Desktop****************************//
//******************************************************************************//

function abreJanela(hArquivo,hNome,hTitulo,hWidth,hHeight,hPosicao,hFecha,hFechaMensagem){
  //alert(hArquivo);
  sEnvia(document.getElementById('ideDadosDireita'),hArquivo,'GET','SRC');
	return true; 
};





//******************************************************************************//
//*********************** Abre janela centralizada *****************************//
//******************************************************************************//
            function abreCentro(vUrl,vName,vPosFimX,vPosFimY,vScrollBars,vResizable,vRetorno)
            {
              //calcula posição de abertura da janela em relação à tela
              vPosIniX=((screen.availWidth/2)-(vPosFimX/2));
              vPosIniY=((screen.availHeight/2)-(vPosFimY/2));
              //abre a janela pop up
               window.open(vUrl,vName,'status=0,toolbar=0,location=0,directories=0,menubar=0,scrollbars='+vScrollBars+',resizable='+vResizable+',top='+vPosIniY+',left='+vPosIniX+',width='+vPosFimX+',height='+vPosFimY+'');
              if (vRetorno==null)
              {
                //não retorna nada
              }
              else
              {
                //retorna qualquer coisa que você definir em vRetorno
                //obs.: aplicavel ao caso de querer retornar uma outra função ou o valor de outra função
                return vRetorno;
              };
            };

//******************************************************************************//
//************************Visibilidade de Objetos/Img***************************//
//******************************************************************************//

					var on = new Image(1,1);
					var off = new Image(1,1);
					
					var arrayImagens = new Array();
					
            function AbreRestricoes(pstrElemento, pstrImagem)
            {
            	
            	var lElementoDIV = document.getElementById('divorg' + pstrElemento);
            	lElementoDIV.style.display = (lElementoDIV.style.display==''?'none':'');
            	
            	var lElementoIMG = document.getElementById('img' + pstrElemento);
            	lElementoIMG.src =(lElementoDIV.style.display=='none'?on.src:off.src)
            };
          
            function abreFecha(id,idImg,localId,localImg){
            
            	container = eval(localId + '.getElementById(\''+id+'\')');
            	imagem = eval(localId + '.getElementById(\''+idImg+'\')');
            	
            
            	if (container.style.display == 'none') {
            		if (idImg != '') {imagem.backgroundPosition = '-11px'};
            		container.style.display = 'block';
            	}
            	else {
            		if (idImg != ''){imagem.backgroundPosition = '0px'};
            		container.style.display = 'none';
            	}
            	
            	
            }



          function abreFechaTree(id,idImg,localId,localImg,codPai){
            	//alert(id + ' - ' + idImg + ' - ' + localId + ' - ' + localImg);
            	

            	container = eval(localId + '.getElementById(\''+id+'\')');
            	imagem = eval(localId + '.getElementById(\''+idImg+'\')');

            
            	if (container.style.display == 'none') {
            		if (idImg != '') {imagem.style.backgroundPosition = '-11px'};
            		container.style.display = '';
            		sEnvia(container,'../biblioteca/classes/csctree.class.php?hcodpai='+codPai,'GET','SRC')
            		//container.innerHTML=pEnvia('','../includes/classes/csctree.class.php?hCodPai='+codPai,'GET','SRC');
            		
            	}else {
            		if (idImg != '') {imagem.style.backgroundPosition = '0px'};
            		container.style.display = 'none';
            		container.innerHTML = '';
            	}
            	
           	
            }
            
            function refreshImagens(){
            	
            	
                var imagens = document.body.getElementsByTagName('IMG'); 
            	for (var i = 0; i < imagens.length; i++) {
            	
            		if (imagens[i].src != ''){
            			arrayImagens[arrayImagens.length++] = imagens[i];
            			objImgIndex = arrayImagens.length - 1;
            			arrayImagens[objImgIndex].src = imagens[i].src;					
            			arrayImagens[objImgIndex] = null;
            		}	
            			
            	}            
            
            }
       

//******************************************************************************//
//************************    Alterna classe CSS   *****************************//
//******************************************************************************//
            //alert('aqui');
            
            
            function trocaCss(obj,mOver,mOut){
            	if (obj.className == mOut) {
            	   obj.className = mOver;
            	}else{
            	   obj.className = mOut;
            	}
            }
            
            function alteraCss(obj,mOver,mOut){
            	if (obj.className == mOut) {
            	   obj.className = mOver;
            	}else{
            	   obj.className = mOut;
            	}
            } 
            
            function trocaFundo(obj){
            	if (obj.style.backgroundColor == '#ffffff') {
            	 obj.style.backgroundColor = '#ffcc66';
            	}else{
            	 obj.style.backgroundColor = '#ffffff';
            	}
            } 
       
            
//******************************************************************************//
//**********************Verifica se o valor é numérico**************************//
//******************************************************************************//

            
            function IsNumeric(strNumber){
            
            	//if(!isNaN(FormataValor(strNumber))){
            		for(var i = 0; i < strNumber.length; i++)
            		{
            			if((strNumber.charAt(i) < "0" || strNumber.charAt(i) > "9") &&  strNumber.charAt(i)!= "."  &&  strNumber.charAt(i)!= ","){
            				return(false)
            			};
            		}
            		return(true);
            	//}
            	//return(false);
            } 

            
//******************************************************************************//
//**********************Formata valor em n casa decimais************************//
//******************************************************************************//
            
                        
            function FormataValor(pValor){
            	var numCasas = 2;
            	return FormataDecimal(toFloat(pValor),numCasas)
            } 
            
            
//******************************************************************************//
//**********************   Formata valor em decimais    ************************//
//******************************************************************************//
                   
function FormataDecimal(a,b) {
	a = (Math.round(Math.pow(10,b)*a)/Math.pow(10,b) + Math.pow(10,-(b+1))) +' ';
	a = a.substring(0, a.indexOf('.') + b+1);
	a = a.replace( ".", "," );
	strl = a.length;
	if (strl>(4+b)) {
		a=a.substring(0,strl-(4+b))+"."+a.substring(strl-(4+b));
	}
	if (strl>(7+b)) {
		a=a.substring(0,strl-(7+b))+"."+a.substring(strl-(7+b));
	}
	if (strl>(10+b)) {
		a=a.substring(0,strl-(10+b))+"."+a.substring(strl-(10+b));
	}
	if (strl>(13+b)) {
		a=a.substring(0,strl-(13+b))+"."+a.substring(strl-(13+b));
	}
	if(a.indexOf(".")==0){
		a=a.substring(1);
	}
	return a;
}


//******************************************************************************//
//**********************     Formata valor em BR       ************************//
//******************************************************************************//
  


function FormataValorBR(a) {
	a = (Math.round(100*a)/100 + 0.001) +' ';
	a = a.substring(0, a.indexOf('.') + 3);
	a = a.replace( ".", "," );
	strl = a.length;
	if (strl>6) {
		a=a.substring(0,strl-6)+"."+a.substring(strl-6);
	}
	if (strl>9) {
		a=a.substring(0,strl-9)+"."+a.substring(strl-9);
	}
	if (strl>12) {
		a=a.substring(0,strl-12)+"."+a.substring(strl-12);
	}
	if (strl>15) {
		a=a.substring(0,strl-15)+"."+a.substring(strl-15);
	}
	if (strl>18) {
		a=a.substring(0,strl-18)+"."+a.substring(strl-18);
	}
	if (strl>21) {
		a=a.substring(0,strl-21)+"."+a.substring(strl-21);
	}		
	if(a.indexOf(".")==0){
		a=a.substring(1);
	}
	return a;
}        

//******************************************************************************//
//**********************      Converte para Float     **************************//
//******************************************************************************//            
                      
function toFloat(pValor){
	strValor = '' + pValor;
	numValor = parseFloat(strValor.replace(/\./g,'').replace(/\,/g,'.'));
	if (isNaN(numValor * 2))
		numValor = 0;
	return numValor;
}

            
//******************************************************************************//
//***********************Verifica se o valor é um CPF***************************//
//******************************************************************************//
            function IsCPF(strCPF)
            {
            	strCPF = RemoveNotNumeric(strCPF);
            	var varFirstChr = strCPF.charAt(0);
            	var vaCharCPF = false;
            
            	for ( var i=0; i<=10; i++ ) {
            	     var c = strCPF.charAt(i);
                         if( ! (c>="0")&&(c<="9") ) {
            		return false;
            	     }
                         if( c!=varFirstChr ) vaCharCPF = true;
            	}
            
                    if( ! vaCharCPF ) {
            		return false;
                    }
            
            	soma=0;
            	for ( i=0; i<9; i++ ) {
            		soma += (10-i) * ( eval(strCPF.charAt(i)) );
            	}
            	digito_verificador = 11-(soma % 11);
            	if ( (soma % 11) < 2 ) digito_verificador = 0;
            	if ( eval(strCPF.charAt(9)) != digito_verificador ) {
            		return false;
            	}
            
            	soma=0;
            	for ( i=0; i<9; i++ ) {
            		soma += (11-i) * ( eval(strCPF.charAt(i)) );
            	}
            	soma += 2 * ( eval(strCPF.charAt(9)) );
            	digito_verificador = 11-(soma % 11);
            	if ( (soma % 11) < 2 ) digito_verificador = 0;
            	if ( eval(strCPF.charAt(10)) != digito_verificador ) {
            		return false;
            	}
            
            	return true;
            }

            
					function fVerificaCPF(objCPF){
						
						if (objCPF.value.length > 0){
							if (!IsCPF(objCPF.value)){
								alert('CPF Inválido!');
								objCPF.value = '';
								objCPF.select();
							};
						};
				 };


//******************************************************************************//
//***********************  Verificações de CNPJ     ***************************//
//******************************************************************************//

NUM_DIGITOS_CPF  = 11;
NUM_DIGITOS_CNPJ = 14;
NUM_DGT_CNPJ_BASE = 8;

/**
 * Elimina caracteres de formatação e zeros à esquerda da string
 * de número fornecida.
 * @param String pNum
 * 	String de número fornecida para ser desformatada.
 * @return String de número desformatada.
 */
function unformatNumber(pNum)
{
	return String(pNum).replace(/\D/g, "").replace(/^0+/, "");
} //unformatNumber


/**
 * Formata a string fornecida como CNPJ ou CPF, adicionando zeros
 * à esquerda se necessário e caracteres separadores, conforme solicitado.
 * @param String pCpfCnpj
 * 	String fornecida para ser formatada.
 * @param boolean pUseSepar
 * 	Indica se devem ser usados caracteres separadores (. - /).
 * @param boolean pIsCnpj
 * 	Indica se a string fornecida é um CNPJ.
 * 	Caso contrário, é CPF. Default = false (CPF).
 * @return String de CPF ou CNPJ devidamente formatada.
 */
function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	if (pUseSepar==null) pUseSepar = true;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var numero = unformatNumber(pCpfCnpj);

	numero = numero.lpad(maxDigitos, '0');
	if (!pUseSepar) return numero;

	if (pIsCnpj)
	{
		reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
		numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
	}
	else
	{
		reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
		numero = numero.replace(reCpf, "$1.$2.$3-$4");
	}
	return numero;
} //formatCpfCnpj


/**
 * Calcula os 2 dígitos verificadores para o número-efetivo pEfetivo de
 * CNPJ (12 dígitos) ou CPF (9 dígitos) fornecido. pIsCnpj é booleano e
 * informa se o número-efetivo fornecido é CNPJ (default = false).
 * @param String pEfetivo
 * 	String do número-efetivo (SEM dígitos verificadores) de CNPJ ou CPF.
 * @param boolean pIsCnpj
 * 	Indica se a string fornecida é de um CNPJ.
 * 	Caso contrário, é CPF. Default = false (CPF).
 * @return String com os dois dígitos verificadores.
 */
function dvCpfCnpj(pEfetivo, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	var i, j, k, soma, dv;
	var cicloPeso = pIsCnpj? NUM_DGT_CNPJ_BASE: NUM_DIGITOS_CPF;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var calculado = formatCpfCnpj(pEfetivo, false, pIsCnpj);
	calculado = calculado.substring(2, maxDigitos);
	var result = "";

	for (j = 1; j <= 2; j++)
	{
		k = 2;
		soma = 0;
		for (i = calculado.length-1; i >= 0; i--)
		{
			soma += (calculado.charAt(i) - '0') * k;
			k = (k-1) % cicloPeso + 2;
		}
		dv = 11 - soma % 11;
		if (dv > 9) dv = 0;
		calculado += dv;
		result += dv
	}

	return result;
} //dvCpfCnpj



/**
 * Testa se a String pCnpj fornecida é um CNPJ válido.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCnpj
 * 	String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CNPJ válido.
 */
function isCNPJ(pCnpj)
{
	var numero = formatCpfCnpj(pCnpj, false, true);
	var base = numero.substring(0, NUM_DGT_CNPJ_BASE);
	var ordem = numero.substring(NUM_DGT_CNPJ_BASE, 12);
	var digitos = dvCpfCnpj(base + ordem, true);
	var algUnico;

	// Valida dígitos verificadores
	if (numero != base + ordem + digitos) return false;

	/* Não serão considerados válidos os CNPJ com os seguintes números BÁSICOS:
	 * 11.111.111, 22.222.222, 33.333.333, 44.444.444, 55.555.555,
	 * 66.666.666, 77.777.777, 88.888.888, 99.999.999.
	 */
	algUnico = numero.charAt(0) != '0';
	for (i=1; i<NUM_DGT_CNPJ_BASE; i++)
	{
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	}
	if (algUnico) return false;

	/* Não será considerado válido CNPJ com número de ORDEM igual a 0000.
	 * Não será considerado válido CNPJ com número de ORDEM maior do que 0300
	 * e com as três primeiras posições do número BÁSICO com 000 (zeros).
	 * Esta crítica não será feita quando o no BÁSICO do CNPJ for igual a 00.000.000.
	 */
	if (ordem == "0000") return false;
	return (base == "00000000"
		|| parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
} //isCnpj





function fVerificaCNPJ(objCNPJ){
	if (objCNPJ.value.length > 0){
		if (!isCNPJ(objCNPJ.value)){
			alert('CNPJ Inválido!');
			objCNPJ.value = '';
			objCNPJ.select();
		};
	};
};


//******************************************************************************//
//************************Remove Caracter não Numérico**************************//
//******************************************************************************//
            function RemoveNotNumeric(strValue)
            {
            	var i, strReturn = "";
            	for(i = 0; i < strValue.length; i++)
            	{
            		if(isNumeric(strValue.substr(i, 1)))
            			{strReturn += strValue.substr(i, 1)}
            	}
            	return(strReturn);
            }



            
//******************************************************************************//
//************************        XML HTTP         *****************************//
//******************************************************************************//

            function fMontaPOST(){
            	var itmarray = '' ;
            	var urlencoded = '';
            	for (var i = 0; i < document.forms[0].elements.length; i++){
            		if (document.forms[0].elements[i].name != ''){
                    			//alert(document.forms[0].elements[i].type);
                    			if (document.forms[0].elements[i].type == 'select-multiple') {
                    				
                            				for (var i2=0;i2<document.forms[0].elements[i].options.length;i2++){
                            					
                            					if (document.forms[0].elements[i].options[i2].selected){
                            							urlencoded += document.forms[0].elements[i].name + '='+ escape(document.forms[0].elements[i].options[i2].value);	
                            
                            
                            							if ((i2+1) < document.forms[0].elements[i].options.length){
                            							urlencoded += '&';
                            						}						
                            					}
                            
                            				}
                    
                    			}else if ((document.forms[0].elements[i].type == 'radio') || (document.forms[0].elements[i].type == 'checkbox'))  {
                    				
                    					
                          					if (document.forms[0].elements[i].checked){
                          							urlencoded += document.forms[0].elements[i].name + '='+ escape(document.forms[0].elements[i].value);	
                          							urlencoded += '&';
                          				
                          					}
                    		
                    
                    			}else{
                                    //alert(document.forms[0].elements[i].name + ' - ' + document.forms[0].elements[i].value);
                    				        urlencoded += document.forms[0].elements[i].name + '=' + escape(document.forms[0].elements[i].value);
                    
                    			}
                    
                    
            				if ((i+1) < document.forms[0].elements.length){
            					urlencoded += '&';
            				}
            			}
            			//alert(urlencoded);
            	}

            	return urlencoded;
            };


            function Retorno(objHTTP,ID,AF,pTipo){
            
                
                this.checkReadyState = function() {
                	if (objHTTP.readyState == 4) {
                	//Conteudo aqui...
            		//alert('aqui.');
            			if (pTipo == 'POST') {
            			   return (objHTTP.responseText);
            			}else{
            				return (objHTTP.responseText);
            			}
            
                        if (AF) {abreFecha(ID,AF)};
                	}
                	else {
                		window.setTimeout(this.checkReadyState, 50);
                	};
                };
            
                
            };

            function xmlHTTP(pId,pUrl,pTipo) {
            
                if (document.all)
                  this.objHTTP = new ActiveXObject('MSXML2.XMLHTTP');
                else
                  this.objHTTP = new XMLHttpRequest();
                  
            	this.fonte = '';
                this.id = pId;
                this.url = pUrl;
                this.af = false;
                this.tipo = pTipo;
            
            
                this.CarregarHTTP = function(){
            
                    //alert(this.url);
            
                    if (this.tipo == 'POST'){
                        this.objHTTP.open(pTipo, this.url, false);
                        this.objHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
                        this.objHTTP.send(fMontaPOST());
            			
                    }else if (this.tipo == 'GET'){
                        this.objHTTP.open(pTipo, this.url, false);
                        this.objHTTP.setRequestHeader('Content-Type','text/html; charset=UTF-8');
                        this.objHTTP.send(null);
                    }
            		
                        var objFonte = new Retorno(this.objHTTP,this.id,this.af,this.tipo);
                        this.fonte = objFonte.checkReadyState();
                        //this.retorno(objFonte.retorno);
            
                }
                
            
            
            };  // fim da classe


            
            function pEnvia(pID,pUrl,pTipo,pRetorno){
            	var obj = new xmlHTTP(pID,pUrl,pTipo)
            	obj.CarregarHTTP();
            		if (pRetorno == 'ALR'){
            		  obj.fonte = obj.fonte.replace(/^\s*|\s*$/g,"");
            			alert(obj.fonte);
            		}else if (pRetorno == 'SRC'){
            		  obj.fonte = obj.fonte.replace(/^\s*|\s*$/g,"");
            			return obj.fonte;
            		}else if (pRetorno == 'VLR'){
            		  obj.fonte = obj.fonte.replace(/^\s*|\s*$/g,"");
            			return obj.fonte;            			
            		}
            
            }
            

//******************************************************************************//
//***********************          Mascara         *****************************//
//******************************************************************************//

            function cleanMask(val) {
            	var strCheck = "'[](){}<>=+-*/_|\~`!?@#$%^&:;,.";
            	var aux="";
            	var i;
            	
            	for(i=0; i<val.length; i++) {
            		if(strCheck.indexOf(val.charAt(i))==-1) {
            			aux+=val.charAt(i);
            		}
            	}
            	return aux;
            }

            function maskCurrency(val, milSep, decSep) {
            	var aux="";
            	var aux2="";
            	
            	var i,j;
            			
            	len = val.length;
            	if (len == 0) {
            		aux = '';
            	} else if (len == 1) {
            		aux = '0'+ decSep + '0' + val;
            	} else if (len == 2) {
            		aux = '0'+ decSep + val;
            	} else if (len > 2) {
            		aux2 = '';
            
            		for (j = 0, i = len - 3; i >= 0; i--) {
            			if (j == 3) {
            				aux2 += milSep;
            				j = 0;
            			}
            			aux2 += val.charAt(i);
            			j++;
            		}
            		aux = '';
            		len2 = aux2.length;
            		for (i = len2 - 1; i >= 0; i--) {
            			aux += aux2.charAt(i);
            		}
            		aux += decSep + val.substr(len - 2, len);
            	}	
            	return aux;
            }
            
            
            function mask(_mask, val) {
            	var i, mki;
            	var aux="";
            	
            	for(i=mki=0; i<val.length; i++, mki++) {
            		if(_mask.charAt(mki)=='' || _mask.charAt(mki)=='#' || _mask.charAt(i)==val.charAt(i)) {
            			aux+=val.charAt(i);
            		} else {
            			aux+=_mask.charAt(mki)+val.charAt(i);
            			mki++;
            		}
            	}
            	return aux;
            }

            function maskEvent(field, _mask, event) {
            	var key ='';
            	var aux='';
            	var len=0;
            	var i=0;
            	var strCheck = '0123456789';
            	var rcode = (window.Event) ? event.which : event.keyCode;
            	
            	if(rcode == 13 || rcode == 0 || rcode == 8 || field.value.length == _mask.length  ) {
            		//Enter
            		key=String.fromCharCode(rcode);
            				
            		if(rcode!=13 && rcode!=0 && rcode!=8) {
            			return false;
            		}
            		
            		return true;
            	}
            	
            	//Get key value from key code
            	key=String.fromCharCode(rcode);
            	
            	if(strCheck.indexOf(key)==-1) {
            		//Not a valid key
            		return false;
            	}
            	
            	aux=field.value+key;
            	//window.alert(aux);
            	aux=mask(_mask,aux);
            	//window.alert(aux);
            	field.value=aux;	
            	return false;
            }
            
            function currencyFormat(fld, milSep, decSep, e) {
            	var sep = 0;
            	var key = '';
            	var i = j = 0;
            	var len = len2 = 0;
            	var strCheck = '0123456789';
            	var aux = aux2 = '';
            	var whichCode = (window.Event) ? e.which : e.keyCode;
            
            	if (whichCode == 13 || whichCode == 0) {		//Enter
            		return true;  
            	}
            	key = String.fromCharCode(whichCode);  // Get key value from key code
            	if (strCheck.indexOf(key) == -1) {
            		return false;  // Not a valid key
            	}
            	len = fld.value.length;
            	for(i = 0; i < len; i++) {
            		if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) {
            			break;
            		}
            	}
            	aux = '';
            	for(; i < len; i++) {
            		if (strCheck.indexOf(fld.value.charAt(i))!=-1) {
            			aux += fld.value.charAt(i);
            		}
            	}
            	aux += key;
            			
            	len = aux.length;
            	if (len == 0) {
            		fld.value = '';
            	} else if (len == 1) {
            		fld.value = '0'+ decSep + '0' + aux;
            	} else if (len == 2) {
            		fld.value = '0'+ decSep + aux;
            	} else if (len > 2) {
            		aux2 = '';
            
            		for (j = 0, i = len - 3; i >= 0; i--) {
            			if (j == 3) {
            				aux2 += milSep;
            				j = 0;
            			}
            			aux2 += aux.charAt(i);
            			j++;
            		}
            		fld.value = '';
            		len2 = aux2.length;
            		for (i = len2 - 1; i >= 0; i--) {
            			fld.value += aux2.charAt(i);
            		}
            		fld.value += decSep + aux.substr(len - 2, len);
            	}	
            return false;
            }


//******************************************************************************//
//************************Classe do Editor de Texto*****************************//
//******************************************************************************//


            function Editor(campo){
            	this.campo = campo;
            	this.Edicao;
            	this.config = new HTMLArea.Config();
            	
            	
            	this.config.toolbar = [[ "fontname", "space","fontsize", "space", "bold", "italic", 
            	  "underline", "separator", "strikethrough", "separator",
            	  "justifyleft", "justifycenter", "justifyright", "justifyfull", "separator",
            	  "insertorderedlist", "insertunorderedlist", "outdent", "indent", "separator",
            	  "forecolor", "hilitecolor", "separator",
            	  "createlink", ]];
            
            	this.config.pageStyle =
            	  'body {background-color: #FFFFFF; color: black; font-family: arial,verdana,sans-serif;font-size:10pt;margin:1px;padding:0px;border-left:1px Solid #CCCCCC;border-right:1px Solid #CCCCCC;border-bottom:1px solid #CCCCCC;} ';
            				
            
            	
            	this.geraEditor = function(){
            		this.Edicao = new HTMLArea(campo, this.config);		
            		//this.Edicao = new HTMLArea.config(this.campo, this.config).gerate();
            	}
            	
            	this.mostraEditor = function(){
            		this.Edicao.generate();
            	}
            	
            	this.atualizaEditor = function(){
            		this.Edicao.atualizadados();
            	}
            
            }



//******************************************************************************//
//************************ATENÇÃO NÃO NOMEADOS AINDA****************************//
//******************************************************************************//            
            
/*                            
                if ( typeof window.addEventListener != "undefined" )	
                	{window.addEventListener( "load", init, false );}
                // IE 
                else if ( typeof window.attachEvent != "undefined" ) {
                	window.attachEvent( "onload", init);
                }
                else {
                
                	if ( window.onload != null ) {
                		var oldOnload = window.onload;
                		window.onload = function ( e ) {
                			oldOnload( e );
                			init();
                		};
                	}
                	else 
                		window.onload = init;
                };
                
  */              
                
                
                //marca os atributos de campos especificos
                function MarcaAtributo(pobj, patributo, pvalor){
                	var lObj = document.getElementById(pobj);
                	
                	if(eval('lObj.'+patributo)){
                	     eval('lObj.'+patributo+'='+pvalor);
                	}else{
                		lObj.setAttribute(patributo, pvalor)
                	};
                };
                
                
                //retorna os atributos de campos especificos
                function RetornaAtributo(pobj, patributo){
                	 var lObj = document.getElementById(pobj);
                		if (eval('lObj.'+patributo)){
                			return eval('lObj.'+patributo);
                		}else{
                			return lObj.getAttribute(patributo);
                		};
                	
                };
                
                
                function Menu(){
                  this.bInnerHTML = '';
                  this.tImagem = '';
                  this.addBotao = function(pTagButton,pTagImg,pEspEsq,pEspDir) {
                    if (this.tImagem == 'imagem'){
                      this.bInnerHTML += pEspEsq + '<button ' + pTagButton + ' ><img src="' + pTagImg + '"></button>' + pEspDir;
                    }else{
                     this.bInnerHTML += pEspEsq + '<button ' + pTagButton + ' >' + pTagImg + '</button>' + pEspDir;
                    }
                  };
                    
                  this.geraMenu = function (dNome,dTop,dLeft,dDisplay,dImg){
                    	if (!document.getElementById(dNome)) {
                    		var divMenu = document.createElement('DIV');
                    		this.tImagem = dImg;
                    		divMenu.style.display = dDisplay;
                    		divMenu.style.position = 'absolute';
                    		divMenu.style.top = dTop;
                    		divMenu.style.left = dLeft;	    		
                    		//divMenu.style.border = '#000000 1px solid';	    		
                    		divMenu.id = dNome ;
                    		divMenu.innerHTML = this.bInnerHTML;
                    		document.body.appendChild(divMenu);
                    
                    	 };
                  };
                  	 
                };
                
                
                
                
                function trataEventos(){
                	var i, srcObj;
                
                	     for (var i = 0; i < document.forms[0].elements.length; i++){
                	          srcObj = document.forms[0].elements[i];
                	          
                	          if (document.forms[0].elements[i].name != ''){
                
                			         if (srcObj.type=='text') {
                			          	//srcObj.attachEvent('onkeydown', TrataTeclaPressionada);
                			          	
                							if ( typeof window.addEventListener != "undefined" ){
                								srcObj.addEventListener( "keydown", trataTeclaPressionada, false );
                							}else if ( typeof window.attachEvent != "undefined" ) {
                								srcObj.attachEvent( "onkeydown", trataTeclaPressionada);
                							}else{
                							
                								if ( srcObj.onkeydown != null ) {
                									var oldOnkeydown = srcObj.onkeydown;
                									srcObj.onkeydown = function ( e ) {
                										oldOnkeydown( e );
                										trataTeclaPressionada();
                									};
                								}else{ 
                									srcObj.onkeydown = trataTeclaPressionada;
                		
                								}		          	
                							}	          	
                			          	
                			          }
                
                					if ( typeof window.addEventListener != "undefined" ){
                						srcObj.addEventListener( "focus", trataFoco, false );
                						srcObj.addEventListener( "keypress", trataTeclas, false );
                						srcObj.addEventListener( "blur", trataSaida, false );
                					// IE 
                					}else if ( typeof window.attachEvent != "undefined" ) {
                						srcObj.attachEvent( "onload", trataFoco);
                						srcObj.attachEvent( "onkeypress", trataTeclas);
                						srcObj.attachEvent( "onblur", trataSaida);
                					
                					}else{
                					
                						if ( srcObj.onfocus != null ) {
                							var oldOnfocus = srcObj.onfocus;
                							srcObj.onfocus = function ( e ) {
                								oldOnfocus( e );
                								trataFoco();
                							};
                						}else{ 
                							srcObj.onfocus = trataFoco;
                						}	
                							
                							
                						if ( srcObj.onkeypress != null ) {
                							var oldOnkeypress = srcObj.onkeypress;
                							srcObj.onkeypress = function ( e ) {
                								oldOnkeypress( e );
                								trataTeclas();
                							};
                						}else{ 
                							srcObj.onkeypress = trataTeclas;
                						}	
                							
                							
                						if ( srcObj.onblur != null ) {
                							var oldOnblur = srcObj.onblur;
                							srcObj.onblur = function ( e ) {
                								oldOnblur( e );
                								trataSaida();
                							};
                						}else{ 
                							srcObj.onblur = trataSaida;
                						}							
                							
                					};	             	
                	          	
                              
                				  switch ((RetornaAtributo(srcObj.id, "dMask")))
                					     {
                					      case '@Num':
                					           srcObj.style.textAlign='right';
                					           break;
                					      case '@Mon':
                					           srcObj.style.textAlign='right';
                					           srcObj.maxLength=18;
                					           break;
                					      case '@Cep':
                					           srcObj.style.textAlign='right';
                					           srcObj.maxLength=10;
                					           break;
                					      case '@Cpf':
                					           srcObj.style.textAlign='left';
                					           srcObj.maxLength=14;
                					           break;
                					      case '@Dta':
                					           srcObj.style.textAlign='right';
                					           srcObj.maxLength=10;
                					           break;
                			              case '@Upp':
                			            	   srcObj.style.textTransform = 'uppercase';
                			                   break;					           
                					      default:
                					           break;
                					     };
                					};
                	         };
                   window.status = '';
                }
                
                
                function trataFoco(e) {
                
                	if ( typeof window.addEventListener != "undefined" ){
                		var srcObj = e.target;
                	// IE 
                	}else if ( typeof window.attachEvent != "undefined" ) {
                		var srcObj = window.event.srcElement;
                	}
                
                
                	if (RetornaAtributo(srcObj.id, "dMask")!= "")
                	   {
                
                	    switch (RetornaAtributo(srcObj.id, "dMask"))
                	           {
                	            case '@Mon':
                	                 while (srcObj.value.indexOf('.')>=0) {srcObj.value = srcObj.value.replace('.','');};
                	                 window.status = 'Informe o valor com vírgula/ponto separando os centavos';
                	                 srcObj.select();
                	                 break;
                	            case '@Dta':
                	                 window.status = 'Informe a Data no formato DD/MM/AAAA';
                	                 srcObj.select();
                	                 break;
                	            case '@Upp':
                	            	 //srcObj.style.textTransform = 'uppercase';
                	                 window.status = '';
                	                 break;
                	            case '@Abc':
                	                 window.status = '';
                	                 break;
                	            case '@Ab1':
                	                 window.status = '';
                	                 break;
                	            case '@AbB':
                	                 window.status = '';
                	                 break;
                	            case '@A1C':
                	                 window.status = '';
                	                 break;
                	            case '@Num':
                	                 window.status = 'Informe somente números';
                	                 srcObj.select();
                	                 break;
                	            case '@Cpf':
                	                 window.status = 'Informe o CPF no formato 999.999.999-99';
                	                 srcObj.select();
                	                 break;
                	            case '@Cep':
                	                 window.status = 'Informe o CEP no formato 99.999-999';
                	                 srcObj.select();
                	                 break;
                	            default:
                	                 window.status = '';
                	                 break;
                	           };
                	   };
                };
                
                
                
                function trataTeclas(e) {
                	if ( typeof window.addEventListener != "undefined" ){
                		var srcObj = e.target;
                	// IE 
                	}else if ( typeof window.attachEvent != "undefined" ) {
                		var srcObj = window.event.srcElement;
                	}
                
                	if (RetornaAtributo(srcObj.id, "dMask") != 'null')
                	   {
                	    switch (RetornaAtributo(srcObj.id, "dMask"))
                	           {
                	            case '@Upp':
                	                 //return trataMaiusculas(e,srcObj);
                	                 return srcObj.value = srcObj.value.toUpperCase();
                	                 break;
                	            case '@Abc':
                	                 //return TrataAlfabetico(srcObj);
                	                 break;
                	            case '@Abcl':
                	                 //return TrataAlfabeticoLogin(srcObj);
                	                 break;	 
                	            case '@Abcl2':
                	                 //return TrataAlfabeticoLogin2(srcObj);
                	                 break;		                  
                	            case '@Abcln':
                	                 //return TrataAlfabeticoLoginNome(srcObj);
                	                 break;	   	                                
                	            case '@Abco':
                	                 //return TrataAlfabeticoOrgExp(srcObj);
                	                 break;						 
                	            case '@Ab1':
                	                 //return TrataAlfaNumerico(srcObj);
                	                 break;
                	            case '@A1C':
                	                 //return TrataAlfaNumericoSemCedilha(srcObj);
                	                 break;
                	            case '@AbB':
                	                 //return TrataAlfa(srcObj);
                	                 break;
                	            case '@Low':
                	                 //return TrataMinusculas(srcObj);
                	                 break;
                	            case '@Num':
                	                 //return TrataNumeros(srcObj);
                	                 break;
                	            case '@Mon':
                	                 //return TrataDinheiro(srcObj);
                	                 break;
                	            case '@Cep':
                	                 //return TrataCEP(srcObj);
                	                 break;
                	            case '@Cpf':
                	                 return trataCPF(srcObj);
                	                 break;
                	            case '@Dta':
                	                 //return TrataData(srcObj);
                	                 break;
                	            case '@Tel':
                	                 //return TrataTel(srcObj);
                	                 break;
                	            case '@Eml':
                	                 //return TrataEmail(srcObj);
                	                 break;
                	            default:
                	                 return true;
                	                 break;
                	           };
                	   };
                	return false;
                };
                
                
                
                
                function trataSaida(e) {
                	
                	if ( typeof window.addEventListener != "undefined" ){
                		var srcObj = e.target;
                	// IE 
                	}else if ( typeof window.attachEvent != "undefined" ) {
                		var srcObj = window.event.srcElement;
                	}		
                	
                
                	if (RetornaAtributo(srcObj.id, "dMask") != 'null') 
                	   {
                	    switch (RetornaAtributo(srcObj.id, "dMask"))
                	           {
                	            case '@Upp':
                	                 srcObj.value = srcObj.value.toUpperCase();
                	                 break;
                	            case '@Abc':
                	                 srcObj.value = srcObj.value.toUpperCase();
                	                 break;
                	            case '@Ab1':
                	                 srcObj.value = srcObj.value.toUpperCase();
                	                 break;
                	            case '@Mon':
                	                 //srcObj.value = FormataDinheiro(ValorBR(srcObj.value));
                	                 break;
                	            case '@Num':
                	                 if (isNaN(srcObj.value)) {srcObj.value=''};
                	                 break;
                	            case '@Dta':
                	                 if (!verificaData(srcObj.value) && srcObj.value.length>0) {alert('Data Inválida'); srcObj.focus(); return false;};
                	                 break;
                	            case '@Cep':
                	                 if (srcObj.value.length>0 && srcObj.value.length!=10) {alert('CEP Inválido'); srcObj.focus(); return false;};
                	                 break;
                	            case '@Cpf':
                	                 if (srcObj.value.length>0 && srcObj.value.length!=14) {alert('CPF Inválido'); srcObj.focus(); return false;};
                	                 if (srcObj.value.length==14 && (!ChecaCPF(srcObj.value))) {srcObj.focus(); return false;};
                	                 break;
                	            case '@Eml':
                					 //ValidaEmail(srcObj);	                 
                	                 break;
                	            
                	            default:
                	                 break;
                	           };
                
                	   };
                	return true;
                
                };
                
                
                
                function verificaData(Valor)
                {
                     var da = Valor.substring(6,10);
                     var dm = Valor.substring(3,5);
                     var dd = Valor.substring(0,2);
                
                	 if (dd.substring(0,1)=='0') {dd=dd.substring(1,2);};
                	 if (dm.substring(0,1)=='0') {dm=dm.substring(1,2);};
                
                     var intano = parseInt(da);
                     var intmes = parseInt(dm);
                     var intdia = parseInt(dd);
                
                     if (! (eAno(da, false) && eMes(dm, false) && eDia(dd, false))) return false;
                
                     if (intdia > diasNoMes[intmes]) return false; 
                     if ((intmes == 2) && (intdia > diasemFevereiro(intano))) return false;
                     return true;
                };
                
                function trataTeclaPressionada(e){
                	var tg = (e.which) ? e.which : e.keyCode;
                	var tipo = (e.which) ? 1 : 0;
                	if (tg == 13){
                		if (tipo==1){
                			e.which = 9;
                		}else{
                			e.keyCode = 9;
                		}
                	};
                }

//******************************************************************************//
//************************        COISAS DE xmlhttp        *********************//
//******************************************************************************//


        function streamSent(id,texto){
          if (parent.document.getElementById(id)){
              var obj = parent.document.getElementById(id);
          }else{
              var obj = document.getElementById(id); 
          }     
          obj.innerHTML = texto;
          obj.style.display = 'block';
        }
        
        function streamComplete(id,texto)
        {
            
          if (parent.document.getElementById(id)){
              var obj = parent.document.getElementById(id);

          }else{
              var obj = document.getElementById(id); 

          } 
          
          obj.innerHTML = texto;
          obj.style.display = 'block';
          window.setTimeout(function(){ putEditField(obj); }, 1000);

        }
        
        function putEditField(obj)
        {
           obj.style.display = 'none';
          //obj.onclick = function() { editRow(obj); };
        }
        
        
        function mensagemHTTP(pAtiva){
        
        	if (pAtiva == true){
               streamSent('aguardeXMLHTTPCross','aguarde...');
        	}else if (pAtiva == false){
        	     streamComplete('aguardeXMLHTTPCross','carregado...');
        	}
        	
        
        }


    function isAlien(a) {
       return isObject(a) && typeof a.constructor != 'function';
    }
    function isArray(a) {
        return isObject(a) && a.constructor == Array;
    }
    function isBoolean(a) {
        return typeof a == 'boolean';
    }
    function isEmpty(o) {
        var i, v;
        if (isObject(o)) {
            for (i in o) {
                v = o[i];
                if (isUndefined(v) && isFunction(v)) {
                    return false;
                }
            }
        }
        return true;
    }
    
    function isFunction(a) {
        return typeof a == 'function';
    }
    
    function isNull(a) {
        return typeof a == 'object' && !a;
    }
    function isNumber(a) {
        return typeof a == 'number' && isFinite(a);
    }
    
    function isObject(a) {
        return (a && typeof a == 'object') || isFunction(a);
    }
    
    function isString(a) {
        return typeof a == 'string';
    }
    function isUndefined(a) {
        return typeof a == 'undefined';
    }
    


 

	//marca os atributos de campos especificos
	function marcaAtributo(pobj, patributo, pvalor){
		if (eval('pobj.'+patributo)){
			 return eval('pobj.'+patributo+'='+pvalor);
		}else{
			pobj.setAttribute(patributo, pvalor);
		}
	}
	

	//retorna os atributos de campos especificos
	function retornaAtributo(pobj, patributo){
			if (eval('pobj.'+patributo)){
				return eval('pobj.'+patributo);
			}else{
				return pobj.getAttribute(patributo);
			}
		
	}

	
	function toCamelCase( sInput ) {
		var oStringList = sInput.split('-');
		if(oStringList.length == 1)    
			return oStringList[0];
		var ret = sInput.indexOf("-") == 0 ? 
			oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) : oStringList[0];
		for(var i = 1, len = oStringList.length; i < len; i++){
			var s = oStringList[i];
			ret += s.charAt(0).toUpperCase() + s.substring(1)
		}
		return ret;
	}
	
	function move(obj, qtd, direcao){
		str = getStyle(document.getElementById(obj), "margin-left");
		if (direcao == 'esquerda'){
		  valor = parseInt(str.substr(0, str.length - 2)) - (qtd);
		  valor = valor + 'px';
		  document.getElementById(obj).style["margin"] = "0px 0px 0px " + valor;
		}else{
		  valor = parseInt(str.substr(0, str.length - 2)) + (qtd);
		  valor = valor + 'px';
		  document.getElementById(obj).style["margin"] = "0px 0px 0px " + valor;
		}
	
	}
      
//</script>

