// JavaScript Document

// Janelas Pop-Up
function popup(url,nome,caracteristicas) {
  	window.open(url,nome,caracteristicas);
	window.close();
}

// Menus Combo-Box
function menucombo(destino,objeto,retorno){
  eval(destino+".location='"+objeto.options[objeto.selectedIndex].value+"'");
  if (retorno) objeto.selectedIndex=0;
}

// Função para fazer a checagem de Campos Obrigatórios
//Modelo
/*
<form name="form1" method="post" action="" onSubmit="return validaform(this)">
*/
function validaform(form)
{
	for (i=0;i<form.length;i++)
	{
		if (form[i].value == "" || form[i].value == "Vazio")
		{
			var nome = form[i].name;
			alert("O " + (i+1) + "º campo é obrigatório.")
			form[i].style.background = "#FFCCCC";
			form[i].select();			
			form[i].focus();
			return false
		}
		else
		{
			form[i].style.background = "#F5F5F5";
		}
	} 
	return true
}

//Formatação de Campos
//Modelos
/*
<input type="text" name="telefone" id="telefone" onKeyPress="return formata(this, '(0§§) §§§§-!§§§', event)">
<input type="text" name="telefone" id="telefone" onKeyPress="return formata(this, '§§§.§§§.§§§-§§', event)">
<input type="text" name="telefone" id="telefone" onKeyPress="return formata(this, '§§/§§/§§§§', event)">
*/
function formata(campo, mask, evt) { 
if(document.all) { // Internet Explorer 
	key = evt.keyCode;
}else{ // Nestcape 
	key = evt.which; 
} 

string = campo.value;  
i = string.length;

if (i < mask.length) {
	if (mask.charAt(i) == '§') {
    	return (key > 47 && key < 58);
	}else{
		if (mask.charAt(i) == '!') {  return true;  }
			for (c = i; c < mask.length; c++) {
				if (mask.charAt(c) != '§' && mask.charAt(c) != '!')
         			campo.value = campo.value + mask.charAt(c);
				else
					if (mask.charAt(c) == '!'){
                		return true;
					}else{
						return (key > 47 && key < 58);
					}
				}
			}//fim do for
		}else
			return false;
}


//Validação de E-mail
//Modelo
/*
<input name="c1" type="text" id="c1" onBlur="return valida(this)">
*/
function valida(email){
if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email.value))) 
    { 
        alert("Favor informar um email válido.") 
        email.focus() 
        return (false) 
    } 	
}


//Validação de CPF
//Modelo
/*
<input name="CPF" type="text" id="CPF" onBlur="JavaScript:verificarCPF(this)">
*/
function verificarCPF(c)
{
var i; 
s = c;
var c = s.substr(0,9); 
var dv = s.substr(9,2); 
var d1 = 0; 
var v = false;
for (i = 0; i < 9; i++) 
{ 
d1 += c.charAt(i)*(10-i); 
} 
if (d1 == 0){ 
alert("CPF Inválido - Não utilize pontos ou traços.")
v = true; 
return false; 
} 
d1 = 11 - (d1 % 11); 
if (d1 > 9) d1 = 0; 
if (dv.charAt(0) != d1) 
{ 
alert("CPF Inválido - Não utilize pontos ou traços.") 
v = true;
return false; 
} 

d1 *= 2; 
for (i = 0; i < 9; i++) 
{ 
d1 += c.charAt(i)*(11-i); 
} 
d1 = 11 - (d1 % 11); 
if (d1 > 9) d1 = 0; 
if (dv.charAt(1) != d1) 
{ 
alert("CPF Inválido - Não utilize pontos ou traços.") 
v = true;
return false; 
} 
if (!v) {
alert(c + "\nCPF Válido") 
}
}


//Ordenação de Tabelas
//Modelo
/*
<table id="TAB1">

  <tr> 
    <td><a href="javascript:sortTable('TAB1',0,true,true,true,true);">Ordenar primeira coluna</a></td>
	<td><a href="javascript:sortTable('TAB1',1,true,true,true,true);">Ordenar segunda coluna</a></td>
	<td><a href="javascript:sortTable('TAB1',2,true,true,true,true);">Ordenar terceira coluna</a></td>
  </tr>
</table>
*/
/*
parâmetro 1 = ID da Tabela
parâmetro 2 = Número da Coluna (inicia em zero)
parâmetro 3 = Se a tabela tem título (ignorar primeira linha)
parâmetro 4 = Se o conteúdo da coluna é número
parâmetro 5 = Ordem descendente
parâmetro 6 = Ignorar última linha
*/
function sortTable(idTabela, numColuna, temTitulo, tipNum, ordDesc, igUltima)
{
idTabela = document.getElementById(idTabela);
if(!numColuna) numColuna=0;

if(igUltima)
	igUltima = 1;
else
	igUltima = 0;
	
var i=0;
if(temTitulo) i=1;
var nRows = idTabela.rows.length;
var t, ele1, ele2;
for(; i < nRows-1-igUltima; i++)
	{
	t=i;
	for(var j=i+1; j < nRows-igUltima; j++)
		{
		ele1 = idTabela.rows[j].cells[numColuna].innerText;
		ele2 = idTabela.rows[t].cells[numColuna].innerText;
		if(tipNum)
			{
			ele1 = parseFloat(ele1);
			ele2 = parseFloat(ele2);
			}
		if(!ordDesc  &&  ele1 < ele2)
			t=j;
		else if(ordDesc  &&  ele1 > ele2)
			t=j;
		}
	idTabela.tBodies[0].insertBefore(idTabela.rows[t], idTabela.rows[i]);
	}
}