var NS4 = (document.layers);
var IE4 = (document.all);
var win = this;
var n   = 0;

function MData(Campo){
    separador = '/'; 
    conjunto1 = 2;
    conjunto2 = 5;
    if (Campo.value.length == conjunto1){
      Campo.value = Campo.value + separador;
    }
    if (Campo.value.length == conjunto2){
      Campo.value = Campo.value + separador;
    }
}

function MM_FSNum() {
	if ((window.event.keyCode < 48) || ((window.event.keyCode > 57)) && (window.event.keyCode != 13)) window.event.returnValue=false;
}

function MM_FSFloat() {if ((window.event.keyCode < 48) || (window.event.keyCode > 57) || (window.event.keyCode != 44)) window.event.returnValue=false; if (window.event.keyCode == 46) window.event.keyCode=44;window.event.returnValue=true;}

function MM_FMData(obj) {
	if ((obj.value.length == 2) || (obj.value.length == 5)) 
		obj.value+='/';
}

function MM_FMHora(obj) {
	if ((obj.value.length == 2) || (obj.value.length == 5)) obj.value+=':'
}

function MM_IsDate(obj) {
	if(/^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/.test(obj.value)) 
		return(true); 
	else if (obj.value != null && obj.value != "") {
		alert("Formato de data inválido!");
		obj.select();
		obj.focus();
		return(false);
	} 
}

function MM_Checar() {
	var v = true;
	var obj = "";
	var objFocus="";
	for (i=0; i<document.forms[0].length; i++) {
		if ((typeof(document.forms[0][i].vazio) == "string")) 
			if(document.forms[0][i].vazio.toUpperCase()=="false".toUpperCase()) {
				if (document.forms[0][i].value == "")
					if (typeof(objFocus) != 'object')
						 if (objFocus.disabled == false)
						    objFocus=document.forms[0][i];
					if (document.forms[0][i].className.substring(document.forms[0][i].className.length-4, document.forms[0][i].className.length) == '-MSG'){
						document.forms[0][i].className = document.forms[0][i].className.substring(0, document.forms[0][i].className.length-4);
					}
					if ((document.forms[0][i].value == "") && (document.forms[0][i].disabled != true)) {
						v = false;
						obj=document.forms[0][i];
						obj.className = obj.className + '-MSG';
					}
			}
	}
	if (v == true) 
		return true;
	else {
		if (typeof(objFocus) == 'object') 
		  if (objFocus.disabled == false)
			objFocus.focus();
		return false;
	}
}

function MM_FMEsq(obj) {
	obj.dir='rtl';
}

function MM_FMDir(obj) {
	obj.dir='ltr';
}

function MM_FMCep(obj) {
	if (obj.value.length == 5) 
		obj.value+='-';
}



function MM_FSMoney() {
	if ((window.event.keyCode < 48) ||(window.event.keyCode > 57))
		window.event.returnValue=false;
	if (window.event.keyCode == 46) {
		window.event.keyCode=44;window.event.returnValue=true;
	}
	if (window.event.keyCode == 44) 
		window.event.returnValue=true;
}

String.prototype.MM_Currency = function(c) {
	if(c == undefined) 
		c = 2;
	var t = (parseInt(this)<0) ? this.substr(1) : this;
	t = t.replace(".", ",");
	t = t.replace("R$", "");
	t = t.replace(" ", "");
	if (t.search(",") == -1)
		t += ",00";
	var p, d = (t=t.split(","))[1].substr(0, c);
	for(p = (t=t[0]).length; (p-=3) > 0;) {
		t = t.substr(0, p) + "." + t.substr(p);
	};
	return "R$ " + (parseInt(this)<0 ?"-" :"")+t+((d.length)? ","+d+Array(c+1-d.length).join(0) : "");
}

String.prototype.MM_Currency1 = function(c) {
	if(c == undefined) 
		c = 2;
	var t = (parseInt(this)<0) ? this.substr(1) : this;
	t = t.replace(".", ",");
	t = t.replace("R$", "");
	t = t.replace(" ", "");
	if (t.search(",") == -1)
		t += ",00";
	var p, d = (t=t.split(","))[1].substr(0, c);
	for(p = (t=t[0]).length; (p-=3) > 0;) {
		t = t.substr(0, p) + "." + t.substr(p);
	};
	return "R$ " + (parseInt(this)<0 ?"-" :"")+t+((d.length)? ","+d+Array(c+1-d.length).join(0) : "");
}

