
var hackID = 'ctl00_Conteudo_';
var hackName = 'ctl00$C1$';

function replaceAll(str, de, para){
    var pos = str.indexOf(de);
    while (pos > -1){
		str = str.replace(de, para);
		pos = str.indexOf(de);
	}
    return (str);
}


function msg(strMens)
{
    alert(strMens);
}
        function validaForm(objForm)
        {
            Validacao(objForm);
            return false;
        }


//---------------------------------------------
// As variáveis abaixo ficariam externas
// ao arquivo JS, para permitir a configuração
// diretamente no código HTML, sem que seja
// necessária a alteração dentro do arquivo
// JS
//---------------------------------------------
var objInputHdn

//---------------------------------------------
// As variáveis abaixo ficariam internas
// ao arquivo JS
//---------------------------------------------

// Dados fixos da validação de data
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

//Variável global de controle de checkboxes
var strCheckboxes = '';
var strRadioboxes = '';

function Validacao(objForm, nomeHiddenErros, nomeDivConteudo, nomeDivControle) {

    objInputHdn = document.getElementById(nomeHiddenErros);
    
    // Esta variável contém a primeira linha a ser apresentada caso apareça um erro
    var strHeaderErro = objInputHdn.getAttribute("Erro1") + '\n\n';

    // Esta variável contém a última linha a ser apresentada caso apareça um erro
    var strBottomErro = '\n' + objInputHdn.getAttribute("Erro2");
    
	//------------------------------------------------------
	// Validações que devemos considerar:
	// 
	//  Text
	//		CPF
	//		CGC
	//		
	//	Select
	//		Valor <> ''
	//------------------------------------------------------
	//	Máscaras que devemos considerar:
	//		
	//	Text
	//		Data
	//		Telefone
	//		Valores
	//		CEP
	//		Somente números
	//------------------------------------------------------
	// Controles que devemos adicionar:
	//
	//	Containers
	//	Drop-down c/ n relacionamentos
	//	Controle adição de novo / seleção de antigo (JP)
	//	Data c/ calendário (JP)
	//  Validação de senha
	//------------------------------------------------------
	//	Não é interessante fazer validações diretamente 
	//	orientadas à checkbox caso estas sejam repetidas
	//	(listagens). Melhor colocar um campo hidden 
	//	orientando esta validação.
	//------------------------------------------------------

	// Esta variável contém as mensagens de erro

	var strErro = '';

	// Esta variável contém o campo para focus

	var strCampo = '';
	
	// Esta variável contém os nomes de checkboxes já validadas

	strCheckboxes = '';
	strRadioboxes = '';
	//alert(objForm.elements.length);
	
	for(var i=0;i<objForm.elements.length-1;i++)	{

		objElemento		= objForm.elements[i];
		strTipo			= objElemento.type;
		strNome			= objElemento.getAttribute("nome");
        
		if(objForm.elements[i].getAttribute("validacao")) {
		
			if(objForm.elements[i].getAttribute("validacao").indexOf(",")>0) {
					strValidacao = objForm.elements[i].getAttribute("validacao").split(",");
					for (var j=0; j<strValidacao.length; j++) {
						strtmpErro = ValidaObjeto(objElemento,strTipo,strValidacao[j]);
						if (strtmpErro.length > 0) {
							strErro += strtmpErro;
							if (strTipo != 'checkbox' && strTipo != 'hidden' && strCampo == '') {objCampo = objElemento;strCampo = objElemento.getAttribute("name")};
						}
					}
			} else {
				strValidacao	= objForm.elements[i].getAttribute("validacao")
				strtmpErro = ValidaObjeto(objElemento,strTipo,strValidacao);
				if (strtmpErro.length > 0) {
					strErro += strtmpErro;
					if (strTipo != 'hidden' && strCampo == '') {objCampo = objElemento; strCampo = objElemento.getAttribute("name");}
				} 
			}
		}
	}
	
    // Verifica se ocorreram erros;
	if (strErro.length > 0) {
	    
	    if (nomeDivConteudo != null && nomeDivControle != null && nomeDivConteudo != '' && nomeDivControle != '' )
	    {
	        document.getElementById(nomeDivControle).style.display = 'block';
	        conteudoHTML = strHeaderErro + strErro + strBottomErro;
	        document.getElementById(nomeDivConteudo).innerHTML = replaceAll(conteudoHTML, '\n', '<br>');
	    }
	    else
	    {
	        // Mostra a mensagem de erro
		    alert(strHeaderErro + strErro + strBottomErro);
		}
		
		// Fixa o foco
		if (strCampo != '') 
		{
            try
            {
                if (objCampo != null)
                {
                    objCampo.focus();
                }
			}
			catch (err) 
			{
			    alert(strHeaderErro + 'INTERNO: ' + err + strBottomErro);
			    return false;
            }
		}
		return false;
	}

	return true;
}


