function vCombo(objInput, strMsg){
	if (objInput.selectedIndex==0){
		objInput.focus();
		alert(strMsg);
		return(false);
	}
	return(true);	
}

function vData(objInput, strMsg) {
	if(!Data(objInput.value)) {
		objInput.select();
		if(strMsg!='')
			alert(strMsg);
		return(false);
	}
	return(true);
}
function Data(valor){
  var data = valor;
  var barra1 = data.indexOf('/');
  var barra2 = data.lastIndexOf('/');
  var ano = data.substring(barra2+1, data.length);
  var dia = data.substring(0,barra1);
  var mes = data.substring(barra1+1,barra2);
  var anoMod  = ano%4;
  var mesMod  = mes%2;
  var msg;
  var retorno = true;
  //verifica as barras
  if ((barra1==-1) || (barra1==barra2))
	{ retorno=false; }
  // verifica se os campos dia, ano , mes são numéricos e se possuem a quantidade de caracteres suficientes
  if  ((isNaN(ano)) || (isNaN(dia)) || (isNaN(mes))  || (ano<1900)  || (ano>2999) || (mes < 1)|| (mes > 12) ||(dia > 31)|| (dia < 1) )   
	{ retorno=false; }
  // ferifica o mes de fevereiro
  if ((((anoMod != 0) && (dia > 28)) || ((anoMod==0) && (dia > 29))) && (mes == 2))
		{ retorno=false; }
	if (mesMod == 1) 
	 { if  ((mes >= 9) &&  (dia >30)) 	
		{		retorno=false; } }
	else
		{ if  ((mes < 7 ) &&  (dia >30)) 	
		{		retorno=false; } }
	if (retorno==false && valor!='')
		{
		return (false);}
	else
	 { return (true); }
}

function cData(pData) {
/*Converte as strings de data num datetime*/
var data = pData;
var barra1 = data.indexOf('/');
var barra2 = data.lastIndexOf('/');
var ano = parseInt(data.substring(barra2+1, barra2+5),10);
var mes = parseInt(data.substring(barra1+1,barra2),10) -1;
var dia = parseInt(data.substring(0,barra1),10);

var barra3 = data.indexOf(':');
var barra4 = data.lastIndexOf(':');
var hora = parseInt(data.substring(barra3-2, barra3),10);
var min = parseInt(data.substring(barra3+1,barra4),10);
var seg = parseInt(data.substring(barra4+1, barra4+3),10);

var dRetorno = new Date()
dRetorno.setHours(hora);
dRetorno.setMinutes(min);
dRetorno.setSeconds(seg);
dRetorno.setYear(ano);
dRetorno.setMonth(mes);
dRetorno.setDate(dia);
return (dRetorno);
}

function valida_cpf (objeto, msg){
 var numcpf = objeto.value;
        x = 0;
        soma = 0;
        dig1 = 0;
        dig2 = 0;
        texto = "";
        numcpf1="";
 
       if (numcpf == "00000000000" || numcpf == "11111111111" ||
  numcpf == "22222222222" || numcpf == "33333333333" || numcpf == "44444444444" ||
  numcpf == "55555555555" || numcpf == "66666666666" || numcpf == "77777777777" ||
  numcpf == "88888888888" || numcpf == "99999999999") {
  if(msg.length > 0)
        alert(msg);
  objeto.select();
  return (false);
       } 
        len = numcpf.length; x = len -1;
        // var numcpf = "12345678909";
        for (var i=0; i <= len - 3; i++) {
                y = numcpf.substring(i,i+1);
                soma = soma + ( y * x);
                x = x - 1;
                texto = texto + y;
        }
        dig1 = 11 - (soma % 11);
        if (dig1 == 10) dig1=0 ;
        if (dig1 == 11) dig1=0 ;
        numcpf1 = numcpf.substring(0,len - 2) + dig1 ;
        x = 11; soma=0;
        for (var i=0; i <= len - 2; i++) {
                soma = soma + (numcpf1.substring(i,i+1) * x);
                x = x - 1;
        }
        dig2= 11 - (soma % 11);
        if (dig2 == 10) dig2=0;
        if (dig2 == 11) dig2=0;
        if ((dig1 + "" + dig2) == numcpf.substring(len,len-2)) {
                return (true);
        }
  else
  {
 if(msg.length > 0)
    alert(msg);
  objeto.select();
  return (false);
  }
}

