/*VARIÁVEIS GLOBAIS*/
var strIDS_CIDADES = ''  //Esta variavel é mantida pela função PopulaCidades;

/*
	Popula lista de cidades de acordo com o estado passado
*/
function PopulaCidades(objLista, id_estado, strCidadesSel)
{
	var objDOMDoc			= xmlSource;	// Objeto DOMDocument
	var objDOMNodeEstados	= null;			// Objeto DOM para os nós
	var objDOMNodeEstado	= null;			// Objeto DOM para os nós de Estado

	var strID_Cidade		= "";			// id da cidade
	var strNO_Cidade		= "";			// Nome da Cidade
	var intNo				= 0;			// Variável utilizada para armazenar o número de nós
	var intI				= 0;			// Variável utilizada como indice do for
	var objTagErro			= "";			// tag de erro de retorno do xml
	var intLenSTR			= 0;			//número de caracteres da string
	var arrCidades			= strCidadesSel.split(','); 
	
	strUrl = "XMLList/ListaCidades.asp?id_estado=" + id_estado;
	objLista.length = 0;		

	if (id_estado == 0)
	{
		return;
	}

	// Busca dados
	objDOMDoc.async = false;
	objDOMDoc.src = strUrl;

	objTagErro = objDOMDoc.selectSingleNode("//CIDADES/ERRO");

	if ( objTagErro != null )
	{
		window.alert(objTagErro.text);
		document.frmPesquisa.cboEstado.focus();
		return false;
	}
	
	objDOMNodeEstados = objDOMDoc.selectNodes("//CIDADES/CIDADE");


	while (intNo < objDOMNodeEstados.length)
	{	
		objDOMNodeEstado = objDOMNodeEstados.item(intNo);

		strID_Cidade			= objDOMNodeEstado.selectSingleNode("ID_CIDADE").text;			
		strNO_Cidade			= objDOMNodeEstado.selectSingleNode("NO_CIDADE").text;			

		//Monta a combo Participante
		objLista.length = intNo + 1;		
		objLista.options[intNo]			= new Option;
		objLista.options[intNo].text	= strNO_Cidade;
		objLista.options[intNo].value	= strID_Cidade;
		
		for ( intI = 0; intI < arrCidades.length; intI++)
		{
			if ( trim(arrCidades[intI]) == trim(strID_Cidade) )
			{
				objLista.options[intNo].selected = true;
				break;
			}
		}

		strIDS_CIDADES += strID_Cidade.toString() + ',';
		intNo++;
	}
}

/*
	Seleciona Todas as Cidades da Lista
*/
function SelecionaCidades(strCidades)
{
	var Lista = document.frmPesquisa.cboCidade;
	var arrCidades = strCidades.split(',');
	var intI = 0;

	if ( Lista.options.length > 0 ){
		for ( intI =0; intI < Lista.options.length ; intI++ )
		{
			Lista.options[intI].selected = true;
		} 
	}
}

/*
	Mostra ou Esconde DIV
*/
function MostraDiv(objDiv)
{
	if ( objDiv.style.display == '' )
	{
		objDiv.style.display = 'none';
	}else
	{
		objDiv.style.display = '';
	}
}

/*
	Tira espaços da string
*/
function trim( strSource )
{
	return ltrim(rtrim(strSource));
}

/*
	Tira espaços da string partindo da esquerda para a direita
*/
function ltrim( strSource ){
	return strSource.replace(/^\s+/, "");

}

/*
	Tira espaços da string partindo da direita para a esquerda
*/
function rtrim( strSource ){
	return strSource.replace(/\s+$/, "");
}



function EventValidaKeyData() {
				
	var pKey	= String.fromCharCode(event.keyCode);
	var blnRet	= isValidDataDigit(pKey);

	//Mark-Verificar
	//Melhorar Rotina para só aceitar dígitos nos lugares corretos
		
	//if (pKey == ",") {
	//	if (pCampo.length == 0)
	//		blnRet = false;
	//	else {
	//		for (i = 0; i < pCampo.length; ++i)
	//		{
	//			var ch = pCampo.substring(i, i+1);
	//			if (ch==",")
	//				blnRet = false;
	//		}
	//	}
	//}

	event.returnValue = blnRet;
				
}