function ValidaObjeto(objeto, tipo, validacao) {

	var tmpErro = '';
    var strNome = objeto.getAttribute("nome");
    
	switch (tipo) {
	case 'select-multiple': 
	{
        if (objeto.length==0) tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro12")+' \n';
		break;
	}
	case 'text': {
		switch (validacao) {
		    case 'colorido': {
		        if (objeto.currentStyle.backgroundColor.toUpperCase() == "#FFFFFF") tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro8")+' \n';
		        break;
		        }
			case 'numero': {
				if (isNaN(objeto.value) || isEmpty(objeto.value)) tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro4")+' \n';
				break;
				}
			case 'email': {
				if (!isEmail(objeto.value)) tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro5")+' \n';
				break;
				}
			case 'ddmmyyyy': {
				// Validação dd/mm/yyyy
				if (!isDate(objeto.value, validacao)) tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro6")+' \n';
				break;
				}
			case 'mmddyyyy': {
				// Validação mm/dd/yyyy
				if (!isDate(objeto.value, validacao)) tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro6")+' \n';
				break;
				}
			case 'yyyymmdd': {
			    // Validação yyyy/mm/dd
			    if (!isDate(objeto.value, validacao)) tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro6")+' \n';
			    break;
				}
			case 'hhmm': {
				// Validação hh:mm
				if (!isHour(objeto.value)) tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro7")+' \n';
				break;
				}
			case 'preenchido': {
				// Validação preenchido
				if (isEmpty(objeto.value)) tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro8")+' \n';
				break;
				}
			break;
			}
		break;
		}
	case 'file' : {
	    switch (validacao) {
		    case 'preenchidoEXT' : 
			{
				var NomeArquivo = objeto.value;
				var arrNomeArquivo = NomeArquivo.split(".")
				var ext = arrNomeArquivo[arrNomeArquivo.length-1]
				
				var extUC = ext.toUpperCase();
				
				var extensao = objeto.extensao;
				var extensaoUC = extensao.toUpperCase();
				
				if (extUC != extensaoUC)
				{
					 tmpErro += ' - '+objInputHdn.getAttribute("Erro9")+' ' + extensaoUC + ', '+objInputHdn.getAttribute("Erro10")+' \'' + strNome + '\'\n';
					 break;
				}
			}
			case 'preenchido' : {
			    if (objeto.value.length < 1) tmpErro += ' - '+objInputHdn.getAttribute("Erro11")+' \'' + strNome + '\'\n';
				break;
			}
			case 'extensao' : {
			  var tamanho = objeto.value.length;
			  var extensao = objeto.value.substr(tamanho-3,tamanho);
			  if (objeto.value != 0) {
			   if ((extensao != 'jpg') && (extensao != 'JPG')) tmpErro += ' - Selecione um arquivo com extensão JPG para o campo \'' + strNome + '\'\n';
			   break;
			  }
			}
			break;
		}
		break;
	}

	case 'select-one': {
		switch (validacao) {
			case 'selecionado': {
				if (objeto.value=='') tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro12")+' \n';
				break;
				}
			break;
			}
		break;
		}
	case 'password': {
		switch (validacao) {
			case 'preenchido': {
				// Validação preenchido
				if (isEmpty(objeto.value)) tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro8")+' \n';
				break;
				}
			break;
			}
		break;
		}
	case 'textarea': {
		switch (validacao) {
			case 'preenchido': {
				// Validação preenchido
				if (objeto.value < 1) tmpErro += ' - ' +objInputHdn.getAttribute("Erro3") + ' \'' + strNome + '\' '+objInputHdn.getAttribute("Erro8")+' \n';
				break;
				}
			break;
			}
		break;
		}
	case 'checkbox': {
	//debugger;
		switch (validacao) {
			case 'marcado': {
				// Validação marcado
				if(strCheckboxes.indexOf('|' + strNome + '|') < 0) 
				    {
				        //debugger;
		                if (objeto.getAttribute("grupo"))
		                {
		                
                            if (!isAnyCheckedNET(objeto)) 
			                {
				                tmpErro += ' - '+objInputHdn.getAttribute("Erro13")+' \'' + strNome + '\' \n';
				                strCheckboxes += '|'+ strNome + '|';
				                break;
			                }
		                }
		                else
		                {
			            if (!isAnyChecked(objeto)) 
			            {
				            tmpErro += ' - '+objInputHdn.getAttribute("Erro13")+' \'' + strNome + '\' \n';
				            strCheckboxes += '|'+ strNome + '|';
				            break;
			            }
					}
					break;
					}
				break;
				}
			break;
			}
		break;
		}
	case 'radio': {
		switch (validacao) {
			case 'marcado': {
				if(strRadioboxes.indexOf('|' + strNome + '|') < 0) {
					if (objeto.getAttribute("grupo"))
					{
						if (!isAnyRadioNET(objeto)) 
					    {
						    tmpErro += ' - '+objInputHdn.getAttribute("Erro13")+' \'' + strNome + '\' \n';
						    strRadioboxes += '|'+ strNome + '|';
						    break;
					    }
					}
					else
					{
					    if (!isAnyRadio(objeto)) 
					    {
						    tmpErro += ' - '+objInputHdn.getAttribute("Erro13")+' \'' + strNome + '\' \n';
						    strRadioboxes += '|'+ strNome + '|';
						    break;
					    }
					}
					break;
					}
				break;
				}
			break;
			}
		break;
		}	
	case 'hidden': {
		switch (validacao) {
			case 'preenchido' : {
			    if (objeto.value.length < 1) tmpErro += ' - '+objInputHdn.getAttribute("Erro11")+' \'' + strNome + '\'\n';
				break;
			}
		    case 'tamanho' : {
		    
			    if (parseInt(objeto.value) > parseInt(objeto.getAttribute("tamanho"))) tmpErro += ' - '+objInputHdn.getAttribute("Erro15")+' \'' + strNome + '\'\n';
				break;
			}
			case 'newold': {
				// Algum selecionado
				if( (eval(objeto.form.name+'.opt'+objeto.newold+'[0]').checked == true && eval(objeto.form.name+'.'+objeto.newold+'_1').value == 0) || (eval(objeto.form.name+'.opt'+objeto.newold+'[1]').checked == true && isEmpty(eval(objeto.form.name+'.'+objeto.newold+'_2').value)) ) {
					tmpErro += ' - '+objInputHdn.Erro13+' \'' + strNome + '\' \n';
					break;
					}
				break;
				}
			case 'newold2': {
				// Algum selecionado
				if( (eval(objeto.form.name+'.'+objeto.newold+'[0]').checked == true && isEmpty(eval(objeto.form.name+'.'+objeto.valida1).value)) || (eval(objeto.form.name+'.'+objeto.newold+'[1]').checked == true && isEmpty(eval(objeto.form.name+'.'+objeto.valida2).value)) ) {
					tmpErro += ' - '+objInputHdn.Erro13+' \'' + strNome + '\' \n';
					break;
					}
				break;
				}
			break;
			}
		break;
		}
	}

	return(tmpErro);
}

