/**
 *  Preenche o campo de telefone com a máscara correta
 *  para o formato (41)3030-3030
 *  @author Rodrigo Maia
 *  @date   2008-11-18
 *  @param  string fieldId
 */
function formPhoneMasc(fieldId){
  var field = $(fieldId);
  if (field.value.length == 1){
    field.value = '(' + field.value;
  }

  if (field.value.length == 3){
    field.value = field.value + ')';
  }

  if (field.value.length == 8){
    field.value = field.value + '-';
  }
  return true;
}

/**
 *  Faz uma pré-validação do campo de telefone.
 *  Se for apenas '(', apaga.
 *  @author Rodrigo Maia
 *  @date   2008-11-18
 *  @param  string fieldId
 */
function validatePhone(fieldId){
  var field = $(fieldId);
  if(field.value == '(' || field.value == '(('){
    field.value = '';
  }
  else{
    if(field.value.length > 1){
      var er      = new RegExp(/^\(\d{2}\)\d{4}-\d{4}$/);
      if(!er.test(field.value)){
        alert('Telefone não está no formato correto. Ex (41)3030-3030');
        field.style.border = 'solid 1px #f00';
      }
      else{
        field.style.border = 'solid 1px #ccc';
      }
    }
  }
}

/**
 *  Preenche o campo de CEP com a máscara correta
 *  para o formato 80011-970
 *  @author Rodrigo Maia
 *  @date   2008-11-24
 *  @param  string fieldId
 */
function formCepMasc(fieldId){
  var field = $(fieldId);

  if (field.value.length == 5){
    field.value = field.value + '-';
  }
  return true;
}

/**
 *  Faz uma pré-validação do campo de telefone.
 *  Se for apenas '(', apaga.
 *  @author Rodrigo Maia
 *  @date   2008-11-18
 *  @param  string fieldId
 */
function validateCep(fieldId){
  var field = $(fieldId);
  if(field.value.length > 1){
    var er      = new RegExp(/^[0-9]{5}-[0-9]{3}$/);
    if(!er.test(field.value)){
      alert('CEP não está no formato correto. Ex 80011-970');
      field.style.border = 'solid 1px #f00';
    }
    else{
      field.style.border = 'solid 1px #ccc';
    }
  }
}

/**
 *  Preenche o campo cnpj com a máscara correta
 *  para o formato correto
 *  @author Rodrigo Maia
 *  @date   2008-11-24
 *  @param  string fieldId
 */
function formCnpjMasc(fieldId){
  var field = $(fieldId);

  if (field.value.length == 2){
    field.value = field.value + '.';
  }

  if (field.value.length == 6){
    field.value = field.value + '.';
  }

  if (field.value.length == 10){
    field.value = field.value + '/';
  }

  if (field.value.length == 15){
    field.value = field.value + '-';
  }
  return true;
}

/**
 *  Faz uma pré-validação do campo de cnpj.
 *  Se for apenas '(', apaga.
 *  @author Rodrigo Maia
 *  @date   2008-11-18
 *  @param  string fieldId
 */
function validateCnpj(fieldId){
  var field = $(fieldId);
  if(field.value.length > 1){
    var er      = new RegExp(/^[0-9]{2}.[0-9]{3}.[0-9]{3}\/[0-9]{4}-[0-9]{2}$/);
    if(!er.test(field.value)){
      alert('CNPJ não está no formato correto. Ex 01.234.567/0001-11');
      field.style.border = 'solid 1px #f00';
    }
    else{
      field.style.border = 'solid 1px #ccc';
    }
  }
}

/**
 *  Preenche o campo cnpj com a máscara correta
 *  para o formato correto
 *  @author Rodrigo Maia
 *  @date   2008-11-24
 *  @param  string fieldId
 */
function formMoneyMasc(fieldId){
  var field = $(fieldId);
  var value = field.value;
  var size  = value.length;

  /// Nada a ser feito
  if(field.value.length == 0){
    return true;
  }

  /// Remover o ponto
  tmp = "";
  for(i = 0; i < size; i++){
    if(value[i] != ".")
      tmp = tmp + value[i];
  }
  value = tmp;

  /// Colocar no mínimo em 3 dígitos
  size  = value.length;

  if(size == 1){
    value = "00" + value;
  }
  /// Remover o 0 caso não necessite
  else if(size == 4 && value[0] == 0){
    tmp = "";
    for(i = 1; i < size; i++){
      tmp = tmp + value[i];
    }
    value = tmp;
  }

  /// Quebrar o valor em inteiro e ponto flutuante 
  size    = value.length;
  limit   = size - 2;
  first   = value.substr(0, limit);
  second  = value.substr(limit);

  //alert("Value: " +value+ " | Size: " +size+ " | First: " +first+ " | Second: " +second);

  field.value = first+ "." +second;
  return true;
}

function validateMoney(fieldId){
  return true;
}

/**
 *  Preenche o campo cnpj com a máscara correta
 *  para o formato correto
 *  @author Rodrigo Maia
 *  @date   2008-11-24
 *  @param  string fieldId
 */
function formMyDateMasc(fieldId){
  var field = $(fieldId);

  size  = field.value.length;
  value = field.value;

  /// Remover as barras
  tmp = "";
  for(i = 0; i < size; i++){
    if(value[i] != "/")
      tmp = tmp + value[i];
  }
  value = tmp;

  if(value.length > 2){
    day   = value.substr(0, 2);
    tmp   = value.substr(2);

    value = day+ "/" +tmp;

    // 31/12/2009
    // 0123456789
    // 1234567890

    if(value.length > 5){
      month = tmp.substr(2, 2);
      year  = tmp.substr(4);
      value = day+ "/" +month+ "/" +year;
    }
  }

  field.value = value;
}

/**
 * Preenche o campo informado com a data
 * no formato yyyy-mm-dd
 * @author  Rodrigo Maia <rmaia@diferencialpesquisa.com.br>
 * @date    2009-02-27
 * @param   string fieldId
 */
function todayOnDateField(fieldId){
  var field = $(fieldId);
  var data  = new Date();

  var ano   = data.getFullYear();
  var mes   = data.getMonth().toString();
  if(mes.length == 1)
    mes     = "0" + mes;
  var dia   = data.getDate().toString();
  if(dia.length == 1)
    dia     = "0" + dia;
  var value = ano + "-" + mes + "-" + dia;

  field.value = value;
}

function timePicker(fieldId){
  var field = $(fieldId);
  var div   = $('picker_' + fieldId);

  alert("Este recurso ainda está em desenvolvimento. Por favor, informe o horário manualmente");
}

function manageDivFromSelect(div, select, valor){
  if(select == valor){
    $(div).show();
  }
  else{
    $(div).hide();
  }
}
