/************************************************************************************************
 * IsEmpty: Verifica se a string está vazia
 ************************************************************************************************/
function IsEmpty(obj)
{
  var retorno;

  if (obj.value == '') 
     retorno = true;
  else
     retorno = false;
 
  return(retorno);
}

/************************************************************************************************
 * IsNumeric: Verifica o número é valido
 ************************************************************************************************/
function IsNumeric(num)
{
	var n = parseInt(num)
	if ( isNaN(n) )  return(false);
	return(true)
}

/************************************************************************************************
 * IsFloat: Verifica o número flutuante é valido
 ************************************************************************************************/
function IsFloat(num)
{
	var n = parseFloat(num)
	if ( isNaN(n) )  return(false);
	return(true)
}

/************************************************************************************************
 * IsEmail: Verifica se o email é valido
 ************************************************************************************************/
function IsEmail(email)
{
var arroba = 0;
var ponto = 0;
	
   for(var i=0;i<email.length;i++)  {
	if ( email.substr(i,1) == '@') arroba++
	if ( email.substr(i,1) == '.') ponto++
	if ( email.substr(i,1) == ' ') return(false)
   }
   if( arroba != 1 || ponto < 1 ) return(false)
   return(true)
}

function ValidateEmail(email) {
	return(IsEmail(email))
}

/************************************************************************************************
 * CheckStrDate: Verifica a Validade de uma Data
 ************************************************************************************************/
function CheckStrDate(date,separator,formato)
{
	var dt = date.split(separator)
	if( formato == "DMA" ) 
		return CheckDate(dt[0],dt[1],dt[2])
	else
	if( formato == "MDA" ) 
		return CheckDate(dt[1],dt[0],dt[2])
	else
	if( formato == "AMD" ) 
		return CheckDate(dt[2],dt[1],dt[0])
}

/************************************************************************************************
 * CheckDate: Verifica a Validade de uma Data
 ************************************************************************************************/
function CheckDate(dia,mes,ano)
{
	var d, m, a;
	
	d = parseInt(dia,10);
	m = parseInt(mes,10);
	a = parseInt(ano,10);
	
	if ( isNaN(d) )  return(false);
	if ( isNaN(m) )  return(false);
	if ( isNaN(a) )  return(false);

	if ( d < 1 || d > 31 || m < 1 || m > 12 ) 			return(false);

	if ( (m == 4 || m == 6 || m == 9 || m == 11) && d > 30 )	return(false);

	if ( m == 2 )
	{
		if ( a < 50 ) 		a+= 2000
		else
		if ( a < 100 )		a+= 1900

		if ( (a % 4 == 0) && ((a % 100 != 0) || (a % 400 == 0)) ) { // Bisexto
			if ( d > 29 ) return(false)
		}
		else
		if ( d > 28 ) return(false)
	}
	return(true);
}		

/************************************************************************************************
 * CheckYear: Verifica e Retorna um Ano com 4 digitos
 ************************************************************************************************/
function check_year(ano)
{
	var a;

	a = parseInt(ano,10);
	
	if ( isNaN(a) )  return(ano);

	if ( a < 50 ) 		a+= 2000; 
	else
	if ( a < 100 ) 		a+= 1900; 
	return(a);
}		

function CheckYear(ano)
{
	return( check_year(ano) )
}		

function FullYear(ano)
{
	return( check_year(ano) )
}		

/************************************************************************************************
 * CheckStrTime: Verifica a validade de um Horário
 ************************************************************************************************/
function CheckStrTime(hora,separator,formato)
{
	var dt = date.split(separator)
	if( formato == "HM" ) 
		return CheckTime(dt[0],dt[1],0)
	else
	if( formato == "HMS" )
		return CheckTime(dt[0],dt[1],dt[2])
}

/************************************************************************************************
 * CheckTime: Verifica a validade de um Horário
 ************************************************************************************************/
function CheckTime(hora,minuto,segundo)
{
var Str, h, m, s;
	h = parseInt(hora,10);
	m = parseInt(minuto,10);
	s = parseInt(segundo,10);
	if ( isNaN(h) )  return(false);
	if ( isNaN(m) )  return(false);
	if ( isNaN(s) )  return(false);
	if (h < 0 || h > 23 || m < 0 || m > 59 || s < 0 || s > 59) return(false);
	return(true);
}

/************************************************************************************************
 * FullDate: Coloca a Data com ano de 4 Digitos
 ************************************************************************************************/
function FullDate(date,separator,formato)
{
	var dt = date.split(separator)
	if( formato == "DMA" ) 
		return dt[0] + separator + dt[1] + separator + FullYear(dt[2])
	else
	if( formato == "MDA" ) 
		return dt[0] + separator + dt[1] + separator + FullYear(dt[2])
	else
	if( formato == "AMD" ) 
		return FullYear(dt[0]) + separator + dt[1] + separator + dt[2]
	else
		return date
}