function trim(inputString) {
	if (typeof inputString != "string") { return inputString; }
	var retValue = inputString;
	var ch = retValue.substring(0, 1);
	while (ch == " ") { 
		retValue = retValue.substring(1, retValue.length);
		ch = retValue.substring(0, 1);
	}
	ch = retValue.substring(retValue.length-1, retValue.length);
	while (ch == " ") { 
		retValue = retValue.substring(0, retValue.length-1);
		ch = retValue.substring(retValue.length-1, retValue.length);
	}
	while (retValue.indexOf("  ") != -1) { 
		retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
	}
	return retValue; 
} 

// -------------------------------
// Funções para validação de LIST
// -------------------------------
function possuiItemNoList(objList){
    
    return (objList.length>0)
}

// -------------------------------
// Funções para validação de hora
// -------------------------------
 function isHour(Hora)
   {
   var hm = -1;
   var hora = Array(2);
   var ch = Hora.charAt(0); 
   for(i=0; i < Hora.length && (( ch >= '0' && ch <= '9' ) || ( ch == ':' && i != 0 ) ); ){
    hora[++hm] = '';
    if(ch!=':' && i != 0) return false;
    if(i != 0 ) ch = Hora.charAt(++i);
    if(ch=='0') ch = Hora.charAt(++i);
    while( ch >= '0' && ch <= '9' ){
     hora[hm] += ch;
     ch = Hora.charAt(++i);
    } 
   }
   if(ch!='') return false;
   if(hora[0] == '' || isNaN(hora[0]) || parseInt(hora[0]) < 0 || parseInt(hora[0]) > 23) return false;
   if(hora[1] == '' || isNaN(hora[1]) || parseInt(hora[1]) < 0 || parseInt(hora[1]) > 59) return false;
   return true;
  }



