
//FUNÇÃO DE CONFIRMAÇÃO PARA A EXCLUSÃO
function exclusao(theform)
{
	conf=window.confirm('Confirma exclusão dos registros selecionados ?');
	if (conf){return true;}else {return false}
}

//MÁSCARAS DAS DATAS
function maskPos (obj)
{ 
    obj.select();
}

function testachrmask (char)
{
    if ((char == '#') || (char == '!') || (char == '>') || (char == '<') || (char == '') || (char == '0'))
    {
        return (true);
    }
    else
    {
        return (false);
    }
}

function maskFormat (obj, mask)
{
    var retorno;
    var tamanho;
    var chrmask;
    retorno = 0;
    tamanho = obj.value.length;
    
	if (tamanho == mask.length)
    {
        chrmask = '';
    }
    else
    {
        chrmask = mask.substr(tamanho, 1);
    }
    
    if ((event.keyCode == 8) || (event.keyCode == 9) || (event.keyCode == 46))
    {
        retorno = 2;
    }
    else
    {
        if (!testachrmask(chrmask))
        {
            while (!testachrmask(chrmask))
            {
                obj.value = obj.value + chrmask;
                tamanho = obj.value.length;
                if (tamanho == mask.length)
                {
                    chrmask = '';
                }
                else
                {
                    chrmask = mask.substr(tamanho, 1);
                }
            }
        }
        if ((testachrmask(chrmask)) && (chrmask != ''))
        {
            if (chrmask == '#')
            {
                if (((event.keyCode >= 96) && (event.keyCode <= 105)) || ((event.keyCode >= 48) && (event.keyCode <= 57)))
                {
                    retorno = 1;
                }
            }
            else
            {
                if (((event.keyCode >= 96) && (event.keyCode <= 105)) || ((event.keyCode >= 48) && (event.keyCode <= 57)) || ((event.keyCode >= 65) && (event.keyCode <= 90)))
                {
                    retorno = 1;
                }
            }
        }
    }
    if (retorno == 0)
    {
        event.returnValue = false;
    }
}

//FUNÇÃO QUE VALIDA CARATERES INVÁLIDOS PARA O CAMPO LOGIN E SENHA
function valida_login_senha(obj)
{
	string = obj.value
	nome = obj.name
	caracter = string.substring(string.length,string.length-1)
	
	caracteres_validos = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9,"
	var array_char = caracteres_validos.split(',');
	
	cont = 0
	
	for (i = 0; i < array_char.length; i++)
	{
		if (caracter == array_char[i].toLowerCase() || caracter == array_char[i].toUpperCase())
			{
			cont = cont + 1
			break
			}
	}
	
	if (cont == 0 )
	{
		alert("Caracter  '" + caracter + "'  inválido! O campo só pode conter números e/ou letras.")
		string = string.substring(0,string.length-2)
		document.form[nome].value = string
	}
}

//FUNÇÃO QUE VALIDA CAMPO NUMÉRICO
function valida_numero(obj)
{
	string = obj.value
	nome = obj.name
	caracter = string.substring(string.length,string.length-1)
	
	caracteres_validos = "0,1,2,3,4,5,6,7,8,9,"
	var array_char = caracteres_validos.split(',');
	
	cont = 0
	
	for (i = 0; i < array_char.length; i++)
	{
		if (caracter == array_char[i].toLowerCase() || caracter == array_char[i].toUpperCase())
			{
			cont = cont + 1
			break
			}
	}
	
	if (cont == 0 )
	{
		alert("Caracter  '" + caracter + "'  inválido! Campo apenas numérico.")
		string = string.substring(0,string.length-1)
		document.form[nome].value = string
	}
}

//FUNÇÃO QUE VALIDA CARATERES INVÁLIDOS
function valida_caracter(obj)
{
	string = obj.value
	nome = obj.name
	caracter = string.substring(string.length,string.length-1)
	
	caracteres_validos = "a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|0|1|2|3|4|5|6|7|8|9| |á|Á|é|É|í|Í|ó|Ó|ú|Ú|ã|Ã|à|À|õ|Õ|â|Â|ê|Ê|ô|Ô|ç|:|.|@|/|&|_|?|,|;|!|$|%|(|)|<|>|-|+|=|[|]|{|}|*|"
	var array_char = caracteres_validos.split('|');
	
	cont = 0
	
	for (i = 0; i < array_char.length; i++)
	{
		if (caracter == array_char[i].toLowerCase() || caracter == array_char[i].toUpperCase())
			{
			cont = cont + 1
			break
			}
	}
	
	if (cont == 0 )
	{
		alert("Caracter  '" + caracter + "'  inválido! O campo só pode conter números e/ou letras.")
		string = string.substring(0,string.length-2)
		document.form[nome].value = string
	}
}

