﻿/* função para criar o objeto xml*/
function createXMLDOM(txt) 
{
    var arrSignatures = ["MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument", "Microsoft.XmlDom"];
    try
    {
        parser=new DOMParser();
        oXmlDom=parser.parseFromString(txt,"text/xml");
        return(oXmlDom);
    }
    catch(e)
    {
        for (var i=0; i < arrSignatures.length; i++) 
        {
            try 
            {
                var oXmlDom = new ActiveXObject(arrSignatures[i]);
                oXmlDom.async="false";
                oXmlDom.loadXML(txt);
                return oXmlDom;
            } 
            catch (oError) 
            {

            }
        }
    }
    throw new Error("MSXML is not installed on your system.");
} 


/*====================================================================================================================
           FUNÇÃO PARA CONTAR CARACTERES
           Name: fun_contadorCaracteres()
           Parametros:
                 - pObj                        ==> objeto o qual o usuário
           vai digitar o texto
                 - pObjCont              ==> o "id" do de onde irá ficar a
           informação da quantidade disponíveis ('eu uso <span>')
                 - pTamMax               ==> Tamanho máximo de caracteres
           permitido

====================================================================================================================*/
function fun_contador_caracteres(pObj,pObjCont,pTamMax){
           if (pObj.value.length > pTamMax)
                 pObj.value = pObj.value.substring(0, pTamMax);
           else
                 document.getElementById(pObjCont).innerText = pTamMax -  pObj.value.length ;
}



//----------------------------------------------------


function IsNumeric(campo){//
	var numeros = new Array ("0","1","2","3","4","5","6","7","8","9",".");//
    var ok=true;//
    for (var i=0; i < campo.length;i++){//
          var chr=campo.charAt(i);//
          var found=false;//
          for (var j=0;j<(numeros.length);j++){//num+1
              if (chr == numeros[j]) found=true}//
          if (!found) ok=false;//
    }//
    return ok;//
}//


function HeNumero(campo){//
	var numeros = new Array ("0","1","2","3","4","5","6","7","8","9");//
    var ok=true;//
    for (var i=0; i < campo.length;i++){//
          var chr=campo.charAt(i);//
          var found=false;//
          for (var j=0;j<(numeros.length);j++){//num+1
              if (chr == numeros[j]) found=true}//
          if (!found) ok=false;//
    }//
    return ok;//
}//


// Verifica a validade da data
function IsDate(strData) {
	var cont = strData.length;
	var strValidar = true;

	if (cont < 10) {
	   return false;
	}
	
	if (strData.charAt(2) != "/" && strData.charAt(5) != "/") {
	    return false;
	}

	var dia = strData.charAt(0) + strData.charAt(1);
	var mes = strData.charAt(3) + strData.charAt(4);
	var ano = strData.charAt(6) + strData.charAt(7) + strData.charAt(8) + strData.charAt(9);		
	if (ano <= "1800") {
		strValidar = false;
		}
	else if (isNaN(ano)) {	
		strValidar = false;
	}
	else if(mes >= "01" && mes <= "12") {
	  if(mes == "01" | mes == "03" | mes == "05" | mes == "07" | mes == "08" | mes == "10" | mes == "12") {
	    if(dia < "01" | dia > "31") {
	      strValidar = false;
	    }
	  }
	  else if(mes == "04" | mes == "06" | mes == "09" | mes == "11") {
	    if(dia < "01" | dia > "30") {
	      strValidar = false;
	    }
	  }
	  else if(mes == "02") {
	    if(ano % 4 == "0") {
	      if(dia < "01" | dia > "29") {
	        strValidar = false;
	      }
	    }
	    else {
	      if(dia < "01" | dia > "28") {
	        strValidar = false;
	      }
	    }
	  }
	}
	else {
	  strValidar = false;
	}

	return strValidar
}


//Cria um objeto do tipo data em JS
function FunCriaData(StrData)
{
      StrDia = StrData.substr(0,2);
      StrMes = new String(parseInt(StrData.substr(3,2),10) - 1);
       //Mês JS começa em 0
      StrAno = StrData.substr(6,4);
      DtSaida = new Date(StrAno,StrMes,StrDia);
      return DtSaida;
}

//Retorna true se data2 => que data1 e falso caso contrário
function FunVerificaMaiorData(StrData1,StrData2)
{
    Dt2 =  FunCriaData(StrData2);
      Dt1 =  FunCriaData(StrData1);
      if (Dt2 > Dt1)
      {
            return true;
      }
      else
      {
            return false;
      }
}

