/**
 * Foca o primeiro campo nao-hidden do primeiro formulario (se houver).
 */
function focusField() {
  if (document.forms.length > 0) {
    form = document.forms[0];
    if (form != null) {
      elements = form.elements;
      for (var i = 0; i < elements.length; i++) {
        element = elements[i];
        if (((element.type == 'textarea') || (element.type == 'text') || (element.type == 'select-one')) && (!element.disabled)) {
          element.focus();
          break;
        }
      }
    }
  }
}

/**
 * Passa para o próximo campo quando o campo for preenchido até o maxlength
 */
function proximoCampo(event) {

  var field = (event.target) ? event.target : event.srcElement

  if ( field.type == "text" )  {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

    if ((keyCode >= 32 && keyCode <= 36) ||  //Retirando o 36 à 40 que são as "setas" do teclado
        (keyCode >= 41 && keyCode <= 126) )  {
      if (field.value.length == field.maxLength) {
        var i,y;
        for (i = 0; i < field.form.elements.length; i++){
            if (field == field.form.elements[i]) {
               break;
            }
        }
        y = i;
        while ( true ) {
           i = (i + 1) % field.form.elements.length;
           if (( ! field.form.elements[i].disabled &&
                  field.form.elements[i].type != 'hidden' )||( i < y )) {
              break;
           }
        }
        //Evita que ao preencher o ultimo campo do form retorne
        //para o primeiro novamente.
        if(field.form.elements[i] == null || y == field.form.elements.length - 1) return false;
        field.form.elements[i].focus();
        field.form.elements[i].select();
        return false;
      }else {
        return true;
      }
    }else {
      return true;
    }
  }else{
    return true;
  }
}