String.prototype.MM_CurToFloat = function() {
	var r = this.replace("R$", "");
	r = r.replace(" ", "");
	r = r.replace(",", ".");
	r = parseFloat(r);return r;
}

String.prototype.MM_Focou = function() {
	var r = this.replace("R$", "");
	r = r.replace(" ", "");
	for (i=0; i <= r.length; i++) 
		if (r.charAt(i) == ".") 
			r = r.replace(".", "");
	return r;
}

String.prototype.MM_FocouConta = function() {
	var r = this.replace("R$", "");
	r = r.replace(" ", "");
	r = r.replace(".", "");
	r = r.replace(",", ".");  
	if (r.charAt(0) == "(") {
		r = r.replace("(", "");
		r = r.replace(")", "");
		r = parseFloat(r);r = r * -1;
	}
	r = parseFloat(r);
	return r;
}

function MM_Entrou(obj) {
	obj.value=obj.value.MM_Focou();
	obj.dir="ltr";
	obj.select();
	obj.focus();
}

MM_Calculado = "";

function MM_IsNumeric(obj) {
	var r = obj.value; 
	for (i=0; i <= r.length; i++) 
		if (r.charAt(i) == ".") 
			r = r.replace(".", ""); 
	r = r.replace("R$", "");
	r = r.replace(" ", "");
	r = r.replace(",", "."); 
	if (MM_IsNum(r) == false) {
		alert("O campo preenchido incorretamente!");	
		obj.focus(); 
		return(false);
	} 
	return(true);
}

function MM_Saiu1(obj) {
	if (MM_IsNumeric(obj) == true) {
		if (obj.value.length > 0) {
			obj.value=obj.value.MM_Currency(2);
			obj.dir="rtl";
			MM_IsNumeric(obj);
		} else { 
			obj.value=0; 
			obj.value=obj.value.MM_Currency(2); 
			obj.dir="rtl";
		}
	} else {
		obj.value=0;
		obj.value=obj.value.MM_Currency(2);
		obj.dir="rtl";
	}
	if (typeof(MM_Calculado) == 'function')
		MM_Calculado();
}

