// Permite apenas a entrada de dados numéricos, 
// ou de mais dois caracteres especial (Argumento caracter1 e caracter2, no JavaScript)
// Usado no evento OnKeyPress
function SomenteNumero(e, caracter1, caracter2) { 
	//O caracter1 e 2 servem para permitir que estem sejam aceitos
    
    //isNegativo = (campo.value.substring(0, 1) == "-");
	
	if(!event)
	{
		var event = e;
	}

	if (event.ctrlKey) 
	    return false;
	
	var charCode = (navigator.appName == "Netscape") ? event.which : event.keyCode;

	if (charCode == 13 || e.keyCode == 9 || charCode == 8) {
	    return true;
	} 
	
	var var_caracter = String.fromCharCode(charCode);

	if ((var_caracter == caracter1) || (var_caracter == caracter2) || (var_caracter == "-") || ((var_caracter >= "0") && (var_caracter <= "9"))) {
	    return true;
	}
	else {
	    return false;
	} 
}

// Máscara de Data para um TextBox DD/MM/YYYY
// Usado com o evento OnKeyPress
function MascaraData(objeto){ 
	if (objeto.value.length == 2){ objeto.value +="/"; } 
	if (objeto.value.length == 5){ objeto.value +="/"; }
}

// Formata o campo valor
function MascaraMoeda(e,campo)
{
    return MascaraValor(e,campo);
}

function MascaraValor(e, campo) {
    
    try
    {
        isNegativo = (campo.value.substring(0, 1) == "-");
        
        if ( e.keyCode == 45 && campo.value.length > 0 ) return false; 
        campo.value = FiltraCampo(campo);
        vr = campo.value;
        tam = vr.length;

        if (tam <= 2) {
            campo.value = vr;
        }
        if ((tam > 2) && (tam <= 5)) {
            campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
        }
        if ((tam >= 6) && (tam <= 8)) {
            campo.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
        }
        if ((tam >= 9) && (tam <= 11)) {
            campo.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)) {
            campo.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 <= 18)) {
            campo.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);
        }

        if (isNegativo) {
            campo.value = '-' + campo.value;
        }
    }
    catch(e)
    { 
    }
}

// limpa todos os caracteres especiais do campo solicitado
function FiltraCampo(campo) {
    var s = "";
    var cp = "";
    vr = campo.value;
    tam = vr.length;
    for (i = 0; i < tam; i++) {
        if (vr.substring(i, i + 1) != "/" && vr.substring(i, i + 1) != "-" && vr.substring(i, i + 1) != "." && vr.substring(i, i + 1) != ",") {
            s = s + vr.substring(i, i + 1);
        }
    }
    campo.value = s;
    return cp = campo.value
}


//// Máscara para Moeda [999].[999],[99]
//// Usado com o evento OnKeyUp
//function MascaraMoeda(e,campo) {
//	if(!event)
//	{
//		var event = e;
//	}
//	var teclapres = event; 
//	var tecla = (navigator.appName == 'Netscape') ? event.which : event.keyCode; 
//	vr = campo.value; 
//	vr = vr.replace(',', ''); 
//	vr = vr.replace('.', ''); 
//	vr = vr.replace('.', ''); 
//	vr = vr.replace('.', ''); 
//	vr = vr.replace('.', ''); 
//	tam = vr.length; 
//	if (tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105) { 
//		if ( tam <= 2 ) { 
//			campo.value = vr; 
//		} 
//		if ((tam > 2) && (tam <= 5)) { 
//			campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); 
//		} 
//		if ((tam >= 6) && (tam <= 8)) { 
//			campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); 
//		} 
//		if ((tam >= 9) && (tam <= 11)) { 
//			campo.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)) { 
//			campo.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)) { 
//			campo.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 ); 
//		} 
//	} 
//} 



function MascaraCEP(objeto){ 
	if (objeto.value.length == 5){ objeto.value +="-"; }  
} 