//FUNÇÃO QUE VALIDA CAMPO REAL
function valida_real(obj)
{
	string = obj.value
	nome = obj.name
	caracter = string.substring(string.length,string.length-1)
	
	caracteres_validos = "0,1,2,3,4,5,6,7,8,9,.,"
	var array_char = caracteres_validos.split(',');
	
	cont = 0
	
	for (i = 0; i < array_char.length; i++)
	{
		if (caracter == array_char[i].toLowerCase() || caracter == array_char[i].toUpperCase())
			{
			cont = cont + 1
			break
			}
	}
	
	if (cont == 0 )
	{
		alert("Caracter  '" + caracter + "'  inválido! Campo apenas numérico.")
		string = string.substring(0,string.length-1)
		document.form[nome].value = string
	}
}

//FUNÇÃO QUE VALIDA CAMPO PREÇO
function FormataPreco(obj)
{
	if ((event.keyCode == 37) || (event.keyCode == 39)){
		return;
	}

	InStr = new String(obj.value)
	InStr = InStr.replace(',', '');

	if (event.keyCode != 8){
		if (InStr.length == 2){
			objvalue = InStr + ',';
			return;
		}
		if (InStr.length > 2){
			a = InStr.slice(0, ((InStr.length) - 2)) + ',' + InStr.slice((InStr.length - 2), (InStr.length));
			obj.value = a;
			return;
		}
	}
}

//MENU COMBO
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