//------------------------------------------
// Funções de validação de checkbox.NET
//------------------------------------------

function isAnyCheckedNET(objeto){
    
	var fn_form = objeto.form;
	var fn_name = objeto.getAttribute("grupo");

	for(var i=0;i<fn_form.elements.length-1;i++) {
		
		if (fn_form.elements[i].type == 'checkbox' && fn_form.elements[i].getAttribute("grupo") == fn_name) {
		    //alert('entrou!!!!')
			if(fn_form.elements[i].checked) return true;
		}
	}

	return false;
}

//------------------------------------------
// Funções de validação de checkbox
//------------------------------------------

function isAnyChecked(objeto){
	var fn_form = objeto.form;
	var fn_name = objeto.getAttribute("name");

	for(var i=0;i<fn_form.elements.length-1;i++) {
		if (fn_form.elements[i].type == 'checkbox' && fn_form.elements[i].getAttribute("name") == fn_name) {
			if(fn_form.elements[i].checked) return true;
		}
	}

	return false;
}


//------------------------------------------
// Funções de validação de radio .NET
//------------------------------------------

function isAnyRadioNET(objeto){
	var fn_form = objeto.form;
	var fn_name = objeto.getAttribute("grupo");

	for(var i=0;i<fn_form.elements.length-1;i++) {

		if (fn_form.elements[i].type == 'radio' && fn_form.elements[i].getAttribute("grupo") == fn_name) {
			if(fn_form.elements[i].checked) return true;
		}
	}

	return false;
}



//------------------------------------------
// Funções de validação de radio
//------------------------------------------

function isAnyRadio(objeto){
	var fn_form = objeto.form;
	var fn_name = objeto.getAttribute("name");

	for(var i=0;i<fn_form.elements.length-1;i++) {
		if (fn_form.elements[i].type == 'radio' && fn_form.elements[i].getAttribute("name") == fn_name) {
			if(fn_form.elements[i].checked) return true;
		}
	}

	return false;
}