// Máscara de Telefone Nacional para um TextBox
// Usado com o Evento OnKeyPress
function MascaraTelefoneNacional(objeto){ 
	if (objeto.value.length < 1){ objeto.value +="("; }  
	if (objeto.value.length == 3){ objeto.value +=")"; }  
	if (objeto.value.length == 8){ objeto.value +="-"; }  
} 


// Máscara de Telefone Internacional para um TextBox
// Usado com o Evento OnKeyPress
function MascaraTelefoneInternacional(objeto){ 
	if (objeto.value.length < 1){ objeto.value +="+"; }  
	if (objeto.value.length == 3){ objeto.value +=" "; }  
} 


// Máscara de CPF para um TextBox
// Usado com o Evento OnKeyPress
function MascaraCPF(cpf) 
{ 
	var mycpf = ''; 
	mycpf = mycpf + cpf.value; 
	if (mycpf.length == 3) { 
		mycpf = mycpf + '.'; 
	   cpf.value = mycpf; 
	} 
	if (mycpf.length == 7) { 
		mycpf = mycpf + '.'; 
		cpf.value = mycpf; 
	} 
	if (mycpf.length == 11) { 
		mycpf = mycpf + '-'; 
		cpf.value = mycpf; 
	} 
	if (mycpf.length == 14) { 
	} 
} 


// Máscara de CNPJ
function MascaraCNPJ(Campo, teclapres){ 
	var tecla = teclapres.keyCode; 
	var vr = new String(Campo.value); 
	vr = vr.replace(".", ""); 
	vr = vr.replace(".", ""); 
	vr = vr.replace("/", ""); 
	vr = vr.replace("-", ""); 
	tam = vr.length + 1 ; 
 
	if (tecla != 9 && tecla != 8){ 
		if (tam > 2 && tam < 6) 
			Campo.value = vr.substr(0, 2) + '.' + vr.substr(2, tam); 
		if (tam >= 6 && tam < 9) 
			Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,tam-5); 
		if (tam >= 9 && tam < 13) 
			Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,tam-8); 
		if (tam >= 13 && tam < 15) 
			Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,4)+ '-' + vr.substr(12,tam-12); 
	}
}


// Máscara HoraMinuto HH24:MI
// Usado com o Evento OnKeyPress
function MascaraHoraMinuto(objeto){ 
	if (objeto.value.length == 2){ objeto.value +=":"; }  
} 


// Valida CPF. Pode receber valor somente numérico ou mascarado
// Vailda a string "s" é ou não um CPF. s deverá conter 11 números
function ValidaCPF(s) 
{ 
	var i; 

	// Limpa String 
	var Digitos = "0123456789"; 
	var temp = ""; 
	var digito = ""; 
		for (var i=0; i<s.length; i++){ 
		digito = s.charAt(i); 
		if (Digitos.indexOf(digito)>=0){temp=temp+digito} 
		} 
	s = temp; 

	var c = s.substr(0,9); 
	var dv = s.substr(9,2); 
	var d1 = 0; 
	for (i = 0; i < 9; i++) 
	{ 
		d1 += c.charAt(i)*(10-i); 
	} 
		if (d1 == 0) return false; 
	d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(0) != d1) 
	{ 
		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) 
	{ 
		return false; 
	} 
		return true; 
} 


// Valida CNPJ
// Vailda a string "s" é ou não um CNPJ 
// s deverá conter 14 números 
function ValidaCNPJ(s) 
{ 
	var i; 

	// Deixa so' os digitos no numero 
	var Digitos = "0123456789"; 
	var temp = ""; 
	var digito = ""; 
		for (var i=0; i<s.length; i++){ 
		digito = s.charAt(i); 
		if (Digitos.indexOf(digito)>=0){temp=temp+digito} 
		} 

	s = temp; 
	var c = s.substr(0,12); 
	var dv = s.substr(12,2); 
	var d1 = 0; 
	for (i = 0; i < 12; i++) 
	{ 
		d1 += c.charAt(11-i)*(2+(i % 8)); 
	} 
		if (d1 == 0) return false; 
		d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(0) != d1) 
	{ 
		return false; 
	} 

	d1 *= 2; 
	for (i = 0; i < 12; i++) 
	{ 
		d1 += c.charAt(11-i)*(2+((i+1) % 8)); 
	} 
	d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(1) != d1) 
	{ 
		return false; 
	} 
		return true; 
} 