//Retorna true se Hora2 > a Hora1
//As horas terão que estar no formato hh:mm
function funVerificaMaiorHora(strHora1,strHora2)
{
	/*
		0 = ok
		1 = strHora1 inválido
		2 = strHora2 inválido
		3 = strHora1 > strHora2	
	*/
	if ((strHora1.length !=5) || (strHora1.substr(2,1) !=':'))
	{
		return 1;
	}else if ((strHora2.length !=5) || (strHora2.substr(2,1) !=':'))
	{
		return 2;
	}
	
	inHoraIni1 = strHora1.substr(0,2);
	inMinuIni1 = strHora1.substr(3,2);
	
	inHoraIni2 = strHora2.substr(0,2);
	inMinuIni2 = strHora2.substr(3,2);
	
	if (!IsNumeric(inHoraIni1) || !IsNumeric(inMinuIni1))
	{
		return 1;
	}else if (!IsNumeric(inHoraIni2) || !IsNumeric(inMinuIni2))
	{
		return 2;
	}
		
	if ((inHoraIni1 >= 24) || (inMinuIni1 >= 60))
	{
		return 1;
	}
		
	if ((inHoraIni2 >= 24) || (inMinuIni2 >= 60))
	{
		return 2;
	}
	
	objDia1 = new Date();
	objDia1.setHours(inHoraIni1,inMinuIni1);
	objDia2 = new Date();
	objDia2.setHours(inHoraIni2,inMinuIni2);
		
	if (objDia1 > objDia2)
	{
		return 3;
	}else{
		return 0;
	}
}

//--------------------------------
	//----------------------------
	// Funções Utilizadas no Trim
	//----------------------------
function Trim(Str_To_Be_Trimmed)
{
	//----------------------------
	// Declaracao de variaveis ---
	//----------------------------
	var Str_Trimmed=""; //--- Saida desta funcao
	var Str_Buffer=""; //--- Armazena os caracteres ao final da string
				      //--- ate que se veja que estes devem ser adicionados
	var Int_Pos=0;   //--- assinala a posicao da string que esta sendo
				    //--- analisada no momento

	//----------------------------------
	// WHILE 1 - Enquanto o caracter
	// da posicao Int_Pos na entrada for
	// irrelevante, prosseguir sem
	// fazer nada.
	//---------------------------------
	while ((Int_Pos<Str_To_Be_Trimmed.length)&&(Eh_Irrelevante(Str_To_Be_Trimmed.charAt(Int_Pos))))
	{
		Int_Pos ++;
	}			     
	//--- FIM WHILE 1---

	//--- Agora prossegue-se ate encontrar o final da string
	//-----------------------------------
	// WHILE 2 - Enquanto nao estiver-
	// mos ao final da string, prosseguir 
	//-----------------------------------
	while (Int_Pos<Str_To_Be_Trimmed.length)//>
	{
		//-------------------------------
		// IF 1 - Se o caracter eh
		// irrelevante, guarda-o no buffer
		//-------------------------------
		if (Eh_Irrelevante(Str_To_Be_Trimmed.charAt(Int_Pos)))
		{
			Str_Buffer = Str_Buffer + Str_To_Be_Trimmed.charAt(Int_Pos);
		}
		//-------------------------------
		// ELSE 1 - Se eh relevante, entao
		// acrescenta ele e o que esta no
		// buffer a string de saida, e es-
		// vazia o buffer. 
		//-------------------------------
		else		
		{
			Str_Trimmed = Str_Trimmed + Str_Buffer + Str_To_Be_Trimmed.charAt(Int_Pos);
			Str_Buffer  = "";
		}
		//--- FIM IF 1 ---
		Int_Pos++
	}
	//----- FIM WHILE 2 ---
	
	//--- Retorna a string modificada ---
	return Str_Trimmed;
}	

function Eh_Irrelevante(Chr_Entrada)
{
	//--- IF 1 ---
	if ((Chr_Entrada==' ')||(Chr_Entrada=='\b')||(Chr_Entrada=='\t')||(Chr_Entrada=='\n'))
		return true
	//--- ELSE 1 ---
	else
		return false;
	//--- END IF 1 ---
}

//--------------------------------


/*  função utilizada no evento keypress das caixa de texto, permitindo entrada somente de numero
onKeyPress="return Enum(event)"*/
 function Enum(num)
{
    var tecla;	
    if (num.which) { // Firefox
        tecla = num.which;
    }
    else if (num.keyCode) { // IE
        tecla = num.keyCode;
    } 
        
    if ((tecla > 47 && tecla < 58))
			return true;
	else
	{
		if (tecla != 8)
			//event.keyCode = 0;
			return false;
		else
			return true;
	}
}