/************************************************************************************************
 * checkBrowser: Verifica qual a versao do Navegador
 ************************************************************************************************/
function CheckBrowser(BrowserName, BrowserVersion, VersionCompare)
{ 
  var verStr=navigator.appVersion, app=navigator.appName, version;
  var Browser = '';
  var result = false;

  if (app.indexOf('Netscape') != -1)
     Browser = 'NS';
  else
     if (app.indexOf('Microsoft') != -1)
        Browser = 'IE';
  
  if (Browser == 'IE')
  {
     if (verStr.indexOf('MSIE'))
     {
        var str = verStr.substr((verStr.indexOf('MSIE') + 5), 1);
        version = parseFloat(str);
     }
     else
        version = parseFloat(verStr);
  }
  else
     version = parseFloat(verStr);

  if (VersionCompare == 0)
  {
     if (app == BrowserName && version >= BrowserVersion)
        result = true;
     else
        result = false;
  }
  else      
  {
     if (app == BrowserName && version == BrowserVersion)
        result = true;
     else
        result = false;
  }
     
  return(result);       
}

/************************************************************************************************
 * ValidaForm2
 ************************************************************************************************/
function ValidateForm2(form)
{
   var i = 0;
   var str;
   var retorno = true;
   var msg = "campo obrigatório deve ser preenchido"
   
   if( typeof(_MP_FIELD_REQUIRED) != "undefined" ) msg = _MP_FIELD_REQUIRED
	
   for (i = 0; i < form.length; i++)
   {
       str = new String(form.elements[i].name);
       
       if (str.substr(0, 3) == "txt")
       {
          if (IsEmpty(form.elements[i]))
          {
             alert(form.elements[i].ALIAS + ":" + msg)
             form.elements[i].focus();
             retorno = false;             
             break;
          }
       }            
   }

   if ( retorno ) form.submit();
}

/************************************************************************************************
 * ValidaForm
 ************************************************************************************************/
function ValidateForm(form)
{
   var i = 0;
   var str;
   var retorno = true;
   var msg = "Campo obrigatório deve ser preenchido."
   
   if( typeof(_MP_FIELD_REQUIRED) != "undefined" ) msg = _MP_FIELD_REQUIRED

   for (i = 0; i < form.length; i++)
   {
       str = new String(form.elements[i].name);
       
       if (str.substr(0, 3) == "txt")
       {
          if (IsEmpty(form.elements[i]))
          {
			 if( typeof(form.elements[i].ALIAS) != "undefined" )
				alert(form.elements[i].ALIAS + ":" + msg)
			 else
				alert(msg)
             form.elements[i].focus();
             retorno = false;             
             break;
          }
       }            
   }

   return(retorno);
}

/************************************************************************************************
 * ValidateRequired
 ************************************************************************************************/
function ValidateRequired(form)
{
   var i = 0;
   var msg = "Campo deve ser preenchido"
   
   if( typeof(_MP_FIELD_REQUIRED) != "undefined" ) msg = _MP_FIELD_REQUIRED

   for (i = 0; i < form.length; i++)
   {
	   if( typeof(form.elements[i].REQUIRED) != "undefined" ) 
			Required = form.elements[i].REQUIRED;
	   else
			Required = form.elements[i].name.substr(form.elements[i].name.length - 4, 4) == '_REQ';
       if ( Required && IsEmpty(form.elements[i]))
       {
			 if( typeof(form.elements[i].ALIAS) != "undefined" )
				alert(form.elements[i].ALIAS + ":" + msg)
			 else
				alert(msg)
             form.elements[i].focus();
             return(false)
             break;
       }
   }

   return(true);
}

/************************************************************************************************
 * ValidateDate
 ************************************************************************************************/
function ValidateDate(obj,separator,formato)
{
   var msg = "Data Incorreta!"
   
   if( typeof(_MP_INVALID_DATE) != "undefined" ) msg = _MP_INVALID_DATE

   if( obj.value == '' ) return true;
   if( typeof(separator) == "undefined" ) separator = "/"
   if( typeof(formato)   == "undefined" ) formato   = "DMA"

   if( CheckStrDate(obj.value,separator,formato) ) {
		obj.value = FullDate(obj.value, separator, formato)
		return true
   }
  
   alert(msg)
   obj.select()
   obj.focus()
   
   return(false)
}

/************************************************************************************************
 * ValidateTime
 ************************************************************************************************/
function ValidateTime(obj,separator,formato)
{
   var msg = "Hora Incorreta!"
   
   if( typeof(_MP_INVALID_TIME) != "undefined" ) msg = _MP_INVALID_TIME

   if( typeof(formato) == "undefined" ) formato = "HM"
   if( CheckStrTime(obj.value,separator,formato) ) return true;

   if( typeof(_MP_MSG_INVALID_TIME) == "undefined" )
		alert("Hora incorreta")
   else
		alert(_MP_MSG_INVALID_DATE)
   obj.focus()
   
   return(false)
}