// Valida uma Data, no formato DD/MM/YYYY
// Normalmente colocado no evento OnBlur do TextBox
function ValidaData(data) 
{ 
	var dia = data.substr(0,2); 
	var mes = data.substr(3,2); 
	var ano = data.substr(6,4); 
	if (dia < 1 || dia > 31) 
	{ 
		alert("O Dia desta data é inválido!"); 
		return false; 
	} 
	if (mes < 1 || mes > 12) 
	{ 
		alert("O Mês desta data é inválido!"); 
		return false; 
	}  
	else  
	{ 
		if ((mes == 4 || mes == 6 || mes == 9 || mes == 11) && (dia >30)) 
		{ 
			alert("O Dia desta data é inválido!"); 
			return false; 
		 }  
		else 
		{ 
			if (mes == 2) 
			{ 
				var resto = (ano % 4) 
					if ((resto == 0) && (dia > 29)) 
					{ 
						alert("O Dia desta data é inválido!"); 
						return false; 
					} 
					else 
					{ 
						if ((resto != 0 ) && (dia > 28)) 
						{ 
							alert("O Dia desta data é inválido!"); 
							return false; 
						} 
					} 
			} 
		} 
	} 
	if (ano.length < 4) 
	{ 
		alert("O Ano precisa ter 4 dígitos"); 
		return false; 
	}  
	else 
	{ 
		if (ano < 1900 || ano > 2100) 
		{ 
			alert("O Ano desta data é inválido!"); 
			return false; 
		} 
	} 
	return true; 
} 


// Valida HoraMinuto HH24:MI
function ValidaHoraMinuto(data){ 
	var Hora = data.substr(0,2); 
	var minuto = data.substr(3,2); 
	if (Hora < 0 || Hora > 24){ 
		alert("Valor de Hora inválido!"); 
		return false; 
	} 
	if (minuto < 0 || minuto > 59){ 
		alert("Valor de minuto inválido!"); 
		return false; 
	} 
	if ( (Hora.length+minuto.length) < 4){ 
		alert("Horário inválida"); 
		return false; 
	} 
	return true; 
} 


// Valida String. Código q implementa a função TRIM em JavaScript:
// TRIM para JavaScript
String.prototype.trim = function()
{
    // Usando expressões regulares para simular a função TRIM
    return this.replace(/(^\s*)|(\s*$)/g, "");
}



//Pop up information box II (Mike McGrath (mike_mcgrath@lineone.net,  http://website.lineone.net/~mike_mcgrath))
//Permission granted to Dynamicdrive.com to include script in archive
//For this and 100's more DHTML scripts, visit http://dynamicdrive.com
function JanelaOnMouseOver(msg){
	var content = "<table  WIDTH='200' BORDER='2' BORDERCOLOR='#0066CC' CELLPADDING='5' CELLSPACING='0' " +
					"BGCOLOR='FFFEF'><td ALIGN='left'><font color=\\'#000066' size='1' face='Verdana, Arial, Helvetica, sans-serif'>" + msg + "</font></td></table>";
	yyy=Yoffset;
	if(ns4)
	{
		skn.document.write(content);
		skn.document.close();
		skn.visibility="visible";
	}
	if(ns6)
	{
		document.getElementById("dek").innerHTML = content;skn.display='';
	}
	if(ie4)
	{
		document.all("dek").innerHTML = content;skn.display='';
	}
}