function EventValidaKeyIntegerPos() {
			
	var pKey = String.fromCharCode(event.keyCode);
	var blnRet = isValidIntegerPosDigit(pKey);
				
	event.returnValue = blnRet;
				
}

function DateBlur(a)
{
  var xTexto= new String;
  var now = new Date();
  
  var month = Mask(String("00")+String((now.getMonth()+1)),"##");
  var date =  Mask(String("00")+String(now.getDate()),"##");
  var year = String(now.getFullYear());

  if (!a.isTextEdit) return;

  DateSetParameters(a);
 
  a.value = Mask(a.value,a.mask);
    
}

function DateSetParameters(a)
{
  a.mask =  "##/##/####";
     
  if (!a.dateFormat || (a.dateFormat != "DMY" && a.dateFormat != "MDY"))
     a.dateFormat = "DMY";   

  /*Restrição para a data máxima do SQL para SmallDatetime */
  if (!a.dateMax) a.dateMax = "20790606";
  if (!a.dateMin) a.dateMin = "19000101";   

}

function DateFocus(a)
{ 
  if (!a.isTextEdit) return;
  
  DateSetParameters(a);
  a.value=UnMaskValue(a.value);
  a.select();
}

function isDate(strtexto) {

	strtexto = trim(strtexto);
		
    //var intdia = strtexto.substring(0,2);	 Dia
    //var intmes = strtexto.substring(3,5);	 Mes
    //var intano = strtexto.substring(6,10); Ano
    
    var intdia;
    var intmes;
    var intano;

    var intCompara;							// Variável de comparação
	var Parte;
	var Contador = 0;
	
	Parte = new Array(3);
	
	Parte[0] = "";
	Parte[1] = "";
	Parte[2] = "";
	
	for (i=0; i < strtexto.length; i++) {
		var pChar = strtexto.substring(i, i+1);
		if (pChar == "/") {
			if (Parte[Contador].length==1) {
				Parte[Contador] = "0" + Parte[Contador];
			}
			Contador++;
		}
		else {
			Parte[Contador] = Parte[Contador] + pChar;
		}
	}

	intdia = Parte[0];
	intmes = Parte[1];
	intano = Parte[2];

	strtexto = intdia + "/" + intmes + "/" + intano
	
    if (!isInteger(intdia,false) || !isInteger(intmes,false) || !isInteger(intano,false)) return false;
    if (intmes<1 || intmes >12) return false;
    if (strtexto.substring(2,3) != "/") return false;
    if (intdia<1 || intdia > 31) return false;
    if (strtexto.substring(5,6) != "/") return false;
    if (intano<1753) return false;
    if (intmes==4 || intmes==6 || intmes==9 || intmes==11) {
        if (intdia==31) return false;
    }
    if (intmes==2 && intdia==29) {
		intCompara = parseInt(intano/4);
        if (intCompara * 4 != intano) {
            return false;
        }
        intCompara = parseInt(intano/100);
        if (intCompara * 100 == intano) {
			intCompara = parseInt(intano/400);
			if (intCompara * 400 != intano) {
				return false;
			}
        }
    }
    if (intmes==2 && intdia >= 30)
		return false;
	
    return true;
}

function UnMaskValue(Texto,Mascaras)
{
   var sTexto = "";
   var ipos;
   var xValueNumbers = new String;
   
   xValueNumbers = "";
   
   if (!Mascaras)
      xValueNumbers = "0123456789";
   else if (Mascaras.indexOf("#") == -1 && Mascaras.indexOf("A") == -1)
     xValueNumbers = "0123456789";
   else  
     {
       if (Mascaras.indexOf("#") != -1)
         xValueNumbers = xValueNumbers + "0123456789";
       if (Mascaras.indexOf("A") != -1)
         xValueNumbers = xValueNumbers + "ABCDEFGHIJKLMNOPQRSTUVXYWZ";  
       if (Mascaras.indexOf("!") != -1)
         xValueNumbers = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYWZ";  
  
     }   
   
   /* Limpa o texto, de todos os caracteres não numéricos */
   
   Texto = Texto.toUpperCase();
   
   for(ipos=0;ipos<Texto.length;ipos++)
   {
     if (xValueNumbers.indexOf(Texto.charAt(ipos)) != -1)
       sTexto=sTexto+Texto.charAt(ipos);
     
   }
   
  return sTexto;    
}

