/**
* Função para a validação do E-mail.
* 
* @param emailStr String
* @return boolean 
*/
$().ajaxStart(function(){$("#carregando").show();});
$().ajaxStop(function(){$("#carregando").hide();});

function vazio(strCampo){
	if($("#"+strCampo).val() == "")
	{
		
		$("#"+strCampo+"").css({backgroundColor:"#CFCFCF"});
		erros = "erroVazio";
		return true;
		
	}
	else
	{
		$("#"+strCampo+"").css({backgroundColor:""});
		return false;
		
	}
}

function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var msgerro = "E-mail com formato incorreto"
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	
	if (user.match(userPat)==null) {
		return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
			return false
			}
		}
		return true
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		return false
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>3) {
	   return false
	}
	if (len<2) {
	   return false
	}
	return true;
}


/**
* Função para mascarar uma data num campo edit
* 
* @param objeto O objeto this do evento
* @param evento
* @param mask Usar o # para ilustrar os números
*/
function mask(objeto, evt, mask){
	var LetrasU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var LetrasL = 'abcdefghijklmnopqrstuvwxyz';
	var Letras  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	var Numeros = '0123456789';
	var Fixos  = '().-:/ ';
	var Charset = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/`abcdefghijklmnopqrstuvwxyz{|}~";
	
	evt = (evt) ? evt : (window.event) ? window.event : "";
	var value = objeto.value;
	if (evt) {
	 var ntecla = (evt.which) ? evt.which : evt.keyCode;
	 tecla = Charset.substr(ntecla - 32, 1);
	 if (ntecla < 32) return true;
	
	 var tamanho = value.length;
	 if (tamanho >= mask.length) return false;
	
	 var pos = mask.substr(tamanho,1);
	 while (Fixos.indexOf(pos) != -1) {
	  value += pos;
	  tamanho = value.length;
	  if (tamanho >= mask.length) return false;
	  pos = mask.substr(tamanho,1);
	 }
	
	 switch (pos) {
	   case '#' : if (Numeros.indexOf(tecla) == -1) return false; break;
	   case 'A' : if (LetrasU.indexOf(tecla) == -1) return false; break;
	   case 'a' : if (LetrasL.indexOf(tecla) == -1) return false; break;
	   case 'Z' : if (Letras.indexOf(tecla) == -1) return false; break;
	   case '*' : objeto.value = value; return true; break;
	   default : return false; break;
	 }
	}
	objeto.value = value;
	return true;
}

/**
* Efetua a validação da data
*
* @param valorData A data a ser validada
*/
function validarData(valorData){
  //verificar se o campo foi preenchido
  if (valorData.length != 10){
	 return false; 
  }
  data = /^(0?[1-9]|[12][0-9]|3[0-1])\/(0?[1-9]|1[012])\/([12][0-9]{3})$/; // valida todos os dias e meses dos anos de 1000 a 2999.
  barras = valorData.split("/"); 
  erro = false;
  
    if(valorData.search(data) == -1)
      {
      erro = true;
      }
      else if(((barras[1] == 4) | (barras[1] == 6) | (barras[1] == 9) | (barras[1] == 11)) && ((barras[0] > 30)))
        {// valida se meses sao com 30 dias.
        erro = true;
        }
      else if((barras[1] == 2)) // valida ano bissexto.
      {
        if((barras[0] > 28) && ((barras[2] % 4) != 0))
        {
        erro = true;
        }
        if((barras[0] > 29) && ((barras[2] % 4) == 0))
        {
        erro = true;
        }
      }  
    if(erro == true)
    {
    return false;
    }
    else
    {
    return true;
    }
}

//Método para validar a data
function validarDataCss(valorData,dia,mes,ano)
{
  
  data = /^(0?[1-9]|[12][0-9]|3[0-1])\/(0?[1-9]|1[012])\/([12][0-9]{3})$/; // valida todos os dias e meses dos anos de 1000 a 2999.
  barras = valorData.split("/"); 
  erro = false;
  
    if(valorData.search(data) == -1)
      {
      erro = true;
      }
      else if(((barras[1] == 4) | (barras[1] == 6) | (barras[1] == 9) | (barras[1] == 11)) && ((barras[0] > 30)))
        {// valida se meses sao com 30 dias.
        erro = true;
        }
      else if((barras[1] == 2)) // valida ano bissexto.
      {
        if((barras[0] > 28) && ((barras[2] % 4) != 0))
        {
        erro = true;
        }
        if((barras[0] > 29) && ((barras[2] % 4) == 0))
        {
        erro = true;
        }
      }  
    if(erro == true)
    {
   
   		$("#"+dia+"").css({backgroundColor:"#FFDDDD"});
		$("#"+mes+"").css({backgroundColor:"#FFDDDD"});
		$("#"+ano+"").css({backgroundColor:"#FFDDDD"});
		erros = "erro";
   
    }
    else
    {
		$("#"+dia+"").css({backgroundColor:""});
		$("#"+mes+"").css({backgroundColor:""});
		$("#"+ano+"").css({backgroundColor:""});

    }
	
}

//Função para validar a hora
function validarHora(tempo){
	hora = tempo.substr(0,2);
	minuto = tempo.substr(3,2);
	//só verificar se não estiver vazio
	if((hora != "") && (minuto != "")){
		if((hora < 00 || hora > 23) || (minuto < 00 || minuto > 59)){
			return false;
			
		}else{
			return true;
			
		}
	}else{
		return false
	}
	
}



//Função para tirar os espaços em branco;
function Trim(str){
	return str.replace(/^\s+|\s+$/g,"");
}

function changeSelection(){
	
	bolStatus	= (document.getElementById("ch_all").checked == true) ? "checked" : "";
	$("input[@name=checkbox]").attr("checked",bolStatus);
	
}

function mostraThumb(id){
	$("#" + id).show();
}

function ocultaThumb(id){
	$("#" + id).hide();
}

function escolheGrupo(idModulo){
	var stats;
	stats	= (document.getElementById("chk_"+idModulo).checked == true) ? "checked": "";
	$("input[@id=checkbox_"+idModulo+"]").attr("checked",stats);
}

/**
* Aplica um Reset() no formulário especificado
*/
function limpaForm(id){
	document.getElementById(id).reset();
}


function msgErro(strMsgErro){
	return "<blink style='color: #F00'>" + strMsgErro.toUpperCase() + "</blink>";
}
