﻿function validaArquivo(frm){
  if (frm.arquivo.value!='') {
    var arquivo = StrRev(frm.arquivo.value);
    arquivo = StrRev(arquivo.substring(0, arquivo.indexOf(".")));
		arquivo = arquivo.toLowerCase();
    if (arquivo!='jpg' && arquivo!='gif'){
      frm.reset();
      alert('Formato de arquivo inválido. Formatos válidos: jpg e gif.');
      return false;
    }
    else return true;
  }
}

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;
  }
}

function inArray(array, busca) {
  for (elemento in array) {
		if (array[elemento]==busca) {
			return true;
		}
	}
	return false;
}

var arCor = new Array();
/*
window.defaultStatus = "Ritter Hotéis";
document.write("<title>" + window.defaultStatus + "</title>");
*/
// mask para CEP evento OnKeyUp
 function maskCEP( event, obj) {
   tam = obj.value.length;
   if (tam==5) obj.value = obj.value + "-";
 };	


// mask para Hora (hh:mm) evento OnKeyUp
function maskHora( event, obj) {
	tam = obj.value.length;
  if (tam==2) obj.value = obj.value + ":";
};
 
//valida hora
function ehHora(obj) {
	// verifica se tem 5 caracteres 00:00
	if (obj.value.length!=5) { return false; }

	// verifica se a hora está em 0 e 24 e se os minutos estao entre 0 e 59
	var strHora = obj.value;
	strHora = strHora.split(':');
	if (strHora[0]<0 || strHora[0]>24 || strHora[1]<0 || strHora[1]>59 ) {
		return false;
	}
  return true;
};

function StrRev(str){
	var tmp = "";
  for (i=str.length-1; i >= 0; i--){
  	tmp += str.charAt(i);
  }
  return tmp;
}

function selectOption(selectID, Option){
    obj = document.getElementById(selectID);
    for(var i=0;i<obj.options.length;i++){
    obj.options[i].selected = (obj.options[i].value == Option);
  }
}

function PopUp(I, W, H){
  lpos = (screen.availWidth/2) - (W/2);
  tpos = (screen.availHeight/2) - (H/2);
  window.open(I,'','scrollbars=1,left='+lpos+',top='+tpos+',width='+W+',height='+H).focus();
}

function PopUpScr(I, W, H){
  lpos = (screen.availWidth/2) - (W/2);
  tpos = (screen.availHeight/2) - (H/2);
  window.open(I,'','scrollbars=yes,left='+lpos+',top='+tpos+',width='+W+',height='+H).focus();
}

//valida o e-mail
function validaemail(src) {
  emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[a-zA-Z]$"
  var regex = new RegExp(emailReg);
  return regex.test(src);	
}

// troca a cor da linha ao selecionar o checkbox
function cor(obj, i, chk){
  if (arCor[i]=="1") {
    obj.style.backgroundColor = (i % 2 == 1)?"#FFFFFF":"#F0F0F0";
    arCor[i]="0";
  } else {
    obj.style.backgroundColor = '#FEFCD2';
    arCor[i]="1";
  }
}

// confere se há algum checkbox marcado - parametro: checklist ex: document.nomeForm.checkboxExcluir
function selecionoucheck(checkitem){
  selecionou = false;
	if (isNaN(checkitem.length)){
	  selecionou = checkitem.checked;
	}
	else {
	  i = 0;
	  while ( (i <= (checkitem.length -1)) && (!selecionou) ){
    	selecionou = checkitem[i].checked;
    	i++;
	  }
	}
  return selecionou;
}

// mask para Data (dd/mm/aaaa) evento OnKeyUp
function maskData( event, obj) {
  tam = obj.value.length;
  if ((tam==2) || (tam==5)) obj.value = obj.value + "/";
}
	
//somente números são desbloqueados
function digitos(digit){
  digit.keyCode = ((digit.keyCode < 48) || (digit.keyCode > 57))?0:digit.keyCode;
}

//somente dígitos e vírgula são aceitos
function valores(digit){
  digit.keyCode = (((digit.keyCode < 48) || (digit.keyCode > 57)) && (digit.keyCode != 44))?0:digit.keyCode;
}

