/////////////////////////////////////////////////////////////////
//  FUNCOES UTEIS - 01/10/2006                                 //
//                                                             //
// Estas funcionalidades fazem parte da library java script de //
//  F A B I O  L U I S  R O D R I G U E S                      //
// e estão disponibilizadas a empresas as quais presta serviço //
//                                                             //
// Ultima Atualização 01/02/2006                               //
/////////////////////////////////////////////////////////////////

//Formata Moeda
function currencyFormat(fld, milSep, decSep, e) {
      var sep = 0;
      var key = '';
      var i = j = 0;
      var len = len2 = 0;
      var strCheck = '0123456789';
      var aux = aux2 = '';
      var whichCode = (window.Event) ? e.which : e.keyCode;
      if (whichCode == 13) return true;
         key = String.fromCharCode(whichCode);  // Get key value from key code
         if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
            len = fld.value.length;
            for(i = 0; i < len; i++)
               if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
               aux = '';
               for(; i < len; i++)
                  if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
                  aux += key;
                  len = aux.length;
                  if (len == 0) fld.value = '';
                  if (len == 1) fld.value = '0'+ decSep + '0' + aux;
                  if (len == 2) fld.value = '0'+ decSep + aux;
                  if (len > 2) {
                  aux2 = '';
                  for (j = 0, i = len - 3; i >= 0; i--) {
                     if (j == 3) {
                     aux2 += milSep;
                     j = 0;
                  }
                  aux2 += aux.charAt(i);
                  j++;
               }
               fld.value = '';
               len2 = aux2.length;
               for (i = len2 - 1; i >= 0; i--)
                  fld.value += aux2.charAt(i);
                  fld.value += decSep + aux.substr(len - 2, len);
               }
               return false;
         }

//Valida Email         
function isMail(mailField){
  strMail = mailField.value;
  var re = new RegExp;
  re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  var arr = re.exec(strMail);
  if (arr == null)
    return(false);
  else
    return(true);
}

//Valida CPF 
function isCPF(txtField){ 

  var i; 
  s = txtField.value;  
  var c = s.substr(0,9); 
  var dv = s.substr(9,2); 
  var d1 = 0; 
  
  for (i = 0; i < 9; i++){ 
    d1 += c.charAt(i)*(10-i); 
  } 
  
  if (d1 == 0) return false;   
  
  d1 = 11 - (d1 % 11); 
  
  if (d1 > 9) d1 = 0; 
  
  if (dv.charAt(0) != d1) return false; 
  
  d1 *= 2; 
  
  for (i = 0; i < 9; i++){ 
    d1 += c.charAt(i)*(11-i);   
  } 
  
  d1 = 11 - (d1 % 11); 
  
  if (d1 > 9) d1 = 0; 
  
  if (dv.charAt(1) != d1) return false; 
  
  return true; 
  
}

//Verifica se é número
function isNumber(txtField)
{
  numExp = txtField.value;
  if (isNaN(numExp) || (numExp.length == 0))
    return (false);
  else
    return(true);
}

//Permite apenas digitação de caracteres numéricos
function isNumberKey(evt) 
{
	var charCode = (evt.which) ? evt.which : event.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57))
	return false;

	return true;
}

//Formata cep ex:22222-222
function FormataCEP(evt, input) 
{
	var retorno = false;
	var charCode = (evt.which) ? evt.which : event.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57))
	{
	    retorno = false;
	}
	else
	{
	    retorno = true;
	}
	
	if(input.value.length == 0)
	{
	    input.value=input.value;
	}
    else
    {
	    if(input.value.length == 5)
	       input.value=input.value + "-" ;
	}
	
	return retorno;
}

//Formata telefone, sem ddd ex:2222-2222
function FormataTelefone(evt, input) 
{
    var retorno = false;
	var charCode = (evt.which) ? evt.which : event.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57))
	{
	    retorno = false;
	}
	else
	{
	    retorno = true;
	}
	
	if(input.value.length == 0)
	{
	    input.value=input.value;
	}
    else
    {
	    if(input.value.length == 4)
	       input.value=input.value + "-" ;
	}
	
	return retorno;
}