function vEmail(str) {
    var regexp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/
if (regexp.test(str)){
    return (true)
}
    return (false)
}

/************************************************************************************
Função:		nulo
Descrição	Consiste a existência de caracteres e retira os espaços do input
Entradas:	objImput : Objeto de input à ser consistido
		strMsg	 : Mensagem de erro caso o input esteja nulo
*************************************************************************************/
function vNulo(objInput,strMsg){
	if (Trim(objInput, true)=='') {
		objInput.select();
		alert(strMsg);
		return(false);
	}
	return(true);
}

function Trim(objInput,blnTrinca) {
var blnInicio=true;
var blnFim=true;
var strRetorno = objInput.value;
	if (strRetorno.length > 0 )  {
		while ((blnInicio) || (blnFim)) {
			if (strRetorno.charAt(0)==' ' || strRetorno.charAt(0)=='	' || strRetorno.charAt(0)=='\n') {
	      			strRetorno= strRetorno.substring(1,strRetorno.length);
			}
			else {
      				blnInicio=false;
      			}
    			if (strRetorno.charAt(strRetorno.length-1)== ' ' || strRetorno.charAt(strRetorno.length-1)=='	' || strRetorno.charAt(strRetorno.length-1)== '\n') {
				strRetorno= strRetorno.substring(0,strRetorno.length-1);
			}
			else {
				blnFim=false;
			}	
		}
 	}
	if (blnTrinca) {
		objInput.value=strRetorno;
	}  
	return(strRetorno);
}

function vNum(objInput,strMsg,intDigito){
	if(Num(objInput.value,intDigito)==null) {
		objInput.select();
		alert(strMsg);
		return(false);
	}
	else {
		if(objInput.value!=''){
			objInput.value = Num(objInput.value,intDigito);
		}
		return(true);
	}
}
function Num(strValor, intDigito) {
strValor = new String(strValor.replace(' ',''));
var strFator = new String('');
var strDecimal = new String('');
var blnRetorno = new Boolean(strValor!=''); 
strValor = strValor.replace('.',',');
if(isNaN(intDigito)) {
	intDigito = 0
}
if(strValor.indexOf(',')<0){
	strValor+=','; 
}
/*Verifica o sinal do número e retira o sinal*/
if (strValor.charAt(0)=='-' || strValor.charAt(0)=='+') {
	if(strValor.charAt(0)=='-') {
		strFator = '-';
	}	
	strValor = strValor.substring(1,strValor.length);
}
/*Converte valores do tipo ,2 pra 0,2*/
if (strValor.charAt(0)==',' ) {
	strValor = '0' + strValor
}
/*Converte valores do tipo 2, pra 2*/
if (strValor.charAt(strValor.length)==',' ) {
	strValor = strValor.substring(0,strValor.length - 1)
}

blnRetorno = blnRetorno && (strValor.indexOf(',') == strValor.lastIndexOf(','))
if (blnRetorno) {
	for(var i=0;i<strValor.length;i++) {
		if (isNaN(strValor.charAt(i)) && strValor.charAt(i)!=',') {
			blnRetorno = false;
			break;
		}
	}
}
if(blnRetorno) {
	strDecimal = strValor.substr(strValor.indexOf(','),intDigito + 1)
	strValor = strFator + strValor.substring(0,strValor.indexOf(','));
		if (intDigito>0) {
			strValor +=strDecimal;
		}
	}
else {
	strValor = null;
}

ehnum='';
for(i=0;i<=strValor.length;i++) {
	aux=strValor.substr(i,1);
	if(aux!=' ')
		ehnum+=aux;	
}
return(ehnum.replace(' ',''));
}
function cNum(strValor, intDigito) {
	strValor = strValor.replace(' ','')
	strValor = Num(strValor,intDigito)
	strValor = strValor.replace(',','.')
	return(parseFloat(strValor))
}