//somente dígitos e barra são aceitos
function datas(digit){
  digit.keyCode = ((digit.keyCode < 47) || (digit.keyCode > 57))?0:digit.keyCode;
}

//valida a data
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;
}

//converte uma string de data no formato brasileiro em um objeto do tipo date;
function cdate(strdata){
  strdata = strdata.split('/');
  var data = new Date(strdata[2], strdata[1], strdata[0], 0, 0, 0);		
  return data;
}

	// e = elemento em questão(utilizado em objetos <select>)
	function alterVisibility(e, obj) {
		if ( e.value == 4 ) {
			document.getElementById(obj).style.display = '';
		} else {
			document.getElementById(obj).style.display = 'none';
		}
	}
	
	// retorna true se a primeira data é maior que a segunda
	function data_maior ( data_maior, data_menor ) {
		var d1 = parseInt( data_maior.split("/")[2].toString() + data_maior.split("/")[1].toString() + data_maior.split("/")[0].toString() );
		var d2 = parseInt( data_menor.split("/")[2].toString() + data_menor.split("/")[1].toString() + data_menor.split("/")[0].toString() );
		return d1 > d2;
	}
	


//---------------------------------------------------------------------------------------------------------	
//					FUNCOES GENERICAS PRA PGM FIDELIDADE
//---------------------------------------------------------------------------------------------------------	

	function JavaInteiro(){
		if(((event.keyCode>=0x30)&&(event.keyCode<=0x39))||(event.keyCode==8)||(event.keyCode==13)){
			return true;
		}
		event.keyCode=0;
	}
	
	function FormataData(Campo){
		if(((event.keyCode<35)||(event.keyCode>40))&&(event.keyCode!=46)&&(event.keyCode!=8)){
			tam=Campo.value.length;str="";
			for(x=0;x<=tam;x++){
				if(Campo.value.substring(x,x+1)!="/"){
					str+=Campo.value.substring(x,x+1);
				}
			}
			aux=str.substring(0,2);
			if(str.length>1)aux=aux+"/";
			aux=aux+str.substring(2,4);
			if(str.length>3)
				aux=aux+"/";
			Campo.value=aux+str.substring(4,8);
		}
	}
	function OnTabGenerico(){
		if(event.keyCode==13){
			event.keyCode=9;
		}
	}
	function FDtValida(PObjeto, PFlag, PMsgBox){
		if(PObjeto.style.display=="none"){
			return true;
		}
		LData = PObjeto.value;
		if ((PFlag)&&(LData == "")){
			return FInv(PObjeto,"Preenchimento obrigatório !", PMsgBox);
		}
		if (LData != ""){
			if (LData.length != 10){
				return FInv(PObjeto,"O formato para os campos Data é DD/MM/AAAA !", PMsgBox);
			}
			if (((LData.substring(3,5) > 12)||(LData.substring(3,5) < 1)) || (LData.substring(0,2) < 1) || (LData.substring(6,10) < 1900)) {
				return FInv(PObjeto,"Data Inválida !",PMsgBox);
			}
			if (LData.substring(3,5) == 2){
				LMaxDias = (((1996 - LData.substring(6,10)) % 4) == 0) ? 29 : 28
			} 
			else{
				if (LData.substring(3,5) <= 7){LMaxDias = ((LData.substring(3,5) % 2) == 0) ? 30 : 31
				}
				else{
					LMaxDias = ((LData.substring(3,5) % 2) == 0) ? 31 : 30
				}
			}
			if (LMaxDias < LData.substring(0,2)) {
				return FInv(PObjeto,"Data Inválida !",PMsgBox);
			}
		}
		return true;
	}
	function FInv(PObjeto,PMsg,PMsgBox){
		alert(PMsg);
		FJSetafocus(PObjeto);
		return false;
	}
	function FJSetafocus(pObj){
		try{
			pObj.focus();
		}
		catch(e){}
	}
	function JavaCurrency(objeto){
		lCodeDig=event.keyCode;
		if(((lCodeDig>=0x30)&&(lCodeDig<=0x39))||(lCodeDig==8)||(lCodeDig==45)||(lCodeDig==13)||(lCodeDig==AscChrDec)){
			texto=objeto.value;
			ExCharDec=false;
			ExMenos=false;
			ExCharDec=(texto.indexOf(ChrDec)!=-1);
			ExMenos=(texto.indexOf("-")!=-1);
			if(((ExCharDec)&&(lCodeDig==AscChrDec))||(ExMenos&&(lCodeDig==45) )){
				alert("Campo deve ser numérico !");
				event.keyCode=0;
				objeto.value="";
			}
			FJSetafocus(objeto);
			return true;
		}
		return false;
	}
	function JavaBlur(objeto, NDecimais, PFlag) {
		if (objeto.value != ""){
			objeto.value = FormataDecimais(objeto.value, NDecimais);
			return false;
		}else if(PFlag){
			return FInv(objeto,"Preenchimento obrigatório !", false);
		}
	}
	function FormataDecimais(Val,NDec){

		Val=RmvVirg(Val);
		TemMenos=(Val.indexOf("-")!=-1);
		if(TemMenos){
			Val=Val.replace("-", "");
		}
		Mi=parseFloat(1 + FNDec(NDec));
		Val=ReplaceCHR(Val,ChrDec,ChrMil);
		Val=(Math.round(Val*Mi))/Mi;Val=Val.toString();
		Val=ReplaceCHR(Val,ChrMil,ChrDec);
		Val=Val.toString();
		posic=Val.indexOf(ChrDec);
		ValInt=((posic!=-1)?Val.substring(0,posic):Val);
		VR=(posic!=-1)?Val.substring(posic+1,Val.length):"0";
		VR=VR+FNDec(NDec-VR.length);
		TamInt=ValInt.length;
		K=parseInt(TamInt/3);
		Ret="";
		for(i=0;i<=K-1;i++){
			Ret=ValInt.substring(TamInt-((i+1)*3),TamInt-(i*3))+((Ret!="")?ChrMil:"")+Ret;
		}
		if(TamInt/3>K){
			Ret=ValInt.substring(TamInt-((i+1)*3),TamInt-(i*3))+((Ret!="")?ChrMil:"")+Ret;
		}
		if(TemMenos){
			Ret="-"+Ret;
		}
		return Ret+ChrDec+VR;
		
	}
	function FNDec(Desejado){
		retorno = "";
		for (k=1;k<=Desejado;k++){
			retorno = retorno + "0";
		}
		return  retorno;
	}
	function RmvVirg(Val){
		Val=Val.toString();
		posic=Val.indexOf(ChrMil);
		while (posic!=-1){
			Val=Val.substring(0,posic) + Val.substring(posic + 1,Val.length);
			posic = Val.indexOf(ChrMil);
		}
		return Val;
	}
	function ReplaceCHR(str,chrFind,chrAlt){
		posic=str.indexOf(chrFind);
		if(posic!=-1){
			str=str.substring(0,posic)+chrAlt+str.substring(posic+1,str.length);
		}
		return str;
	}
	
	
	function AlfaNumerico(e)
	{
		if (document.all) // Internet Explorer
			var tecla = event.keyCode;
		else if(document.layers) // Nestcape
			var tecla = e.which;
			if ((tecla > 47 && tecla < 58) || (tecla > 64 && tecla < 91) || (tecla > 96 && tecla < 123)) // numeros de 0 a 9
				return true;
			else
				{
					if (tecla != 8) // backspace
						event.keyCode = 0;
						//return false;
					else
						return true;
				}
	}
	
	
	function IsAlfanumerico(campo){
		var caracteres="0123456789abcdefghiyjklmnopqrstuvwxyz ";
		var texto = campo.value.toLowerCase();
		for(i=0; i<texto.length; i++){
		   if (caracteres.indexOf(texto.charAt(i),0)==-1){
		      alert('Campo deve conter apenas letras e números.');
		      campo.focus();
		      return false;
		   }
		}
		return true;
	} 



