function trocar(id) {
    var objeto = document.getElementById(id);
	if (objeto.style.display == "block") {
	    objeto.style.display = "none";
	} else {
		objeto.style.display = "block";
	}
}

//########################################################
//##													##
//##	Autor: DM Tecnologia de Informacao				##
//##													##
//##		Validação de campos gererica				##
//##													##
//##	Usar: onsubmit="return validaForm(this)"		##
//##	Obs: Dentro do <form></form>					##
//##													##
//########################################################

function validaForm(formulario) {
   var mensagem = '';
   var primeiro = 0;
   for (var i = 0; i < formulario.length; i++) {
       if (formulario.elements[i].getAttribute('erro')) {
          if ((formulario.elements[i].value == '') ||
             (formulario.elements[i].value.length == 0) ||
             (formulario.elements[i].selectedIndex <= 0)
             ) {
             mensagem = mensagem + formulario.elements[i].getAttribute('erro') + "\n";
             // troca a cor da borda do campo
             formulario.elements[i].style.border = '2px solid #f00';
             if (primeiro == 0) { var primeiro = i; }
          }
      }
   }
   if (mensagem != '') {
      formulario.elements[primeiro].focus();
      alert(mensagem);
      return false;
   } else {
       return true;
   }
}

//Validar Email
function ValidaEmail(email)
{
  if ((email.value.length != 0) && ((email.value.indexOf("@") < 1) || (email.value.indexOf('.') < 7)))
  {
    alert('Email incorreto!');
	document.email.focus();
  }
}

//########################################################
//##													##
//##	    Autor: DM Tecnologia de Informacao  		##
//##													##
//##		    Coloca só Numeros no Input				##
//##													##
//##  Usar: onkeypress="return apenasNumeros(event);"   ##
//##													##
//########################################################

function apenasNumero(e) {

	var key;
	var keychar;
	var reg;

	if(window.event) {
	  // Para IE, e.keyCode ou window.event.keyCode pode ser usado
	  key = e.keyCode;
	} else if(e.which) {
	  // Netscape
	  key = e.which;
	} else {
	  // Se nao tiver evento, entao passa direto
	  return true;
	}
	if(key != 8){
		keychar = String.fromCharCode(key);
		reg = /\d/;
		// return !reg.test(keychar); ===> para tirar números é necessário tirar o exclamação (!)
		return reg.test(keychar);
	} else {
		return true;
	}
}

//########################################################
//##													##
//##	    Autor: DM Tecnologia de Informacao  		##
//##													##
//##		    Coloca só Letras no Input				##
//##													##
//##   Usar: onkeypress="return apenasLetras(event);"   ##
//##													##
//########################################################
function apenasLetras(e) {

	var key;
	var keychar;
	var reg;

	if(window.event) {
	  // Para IE, e.keyCode ou window.event.keyCode pode ser usado
	  key = e.keyCode;
	} else if(e.which) {
	  // Netscape
	  key = e.which;
	} else {
	  // Se nao tiver evento, entao passa direto
	  return true;
	}
	if(key != 8){
		keychar = String.fromCharCode(key);
		reg = /\d/;
		//return !reg.test(keychar); //===> para tirar numeros eh necessario tirar o exclamacao (!)
		return !reg.test(keychar);
	} else {
		return true;
	}
}

//########################################################
//##													##
//##	    Autor: DM Tecnologia de Informacao  		##
//##													##
//##		    Formatar Campo Monetario				##
//##													##
//##	Usar: onkeyup="formataValor(this.id,7,event)"	##
//##	Obs: Lembre de fazer o tratamento ao inserir	##
//##		 no banco de dados							##
//##													##
//########################################################
function formataValor(id,tammax,teclapres) {

	// Internet Explorer
	if(window.event) {
		var tecla = teclapres.keyCode;
	}
	// Nestcape / firefox
	else if(teclapres.which) {
		var tecla = teclapres.which;
	}

	vr = document.getElementById(id).value;
	vr = vr.toString().replace( "/", "" );
	vr = vr.toString().replace( "/", "" );
	vr = vr.toString().replace( ",", "" );
	vr = vr.toString().replace( ".", "" );
	vr = vr.toString().replace( ".", "" );
	vr = vr.toString().replace( ".", "" );
	vr = vr.toString().replace( ".", "" );
	tam = vr.length;

	if (tam < tammax && tecla != 8){
		tam = vr.length + 1;
	}

	if (tecla == 8 ){
		tam = tam - 1;
	}

	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){
			document.getElementById(id).value = vr;
		}
		if ( (tam > 2) && (tam <= 5) ){
			document.getElementById(id).value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam );
		}
		if ( (tam >= 6) && (tam <= 8) ){
			document.getElementById(id).value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );
		}
		if ( (tam >= 9) && (tam <= 11) ){
			document.getElementById(id).value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );
		}
		if ( (tam >= 12) && (tam <= 14) ){
			document.getElementById(id).value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );
		}
		if ( (tam >= 15) && (tam <= 17) ){
			document.getElementById(id).value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );
		}
	}
}

