// Máscara de Campos Texto

addEvent = function(o, e, f, s)
{
    var r = o[r = "_" + (e = "on" + e)] = o[r] || (o[e] ? [[o[e], o]] : []), a, c, d;
    r[r.length] = [f, s || o], o[e] = function(e)
	{
        try
	{
            (e = e || event).preventDefault || (e.preventDefault = function(){e.returnValue = false;});
            e.stopPropagation || (e.stopPropagation = function(){e.cancelBubble = true;});
            e.target || (e.target = e.srcElement || null);
            e.key = (e.which + 1 || e.keyCode + 1) - 1 || 0;
        }catch(f){}
        for(d = 1, f = r.length; f; r[--f] && (a = r[f][0], o = r[f][1], a.call ? c = a.call(o, e) : (o._ = a, c = o._(e), o._ = null), d &= c !== false));
        return e = null, !!d;
    }
};

removeEvent = function(o, e, f, s){
    for(var i = (e = o["_on" + e] || []).length; i;)
        if(e[--i] && e[i][0] == f && (s || o) == e[i][1])
            return delete e[i];
    return false;
};

MaskInput = function(f, m){
	function mask(e){
		var patterns = {"1": /[A-Z]/i, "2": /[0-9]/, "4": /[\xC0-\xFF]/i, "8": /./ },
			rules = { "a": 3, "A": 7, "9": 2, "C":5, "c": 1, "*": 8};
		function accept(c, rule){
			for(var i = 1, r = rules[rule] || 0; i <= r; i<<=1)
				if(r & i && patterns[i].test(c))
					break;
				return i <= r || c == rule;
		}
		var k, mC, r, c = String.fromCharCode(k = e.key), l = f.value.length;
		(!k || k == 8 ? 1 : (r = /^(.)\^(.*)$/.exec(m)) && (r[0] = r[2].indexOf(c) + 1) + 1 ?
			r[1] == "O" ? r[0] : r[1] == "E" ? !r[0] : accept(c, r[1]) || r[0]
			: (l = (f.value += m.substr(l, (r = /[A|9|C|\*]/i.exec(m.substr(l))) ?
			r.index : l)).length) < m.length && accept(c, m.charAt(l))) || e.preventDefault();
	}
	for(var i in !/^(.)\^(.*)$/.test(m) && (f.maxLength = m.length), {keypress: 0, keyup: 1})
		addEvent(f, i, mask);
};

// MÁSCARA DE MOEDA
function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13 || whichCode == 8 || whichCode == 46) return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) return false; // Chave inválida
    len = objTextBox.value.length;
    for(i = 0; i < len; i++)
        if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;
    aux = '';
    for(; i < len; i++)
        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) objTextBox.value = '';
    if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;
    if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
        objTextBox.value += aux2.charAt(i);
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    }
    return false;
}

// Fim Máscara de Campos Texto

//Função TRIM
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, "");
}

String.prototype.ltrim = function() {
	return this.replace(/^\s+/, "");
}

String.prototype.rtrim = function() {
	return this.replace(/\s+$/, "");
}

function Verifica_Email(Valor)
{
	var filter = RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
	if (!filter.test(Valor))
	{
		return false;
	}
	return true;
}

function Verifica_CEP(Valor)
{
	var filter = RegExp(/^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/);
	if (!filter.test(Valor))
	{
		return false;
	}
	return true;
}

