/* Arquivo de funções Javascript padrão */
/* -------------------------------------------------------------------------------------*/
/* Lista Funções e objetivos */
/* -------------------------------------------------------------------------------------*/
/* 	Nome da função		Dependencias		Objetivo						
	SomaData()			ValidaData()		Adicionar unidades de data conform parâmetros
						ConverteData()		passados			
						DateToStr()
	ConverteData()		--					Transforma a data para o formato data aaaa-mm-dd
	DateToStr()			--					Transforma a data para o formato string dd/mm/aaaa
	FormataHora()		--					Transforma a hora para o formato hh:mm
	ValidaData()		--					Apresenta a máscara de digitação da data já verificando 
											se é uma data válida
	FormataData()		--					??????? - ver ValidaData()
	VerificaHora()		--					Verifica se a hora digitada é válida
	ValidaDataReduzida()--					Verifica se data (formato mm/aaaa) é correto
	FormataDataReduzida()-					???????
	
	ValidaNumero()		--					Verifica se o valor digitado é um número
	FormataDecimal()	--					Formata o número para a quantidade de casas decimais desejada
	VerCampoNumericoValor()					Não permite a digitação de letras em campos numéricos
	FormataValor()		DesFormataValor()	Transforma o valor digitado num campo moeda para o formato Bras.
	DesFormataValor()	--					Retira o formato de valor brasileiro
	ValidaTeclaMoeda()	ValidaInteiro()		?Entender?
	ValidaTeclaInteiro()ValidaDigitoInteiro	Verificar se a tecla pressionada é um número
	ValidaInteiro							Verifica se um digito foi informado
	FormataMoedaFoco()	SoNumeroMoeda()		Atribui o foco a um campo moeda retirando sua formatação
	FormataMoeda()		MontaStringIgual()	Formata valores com casas decimais
	RetornaClipboard()	--					Retorna o conteúdo do clipboard no campo
	LimpaClipboard()	--					Esvazia o conteúdo do clipboard
	ValidaPasteTexto()	RetornaClipboard	Verifica se é possível colar texto no campo informado
	SoNumeroMoeda()		--					So permite a entrada de números no formato moeda
	SoNumero()			--					Só permite a entrada de números sem casas decimais
	ValidaPasteData()	RetornaClipboard	Verifica se é possível colar uma data em um campo data
	ValidaPasteMoeda()	RetornaClipboard	Verifica se é possível colar um valor moeda num campo moeda
	ValidaPasteInteiro	RetornaClipboard	Verifica se é possível colar inteiro num campo número
	ValidarCampos()							Verifica se os campos de preenchimento obrigatório foram preenchidos
	MontaStringIgual()	--					?entender?
*/
/* -------------------------------------------------------------------------------------*/	
/***
* Descrição.: formata um campo do formulário de
* acordo com a máscara informada...
* Parâmetros: - objForm (o Objeto Form)
* - strField (string contendo o nome
* do textbox)
* - sMask (mascara que define o
* formato que o dado será apresentado,
* usando o algarismo "9" para
* definir números e o símbolo "!" para
* qualquer caracter...
* - evtKeyPress (evento)
*
* Uso.......: <input type="textbox"
* name="xxx".....
* onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);">
* Observação: As máscaras podem ser representadas
* como os exemplos abaixo:
* CEP -> 99999-999
* CPF -> 999.999.999-99
* CNPJ -> 99.999.999/9999-99
* C/C -> 999999-!
* Tel -> (99) 9999-9999
* Data -> 99/99/9999
***/
    colr=0;    

function overcol(obj){
    colr=obj.style.backgroundColor;
    obj.style.backgroundColor = '#FFF8C6';
}
function outcol(obj){
    obj.style.backgroundColor = colr;
}