//------------------------------------------
// Fim
//------------------------------------------







//------------------------------------------
// Início das funções de validação de email
//------------------------------------------

function isEmail(param){
	var testresults;
	var str=param;
	var filter= /^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.g12)|(\.inf)|(\.adv)|(\.arq)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$/i
	return(filter.test(str))
}

//------------------------------------------
// Fim das funções de validação de email
//------------------------------------------









//------------------------------------------
// Início das funções de validação de vazio
//------------------------------------------

function isEmpty(param) {
	if (param.replace(/ /g,'').length < 1) return (true);
	return (false);
}

//------------------------------------------
// Fim das funções de validação de vazio
//------------------------------------------







//------------------------------------------
// Início das funções de validação de data
//------------------------------------------

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}


function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}


function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}


function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}


function isDate(dtStr, validacao){
    //alert(dtStr +'|'+ validacao + '---');
    var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	
    if (validacao=='ddmmyyyy') 
    {
    	var strDay    = dtStr.substring(0,pos1)
    	
	    var strMonth  = dtStr.substring(pos1+1,pos2)
	    var strYear   = dtStr.substring(pos2+1)
	    strYr         = strYear
    
    }
	else
	{
	    if (validacao=='mmddyyyy') 
        {
        
	        var strMonth = dtStr.substring(0,pos1)
	        var strDay   = dtStr.substring(pos1+1,pos2)
	        var strYear  = dtStr.substring(pos2+1)
	        strYr        = strYear        
        
        }
        else
        {
            if (validacao=='yyyymmdd') 
            {
            
	            var strYear  = dtStr.substring(0,pos1)
	            var strMonth = dtStr.substring(pos1+1,pos2)
	            var strDay   = dtStr.substring(pos2+1)
	            strYr        = strYear                
            
            }
            else
            {
                var strMonth = ''
	            var strDay   = ''
	            var strYear  = ''
	            strYr        = strYear 
            }
        }
	}
	
	//alert('mes:' + strMonth + ' dia:' + strDay + ' ano:' +  strYear);
	
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		return false
	}
return true
}

//------------------------------------------
// Término das funções de validação de data
//------------------------------------------









function Mascara(objEvent) {
		objField = objEvent.srcElement;

		strTipo = objField.type;
		strMascara = objField.mascara;
		
		if (strTipo == 'text') {
			// Tarefas
			//------------------------------------------------------
			// 1. Pegar onde o cursor está posicionado no campo
			// 2. Pegar quais são as teclas de número e outros
			// 3. Comparar posição atual com posição do strMascara

			//objEvent.returnValue = true;

			for (var i=0; i < strMascara.length; i++){ 
				arrMascara[i] = strMascara.slice(i,i+1) 
			}
		}
}


function FormataCampo(Campo,teclapres,mascara){ 
strtext = Campo.value 
tamtext = strtext.length 
tammask = mascara.length 
arrmask = new Array(tammask)     
 for (var i = 0 ; i < tammask; i++){ 
  arrmask[i] = mascara.slice(i,i+1) 
 } 
 if (((((arrmask[tamtext] == "#") || (arrmask[tamtext] == "9"))) || (((arrmask[tamtext+1] != "#") || (arrmask[tamtext+1] != "9"))))){ 
  if ((teclapres.keyCode >= 37 && teclapres.keyCode <= 40)||(teclapres.keyCode >= 48 && teclapres.keyCode <= 57)||(teclapres.keyCode >= 96 && teclapres.keyCode <= 105)||(teclapres.keyCode == 8)||(teclapres.keyCode == 9) ||(teclapres.keyCode == 46) ||(teclapres.keyCode == 13)){ 
   Organiza_Casa(Campo,arrmask[tamtext],teclapres.keyCode,strtext)         
  } 
  else{ 
   Detona_Event(Campo,strtext) 
  } 
 } 
 else{ 
  if ((arrmask[tamtext] == "A"))    { 
   charupper = event.valueOf() 
   Detona_Event(Campo,strtext) 
   masktext = strtext + charupper 
   Campo.value = masktext 
  } 
 } 
} 
 