//########################################################
//##													##
//##	Autor: DM Tecnologia de Informacao				##
//##													##
//##				Ajax gererica						##
//##													##
//########################################################
function get(tI) { // Esta funcao pega o elemento pelo ID
  if (document.getElementById) {
  	return document.getElementById(tI);
  }
  else if (document.all) {
  	return document.all[tI];
  } else
  	return false;
}

function ajax(valor,url,div,valor2,valor3,valor4){
	req = null;
	if (window.XMLHttpRequest){
		req = new XMLHttpRequest();
		req.onreadystatechange = function() {
			if(req.readyState == 4){
				if (req.status == 200){
					get(div).innerHTML = "Carregando....";
					get(div).innerHTML = req.responseText;
				} else{
					alert("Houve um problema ao obter os dados:\n" + req.statusText);
				}
			}
		}
		req.open("GET", url+'?valor='+valor+'&valor2='+valor2+'&valor3='+valor3+'&valor4='+valor4, true);
		req.send(null);
	} else if (window.ActiveXObject){
				req = new ActiveXObject("Microsoft.XMLHTTP");
				if (req){
					req.onreadystatechange = function() {
						if(req.readyState == 4){
							if (req.status == 200){
								get(div).innerHTML = "Carregando....";
								get(div).innerHTML = req.responseText;
							} else{
								alert("Houve um problema ao obter os dados:\n" + req.statusText);
							}
						}
					}
					req.open("GET", url+'?valor='+valor+'&valor2='+valor2+'&valor3='+valor3+'&valor4='+valor4, true);
					req.send();
				}
		}
}

//########################################################
//##													##
//##	Autor: DM Tecnologia de Informacao				##
//##													##
//##			Checkar todos os Checkbox				##
//##													##
//##	Usar: onclick="checkbox();"						##
//##	Obs: Dentro do <input type="checkbox"></input>	##
//##													##
//########################################################
function checkbox() {

	// Pega todos os campos do formulário
    campos = document.form.elements;

	// Verifica se o checkbox "todos" esta checado
	if(document.form.todos.checked == true){
    for (x=0; x<campos.length; x++)
      if (campos[x].type == "checkbox") campos[x].checked = true;
	}
	// Se o checkbox "todos" não tiver checado
	else{
	for (x=0; x<campos.length; x++)
      if (campos[x].type == "checkbox") campos[x].checked = false;
	}

}

//########################################################
//##													##
//##	Autor: DM Tecnologia de Informacao				##
//##													##
//##			Confirmação de Apagar					##
//##													##
//##	Usar: ?											##
//##	Obs: Dentro do <input type="checkbox"></input>	##
//##													##
//########################################################
function confirmacao() {
	var answer = confirm("Tem certeza que deseja apagar?")
	if (answer){
		return true;
	}
	else{
		return false;
	}
}

//########################################################
//##													##
//##	    Autor: DM Tecnologia de Informacao  		##
//##													##
//##		    Colocar Curso em outro campo			##
//##													##
//##  Usar: onkeyup="proximoCampo(tamanho,'id1','id2')"	##
//##													##
//########################################################
function proximoCampo(tamanho,id_atual,id_proximo){
	var tam = document.getElementById(id_atual).value.length;
	if (tam == tamanho){
		document.getElementById(id_proximo).focus();
    }
}

//-- Retorna uma string apenas com os numeros da string enviada
function ApenasNum(strParm) {
	strParm = String(strParm);
	var chrPrt = "0";
	var strRet = "";
	var j=0;
	
	for (var i=0; i < strParm.length; i++) {
 		chrPrt = strParm.substring(i, i+1);
 		if ( chrPrt.match(/\d/) ) {
  			if (j==0) {
   				strRet = chrPrt;
   				j=1;
  			} else {
   				strRet = strRet.concat(chrPrt);
  			}
 		}
	}
	return strRet;
}