function validaCNPJ(cnpj)
{
	cnpj = cnpj.value;
	//var cnpj = document.getElementById(val).value;
	//REMOVE CARACTERES INVALIDOS
	// /gi REMOVEM O QUE SE PROCURA EM TODA A STRING E NÃO DIFERENCIA MINUSCULA DE MAIUSCULA
	cnpj = cnpj.replace(".","");
	cnpj = cnpj.replace(".","");
	cnpj = cnpj.replace("/","");
	cnpj = cnpj.replace("-","");
	
	var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;

	digitos_iguais = 1;

	for (var i=0; i < cnpj.length - 1; i++)
	{
		if (cnpj.charAt(i) != cnpj.charAt(i + 1))
		{
			digitos_iguais = 0;
			break;
		}
	}

	if (!digitos_iguais)
	{
		tamanho = cnpj.length - 2
		numeros = cnpj.substring(0,tamanho);
		digitos = cnpj.substring(tamanho);
		soma = 0;
		pos = tamanho - 7;

		for (var i=tamanho; i >= 1; i--)
		{
			soma += numeros.charAt(tamanho - i) * pos--;
			if (pos < 2)
			{
				pos = 9;
			}
		}
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;

		if (resultado != digitos.charAt(0))
		{
			//alert('CNPJ inválido!!');
			return false;
		}

		tamanho = tamanho + 1;
		numeros = cnpj.substring(0,tamanho);
		soma = 0;
		pos = tamanho - 7;
		
		for (i = tamanho; i >= 1; i--)
		{
			soma += numeros.charAt(tamanho - i) * pos--;
			if (pos < 2)
			{
				pos = 9;
			}
		}

		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;

		if (resultado != digitos.charAt(1))
		{
			//alert('CNPJ inválido!!');
			return false;
		}

		return true;
	}
	else
	{
		//alert('CNPJ inválido!!');
		return false;
	}
}

function validaCPF(ipt)
{
	/*
	var i;
	s = ipt.value;

	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)
	{
		//alert("CPF Invalido")
		return false;
	}
	 
	d1 = 11 - (d1 % 11);
	 
	if (d1 > 9) d1 = 0;
	 
	if (dv.charAt(0) != d1)
	{
		//alert("CPF Invalido")
		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 Invalido")
		return false;
	}
	 
	return true;
	*/
	
	ipt = ipt.value;
	//var ipt = document.getElementById(val).value;
	//REMOVE CARACTERES INVALIDOS
	// /gi REMOVEM O QUE SE PROCURA EM TODA A STRING E NÃO DIFERENCIA MINUSCULA DE MAIUSCULA
	ipt = ipt.replace(".","");
	ipt = ipt.replace(".","");
	//ipt = ipt.replace(".","");
	ipt = ipt.replace("-","");
	ipt = ipt.replace("/","");
	
	if ((ipt == "00000000000") || (ipt == "11111111111") || (ipt == "22222222222") || (ipt == "33333333333")
		|| (ipt == "44444444444") || (ipt == "55555555555") || (ipt == "66666666666") || (ipt == "77777777777")
		|| (ipt == "88888888888") || (ipt == "99999999999"))
	{
		//alert('CPF inválido!!');
		return false;
	}
	
	var p1cpf = new String(ipt.substr(0, 3));
	var p2cpf = new String(ipt.substr(3, 3));
	var p3cpf = new String(ipt.substr(6, 3));

	var c = p1cpf + p2cpf + p3cpf;

	var dv = ipt.substr(9,2);
	var d1 = 0;

	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(10-i);
	}
	if (d1 == 0)
	{
		//alert('CPF inválido!!');
		return false;
	}

	d1 = 11 - (d1 % 11);

	if (d1 > 9)
		d1 = 0;

	if (dv.charAt(0) != d1)
	{
		//alert('CPF inválido!!');
		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!!');
		return false;
	}

	return true;
}

function SomenteNumero(e)
{
    var tecla = (window.event) ? event.keyCode : e.which;
    if((tecla > 47 && tecla < 58))
    	return true;
    else
    {
    	if (tecla != 8)
    		return false;
    	else
    		return true;
    }
}

//MENU
function MM_swapImgRestore() 
{ //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function IsDate(day, month, year)
{
	var date = new Date();
	var blnRet = false;
	var blnDay;
	var blnMonth;
	var blnYear;

	date.setFullYear(year, month -1, day);
	blnDay   = (date.getDate() == day);
	blnMonth = (date.getMonth() == month -1);
	blnYear  = (date.getFullYear() == year);

	if (blnDay && blnMonth && blnYear)
		blnRet = true;

	return blnRet;
}