function MM_Saiu(obj) {
	if (MM_IsNumeric(obj) == true) {
		if (obj.value.length > 0) {
			obj.value=obj.value.MM_Currency();
			obj.dir="rtl";
			MM_IsNumeric(obj);
		} else { 
			obj.value=0; 
			obj.value=obj.value.MM_Currency(); 
			obj.dir="rtl";
		}
	} else {
		obj.value=0;
		obj.value=obj.value.MM_Currency();
		obj.dir="rtl";
	}
	if (typeof(MM_Calculado) == 'function')
		MM_Calculado();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//                                       Função de Mascara                                         //
//  ** Legenda **                                                                                  //
//       9 = Somente Numero                                                                        //
//       ? = Somente Letras                                                                        //
//       > = Letras e Numeros                                                                      //
//       X = Somente Numeros e a letra X                                                           //
//  ** Exemplo **                                                                                  //
//       <input type"text" maxlength="11" onKeyDown="FF_Mascara('9.99/9999-X');">                  //
//       <input type"text" maxlength="11" onKeyDown="FF_Mascara('(99) 9999-9999');">               //
/////////////////////////////////////////////////////////////////////////////////////////////////////

function FF_Mascara(Mascara) {
	var obj = event.srcElement;
	if ((event.keyCode >= 96) && (event.keyCode <= 105))
		event.keyCode = event.keyCode-48;
	var Numeros = new RegExp(/^[0-9]+$/i);  /* Caracter representante '9'*/
	var Letras = new RegExp(/^[a-z]+$/i);   /*Caracter representante '?'*/
	var Alfa = new RegExp(/^[0-9a-z]+$/i);  /* Caracter representante '>'*/
	//  Se Backspace permite
	if (event.keyCode == 8) {
		obj.value = obj.value.substring(0, obj.value.length-1);
		event.keyCode=0;
		event.returnValue=false;
		return;
	}
    //  Se Shift + Tab permite
	if ((event.keyCode == 16) && (event.keyCode == 8))
	  return;
	//  Se Shift ou Ctrl ñ permite
	if ((event.keyCode == 16) || (event.keyCode == 17))
		return;
	//  Se Tab permite
	if (event.keyCode == 9)
	  return;
	if (obj.value.length < obj.maxLength) {
		for (i=0; i<= obj.value.length;i++) {
			var carac = Mascara.charAt(obj.value.length);
			if ((carac != '9') && (carac != '?') && (carac != '>') && (carac != 'X')) {
				obj.value += carac;
				carac = Mascara.charAt(obj.value.length);
				switch(carac) {
					case '9' : if (Numeros.test(String.fromCharCode(event.keyCode))) 
					             obj.value += String.fromCharCode(event.keyCode);
							   	event.keyCode=0;
								event.returnValue=false;
					case '?' : if (Letras.test(String.fromCharCode(event.keyCode))) 
					             obj.value += String.fromCharCode(event.keyCode);
							   event.keyCode=0;
							   event.returnValue=false;
					case '>' : if (Alfa.test(String.fromCharCode(event.keyCode))) 
					             obj.value += String.fromCharCode(event.keyCode);
							   event.keyCode=0;
							   event.returnValue=false;
				}
			} else {
				switch(carac) {
					case '9' : if (Numeros.test(String.fromCharCode(event.keyCode))) 
					             obj.value += String.fromCharCode(event.keyCode);
							   event.keyCode=0;
							   event.returnValue=false;
								break;
					case '?' : if (Letras.test(String.fromCharCode(event.keyCode))) 
					             obj.value += String.fromCharCode(event.keyCode);
							   event.keyCode=0;
							   event.returnValue=false;
				break;
					case '>' : if (Alfa.test(String.fromCharCode(event.keyCode))) 
					             obj.value += String.fromCharCode(event.keyCode);
							   event.keyCode=0;
							   event.returnValue=false;
							   break;
				}
			}
		}
	} else {
		event.keyCode=0;
		event.returnValue=false;
	}
}
///////////////////////////////////////////////////////////////////////
//     Funções de cadastro comuns (Telefone, CPF, Data, CEP, etc...) //
///////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////
//   Objeto para criar campos ocultos ao abrir uma nova janela   //
//     Exemplo de uso                                            //
//          var Objetos = createOculto();                        //
//          Objetos.add('Id_Pedido', 2);                         //
//          Objetos.add('Id_Pedido_Fechado', 5);                 //
//			Objetos.onchange = function() {                      //
//				alert(Objetos.value);                            //
//			}                                                    //
///////////////////////////////////////////////////////////////////
function createOculto() {
	var TOculto = function() {
		this.itens = new Array();
		this.name = 'TOculto';
		this.value = '';
		this.method = 'post';
	}
	
	TOculto.prototype.add = function(Campo, Valor) {
		this.itens[this.itens.length] = new Object();
		this.itens[this.itens.length-1].Campo = Campo;
		this.itens[this.itens.length-1].Valor = Valor;
	}
	
	TOculto.prototype.count = function() {
		return(this.itens.length);
	}
	
	TOculto.prototype.setMethod=function(metodo) {
		this.method=metodo;
	}
	
	TOculto.prototype.onchange = '';
	
	TOculto.prototype.send = function(path) {
		if (typeof(Ajax)=='function')
			Ajax(path, this, this.method);
		else
			alert('erro, faltando a implementação Ajax.');
	}

	return(new TOculto());
}

function MCNPJ(Campo){
    separador1 = '.'; 
	separador2 = '-';
	separador3 = '/';
    conjunto1 = 2;
    conjunto2 = 6;
	conjunto3 = 10;
	conjunto4 = 15;
   
   if (Campo.value.length == conjunto1){
      Campo.value = Campo.value + separador1;
    }
	if (Campo.value.length == conjunto2){
      Campo.value = Campo.value + separador1;
    }
    if (Campo.value.length == conjunto3){
      Campo.value = Campo.value + separador3;
    }
  
  if (Campo.value.length == conjunto4){
      Campo.value = Campo.value + separador2;
    }

}

function MCPF(Campo){
    separador1 = '.'; 
	separador2 = '-'; 
    conjunto1 = 3;
    conjunto2 = 7;
	conjunto3 = 11;
    if (Campo.value.length == conjunto1){
      Campo.value = Campo.value + separador1;
    }
	if (Campo.value.length == conjunto2){
      Campo.value = Campo.value + separador1;
    }
    if (Campo.value.length == conjunto3){
      Campo.value = Campo.value + separador2;
    }
}


function MData(Campo){
    separador = '/'; 
    conjunto1 = 2;
    conjunto2 = 5;
    if (Campo.value.length == conjunto1){
      Campo.value = Campo.value + separador;
    }
    if (Campo.value.length == conjunto2){
      Campo.value = Campo.value + separador;
    }
}


function MCEP(Campo){
    separador = '-'; 
    conjunto1 = 5;
    if (Campo.value.length == conjunto1){
      Campo.value = Campo.value + separador;
    }
}



function VData(obj){
	if (!(/^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/.test(obj.value)))	{
		alert("Favor informar uma data válida (dd/mm/aaaa).")
		obj.focus();
		obj.select();
		return (false)
	}
}


function VEmail(obj){
	if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(obj.value)))	{
		alert("Favor informar um e-mail válido.")
		obj.focus();
		obj.select();
		return (false)
	}
}