//Formata data
function FormataData(evt, input) 
{
    var retorno = false;
	var charCode = (evt.which) ? evt.which : event.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57))
	{
	    retorno = false;
	}
	else
	{
	    retorno = true;
	}
	
	if(input.value.length == 0)
	{
	    input.value=input.value;
	}
    else
    {
	    if(input.value.length == 2)
	       input.value=input.value + "/" ;
	    if(input.value.length == 5)
	       input.value=input.value + "/" ;
	     
	}
	
	return retorno;
}

function isCPF(source)
      {
                 cpf = source;
                 erro = new String;
                 if (cpf.length < 11) erro += "Sao necessarios 11 digitos para verificacao do CPF! \n\n";
                 var nonNumbers = /\D/;
                 if (nonNumbers.test(cpf)) erro += "A verificacao de CPF suporta apenas numeros! \n\n";
                 if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
                         erro += "Numero de CPF invalido!"
               }
               var a = [];
               var b = new Number;
               var c = 11;
               for (i=0; i<11; i++){
                       a[i] = cpf.charAt(i);
                       if (i < 9) b += (a[i] * --c);
               }
               if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
               b = 0;
               c = 11;
               for (y=0; y<10; y++) b += (a[y] * c--);
               if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
               if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
                       erro +="Digito verificador com problema!";
               }
               if (erro.length > 0){
                       //alert(erro);
                       return false;
               }
               return true;
       }




function isCGC(x) {
        strNum = "";
        if (x == "") {
          return false;
        }
        cnpjO = stringReplace(x,".","");
        cnpjO = stringReplace(cnpjO,"/","");
        cnpjO = stringReplace(cnpjO,"-","");

        x = cnpjO;

        //alert(x);

        l = x.length;
        for (i = 0; i < l; i++) {
          caracter = x.substring(i,i+1)
          if ((caracter >= '0') && (caracter <= '9'))
             strNum = strNum + caracter;
        }

        strMul = "6543298765432";
        iValido = 1;
        if(strNum.length != 14)
            return(false);
        iSoma = 0;
        strNum_base = strNum.substring(0,12);
        iLenNum_base = strNum_base.length - 1;
        iLenMul = strMul.length - 1;
        for(i = 0;i < 12; i++)
           iSoma = iSoma +
        parseInt(strNum_base.substring((iLenNum_base-i),(iLenNum_base-i)+1),10) *
        parseInt(strMul.substring((iLenMul-i),(iLenMul-i)+1),10)
        iSoma = 11 - (iSoma - Math.floor(iSoma/11) * 11);
        if(iSoma == 11 || iSoma == 10)
          iSoma = 0;
        strNum_base = strNum_base + iSoma;
        iSoma = 0;
        iLenNum_base = strNum_base.length - 1
        for(i=0; i < 13; i++)
           iSoma = iSoma +
        parseInt(strNum_base.substring((iLenNum_base-i),(iLenNum_base-i)+1),10) *
        parseInt(strMul.substring((iLenMul-i),(iLenMul-i)+1),10)
        iSoma = 11 - (iSoma - Math.floor(iSoma/11) * 11);
        if(iSoma == 11 || iSoma == 10)
          iSoma = 0;
        strNum_base = strNum_base + iSoma;
        if(strNum != strNum_base)
          return(false);
        return(true);
}


function stringReplace(originalString, findText, replaceText)
{
  var pos = 0;
                var len = findText.length;
                originalString = originalString.toString();

                pos = originalString.indexOf(findText);
  while (pos != -1)
  {
    preString  = originalString.substring(0, pos);
    postString = originalString.substring(pos + len, originalString.length);
    originalString = preString + replaceText + postString;
    pos = originalString.indexOf(findText);
  }

                return originalString;
}


function SelectAll()
{
	for (i=0;i< document.Form1.elements.length;i++)
	{
			if(document.Form1.elements[i].type == "checkbox")
			{
			document.Form1.elements[i].checked=1;
			}
	}
}

function DesSelectAll()
{
	for (i=0;i<document.Form1.elements.length;i++)
	{
		if(document.Form1.elements[i].type == "checkbox")
		{
			document.f1.elements[i].checked=0;
		}
	}
}