function Organiza_Casa(Campo,arrpos,teclapres_key,strtext){ 
 if (((arrpos == "/") || (arrpos == ".") || (arrpos == ",") || (arrpos == ":") || (arrpos == " ") || (arrpos == "-")) && !(teclapres_key == 8)){ 
  separador = arrpos 
  masktext = strtext + separador 
  Campo.value = masktext 
 } 
}
 
function Detona_Event(Campo,strtext){ 
 event.returnValue = false 
 if (strtext != "") { 
   Campo.value = strtext 
 } 
}

function MarcarTodos(modo){
  var nb;
  var chk;
  if (document.forms[0].idMestre.value == 0) { 
    chk=1
  } else { 
    chk=0 
  }
  nb = document.forms[0].idNucleo.length
  for (var i=0;i<nb;i++) {
    var e = document.forms[0].idNucleo[i];
    
	if (modo == 0) {
	 e.checked = chk;
	}else if (modo == 1) {
	 e.checked = chk;
	 e.disabled = chk;
	}
  }
document.forms[0].idMestre.value = chk;
}























//********************************************************************************************************************

function validarcampo(strCampo, strNomeCampo)
{
  if(document.getElementById(strCampo).value == "")
  {
    mensagem = strNomeCampo + ".";
    mensagem = unescape(mensagem.replace(/\+/g," "));
    alert(mensagem);
    //document.getElementById(strCampo).focus();
    return false;
  }  
  return true;
}

function somente_especifico(camponame, digits){
    //var digits="0123456789"
    campo = document.getElementById(camponame);
    var campo_temp 
    for (var i=0;i<campo.value.length;i++){
      campo_temp=campo.value.substring(i,i+1)    
      if (digits.indexOf(campo_temp)==-1){
            alert('Somente os e aceito os seguintes caracteres: ' + digits)
            campo.value = campo.value.substring(0,i);
            break; 
       }
    }
}

function validadata(data1, data2, mensagem)
{
  // Verifica se data2 é maior que data1
  var vDTComp1 = document.getElementById(data1).value;
  var vDTComp2 = document.getElementById(data2).value;
 
  if (parseInt(vDTComp2.split("/")[2].toString()+vDTComp2.split("/")[1].toString()+vDTComp2.split("/")[0].toString()) < 
      parseInt(vDTComp1.split("/")[2].toString()+vDTComp1.split("/")[1].toString()+vDTComp1.split("/")[0].toString()))
  { 
     mensagem = unescape(mensagem.replace(/\+/g," "));
     alert(mensagem);
     document.getElementById(data2).focus();
     return false;
  } 
  return true;
}
//onFocus="ContaCaracteres(this, 290)" onKeyDown="ContaCaracteres(this, 290)" onKeyUp="ContaCaracteres(this, 290)" onBlur="ContaCaracteres(this, 290)"
//o terceiro parametro é o id do campo que aparece o numero de caracters.
function ContaCaracteres(field, maxLen, campo)
{
  fieldLen = field.value.length;
  
  if (fieldLen >= maxLen)
  {
	field.value = field.value.substring(0, maxLen);
	charsLeft = maxLen;
  }
  else
  {
	charsLeft = fieldLen;
  }
  if (campo)
  {
    document.getElementById(campo).value = charsLeft;
  }
  else
  {
    ContaCaracteresSemBox(field, maxLen)
  }
}

function ContaCaracteresSemBox(field, maxLen)
{
  fieldLen = field.value.length;
  
  if (fieldLen >= maxLen)
  {
	field.value = field.value.substring(0, maxLen);
	charsLeft = maxLen;
  }
  else
  {
	charsLeft = fieldLen;
  }
}

