// E-mail										: validação
// Parâmetros								: src = value do objeto
function validaEmail(src) {
  emailReg = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/
  var regex = new RegExp(emailReg);
  return regex.test(src);
}
// Data											: validação
// Parâmetros								: Data = value do objeto
function isDate(Data){
  var dma = -1;
  var data = Array(3);
  var ch = Data.charAt(0);
  for(i=0; i < Data.length && (( ch >= '0' && ch <= '9' ) || ( ch == '/' && i != 0 ) ); ){
    data[++dma] = '';
    if(ch!='/' && i != 0) return false;
    if(i != 0 ) ch = Data.charAt(++i);
    if(ch=='0') ch = Data.charAt(++i);
    while( ch >= '0' && ch <= '9' ){
      data[dma] += ch;
      ch = Data.charAt(++i);
    }
  }
  if(ch!='') return false;
  if(data[0] == '' || isNaN(data[0]) || parseInt(data[0]) < 1) return false;
  if(data[1] == '' || isNaN(data[1]) || parseInt(data[1]) < 1 || parseInt(data[1]) > 12) return false;
  if(data[2] == '' || isNaN(data[2]) || ((parseInt(data[2]) < 0 || parseInt(data[2]) > 99 ) && (parseInt(data[2]) < 1900 || parseInt(data[2]) > 9999))) return false;
  if(data[2] < 50) data[2] = parseInt(data[2]) + 2000;
  else if(data[2] < 100) data[2] = parseInt(data[2]) + 1900;
  switch(parseInt(data[1])){
    case 2: { if(((parseInt(data[2])%4!=0 || (parseInt(data[2])%100==0 && parseInt(data[2])%400!=0)) && parseInt(data[0]) > 28) || parseInt(data[0]) > 29 ) return false; break; }
    case 4: case 6: case 9: case 11: { if(parseInt(data[0]) > 30) return false; break;}
    default: { if(parseInt(data[0]) > 31) return false;}
  }
  return true;
}
function isTime(Hora){
	var horaMinuto = Hora.split(':');
	if(horaMinuto[0] == '' || isNaN(horaMinuto[0]) || parseInt(horaMinuto[0]) < 0 || parseInt(horaMinuto[0]) > 23) return false;
	if(horaMinuto[0] == '' || isNaN(horaMinuto[1]) || parseInt(horaMinuto[1]) < 0 || parseInt(horaMinuto[1]) > 59) return false;
  return true;
}

// validaTipoArquivo				: verifica se o arquivo é de um tipo permitido
// Parâmetros								: obj = campo file, ext = array com tipos de arquivos válidos
function validaTipoArquivo(obj, ext){
  if (obj.value!='') {
    var arquivo = StrRev(obj.value);
    arquivo = StrRev(arquivo.substring(0, arquivo.indexOf(".")));
		arquivo = arquivo.toLowerCase();
    if (!inArray(ext, arquivo)){
      //alert('Formato de arquivo inválido. Formatos válidos: '+ext.toString()+'.');
      return false;
    }
    else return true;
  }
}

// inArray									: busca por um elemento em uma array
// Parâmetros								: array = array a ser percorrida, busca = elemento
function inArray(array, busca) {
  for (elemento in array) {
		if (array[elemento]==busca) {
			return true;
		}
	}
	return false;
}

// Checkboxes/Radios				: validação
// Parâmetros								: checkItem = nome do conjunto de checkboxes/radios
// Chamada									: selecionouCheck(nomeObjeto);
function selecionouCheck(checkItem){
  selecionou = false;
	if(checkItem){
		if(isNaN(checkItem.length)){
			selecionou = checkItem.checked;
		} else {
			i = 0;
			while ( (i <= (checkItem.length -1)) && (!selecionou) ){
				selecionou = checkItem[i].checked;
				i++;
			}
		}	
	}
  return selecionou;
}

// String										: remonta a string de trás para frente
// Parâmetros								: str = value do objeto origem
function StrRev(str){
	var tmp = "";
  for (i=str.length-1; i >= 0; i--){
    tmp += str.charAt(i);
  }
  return tmp;
}