function JanelaOnMouseOver_get_mouse(e){
	var x = (ns4||ns6)?e.pageX:event.x + document.body.scrollLeft;
	skn.left = x + Xoffset;
	var y = (ns4||ns6)?e.pageY:event.y + document.body.scrollTop;
	skn.top = y + yyy;
}

function KillJanelaOnMouseOver(){
	yyy = -1000;
	if (ns4)
	{
		skn.visibility = "hidden";
	}
	else if (ns6||ie4)
	{
		skn.display = "none";
	}
}

function upperCase(textBox)
{
	textBox.value = textBox.value.toUpperCase()
	
}
function duploEvento()
{
	if(event.keyCode==13)
	{
	    event.keyCode=9;
	}
}

// Fim do método JanelaOnMouseOver()
function tabela() {

    var tabela = document.createElement("table");
    var tab = document.createElement("tbody");
    tabela.appendChild(tab);
    this.set_id = set_id;
    this.inserir = inserir;
    this.add_th = add_th;
    this.add_td = add_td;
    this.classe = classe;
    this.add_css = add_css;
    this.set_cellpadding = set_cellpadding;
    this.set_cellspacing = set_cellspacing;
    this.alinhamento = alinhamento;
    this.borda = borda;
    this.zebrada = zebrada;

    function zebrada(cor1, cor2) {
        var trs = tabela.getElementsByTagName("tr");
        for (i = 0; i < trs.length; i++)
            if (i % 2 == 0)
            trs[i].style.backgroundColor = cor1;
        else
            trs[i].style.backgroundColor = cor2;
    }
    function add_th(ths) {
        /*ths deve ser um array de conteúdo*/
        var tr = document.createElement("tr");
        for (i = 0; i < ths.length; i++) {
            var th = document.createElement("th");
            var txt = document.createTextNode(ths[i]);
            th.appendChild(txt); tr.appendChild(th);
        }
        tab.appendChild(tr);
    }

    var count = "0";

    function add_td(tds) {
        /*tds deve ser um array de conteúdo*/
        var tr = document.createElement("tr");
        for (i = 0; i < tds.length; i++) {

            var td = document.createElement("td");

            if (i == 0) {
                var t0 = '<input type="\text"\ style="\width: 280px;"\ ';
                t0 += ' value="' + tds[i] + '" id=TxtDescricao' + count + ' name=TxtDescricao' + count + ' />';
                td.innerHTML = t0;
            }
            else if (i == 1) {
                var t1 = '<input type="\text"\ style="\width: 80px;"\ maxlength=10 onkeypress="javascript: if (SomenteNumero(event)) { MascaraData(this); } else { return false; }"\ ';
                t1 += ' value=' + tds[i] + ' id=TxtData' + count + ' name=TxtData' + count + ' />';
                td.innerHTML = t1;
            }
            else if (i == 2) {
                var t2 = '<input type="\text"\ style="\width: 100px;"\ maxlength=12 onkeyup="\MascaraValor(event, this)"\ onkeypress="\javascript: if (!SomenteNumero(event)) { return false; }"\ ';
                t2 += ' value=' + tds[i] + ' id=TxtValor' + count + ' name=TxtValor' + count + ' />';
                td.innerHTML = t2;
            }

            tr.appendChild(td);

        }
        tab.appendChild(tr);
        count = parseInt(count) + 1;
    }

    function classe(nome_class) {
        tabela.className = nome_class;
    }
    function borda(tam) {
        tabela.border = tam;
    }
    function set_id(nome) {
        tabela.name = nome; tabela.id = nome;
    }
    function inserir(id) {
        /*id do objeto que receberá a tabela*/
        if (document.getElementById(id))
            document.getElementById(id).appendChild(tabela);
    }
    function add_css(css) {
        tabela.style.cssText += css;
    }
    function set_cellpadding(tam) {
        tabela.cellPadding = tam;
    }
    function set_cellspacing(tam) {
        tabela.cellSpacing = tam;
    }
    function alinhamento(dir) {
        tabela.align = dir;
    }
}