function formatar( src, mask ) 
{

	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);
	}
}

function checkIt(evt) 
{
  evt = (evt) ? evt : window.event
	var charCode = (evt.which) ? evt.which : evt.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 44) 
	{
		return false
	}	
	return true
}

function FormataData(campo,teclapres) 
{
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 )
	{
		if ( tam > 2 && tam < 5 )
			campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
	   if ( tam >= 5 && tam <= 10 )
		   campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
	}
}

// Permite apenas número no campo
// onKeyPress="return checkItNumero(event)"
function checkItNumero(evt) 
{
	evt = (evt) ? evt : window.event
	var charCode = (evt.which) ? evt.which : evt.keyCode
	if (charCode < 48 || charCode > 57)
	{
		return false
	}	
	return true
}

function VerificaNumerico(valor,teclapres)
{
	//debugger;
	var tecla = teclapres.keyCode;
	if (tecla < 48 || tecla > 57)
	{
		return teclapres.keyCode = 0;
	}
}

function setFocus(campo)
{
	//debugger
	var e = window.document.getElementById(campo);
	if(e) e.focus();
}

function Contar(Campo, Valor, Div, boolMostraMens)
{
	document.getElementById(Div).innerText = Valor-Campo.value.length;
	if((Valor-Campo.value.length)<=0) {
		document.getElementById(Div).innerText = 0;
		Campo.value = Mid(Campo.value, 0, Valor);
		
		if (boolMostraMens) alert('Atenção, você atingiu o limite máximo de caracteres!');
	}
	
}

function Mid(str, start, len)
{
	// Make sure start and len are within proper bounds
    if (start < 0 || len < 0) return "";
    var iEnd, iLen = String(str).length;
    if (start + len > iLen)
          iEnd = iLen;
    else
          iEnd = start + len;
    return String(str).substring(start,iEnd);
}

function echeck(str, msg)
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   alert(msg);
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   alert(msg);
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    alert(msg);
	    return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
	    alert(msg);
	    return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    alert(msg);
	    return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
	    alert(msg);
	    return false
	 }
	
	 if (str.indexOf(" ")!=-1){
	    alert(msg);
	    return false
	 }

	 return true					
}


function validarData(valor)
{
	if(valor.length != 10)
		return false;
	else
	{
		try
		{
			var dia = valor.substr(0,2);
			var mes = valor.substr(3,2);
			var ano = valor.substr(6,4);
		
			var iDia = Number(dia);
			var iMes = Number(mes);
			var iAno = Number(ano);
			
			var today = new Date();
			var anoNow = today.getFullYear();
			
			if(iAno < 1900 || iAno > anoNow)
				return false;
			else
			{
				if(iMes < 1 || iMes > 12)
					return false
				else
				{
					//debugger;
					if(iMes == 1 || iMes == 3 || iMes == 5 ||
						iMes == 7 || iMes == 8 || iMes == 10 || iMes == 12)
					{
						if(iDia < 1 || iDia > 31)
							return false;
						else
							return true;
					}
					else
					{
						if(iMes == 2)
						{
							if(iDia < 1 || iDia > 29)
								return false;
							else
								return true;
						}
						else
						{
							if(iDia < 1 || iDia > 30)
								return false;
							else
								return true;
						}
					}
				}
			}
		}
		catch(ex)
		{
			return false;
		}
	}
}


function validaCampoObrigatorio(campo, msg)
{
	if(!campo.value.length > 0)
	{
		alert(msg);
		return false
	}
	return true;
}

// Limita os caractéres do text
function maxCaracter(objText, limit, sLabel)
{
    var oLabelNumCarac = document.getElementById(sLabel);
    
    if( oLabelNumCarac ) {
        if (objText.value.length <= limit)
            oLabelNumCarac.innerHTML = (limit - objText.value.length);
    }
    if (objText.value.length >= limit)
        objText.value = objText.value.substring(0, limit-1);
}


