/************************************************************************************************
 * DateMask
 ************************************************************************************************/
function DateMask(e,obj,separator,formato)
{
   if (obj.value.length == 10 ) return(false)
   if ( typeof(formato) == "undefined" ) formato = "DMA"

   var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
   var value    = obj.value;
   var ar		= value.split(separator)
  
   if (charCode > 31 && charCode != separator.charCodeAt() && (charCode < 48 || charCode > 57))
      return false;

   if( charCode == separator.charCodeAt() )
   	if( ar.length == 3 ) // Já tem 2 separadores
   		return false
   	else
   	{
	   if( formato == "DMA" ) {
			if( ar.length == 1 ) // Checa o Dia
				  if ( value < 1 || value > 31) {
					  return(false);
			   }
			if ( ar.length == 2 ) {    // checa o mes
				  var mes = parseInt(ar[1] + String.fromCharCode(charCode));
				  if( mes < 1 || mes > 12 ) return false;
				  if ( (mes == 4 || mes == 6 || mes == 9 || mes == 11) && ar[0] > 30 ) {
					  return(false);
			   }
			}
		}
	   if( formato == "MDA" ) {
			if( ar.length == 2 ) // Checa o Dia
				  if ( value < 1 || value > 31) {
					  return(false);
			   }
			if ( ar.length == 1 ) {    // checa o mes
				  var mes = parseInt(ar[1] + String.fromCharCode(charCode));
				  if( mes < 1 || mes > 12 ) return false;
				  if ( (mes == 4 || mes == 6 || mes == 9 || mes == 11) && ar[0] > 30 ) {
					  return(false);
			   }
			}
		}
	   if( formato == "AMD" ) {
			if( ar.length == 3 ) // Checa o Dia
				  if ( value < 1 || value > 31) {
					  return(false);
			   }
			if ( ar.length == 2 ) {    // checa o mes
				  var mes = parseInt(ar[1] + String.fromCharCode(charCode));
				  if( mes < 1 || mes > 12 ) return false;
				  if ( (mes == 4 || mes == 6 || mes == 9 || mes == 11) && ar[0] > 30 ) {
					  return(false);
			   }
			}
		}
    }
	return(true)
}

/************************************************************************************************
 * TimeMask
 ************************************************************************************************/
function TimeMask(e,obj,separator)
{
   if (obj.value.length == 5 ) return(false)

   var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
   var value    = obj.value;
   var ar = value.split(separator)
  
   if (charCode > 31 && charCode != separator.charCodeAt() && (charCode < 48 || charCode > 57))
      return false;

   if( charCode == separator.charCodeAt() )
   	if( ar.length == 2 ) // Já tem 1 separador
   		return false

   if( ar.length == 1 ) // Checa a Hora
	  if ( value < 0 || value > 24) {
		  alert("Hora incorreto")
		  return(false);
      }
	  
   if ( ar.length == 2 ) { // Checa o Minuto
	  var min = parseInt(ar[1] + String.fromCharCode(charCode));
	  if( min < 0 || min > 59 ) {
		  alert("Minuto incorreto")
		  return(false);
      }
   }
   return(true)
}

/************************************************************************************************
 * IntegerMask
 ************************************************************************************************/
function IntegerMask(e)
{
   var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
   if (charCode > 31 && (charCode < 48 || charCode > 57))
      return false;
   return true;
}

/************************************************************************************************
 * IntegerMaskRange
 ************************************************************************************************/
function IntegerMaskRange(e, n1, n2)
{
   var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
   var digits   = new Array(48,49,50,51,52,53,54,55,56,57);
   if (charCode > 31 && (charCode < digits[n1] || charCode > digits[n2]))
      return false;
   else
      return true;
}

/************************************************************************************************
 * AlfaMask
 ************************************************************************************************/
function AlfaMask(e,bSpace)
{
   var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
   if ( charCode == 32 ) if ( bSpace ) return true; else return false;
   if ( (charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) )
      return true;
   else
      return false;
}

/************************************************************************************************
 * alfaNumericMask
 ************************************************************************************************/