function VNumeros(obj) {   
 var n = window.event.keyCode;
 	if (!(n >= 48 && n <=57) && (n!=13)) {
		window.event.keyCode = 0; 
	}
}

function VPula(press1,press2,n) 
{
	if (press1.value.length == n)
		press2.focus();
}

/***************************************************************************************
Função:		radio
Descrição	Consiste a existência de um rádio selecionado
Entradas:	objImput : Objeto de input à ser consistido
		strMsg	 : Mensagem de erro caso o radio não esteja selecionado
*****************************************************************************************/
function vradio(objInput,strMsg) {
	if(ValorRadio(objInput)==null) {
		alert(strMsg);
		return(false);
	}
	return(true);
}

function ValorRadio(objInput) {
var intTotal = objInput.length;
var varRetorno = null;
	if(isNaN(intTotal)) {
		intTotal - 1;
		if (objInput.checked) {
			varRetorno = objInput.value;
		}
	}
	for(var i=0;i< intTotal;i++) {
		if(objInput[i].checked) {
			varRetorno = objInput[i].value;
			break;
		}
	}
	return(varRetorno);
}

function ComparaData(objMenor, objMaior,strMsg) {
	if(cData(objMenor.value)>cData(objMaior.value)) {
		if (strMsg != '')
			alert(strMsg);
		//objMenor.select();
		objMaior.select();
		return(false);
	}
	return(true);	
}

function vDataExpurgo(objData, strMsg) {
	var myDate = new Date;
	var hoje = new Date(myDate.getFullYear(), myDate.getMonth(), myDate.getDate());
	var dt_exp = objData.value.split('/');
	var dt_exp_new = new Date(dt_exp[2], dt_exp[1]-1, dt_exp[0])
	//alert(formatDate(dt_exp_new) + '<=' + formatDate(hoje));
	if(formatDate(dt_exp_new)<=formatDate(hoje)) {
		alert(strMsg);
		objData.select();
		return(false);
	}
	return(true);
}

function formatDate(data) {
	var auxData = '';
	var auxMes = 0;
	var auxDia = 0;
	auxAno = (data.getFullYear()).toString();
	auxMes = (data.getMonth()+1).toString();
	if(auxMes.length==1)
		auxMes = '0' + auxMes;
	auxDia = data.getDate().toString();
	if(auxDia.length==1)
		auxDia = '0' + auxDia;
	return (auxAno+auxMes+auxDia);
}

function ComparaNum(objMenor, objMaior, strMsg) {
	if(cNum(objMenor.value)>cNum(objMaior.value)) {
		alert(strMsg);
		objMenor.select();
		return(false);
	}
	return(true);
}

function vRef(objInput,tp) {
	//tp=0 = Caixa
	//tp=1 = Folder

	if(tp<0 && tp>1) {
		objInput.select();
		alert('O objeto referenciado na etiqueta não é uma caixa nem um folder.');
		return(false);
	} else if (isNaN(objInput.value)) {
		objInput.select();
		alert('Número da referência deve conter apenas números.');
		return(false);
	} else if (objInput.value.length<11) {
		objInput.select();
		alert('Número da referência deve conter 11 dígitos.');
		return(false);
	}
	var hoje=new Date();
	var ano_hoje=hoje.getYear();
	var aux_ano_hoje=ano_hoje.toString();
	var aux=aux_ano_hoje.substr(2,2);
	var ano_etiq=objInput.value.substr(0,2);

	if(parseInt(ano_etiq)>parseInt(aux)) {
		objInput.select();
		alert('Ano da etiqueta não confere.');
		return(false);
	}

	var tp_etiq=objInput.value.substr(2,1);
	if(tp_etiq!=tp) {
		objInput.select();
		switch (tp) {
			case 0: 
				alert('Esta etiqueta não refere-se a uma caixa.');
				break;
			case 1:
				alert('Esta etiqueta não refere-se a um folder.');
				break;
			default:
				alert('Tipo de objeto inválido.');
				break;
		}
		
		return(false);
	}	

	return(true);
}

