function isValidInt(tObject)
{
  if(!isValidNumber(tObject.value))
	{
	  alert('Campo é do tipo numerico!');
	  tObject.value = '';
	  tObject.focus();
	  return false;
	}
	else
	{
		return true;
	}
	
}

function _altera(obj) {
	var _str = String(obj.value);
	obj.value = _str.replace(',','.');
}   

function isValidDouble(tObject)
{
	var ok = true;
	var _str = String(tObject.value);
	var pt = _str.indexOf('.');
	var i=0;
	if(pt == -1)
	{
		ok = isValidNumber(_str);
	}
	else 
	{
		var _p1 = _str.substring(0,pt);
		var _p2 = _str.substring(pt+1,_str.length+1);
		if(isValidNumber(_p1) && isValidNumber(_p2))
			ok = true;
		else
			ok = false;
	}

	if(!ok)
	{	
		alert('Campo é do tipo double!');
		tObject.value = '';
		tObject.focus();
		return false;
	}
	else 
		return true;

}

function isValidDate(tObject, dt_fmt)
{
//	var dt_format = 'MM\/DD\/YYYY'; alterado por william em 17/08/2004
	var dt_format = 'DD\/MM\/YYYY';
	
	if( dt_fmt != undefined ) 
	{ 
		dt_format = dt_fmt;  
	}

	if( dt_format.indexOf('-') >=0 )
	        div = '-';
	else
	        div = '/';
	
	tObject.value = clean(tObject.value);
	dt_fmt        = clean(dt_format);
	
	if(isValidNumber(tObject.value)) 
	{
		if((tObject.value.length == 0)||(tObject.value == '')){ return false; }
		var old_data = tObject.value;
		var erro  = false;
		var erro1 = false;
		var meses = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		if(tObject.value.length == 8)
		{
			  var dia;
			  var mes;
			  var ano;
			  var nova_data;
			  
			  var pD = dt_fmt.indexOf('D');
			  var pM = dt_fmt.indexOf('M');
			  var pY = dt_fmt.indexOf('Y');
			  
			  dia = tObject.value.substring(pD,pD+2);
			  mes = tObject.value.substring(pM,pM+2);
			  ano = tObject.value.substring(pY,pY+4);
			  
			  if(mes > 12  ){ erro1 = true; }
			  if(ano < 1800){ erro1 = true; }
	
			  if(mes==02)
				 if((ano%4)==0) meses[1] = 29;
	
			  if(dia > meses[mes-1] ) { erro1 = true; }
			  
			  nova_data = '';
			  if( ( pD < pM ) && ( pD < pY ) )
			  {
			  	nova_data += dia + div;
			  	
			  	if( pM < pY )
			  		nova_data += mes + div + ano;
			  	else
			  		nova_data += ano + div + mes;
			  }
			  else
			  {
			  	if( pM < pY )
			  		nova_data = mes + div + dia + div + ano;
			  	else
			  		nova_data = ano + div + mes + div + dia;
			  }
			  //nova_data     = dia + div + mes + div + ano;
			  tObject.value = nova_data;
		 } 
		 else { erro = true; }
	} 
	else 
	{
		erro = true;
	}
	 if(erro || erro1){
	   if(erro1)
		   window.alert('Data inválida!');
	   else 
		   window.alert('Campo é do tipo data!');
	   tObject.focus();
	   tObject.value = '';
	   return false;
	 } else {
	   tObject.value = nova_data;
	   return true;
	 }
   
}

function isValidTime(tObject)
{
	if((tObject.value.length = 0)||(tObject.value == '')){ return false; }
	var old_time = tObject.value;
	var erro  = false;
	var erro1 = false;
	tObject.value = clean(tObject.value);

	if(tObject.value.length < 4)
	{
		tObject.value = roundDouble(tObject.value,4);
	}
	if(tObject.value.length == 4)
	{
		var hor;
		var min;
		var new_time;
		hor = tObject.value.substring(0,2);
		min = tObject.value.substring(2,4);
		if((hor < 0) || (hor > 23)) { erro1 = true; }
		if((min < 0) || (min > 59)) { erro1 = true; }
		new_time = hor+':'+min;
		tObject.value = new_time;
	} else { erro = true; }

	if(erro || erro1)
	{
		if(erro1)
		   window.alert('Hora inválida!');
		else 
		   window.alert('Campo é do tipo hora!');
		tObject.focus();
		tObject.value = '';
	}
	else 
	{
		tObject.value = new_time;
	}
}

function isValidTimestamp(tObject)
{
   //
}

function isValidCep(tObject)
{
	if (window.RegExp) 
	{
		if(tObject.value.length == 9)
		{
			var reg1str = "\d{5}?([-])\d{3}";
			var reg1 = new RegExp(reg1str);
			if ( !reg1.test(tObject.value) )
			{
				window.alert ("Campo é do tipo CEP!");
				tObject.value = '';
				tObject.focus();
				tObject.select();
				return false;
			}
			else return true;
		}
	}
}

function isValidEmail(tObject)
{
	return true;
}

function isValidCpfCgc(tObject)
{
	var res = false;
	nVar = clean(tObject.value);
	if (nVar.length == 14)
	{
		if (isValidCGC(tObject))
			return true; 
	}

	if (nVar.length == 11)
	{
		if (isValidCPF(tObject)) 
			return true; 
	}

	if(!res)
	{	
		if(tObject.value.length == 0)
			return false;
		else
		{		
			tObject.value = '';
			tObject.focus();
			return false;
		}
	}
	else
		return true;

 
}