function PspForm(fName) {
	this.base = eval("document."+fName);
}
/* valida email */
function PspValidaEmail(campo) {
	invalidChars = " /:,;";
	email = eval("this.base."+campo+".value");
	if (this.isEmpty(campo)) return false;
	for (i=0; i < invalidChars.length; i++) {
		badChar = invalidChars.charAt(i);
		if (email.indexOf(badChar,0) > -1) return false;
	}
	atPos = email.indexOf("@",1);
	if (atPos == -1) return false;
	if (email.indexOf("@",atPos+1) != -1) return false;
	periodPos = email.indexOf(".",atPos);
	if (periodPos == -1) return false;
	if (periodPos+3 > email.length) return false;
	return true;
}
/* valida CPF */
function PspValidaCpf(campo) {
	var soma1 = resto = dig1 = dig2 = 0;
	nCpf = eval("this.base."+campo+".value");
	invalidChars = " /:,;-..";
	for (i=0; i < invalidChars.length; i++) {
		badChar = invalidChars.charAt(i);
		nCpf = nCpf.replace(badChar,"");
	}
	for (var i = 10; i > 1; i --) { soma1 += parseInt(nCpf.substr(nCpf.length-i-1, 1)) * i }
	resto = soma1 % 11;
	switch (resto) {
		case 0:
		case 1:
			dig1 = 0
			break
		default:
			dig1 = 11 - resto
			break
	}
	soma1 = 0;
	for (i = 11; i > 2; i--) { soma1 += parseInt(nCpf.substr(nCpf.length-i,1)) * i  }
	soma1 = soma1 + dig1 * 2;
	resto = soma1 % 11;
	switch (resto) {
		case 0:
		case 1:
			dig2 = 0
			break
		default:
			dig2 = 11 - resto
			break
	}
	var controle = String(dig1) + String(dig2);
	if (controle == nCpf.substr(9)) { return true } else { return false }
}
/* verifica CNPJ */
function PspCNPJ(campo) {
	VCNPJ = eval("this.base."+campo+".value");
	var NewCGC = "";
	var CGC = VCNPJ;

	invalidChars = " /:,;-..";
	for (i=0; i < invalidChars.length; i++) {
		badChar = invalidChars.charAt(i);
		VCNPJ = VCNPJ.replace(badChar,"");
		CGC = CGC.replace(badChar,"");
	}

	if (
	VCNPJ.length != 14 || VCNPJ == "00000000000000" || VCNPJ == "11111111111111" ||
	VCNPJ == "22222222222222" ||	VCNPJ == "33333333333333" || VCNPJ == "44444444444444" ||
	VCNPJ == "55555555555555" || VCNPJ == "66666666666666" || VCNPJ == "77777777777777" ||
	VCNPJ == "88888888888888" || VCNPJ == "99999999999999"
	) 
	{ return false; }
	var DVCGC = CGC.substring(0,12);

	var s1 = 0;
	for (i=1;i<=4;i++) { s1 = s1 + ((DVCGC.charAt(i-1))*(6-i)); }
	for (i=5;i<=12;i++) { s1 = s1 + ((DVCGC.charAt(i-1))*(14-i)); }
	r1 = s1 % 11;
	if (r1<2) { dv1=0; } else { dv1 = 11 - r1; }

	var s2 = dv1*2;
	for (i=1;i<=5;i++) { s2 = s2 + ((DVCGC.charAt(i-1))*(7-i)); }
	for (i=6;i<=12;i++) { s2 = s2 + ((DVCGC.charAt(i-1))*(15-i)); }
	r2 = s2 % 11;
	if (r2<2) { dv2=0; } else { dv2 = 11 - r2; }
	var DV = "";
	DV = DV + dv1 + dv2;

	var NewDV = CGC.substring(12,14)
	if (NewDV==DV) { return true; } else { return false; }
}
/* verifica se o campo esta vazio */
function PspIsEmpty(campo) {
	if (eval("this.base."+campo+".value") == "") { return true; } else { return false; }
}
/* verifica se o campo e numerico */
function PspIsNum(campo) {
	if (isNaN(eval("this.base."+campo+".value"))) return false
	return true
}
/* verifica se o campo e string */
function PspIsStr(campo) {
	if (isNaN(eval("this.base."+campo+".value"))) { return true } else { return false }
}
/* retorna quantos caracteres tem no campo */
function PspLength(campo) {
	return eval("this.base."+campo+".value.length");
}
/* verifica caracteres invalidos */
function PspValidChar(campo) {
	invalidChars = "@/1:4,;5&#®$6!?7¨%89*-+{2}3[0]\)(><|=|ºÜÖÄ";
	cont = eval("this.base."+campo+".value");
	for (i=0; i < invalidChars.length; i++) {
		asc =  invalidChars.charAt(i);
		if (cont.indexOf(asc, 0) > -1) return false
	}
	return true
}
/* faz busca de caracter definido */
function PspFind(campo,c) {
	cont = eval("this.base."+campo+".value");
	if (cont.indexOf(c, 0) > - 1) { return true } else { return false }
}
/* seta focus */
function PspFocus(campo) {
	return eval("this.base."+campo+".focus()");
}
/* faz troca de OPTION de um SELECT pra outro */
function PspChangeOption(from, to) {
	this.cTo = eval("this.base."+to);
	this.cFrom = eval("this.base."+from);
	qtC = this.cFrom.length;
	for (f=0; f < qtC; f++) {
		if (this.cFrom.selectedIndex!=-1) {
			this.cTo.options[this.cTo.length] = new Option(this.cFrom.options[this.cFrom.selectedIndex].text, this.cFrom.options[this.cFrom.selectedIndex].value);
			this.cFrom.options[this.cFrom.selectedIndex] = null;
		}
	}
}
/* troca comboBox */
var PspComboContent = new Array ();
function PspSetCombo(campo,masterId) {
	var SelectedIndex = 0;
	var Combo = eval("this.base."+campo);

	for (idxs = Combo.options.length - 1; idxs > 0; idxs--)
		Combo.options[idxs] = null;
		Combo.options[0] = new Option(" ",0);
		var j = 1;
		for(i=0; i < PspComboContent.length; i++) {
			if (PspComboContent[i][0] == masterId) {
				var optionNew = new Option(PspComboContent[i][2], PspComboContent[i][2]);
				Combo.options[j] = optionNew;
				j++;
			}
		}
	Combo.options[0].selected = true;
}
/* submit no form */
function PspSubmit() {
	return this.base.submit()
}

PspForm.prototype.email = PspValidaEmail
PspForm.prototype.cpf = PspValidaCpf
PspForm.prototype.cnpj = PspCNPJ
PspForm.prototype.isEmpty = PspIsEmpty
PspForm.prototype.isNum = PspIsNum
PspForm.prototype.isStr = PspIsStr
PspForm.prototype.length = PspLength
PspForm.prototype.validChar = PspValidChar
PspForm.prototype.find = PspFind
PspForm.prototype.focus = PspFocus
PspForm.prototype.changeOption = PspChangeOption
PspForm.prototype.setCombo = PspSetCombo
PspForm.prototype.submit = PspSubmit

//valida tamanho do campo textarea
function valida_tamanho(formulario,nome,obj,contador,tamanho,opc,mensagem){
	var intLim = tamanho;
	var contador;
	var temp;
	intLng = obj.value.length;
	
	contador.value = obj.value.length;
	
	if (opc == 1){
		if(intLng > intLim){
			window.alert("Você ultrapassou o tamanho limite do campo!");
		    eval("temp = document." + formulario.name + "." + nome + ".focus();");
			return false;
		}
	}
	else{
		if (intLng > intLim){
			contador.style.color = "#ff0000";
		    eval("temp = " + mensagem + ".style.display = '';");
			return;
		}
		else{
			contador.style.color = "#000000";
		    eval("temp = " + mensagem + ".style.display = 'none';");
			return;
		}
	}
}