///########################################################
//##													##
//##	    Autor: DM Tecnologia de Informacao  		##
//##													##
//##		    Validação de CPF e CNPJ					##
//##													##
//##  Usar: onchange="ConfereCIC(this)"				    ##
//##													##
//########################################################
function DigitoCPFCNPJ(numCIC) {
	var numDois = numCIC.substring(numCIC.length-2, numCIC.length);
	var novoCIC = numCIC.substring(0, numCIC.length-2);
	
	switch (numCIC.length) {
 		case 11 :
  			numLim = 11;
  			break;
 		case 14 :
  			numLim = 9;
  			break;
 		default : return false;
	}
	
	var numSoma = 0;
	var Fator = 1;
	
	for (var i=novoCIC.length-1; i>=0 ; i--) {
 		Fator = Fator + 1;
 		if (Fator > numLim) {
  			Fator = 2;
 		}
 		numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
	}
	
	numSoma = numSoma/11;
	var numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
   	if (numResto > 1) {
 		numResto = 11 - numResto;
   	} else {
 		numResto = 0;
   	}
   	
   //-- Primeiro digito calculado.  Fara parte do novo calculo.
   var numDigito = String(numResto);
   novoCIC = novoCIC.concat(numResto);
   //--
   numSoma = 0;
   Fator = 1;
   
   for (var i=novoCIC.length-1; i>=0 ; i--) {
   		Fator = Fator + 1;
 		if (Fator > numLim) {
  			Fator = 2;
 		}
 		numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
	}
	
	numSoma = numSoma/11;
	numResto = numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
   	if (numResto > 1) {
 		numResto = 11 - numResto;
   	} else {
 		numResto = 0;
   	}
   	
	//-- Segundo digito calculado.
	numDigito = numDigito.concat(numResto);
	if (numDigito == numDois) {
 		return true;
	} else {
 		return false;
	}
}


///-- Remove os sinais, deixando apenas os numeros e reconstroi o CPF ou CNPJ, verificando a validade
//-- Recebe como parametros o numero do CPF ou CNPJ, com ou sem sinais e o atualiza com sinais validado.
function ConfereCIC(objCIC,tipo) {
	if (objCIC.value == null) {
 		alert("Preenchimento obrigatório do"+tipo);
 		objCIC.value='';
 		objCIC.focus();
 		return false;
	}
	var strCPFPat  = /^\d{3}\.\d{3}\.\d{3}-\d{2}$/;
	var strCNPJPat = /^\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}$/;
	numCPFCNPJ = ApenasNum(objCIC.value);

	if (!DigitoCPFCNPJ(numCPFCNPJ)) {
 		alert("Atenção: Dígito verificador do "+tipo+" é inválido!");
 		objCIC.value='';
 		objCIC.focus();
 		return false;
	}

	objCIC.value = FormataCIC(numCPFCNPJ);

	if (objCIC.value.match(strCNPJPat)) {
 		return true;
	}
	else if (objCIC.value.match(strCPFPat)) {
 		return true;
	} else {
 		alert("Digite um "+tipo+" válido!");
 		objCIC.value='';
 		objCIC.focus();
 		return false;
	}
}

// Abre uma nova janela com opÃ§Ãµes pecificas (popup)
function popup(popup_url,name,Xlargura,Xaltura,Xbarra,bstatus,Xbarramenu,Xdimensao) {
 size = 'status=' + bstatus + ',menubar=' + Xbarramenu + ',resizable=' + Xdimensao + ',width=' + Xlargura + ',height=' + Xaltura + ',scrollbars=' + Xbarra;
 window.open(popup_url,name,'directories=no, location=no, toolbar=no, ' + size);
}

//################################################################################
//##													                        ##
//##	    Autor: DM Tecnologia de Informacao  		                        ##
//##													                        ##
//## Verifica se quantidade digitada é igual ou menor que quantidade disponível ##
//##			                            			                        ##
//##  Usar: onchange="verificaDisponibilidade(QuantidadeAtual,this);"           ##
//##													                        ##
//################################################################################

function verificaDisponibilidade(QuantidadeAtual, QuantidadeDigitado) {
    if(document.getElementById('preReserva').checked == true) { 
	    if(QuantidadeAtual < QuantidadeDigitado.value) {
	    	alert('Produto indisponivel para esta data \n Por favor, coloque uma quantidade válida \n');
	        QuantidadeDigitado.value = "";
	    }
    }
}