function MTelefone(obj){
  if (obj.value.length == 0) obj.value+='(';
  if (obj.value.length == 3) obj.value+=')';
  if (obj.value.length == 4) obj.value+=' ';
  if (obj.value.length == 9) obj.value+='-';
}


function MSo_Numeros() {
	if ((window.event.keyCode < 48) ||((window.event.keyCode > 57)) && (window.event.keyCode != 13)) 
	window.event.returnValue=false;
}


////////////////////////////////////////////////////////////////////////////////////////////////
//     Função que ao digitar c ou C abre uma calculadora e ainda retorna o valor para o campo //
////////////////////////////////////////////////////////////////////////////////////////////////
function FCalculadora(obj) {
	var Tecla = window.event.keyCode;
	var Loc = '';
	if ((Tecla == 99) || (Tecla == 67)) {
		event.keyCode=0;
		event.returnValue=false;
		if (arguments[1] != '') {
			for (i=1; i <= arguments[1]; i++) {
				Loc = Loc + '../';
			}
		}
		window.open(Loc + '../Calculadora.asp?Obj='+obj.name, 'Calculadora', 'toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,menubar=no,width=185,height=231');
	}
}


//////////////////////////////////////////////////////////////////////////////////
//     Função que só aceita números, virgula e o ponto transforma em virgula.   //
//////////////////////////////////////////////////////////////////////////////////
function FMoney() {
	var Tecla = window.event.keyCode;
	if ((Tecla != 46) && (Tecla != 48) && (Tecla != 49) && (Tecla != 50) && (Tecla != 51) && (Tecla != 52) && (Tecla != 53) && (Tecla != 54) && (Tecla != 55) && (Tecla != 56) && (Tecla != 57) && (Tecla != 44) && (Tecla != 13)) {
		event.keyCode=0;
		event.returnValue=false;
	}
	if (Tecla == 46) {
		event.keyCode=44;
		event.returnValue=true;
	}
}



//////////////////////////////////////////////////////////////////////////////////
//     Função que só aceita números.                                            //
//////////////////////////////////////////////////////////////////////////////////
function FSNumero() {
	var Tecla = window.event.keyCode;
	if ((Tecla != 48) && (Tecla != 49) && (Tecla != 50) && (Tecla != 51) && (Tecla != 52) && (Tecla != 53) && (Tecla != 54) && (Tecla != 55) && (Tecla != 56) && (Tecla != 57) && (Tecla != 13)) {
		event.keyCode=0;
		event.returnValue=false;
	}
}





//////////////////////////////////////////////////////////////////////////////////
//     Função que move o conteúdo para esquerda.                                //
//////////////////////////////////////////////////////////////////////////////////
function FMEsquerda(objeto) {
  campo = eval (objeto);
  campo.dir = 'ltr';
  campo.select();
}


//////////////////////////////////////////////////////////////////////////////////
//     Função que move o conteúdo para direita.                                //
//////////////////////////////////////////////////////////////////////////////////
function FMDireita(objeto, Mone) {
  campo = eval (objeto);
  campo.dir = 'rtl';
  if (Mone == 1) {
    campo.value = Money(campo.value);
  }
  if (Mone == 2) {
    campo.value = Money2(campo.value, 2);
  }
}