function txtBoxFormat(objForm, strField, sMask, evtKeyPress)
{
        var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

        if(document.all) { // Internet Explorer
        nTecla = evtKeyPress.keyCode; }
        else if(document.layers) { // Nestcape
        nTecla = evtKeyPress.which;
        }
        if (nTecla == 8){return true}//Permite backspace

        sValue = objForm[strField].value;
        // Limpa todos os caracteres de formatação que
        // já estiverem no campo.
        sValue = sValue.toString().replace( "-", "" );
        sValue = sValue.toString().replace( "-", "" );
        sValue = sValue.toString().replace( ".", "" );
        sValue = sValue.toString().replace( ".", "" );
        sValue = sValue.toString().replace( ".", "" );
        sValue = sValue.toString().replace( "/", "" );
        sValue = sValue.toString().replace( "/", "" );
        sValue = sValue.toString().replace( "(", "" );
        sValue = sValue.toString().replace( "(", "" );
        sValue = sValue.toString().replace( ")", "" );
        sValue = sValue.toString().replace( ")", "" );
        sValue = sValue.toString().replace( " ", "" );
        sValue = sValue.toString().replace( " ", "" );
        sValue = sValue.toString().replace( ":", "" );
        fldLen = sValue.length;
        mskLen = sMask.length;

        i = 0;
        nCount = 0;
        sCod = "";
        mskLen = fldLen;

        while (i <= mskLen)
        {
                bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
                bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
                bolMask = bolMask || ((sMask.charAt(i) == ":"))

                if (bolMask)
                {
                        sCod += sMask.charAt(i);
                        mskLen++;
                }
                else
                {
                        sCod += sValue.charAt(nCount);
                        nCount++;
                }
                i++;
        }
        objForm[strField].value = sCod;

        if (nTecla != 8) { // backspace
        if (sMask.charAt(i-1) == "9") { // apenas números...
        return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
        else { // qualquer caracter...
        return true;
        } }
        else {
        return true;
        }
}
/*-----------------------------------------------------------------------*/
/* Funções de Validação */
function ValidaData()
{
	strData = event.srcElement.value;
	if (strData.length > 0)
	{
		var dtmPat = /^(\d{2})(\/|-)(\d{1,2})\2(\d{4})$/;
		var arrMatch = strData.match(dtmPat);
		if (arrMatch == null)
		{
                        alert('Formato de data inválido!');
                        event.srcElement.focus();
                        event.srcElement.select();
			return false;
		}
		else
		{
			intDia = arrMatch[1];
			if (intDia.length==1) intDia = '0'+intDia;
			intMes = arrMatch[3];
			if (intMes.length==1) intMes = '0'+intMes;
			intAno = arrMatch[4];
			
			if (intDia < 1 || intDia > 31)
			{
                                alert('Dia incorreto!');
                                event.srcElement.focus();
                                event.srcElement.select();
                                return false;
			}
			if (intMes < 1 || intMes > 12)
			{
                                alert('Mês incorreto!');
                                event.srcElement.focus();
                                event.srcElement.select();
                                return false;
			}
			if ((intMes == 4 || intMes == 6 || intMes == 9 || intMes == 11) && intDia == 31 )
			{
				alert('Mês '+intMes+' não tem 31 dias!');
				event.srcElement.focus();
				event.srcElement.select();
				return false;
			}
			if (intMes == 2)
			{
				var blnIsLean = (intAno % 4 == 0 && (intAno % 100 != 0 || intAno % 400 == 0));
				if (intDia > 29 || (intDia==29 && !blnIsLean))
				{
					alert('Fevereiro de '+intAno+' não tem '+ intDia + ' dias!');
					event.srcElement.focus();
					event.srcElement.select();
					return false;
				}
			}
			
			if (intAno <= 0)			
			{
				alert('Ano incorreto!');
				event.srcElement.focus();
				event.srcElement.select();
				return false;				
			}
			
		}
                event.srcElement.value = intDia + '/' + intMes + '/' + intAno;
                return true;
	}
}		
//---------------------------------------------------------	
function ValidaHora()
{
	strData = event.srcElement.value;
	if (strData.length > 0)
	{
		var dtmPat = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;
		var arrMatch = strData.match(dtmPat);
		if (arrMatch == null)
		{
                        alert('Formato de hora inválido!');
                        event.srcElement.focus();
                        event.srcElement.select();
			return false;
		}
		else
		{
			strHora = arrMatch[0];
			//alert(strIE);
		}
                event.srcElement.value = strHora;
                return true;
	}
}
//---------------------------------------------------------	
function ValidaMesAno()
{
	strData = event.srcElement.value;
	if (strData.length > 0)
	{
		var dtmPat = /^(\d{2})(\/|-)(\d{4})$/;
		var arrMatch = strData.match(dtmPat);
		if (arrMatch == null)
		{
                        alert('Formato de data inválido!');
                        event.srcElement.focus();
                        event.srcElement.select();
			return false;
		}
		else
		{
			intMes = arrMatch[1];
			if (intMes.length==1) intMes = '0'+intMes;
			intAno = arrMatch[3];
			if (intMes < 1 || intMes > 12)
			{
                                alert('Mês incorreto!');
                                event.srcElement.focus();
                                event.srcElement.select();
                                return false;
			}
			if (intAno <= 0)			
			{
				alert('Ano incorreto!');
				event.srcElement.focus();
				event.srcElement.select();
				return false;				
			}
			
		}
                event.srcElement.value = intMes + '/' + intAno;
                return true;
	}
}		
//---------------------------------------------------------	
function ValidaCEP()
{
	strData = event.srcElement.value;
	if (strData.length > 0)
	{
		var dtmPat = /^(\d{5})-(\d{3})$/;
		var arrMatch = strData.match(dtmPat);
		if (arrMatch == null)
		{
                        alert('Formato de CEP inválido!');
                        event.srcElement.focus();
                        event.srcElement.select();
			return false;
		}
		else
		{
			strCEP = arrMatch[0];
		}
                event.srcElement.value = strCEP;
                return true;
	}
}
//---------------------------------------------------------	
function ValidaCNPJ()
{
	strData = event.srcElement.value;
	if (strData.length > 0)
	{
		var dtmPat = /^(\d{2}).(\d{3}).(\d{3})\/(\d{4})-(\d{2})$/;
		var arrMatch = strData.match(dtmPat);
		if (arrMatch == null)
		{
                        alert('Formato de CNPJ inválido!');
                        event.srcElement.focus();
                        event.srcElement.select();
			return false;
		}
		else
		{
			strCNPJ = arrMatch[0];
			//alert(strCNPJ);
		}
                event.srcElement.value = strCNPJ;
                return true;
	}
}
//---------------------------------------------------------	
function ValidaCPF()
{
	strData = event.srcElement.value;
	if (strData.length > 0)
	{
		var dtmPat = /^(\d{3}).(\d{3}).(\d{3})-(\d{2})$/;
		var arrMatch = strData.match(dtmPat);
		if (arrMatch == null)
		{
                        alert('Formato de CPF inválido!');
                        event.srcElement.focus();
                        event.srcElement.select();
			return false;
		}
		else
		{
			strCPF = arrMatch[0];
			//alert(strCNPJ);
		}
                event.srcElement.value = strCPF;
                return true;
	}
}
//---------------------------------------------------------	
function ValidaIE()
{
	strData = event.srcElement.value;
	if (strData.length > 0)
	{
		var dtmPat = /^(\d{3}).(\d{3}).(\d{3}).(\d{3})$/;
		var arrMatch = strData.match(dtmPat);
		if (arrMatch == null)
		{
                        alert('Formato de Inscrição Estadual inválido!');
                        event.srcElement.focus();
                        event.srcElement.select();
			return false;
		}
		else
		{
			strIE = arrMatch[0];
			//alert(strIE);
		}
                event.srcElement.value = strIE;
                return true;
	}
}
//---------------------------------------------------------	
function ValidaFone()
{
	strData = event.srcElement.value;
	if (strData.length > 0)
	{
		var dtmPat = /^\((\d{2})\)(\d{3,4})-(\d{4})$/;
		var arrMatch = strData.match(dtmPat);
		if (arrMatch == null)
		{
                        alert('Formato de Telefone inválido!');
                        event.srcElement.focus();
                        event.srcElement.select();
			return false;
		}
		else
		{
			strFone = arrMatch[0];
			//alert(strIE);
		}
                event.srcElement.value = strFone;
                return true;
	}
}
//---------------------------------------------------------	
function ValidaEMail()
{
	strData = event.srcElement.value;
	if (strData.length > 0)
	{
		var dtmPat = /^[A-Za-z0-9-_.]+@([A-Za-z0-9-_.]+\.)+[A-Za-z]{2,4}$/;
		var arrMatch = strData.match(dtmPat);
		if (arrMatch == null)
		{
                        alert('Formato de e-mail inválido!');
                        event.srcElement.focus();
                        event.srcElement.select();
			return false;
		}
		else
		{
			strEMail = arrMatch[0];
			//alert(strIE);
		}
                event.srcElement.value = strEMail;
                return true;
	}
}
//---------------------------------------------------------	
function ValidaKey()
{
	var pKey = String.fromCharCode(event.keyCode);
	var blnRet = ValidaDigito(pKey);
	event.returnValue = blnRet;
}
//---------------------------------------------------------	
function ValidaDigito(strChar)
{
	return ("/0123456789".indexOf(strChar) >= 0);
}	
/* -------------------------------------------------------------------------------------*/	
function InitForm()
{
	var frm = document.forms[0];
	for (var i = 0; i < frm.elements.length; i++)
	{
		if (frm.elements[i].type == 'text' || frm.elements[i].type == 'select-one')
		{
			frm.elements[i].focus();
			break;
		}
	}
	return true;
}
/*-------------------------------------------------------------------------------*/
function ValidaChars(objField)
{
	var strChar = objField.value.toString();
	for (var i=0; i <= strChar.length -1; i++)
	{
		strCarac = strChar.substr(i,1);
		if (VerChar(strCarac))
		{
			alert('Existem caracteres inválidos no campo!');
			objField.focus();
			break;
			return false;
		}
	}
	return true;
	
}
/*-------------------------------------------------------------------------------*/
function VerChar(strChar)
{
	return ("][{}&¨!?<>+|\\'%".indexOf(strChar) >= 0);
}	
/*----------------------------------------------------------------------------------*/
function formatValue(tammax,teclapres)
{
// tammax - tamanho máximo de caracteres (somente dígitos)
// é necessário configurar o 'maxlength' do campo para suportar todos os caracteres -
// os dígitos mais pontuação. Ex.: 1,50 = maxlength => 4, tammax => 3
// 				 120.000,00 = maxlength => 10 tammax => 8
    var tecla = teclapres.keyCode;
//    vr = document.form[campo].value;
    vr = event.srcElement.value;

    vr = vr.replace( "/", "" );
    vr = vr.replace( "/", "" );
    vr = vr.replace( ",", "" );
    vr = vr.replace( ".", "" );
    vr = vr.replace( ".", "" );
    vr = vr.replace( ".", "" );
    vr = vr.replace( ".", "" );
    vr = vr.replace( "R", "" );
    vr = vr.replace( "$", "" );
    tam = vr.length;

    if (tam < tammax && tecla != 8)
    {
        tam = vr.length + 1 ;
    }

    if (tecla == 8 )
    {
        tam = tam - 1 ;
    }

    if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
    {
        if ( tam <= 2 )
        {
             event.srcElement.value = vr ;
        }
         if ( (tam > 2) && (tam <= 5) )
         {
             event.srcElement.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ;
        }
         if ( (tam >= 6) && (tam <= 8) )
         {
             event.srcElement.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;
        }
         if ( (tam >= 9) && (tam <= 11) )
         {
             event.srcElement.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) )
         {
             event.srcElement.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) )
         {
             event.srcElement.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 FormataTexto(txtbox, mask, event) 
{
	var nTecla, sTexto;
	var i;
	
	try
	{
		nTecla = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;		
	}
	catch (ex)
	{
		nTecla = event.keyCode;
	}
	
	sTexto = txtbox.value;

	// Valida a tecla atual
	if (nTecla != 8 && nTecla != 9 && nTecla != 127 && nTecla != 37 && nTecla!=38 && nTecla!=39 && nTecla!=40) 
	{ 
		// Valida os valores anteriores
		for (i =0;i < sTexto.length; i++)
		{	
			if (mask.charAt(i) == "-" ||
				mask.charAt(i) == "." ||
				mask.charAt(i) == "," ||
				mask.charAt(i) == "/" ||
				mask.charAt(i) == "(" ||
				mask.charAt(i) == ")")
			{
				// Verifica se bate com a máscara, senão troca o valor
				if (sTexto.charAt(i) != mask.charAt(i))
				{
					sTexto = sTexto.substring(0, i) + 
							mask.charAt(i);
					txtbox.value = sTexto;
					return false;
				}
			}
			else if (mask.charAt(i) == "9") 
			{
				// apenas números
				if (sTexto.charCodeAt(i) < 48 ||
					sTexto.charCodeAt(i) > 57)
				{
					sTexto = sTexto.substring(0, i);
					txtbox.value = sTexto;
					return false;
				}

			}
			else if (mask.charAt(i) == "0") 
			{ 
				// apenas números de 0 a 9 e espaço
				if ((sTexto.charCodeAt(i) < 48 || sTexto.charCodeAt(i) > 57) &&
					sTexto.charCodeAt(i) != 32)
				{
					sTexto = sTexto.substring(0, i);
					txtbox.value = sTexto;
					return false;
				}
			}
			else if (mask.charAt(i) == "A") 
			{ 
				// Apenas letras de A-Z a-z`a
				if ((sTexto.charCodeAt(i) < 65 || sTexto.charCodeAt(i) > 90) &&
					(sTexto.charCodeAt(i) < 97 || sTexto.charCodeAt(i) > 122))
				{
					sTexto = sTexto.substring(0, i);
					txtbox.value = sTexto;
					return false;
				}
			}
			else if (mask.charAt(i) == "@") 
			{ 
				// Apenas espaço
				if (sTexto.charCodeAt(i) != 32)
				{
					sTexto = sTexto.substring(0, i);
					txtbox.value = sTexto;
					return false;
				}
			}
		}

		// Se for diferente de backspace, valida
		i = sTexto.length;
		
		if (mask.charAt(i) == "-" ||
		    mask.charAt(i) == "." ||
		    mask.charAt(i) == "," ||
		    mask.charAt(i) == "/" ||
		    mask.charAt(i) == "(" ||
		    mask.charAt(i) == ")")
		{
			// Verifica se bate com a máscara, senão troca o valor
			if (nTecla != mask.charAt(i))
			{
				sTexto = sTexto + mask.charAt(i);
				txtbox.value = sTexto;
				i++;
			}
		}
		
		if (mask.charAt(i) == "9") 
		{
			// apenas números
			if (nTecla < 48 ||
			    nTecla > 57)
			{
				return false;
			}

		}
		else if (mask.charAt(i) == "0") 
		{ 
			// apenas números de 0 a 9 e espaço
			if ((nTecla < 48 || nTecla > 57) &&
			    nTecla != 32)
			{
				return false;
			}
		}
		else if (mask.charAt(i) == "A") 
		{ 
			// Apenas letras de A-Z a-z`a
			if ((nTecla < 65 || nTecla > 90) &&
			    (nTecla < 97 || nTecla > 122))
			{
				return false;
			}
		}
		else if (mask.charAt(i) == "@") 
		{ 
			// Apenas espaço
			if (nTecla != 32)
			{
				return false;
			}
		}
		else
		{
			return true;
		}
	}
}

/////////////////////////
function SoNumber(e)
{
	if (document.all) // Internet Explorer
		var tecla = event.keyCode;
	else if(document.layers) // Nestcape
		var tecla = e.which;
		if (tecla > 47 && tecla < 58) // numeros de 0 a 9
			return true;
		else
			{
				if (tecla != 8) // backspace
					event.keyCode = 0;
					//return false;
				else
					return true;
			}
}
/*-------------------------------------------------------------------------------*/
function VerCampoNumericoValor()
{
	if (event.keyCode == 188 || event.keyCode == 110)
	{
		if (event.srcElement.value.search(',')<2)
		{
			event.returnValue = true;
		}
		else
		{
			event.returnValue = false;
		}
	}
	else
	{
		if (event.keyCode < 47 || (event.keyCode > 95 && event.keyCode < 106) || (event.keyCode > 47 && event.keyCode < 58 && event.shiftKey == false) )
		{
			event.returnValue = true;
		}
		else
		{
			event.returnValue = false;
		}
	}
}
/*-------------------------------------------------------------------------------*/
function DesFormataValor(strValor)
{
	var vntRe;
	vntRe = /\./g;
	strValor = strValor.replace(vntRe,'');
	vntRe = /\,/g;
	strValor = strValor.replace(vntRe,'.');
	return strValor;
}
/*-------------------------------------------------------------------------------*/
function FormataMoeda(objCampo, intTamDecimal)
{
	var strValor = objCampo.value;
	var intVirgula = strValor.search(',');
	var strValorFormat = '';
	var intDecimal = intContador = intPosicao = 0;
	if (strValor != '')
	{
		if (intVirgula == -1)
		{
			strValor += ',' + MontaStringIgual('0', intTamDecimal);
		}
		else
		{
			intDecimal = (strValor.substr(intVirgula + 1)).length;
			if (intDecimal <= intTamDecimal)
			{
				strValor += MontaStringIgual('0', intTamDecimal - intDecimal);
			}
			else
			{
				alert('Número de casas decimais (' + intDecimal + ') maior do que o permitido (' + intTamDecimal + ')! ');
				objCampo.focus();
				return false;
			}
		}
		
		if (strValor.substr(0,1) == ',')
		{
			strValor = '0' + strValor;
		}
		// Retirar os pontos da formatação
        	var vntRe;
        	vntRe = /\./g;
        	for (var intCount=0; intCount <= strValorFormat.length; intCount ++)
        	{
        	    if (strValor.match(vntRe) != null)
        	    {
        	       strValor = strValor.replace(vntRe,'');
        	    }
        	}
		intVirgula = strValor.search(',');
		strValorFormat = strValor.substr(intVirgula);
		for (intContador = intVirgula - 1; intContador >= 0; intContador--)
		{
		        if (intPosicao != 0 )
		        {
        			if ((intPosicao%3) == 0)
        			{
        			        if (strValor.substr(intContador, 1) != '.')
        			        {
        				   strValorFormat = '.' + strValorFormat;
                                        }
        			}
       			}
			strValorFormat = strValor.substr(intContador, 1) + strValorFormat;
			intPosicao++;
		}
		objCampo.value = strValorFormat;
	}
	else
	{
		//Se estiver em branco acrecenta 0,00
		objCampo.value = "0,00";
	}
	if ( objCampo.value.length > document.getElementById(objCampo.name).maxLength)
	{
		if (intVirgula == -1)
		{
			alert('Quantidade de dígitos informada é maior do que o permitido (' + (document.getElementById(objCampo.name).maxLength ) + ')!\n\nDigite novamente!');
			objCampo.value = '0,00';
			objCampo.focus();
			return false;
		}
		else
		{
			alert('Quantidade de dígitos informada é maior do que o permitido (' + ( document.getElementById(objCampo.name).maxLength ) + ')!\n\nDigite novamente!' );
			objCampo.value = '0,00';
			objCampo.focus();
			return false;
		}
	}
}
/*-------------------------------------------------------------------------------*/
function MontaStringIgual(strCaracter, intTamanho)
{
	var intContador;
	var strString = '';
	for (intContador = 1;intContador <= intTamanho; intContador++)
	{
		strString += strCaracter;
	}
	return strString;
}
/*-------------------------------------------------------------------------------*/
function ValidaAnoModelo(srcElement)
{
	strData = event.srcElement.value;
	if (strData.length > 0)
	{
		var dtmPat = /^[0-9][0-9]\/[0-9][0-9]$/;
		var arrMatch = strData.match(dtmPat);
		if (arrMatch == null)
		{
                        alert('Formato do ano/modelo inválido!');
                        event.srcElement.focus();
                        event.srcElement.select();
			return false;
		}
		else
  		{
  		       //Separar os anos
  		        var strTrabalho = arrMatch[0];
			var strAno1 = strTrabalho.substr(0,2);
			var strAno2 = strTrabalho.substr(3,2);
			// acrescentar o ano integral de acordo com o valor
			
			if (parseInt(strAno1) < 15)
			{
			  strAno1 =  '20' + strAno1;
			}
			else
			{
			   strAno1 = '19' + strAno1;
			}

			//if (parseInt(strAno2.substr(0,1)) == 0)
			//{
			//   strAno2 = '20' + strAno2;
			//}
			if (parseInt(strAno2) < 16) //Modificado para aceitar ano de 2010
			{
			    strAno2 = '20'+strAno2;
			}
			else
			{
			   strAno2 = '19' + strAno2;
			}
			
			if (parseInt(strAno2) < parseInt(strAno1))
			{
                alert('Ano do modelo não pode ser menor que o ano de fabricação!');
                event.srcElement.focus();
                event.srcElement.select();
			    return false;
			}
			
			if (parseInt(strAno2 - strAno1) > 1)
			{
			    alert('Ano modelo não pode ser superior a 1 ano da fabricação');
			    event.srcElement.focus();
                event.srcElement.select();
			    return false;
			}
			
			var strMesAno = strTrabalho;
		}
                event.srcElement.value = strMesAno;
                return true;
	}
}
/*-------------------------------------------------------------------------------*/
function openNewWindow()
{
   var s = window.showModalDialog("dialog.htm", "test argument", 
      "dialogHeight:340px; dialogWidth:240px");
   document.write(s);
}
/*-------------------------------------------------------------------------------*/
function MontaEspacoCod(strTexto)
{
	var intContador;
	var strString = '';
	var intTamanho = strTexto.length;
	var strChar;
	for (intContador = 0;intContador <= intTamanho; intContador++)
	{
	    strChar = strTexto.substr(intContador,1);
	    //alert(strTexto.charAt(intContador));
	    if (strChar == ' ')
	    {
	       strString += '%20';
	    }
	    else
	    {
		strString += strChar;
	    }
	}
	return strString;
	//alert(strString);
}
/*----------------------------------------------------------------------------*/
function Toggle(objElement)
{
   // Set the disabled property. If we're in IE, this will
   // automatically disable the elements. If we're on Netscape,
   // this will create a custom property which we use in the
   //event-handlers to determine the status of the elements.
   objElement.disabled = (!objElement.disabled) ;

   // If this is a select element, then save its status, so we can restore it
   // in the onchange event-handler, thus effectively disabling the element.
   if (document.layers)
   {
      if (objElement.disabled && objElement.type.substr(0,6) == "select")
      {
         for (intI=0; intI<objElement.options.length; intI++)
         {
            objElement.options[intI].frozenStatus = objElement.options[intI].selected ;
         }
      }
   }
}
/*-------------------------------------------------------------------------------*/
function ChamaRelat(RelatForm)
{

	if(navigator.appName.indexOf("Netscape") != -1)
	   InternetForm = window.open("", "InternetForm","toolbar=1,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=0,screenX=0,screenY=0,left=0,top=0,width=785,height=440");
	else
	   InternetForm = window.open("", "InternetForm","toolbar=1,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,screenX=0,screenY=0,left=0,top=0,width=785,height=440");
	if(InternetForm)
	{
		RelatForm.submit();
	}
	return false;
}
 /*-------------------------------------------------------------------------------*/
 function strDateCompare(date1, date2) {
     splitvar   = date1.substring(2,3);
     var parts1 = new Array();
     var parts2 = new Array();
     var parts3 = new Array();
     var months = new Array();

     year = parts1[2];
     yeardays = 365;
     months[1]  = 31;
     months[2]  = 28; if (Math.floor(year/4)*4 == year ) {months[2] += 1; yeardays+=1}
     months[3]  = 31;
     months[4]  = 30;
     months[5]  = 31;
     months[6]  = 30;
     months[7]  = 31;
     months[8]  = 31;
     months[9]  = 30;
     months[10] = 31;
     months[11] = 30;
     months[12] = 31;

     var parts1 = date1.split(splitvar);
     var parts2 = date2.split(splitvar);

     part = ''; part+= parts1[2]; part+= parts1[1]; part+= parts1[0]; part1 = eval(part*1);
     part = ''; part+= parts2[2]; part+= parts2[1]; part+= parts2[0]; part2 = eval(part*1);

     if ( part1 > part2 ) {
          parts3 = parts2;
          parts2 = parts1;
          parts1 = parts3;
     }

     days=0;
     for   ( i=eval(parts1[2]*1); i<eval(parts2[2]*1); i+=1) { days+= yeardays; }
     for   ( i=eval(parts1[1]*1); i<eval(parts2[1]*1); i+=1) { days+= months[i];}
     if ( eval(parts1[0]*1) > eval(parts2[0]*1) ) {
       for ( i=eval(parts2[0]*1); i<eval(parts1[0]*1); i+=1) { days-= 1;        }
     } else {
       for ( i=eval(parts1[0]*1); i<eval(parts2[0]*1); i+=1) { days+= 1;        }
     }
     if ( parts3[0] > 0 )                   { days*=-1 }

     return(days);
 }
 /*
 Comment from COBOLdinosaur  Date: 12/31/2002 09:37AM PST
 what I posted returns the difference in seconds if you want it in days just cahnge the last line to:
 seconds = Math.round(diff/(24*3600*1000));
 */
/*-------------------------------------------------------------------------------*/
function changeformatNumber(xvalue, fmt)
{
	/* B - brasileiro
	   A - americano
	*/
	if ( fmt == "B")
	{
		// 5,000.00
		xvalue = xvalue.replace(/\./g,"");
		xvalue = xvalue.replace(/\,/g,".");
		//xvalue = xvalue.replace(/\#/g,",");
	}
	if ( fmt == "A")
	{
		 // 5.000,00

		xvalue = xvalue.replace(/\./g,"");
		xvalue = xvalue.replace(/\,/g,".");
	}
	return xvalue;

}
/*-------------------------------------------------------------------------------*/
function formataValor(xvalor)
{
    var vr = xvalor;
	var vrminus = '';
    vr = vr.replace(/\,/g, "" );
    vr = vr.replace(/\./g, "" );
	if (vr.substr( 0, 1 ) == '-')
	{
		vrminus = vr.substr( 0, 1 );
		vr = vr.substr(1);
	}
	tam = vr.length;
	
	if ( tam <= 2 )
	{
		 return vrminus+vr ;
	}
	 if ( (tam > 2) && (tam <= 5) )
	 {
		 return vrminus+vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ;
	}
	 if ( (tam >= 6) && (tam <= 8) )
	 {
		 return vrminus+vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;
	}
	 if ( (tam >= 9) && (tam <= 11) )
	 {
		 return vrminus+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) )
	 {
		 return vrminus+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) )
	 {
		 return vrminus+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 ) ;
	}
}
//-----------------------------------------------------
//Função de arredondamento para trabalhar com operações
//aritiméticas onde usa-se parseFloat
function justRound(n,just) 
{
  var s = "" + Math.round(n * 100) / 100
  if (just)return s
  var i = s.indexOf('.')
  if (i < 0) return s + ".00"
  var t = s.substring(0, i + 1) + 
     s.substring(i + 1, i + 3)
  if (i + 2 == s.length) t += "0"
  return t
}

//Função de Tratamento de casas decimais
//usado antes de pedir para formatar
function PreFormataValor(xValor)
{
   var xTotal = xValor;
   xTotal = justRound(xTotal,1);
   xTotal = xTotal.toString();
   if ( xTotal.indexOf(".") == -1)
   {
	  xTotal+="00";
   }
   else
   {
	   var xpointpos = (xTotal.length-xTotal.indexOf("."));
	   if (xpointpos == 2)
	   {
		  xTotal+="0";
	   }
   }
   return xTotal
}