function isValidCGC(tObject)
{
	// verifica o tamanho
	var nCGC = clean(tObject.value);
	if (nCGC.length != 14) 
	{
		 sim=false
		 window.alert("Tamanho Inválido de CGC");
	}
	else {sim=true}

	if (sim )  // verfica se e numero
	{
		for (i=0;((i<=(nCGC.length-1)) && sim); i++)
		{
			val = nCGC.charAt(i)
			if (!isValidNumber(val)) {sim=false}
		}
		if (sim)  // se for numero continua
		{
			m2 = 2
			soma1 = 0
			soma2 = 0
			for (i=11;i>=0;i--)
			{
				val = eval(nCGC.charAt(i))
				m1 = m2
				if (m2<9) { m2 = m2+1}
				else {m2 = 2}
				soma1 = soma1 + (val * m1)
				soma2 = soma2 + (val * m2)
			}  // fim do for de soma

			soma1 = soma1 % 11
			if (soma1 < 2) {  d1 = 0}
			else { d1 = 11- soma1}

			soma2 = (soma2 + (2 * d1)) % 11
			if (soma2 < 2) { d2 = 0}
			else { d2 = 11- soma2}
			if ((d1==nCGC.charAt(12)) && (d2==nCGC.charAt(13)))
				return true; 
			else
				sim = false;
			
			if(!sim)
			{
				window.alert('Número CNPJ inválido!');
				tObject.value = '';
				tObject.focus();
				return false;
			}
			
		}
	}

}

function isValidCPF(tObject)
{
	sim = true;
	nCPF = clean(tObject.value);

	if (sim)  // valida o primeiro digito
	{
		for (i=0;((i<=(nCPF.length-1))&& sim); i++)
		{
			val = nCPF.charAt(i)
			if(!isValidNumber(val)) { sim=false; }
		}

		if (sim)
		{
			soma = 0
			for (i=0;i<=8;i++)
			{
				val = eval(nCPF.charAt(i))
				soma = soma + (val*(i+1))
			}

			resto = soma % 11
			if (resto>9) dig = resto -10
			else  dig = resto
			if (dig != eval(nCPF.charAt(9))) { sim=false }
			else   // valida o segundo digito
			{
				soma = 0
				for (i=0;i<=7;i++)
				{
					val = eval(nCPF.charAt(i+1))
					soma = soma + (val*(i+1))
				}

				soma = soma + (dig * 9)
				resto = soma % 11
				if (resto>9) dig = resto -10
				else  dig = resto

				if (dig != eval(nCPF.charAt(10))) { sim = false }
				else sim = true
			}
		}
	}

	if(!sim)
	{
		window.alert('Número CPF inválido!');
		tObject.value = '';
		tObject.focus();
		return false;
	}
	else 
		return true;
}

function isValidString(tObject)
{
	return true;
}

function isValidIp(tObject)
{
	if (window.RegExp) 
	{
		if(tObject.value.length == 9)
		{
			var reg1 = new RegExp(/[0-9]+?(\.)[0-9]+?(\.)[0-9]+?(\.)[0-9]+/);
			if ( !reg1.test(tObject.value) )
			{
				window.alert ("Não é um endereço IP valido!");
				tObject.value = '';
				tObject.focus();
				tObject.select();
				return false;
			}
			else return true;
		}
	}
}

function roundDouble(num,casas)
{
	 var _str = String(num);
	 var pt = _str.indexOf('.');
	 var i=0;
	 var zeros = '';
	 if(pt == -1){
		for(i=1;i<=casas;i++) {
		   zeros = zeros + '0';
		}
	   return (num+'.'+zeros);
	 } else {
	   var _aux = (_str.length - pt);
	   if( _aux > casas ) 
	   {
		 var _aux2 = (pt + casas)+1;
		 return _str.substring(0,_aux2);
	   } else {
		  for(i=_aux;i<=casas;i++) {
			zeros = zeros + '0';
		  }
		  return parseFloat(_str+zeros);
	   }
	}
 }

function clean(vr)
{
	 vr = vr.replace( /\//g ,"");
	 vr = vr.replace( /_/g  ,"");
	 vr = vr.replace( /:/g  ,"");
	 vr = vr.replace( /-/g  ,"");
	 vr = vr.replace( /\./g ,"");
	 vr = vr.replace( /\ /g ,"");
	 vr = vr.replace( /\\/g ,"");
	 return vr;
}

function isValidNumber(vNum)
{
	if( vNum.length == 0 ) return true;
	if (window.RegExp) 
	{
		var reg1 = new RegExp(/^\d+$/);
		if ( !reg1.test(vNum) )
			return false;
		else 
			return true;
	}
}

function CompTime(_v1,_v2) 
{
	var _delta = 0;
	var _a1 = _v1;
	var _a2 = _v2;
	_delta = _a1.getTime() - _a2.getTime(); // in msecs
	return ( _delta > 0 );
}

function parseDate(d1,t1)
{
	var dia1  = d1.substring(0,2);
	var mes1  = d1.substring(3,5);
	var ano1  = d1.substring(6,10);

	var hor1  = t1.substring(0,2);
	var min1  = t1.substring(3,5);
	var seg1  = t1.substring(6,8);

	var data  = new Date();
	data.setMonth(mes1);
	data.setDate(dia1);
	data.setYear(ano1);		

	data.setHours(hor1);
	data.setMinutes(min1);
	data.setSeconds(seg1);
	return data;
}