//////////////////////////////////////////////////////////////////////////////////
//     Função que serve de máscara.                                             //
//////////////////////////////////////////////////////////////////////////////////
function FMascara(Tipo, Obj) {
  Campo = eval(Obj);
  if (Tipo == "Etiqueta") {
    Separador1 = '.';
	Separador2 = '/';
	Separador3 = '-';
	Conjunto1 = 1;
	Conjunto2 = 4;
	Conjunto3 = 9;
    if (Campo.value.length == Conjunto1) {
	  Campo.value = Campo.value + Separador1;
	}
	if (Campo.value.length == Conjunto2) {
	  Campo.value = Campo.value + Separador2;
	}
	if (Campo.value.length == Conjunto3) {
	  Campo.value = Campo.value + Separador3;
	}
  }
  if (Tipo == "Identificacao") {
    Separador1 = '/';
	Conjunto1 = 8;
    if (Campo.value.length == Conjunto1) {
	  Campo.value = Campo.value + Separador1;
	}
  }
  
  if (Tipo=='Data'){
    separador = '/'; 
    conjunto1 = 2;
    conjunto2 = 5;
    if (Campo.value.length == conjunto1){
      Campo.value = Campo.value + separador;
    }
    if (Campo.value.length == conjunto2){
      Campo.value = Campo.value + separador;
    }
  }
  
  if (Tipo =='OrdemServ') {
  Separador = '-';
  Conjunto1 = 6;
    if (Campo.value.length == Conjunto1){
      Campo.value = Campo.value + Separador;
    }
  }
  
  if (Tipo =='TipoDoc') {
  Separador = '-';
  Separador1 = '/';
  Conjunto1 = 3;
  Conjunto2 = 10;
    if (Campo.value.length == Conjunto1){
      Campo.value = Campo.value + Separador;
    }
    if (Campo.value.length == Conjunto2){
      Campo.value = Campo.value + Separador1;
    }
  }
  
  if (Tipo == "Identificacao") {
    Separador1 = '/';
	Conjunto1 = 8;
    if (Campo.value.length == Conjunto1) {
	  Campo.value = Campo.value + Separador1;
	}
  }

}




///////////////////////////////////////////////////////////////////////////////////
//     Função que Transforma Dinheiro em Float para poder trabalhar normalmente  //
///////////////////////////////////////////////////////////////////////////////////
function FTPontos(Valor) {
  var ValorR = 0.00; Negativo = false;
  for (i=0; i < Valor.length; i++) {
    if (Valor.charAt(i) == '(') {
	  Negativo = true;
	}
  }
  for (i=0; i < Valor.length; i++) {
    if ((Valor.charAt(i) != '.') && (Valor.charAt(i) != 'R') && (Valor.charAt(i) != '$') && (Valor.charAt(i) != ' ') && (Valor.charAt(i) != '(') && (Valor.charAt(i) != ')')) {
	  if (Valor.charAt(i) == ',') {
	    ValorR = ValorR + '.';
	  } else {
	    ValorR = ValorR + Valor.charAt(i);
	  }
	}
  }
  if (Negativo == true) {
    ValorR = parseFloat(ValorR) * (-1)
    return ValorR
  } else {
    return ValorR;
  }
}


///////////////////////////////////////////////////////////////////////////////////
//     Função que Converte tudo para maiúsculo                                   //
///////////////////////////////////////////////////////////////////////////////////
function FUpper() {
	var Tecla = window.event.keyCode;
	if ((Tecla >= 97) && (Tecla <= 122)) {
		event.keyCode = Tecla - 32;
		event.returnValue=true;
	}
    //Acentos do u
	if ((Tecla >= 249) && (Tecla <= 252)) {
		event.keyCode = Tecla - 32;
		event.returnValue=true;
	}
    //Acentos do o
	if ((Tecla >= 242) && (Tecla <= 246)) {
		event.keyCode = Tecla - 32;
		event.returnValue=true;
	}
    //Acentos do i
	if ((Tecla >= 236) && (Tecla <= 239)) {
		event.keyCode = Tecla - 32;
		event.returnValue=true;
	}
    //Acentos do e
	if ((Tecla >= 232) && (Tecla <= 235)) {
		event.keyCode = Tecla - 32;
		event.returnValue=true;
	}
    //Acentos do a
	if ((Tecla >= 224) && (Tecla <= 228)) {
		event.keyCode = Tecla - 32;
		event.returnValue=true;
	}
	//    ç
	if (Tecla == 231) {
		event.keyCode = Tecla - 32
		event.returnValue=true;
	}
}