function Mask(Texto,sMascara)
{
   var sRetorno = "";
   var ipos;
   var iPosMascara;
   var sTexto = "";
   var xValueNumbers = "0123456789";
   var xValueChars = "ABCDEFGHIJKLMNOPQRSTUVXYWZ";
   var xValueValidChars = "";
   
   if (sMascara.indexOf("#") != -1 || sMascara.indexOf("0") != -1)
      xValueValidChars = xValueNumbers;
   
   if (sMascara.indexOf("A") != -1)
      xValueValidChars = xValueValidChars + xValueChars;
   
   if (sMascara.indexOf("!") != -1)
      xValueValidChars = xValueNumbers + xValueChars;
         
   /* Limpa o texto, de todos os caracteres não numéricos */
   
   Texto = Texto.toUpperCase();
   
   for(ipos=0;ipos<Texto.length;ipos++)
   {
     if (xValueValidChars.indexOf(Texto.charAt(ipos)) != -1)
       sTexto=sTexto+Texto.charAt(ipos);
     
   }
  
  iPosMascara = sMascara.length;
  ipos = sTexto.length;
  
  for(;;)
  {  
         iPosMascara-=1;
         if (iPosMascara < 0) break;
         if (sMascara.charAt(iPosMascara) == "0" || sMascara.charAt(iPosMascara) == "#" || sMascara.charAt(iPosMascara) == "A" || sMascara.charAt(iPosMascara) == "!")
          {
            /* o For irá parar no primeiro caracter que corresponder à posição corrente na máscara*/
            for (;;)
             {  
                ipos-=1;
                if (ipos<0) break;
                if ( (sMascara.charAt(iPosMascara) == "0" || sMascara.charAt(iPosMascara) == "#") && xValueNumbers.indexOf(sTexto.charAt(ipos)) != -1)
                  {
                    sRetorno = sTexto.charAt(ipos) + sRetorno;
                    break;
                  }
                
                if (sMascara.charAt(iPosMascara) == "A" && xValueChars.indexOf(sTexto.charAt(ipos)) != -1)
                  {
                    sRetorno = sTexto.charAt(ipos) + sRetorno;
                    break;
                  }
              
                if (sMascara.charAt(iPosMascara) == "!")
                  {
                    sRetorno = sTexto.charAt(ipos) + sRetorno;
                    break;
                  }
             }
            
          }
          
         else
          sRetorno = sMascara.charAt(iPosMascara) + sRetorno;
         
         /*Se todos os caracteres já tiverem sido varridos, sai do loop de máscara */  
         if (ipos <= 0) break;      
       
  }       

  return sRetorno;    
}

function isInteger(ptexto, blnRequired) {
    var numeric = true;
    if (blnRequired == true && ptexto.length == 0)
		return false;
    for (i=0; i < ptexto.length; i++) {
        if (!isDigit(ptexto.charAt(i)) ) {
            numeric = false;
            break;
        } else {
            if (ptexto.charAt(i) == ".") {
                numeric = false;
                break;
            }
        }
    }
    return numeric;
}

function validaEmail( strEmail ) {
	
	var regExp = /.+@.+\..+/; 
	var intResp;				
			
	intResp = strEmail.search(regExp);
		
	if ( intResp == -1 )	
		return false;
			
	return true;
}

function isValidDataDigit(pchar) {
    return ("0123456789/".indexOf(pchar)>=0);
}

				
function isDigit(pchar) {
    return ("0123456789".indexOf(pchar)>=0);
}