function vItensCaixa(objInput1, objInput2, objInput3, objInput4) {
/*
  objInput1: nr_lote_inicial
  objInput2: nr_lote_final
  objInput3: dt_inicial
  objInput4: dt_final
*/

var blnObj1 = new Boolean(false); 
var blnObj2 = new Boolean(false); 
var blnObj3 = new Boolean(false); 
var blnObj4 = new Boolean(false); 

blnObj1=(objInput1.value!='' && !vNum(objInput1,'Digite apenas números.'));
blnObj2=(objInput2.value!='' && !vNum(objInput2,'Digite apenas números.'));
blnObj3=(objInput3.value!='' && !vData(objInput3,'Data inválida.'));
blnObj4=(objInput4.value!='' && !vData(objInput4,'Data inválida.'));

//alert (!blnObj1 + ', ' + !blnObj2 + ', ' + !blnObj3 + ', ' + !blnObj4);
return (!blnObj1 && !blnObj2 && !blnObj3 && !blnObj4);

}

function limpa(frm) {
	/* Limpa todos os elementos do formulário referenciado,
		independentemente do tipo do campo, e posiciona o
		foco no primeiro elemento.
	*/
	for (j=0;j<frm.elements.length;j++) {
		if (!frm.elements[j].disabled && frm.elements[j].type != null) {
			switch (frm.elements[j].type.toLowerCase()) {
				case 'text':
					frm.elements[j].value='';
					break;
				case 'file':
					frm.elements[j].value='';
					break;
				case 'textarea':
					frm.elements[j].value='';
					break;
				case 'password':
					frm.elements[j].value='';
					break;
				case 'checkbox':
					frm.elements[j].checked=false;
					break;
				case 'radio':
					frm.elements[j].checked=false;
					break;
				case 'select-one':
					frm.elements[j].selectedIndex=0;
					break;
				case 'select-multiple':
					for (k=0;k<frm.elements[j].options.length;k++) {
						frm.elements[j].options[k].selected=false;
					}
					//frm.elements[j].selectedIndex=0;
					break;					
			}
		}
	}
	for (j=0;j<frm.elements.length;j++) {
		if (!frm.elements[j].disabled) {
			frm.elements[j].focus();
			break;
		}
	}

	return (true);
}

function limita(obj, maxChars, objCount) {
	var tamanho = obj.value.length;
	var texto=obj.value;
	if (tamanho>maxChars) {
		obj.value=texto.substring(0,maxChars);
		objCount.value=0;
	} else
		objCount.value=maxChars-tamanho;
	return true;
}

function vHora(strHora) {
	var bRet=true;

	if (strHora.length!=5)
		bRet=false;

	intHora=parseInt(strHora.substring(0,2));
	intMinuto=parseInt(strHora.substring(strHora.lastIndexOf(':')+1,5));

	if (isNaN(intHora) || intHora<0 || intHora > 23)
		bRet=false;
	
	if (isNaN(intMinuto) || intMinuto<0 || intMinuto > 59)
		bRet=false;
		
	return (bRet);
}	

// Retira espaços da frente e de trás e retorna o conteúdo
String.prototype.trim = function() {
  var x=this;
  x=x.replace(/^\s*(.*)/, "$1");
  x=x.replace(/(.*?)\s*$/, "$1");
  return x;
}