function AlfaNumericMask(e,bSpace)
{
   var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
   if ( charCode == 32 ) if ( bSpace ) return true; else return false;
   if ( (charCode > 47 || charCode < 58) || (charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) )
      return true;
   else
      return false;
}

/************************************************************************************************
 * ValidCharsMask
 ************************************************************************************************/
function ValidCharsMask(e, chars)
{
   var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
   var str = new String(chars);
   var character = String.fromCharCode(charCode);
   var i = 0;
   var result = false;

   if (str.indexOf(character) != -1)
      result = true;
   else
      result = false;
   
   return result;
}

/************************************************************************************************
 * FloatMask
 ************************************************************************************************/
function FloatMask(e,obj,dotchar,maxint,maxdec)
{
   var totint = 0;
   var totdec = 0;
   var p      = 0;
   var charCode 	= (navigator.appName == "Netscape") ? e.which : e.keyCode;
   var dotcharCode 	= dotchar.charCodeAt(0);
   var dotfound 	= (obj.value.indexOf(dotchar) > 0);

   if( charCode == 9 || charCode == 10 || charCode == 13 || charCode == 8 )	return(true);
   if( (charCode < 48 || charCode > 57 ) && charCode != dotcharCode )	return(false);

   if ( dotfound ) {
   	p      = obj.value.indexOf(dotchar);
   	totint = obj.value.substr(0,p-1).length;
   	totdec = obj.value.substr(p+1, obj.value.length-p).length;
   }
   else totint = obj.value.length;
  
  if( charCode == dotcharCode )
  	if ( dotfound )	return(false);
  	else		return(true);
  
  if( dotfound ) {
	if( totdec < maxdec )	return(true);
	else			return(false);
  }
  else {
	if( totint < maxint )	return(true);
	else			return(false);
   }
}

/************************************************************************************************
 * LimitInputLen
 ************************************************************************************************/
function LimitInputLen(e, obj, len)
{
	if( obj.value.length > len ) 
	{
		alert("Atingido o limite de " + len + " caracteres")
		return(false)
	}
	
	return(true)
}

/************************************************************************************************
 * Enter2Tab
 ************************************************************************************************/
function Enter2Tab(e,obj)
{
   var j=0,i=0;
   var charCode = KeyCode(e);
   var form = obj.form;
   var str = "";

   if (charCode == 13)
   {
		// Acha o Elemento Atual
		for (i = 0; form.elements[i] != obj; i++);

		// Acha o Proximo Elemento
        for(j=i+1; j < form.length && form.elements[j].type != 'text' && form.elements[j].type != 'password' && form.elements[j].type != "select"; j++);

		// Verifica o proximo Elemento a partir do inicio
        if( j == form.length )
           for(j=0; j < form.length && form.elements[j].type != 'text' && form.elements[j].type != 'password' && form.elements[j].type != "select"; j++);
       
        // Vai para o elemento
		var str = 'document.' + form.name + '.elements[' + j + '].focus()';

		eval(str);

 		return(false);
   }
   return(true);
}

/************************************************************************************************
 * keyCode
 ************************************************************************************************/
function KeyCode(e)
{
   return (navigator.appName == "Netscape") ? e.which : e.keyCode;
}

/************************************************************************************************
 * FocusFirstField
 ************************************************************************************************/
function FocusFirstField(form)
{
   var i = 0;
   var str;

   for (i = 0; i < form.length; i++)
       if (form.elements[i].type == "text" || form.elements[i].type == "select" )   {
          form.elements[i].focus();
          break
       }
}

/************************************************************************************************
 * CleartextFields
 ************************************************************************************************/
function ClearTextFields(form)
{
   var i = 0;

   for (i = 0; i < form.length; i++)
       if (form.elements[i].type == "text")      form.elements[i].value = '';

   FocusFirstField(form);
}

/************************************************************************************************
 * SelectedButton: Verifica qual Botão de um RadioGroup está CHECADO							*
 ************************************************************************************************/
function SelectedButton(buttonGroup)
{
	for(var i=0; i < buttonGroup.length; i++)
		if( buttonGroup[i].checked ) return(i);
	return(0);
}