/************************************************************************************************
 * ValidateIntMinMax: Checa o Minimo e Maximo de uma variavel Inteira
 ************************************************************************************************/
function ValidateIntMinMax(obj,min,max)
{
   var msg = "Valor fora dos limites especificados!"
   
   if( typeof(_MP_INVALID_RANGE) != "undefined" ) msg = _MP_INVALID_RANGE

	var v = parseInt(obj.value)
	if( v < min || v > max ) {
		alert(msg)
		obj.focus()
		return false
	}
	return true
}

/************************************************************************************************
 * ValidateFloatMinMax: Checa o Minimo e Maximo de uma variavel Inteira
 ************************************************************************************************/
function ValidateFloatMinMax(obj,min,max)
{
   var msg = "Valor fora dos limites especificados!"
   
   if( typeof(_MP_INVALID_RANGE) != "undefined" ) msg = _MP_INVALID_RANGE

	var v = parseFloat(obj.value)
	if( v < min || v > max ) {
		alert(msg)
		obj.focus()
		return false
	}
	return true
}

/************************************************************************************************
 * ParseDocs
 ************************************************************************************************/
function ParseDocs( num ) {
   var str, retorno, i;
   
   str     = new String(num);
   retorno = new String("");
   
   for (i=0; i < str.length; i++)
   {
      if (str.substr(i, 1) != '.' && str.substr(i, 1) != '-' && str.substr(i, 1) != '/')
      {
         retorno += str.substr(i, 1);
      }
   }
   
   return retorno
}

/************************************************************************************************
 * CheckCGC
 ************************************************************************************************/
function CheckCGC( num ){
var n1 = 0
    n2 = 0
    n3 = 0
    n4 = 0
    n5 = 0
    n6 = 0
    n7 = 0
    n8 = 0
    n9 = 0
    n10 = 0
    n11 = 0
    n12 = 0
    d1 = 0
    d2 = 0
    digitado = new String("")
    calculado = ""
    num1 = ParseDocs(num);
        
if ( num1.length == 14 ) {
   n1 = parseInt( num1.substr(0,1) );
   n2 = parseInt( num1.substr(1,1) );
   n3 = parseInt( num1.substr(2,1) );
   n4 = parseInt( num1.substr(3,1) );
   n5 = parseInt( num1.substr(4,1) );
   n6 = parseInt( num1.substr(5,1) );
   n7 = parseInt( num1.substr(6,1) );
   n8 = parseInt( num1.substr(7,1) );
   n9 = parseInt( num1.substr(8,1) );
   n10 = parseInt( num1.substr(9,1) );
   n11 = parseInt( num1.substr(10,1) );
   n12 = parseInt( num1.substr(11,1) );
   
   d1 = n12*9+n11*8+n10*7+n9*6+n8*5+n7*4+n6*3+n5*2+n4*9+n3*8+n2*7+n1*6;
   d1 = (d1 % 11);
   if ( d1>=10 ) d1 = 0;
   
   d2 = d1*9+n12*8+n11*7+n10*6+n9*5+n8*4+n7*3+n6*2+n5*9+n4*8+n3*7+n2*6+n1*5;
   d2 = d2 % 11;
   if ( d2>=10 ) d2 = 0;

   calculado = ("" + d1) + ( "" + d2);
   digitado = num1.substr(12,1) + num1.substr(13,1);
   
   if ( calculado==digitado )
     return  true
   else
     return  false;
}
else 
  return false;
}

/************************************************************************************************
 * CheckCPF
 ************************************************************************************************/
function CheckCPF( num ){
var n1 = 0
    n2 = 0
    n3 = 0
    n4 = 0
    n5 = 0
    n6 = 0
    n7 = 0
    n8 = 0
    n9 = 0
    d1 = 0
    d2 = 0
    digitado = new String("")
    calculado = ""
    num1 = ParseDocs(num);
        
if ( num1.length == 11 ) {
   n1 = parseInt( num1.substr(0,1) );
   n2 = parseInt( num1.substr(1,1) );
   n3 = parseInt( num1.substr(2,1) );
   n4 = parseInt( num1.substr(3,1) );
   n5 = parseInt( num1.substr(4,1) );
   n6 = parseInt( num1.substr(5,1) );
   n7 = parseInt( num1.substr(6,1) );
   n8 = parseInt( num1.substr(7,1) );
   n9 = parseInt( num1.substr(8,1) );
   
   d1 = n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10;
   d1 = 11-(d1 % 11);
   
   if ( d1>=10 ) d1 = 0;
   
   d2 = d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11;
   d2 = 11-(d2 % 11);
   
   if ( d2>=10 ) d2 = 0;
   
   calculado = ("" + d1) + ( "" + d2);
   
   digitado = num1.substr(9,1);
   digitado += num1.substr(10,1);
   
   if ( calculado==digitado )
     return  true 
   else
     return  false
}
else 
  return false
  
}
