//déclaration des variables
var v_minimum_transfert = 10;
var v_plafond_transfert_KYC_FULL = 500;
var v_plafond_transfert_KYC_LITE = 250;
var v_plafond_solde_KYC_FULL = 500;
var v_plafond_solde_KYC_LITE = 500;

//vérification du formulaire pour modifier le code PIN
function verif_PIN(v_form) {
  //initialisation des variables
    var v_error = 0;

  //vérification de la sélection de la carte
  if(v_form.number_card.value==0){
    //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_set_number_card').style.display = 'block';
    v_error = v_error+1;
  }
  else{ document.getElementById('meta_webservice_error_set_number_card').style.display = 'none';}

  //vérification que le code PIN saisi est un code à 4 chiffres
  if(v_form.pin_old.value.length!=4 || checkNum(v_form.pin_old.value) == "-1"){
    //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_set_pin_old').style.display = 'block';
    v_error = v_error+1;
  }
  else{ document.getElementById('meta_webservice_error_set_pin_old').style.display = 'none';}
  
  //vérification que le code PIN saisi est un code à 4 chiffres
  if(v_form.pin_new.value.length!=4 || checkNum(v_form.pin_new.value) == "-1"){
    //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_set_pin_new').style.display = 'block';
    v_error = v_error+1;
  }
  else{ document.getElementById('meta_webservice_error_set_pin_new').style.display = 'none';}
  
  //vérification que le code PIN saisi est un code à 4 chiffres
  if(v_form.pin_again.value.length!=4 || checkNum(v_form.pin_again.value) == "-1"){
    //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_set_pin_again').style.display = 'block';
    v_error = v_error+1;
  }
  else{ document.getElementById('meta_webservice_error_set_pin_again').style.display = 'none';}

  //vérification que le nouveau code PIN et le code PIN again soient identiques
  if(v_form.pin_again.value != v_form.pin_new.value){
    //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_set_pin_different').style.display = 'block';
    v_error = v_error+1;
  }
  else{ document.getElementById('meta_webservice_error_set_pin_different').style.display = 'none';}

  //si il y a une erreur on ne valide pas le formulaire
  if(v_error > 0){return false;}

  return true;
}

function verif_reload_card(v_form){
  //initialisation des variables
    var v_error = 0;

  //vérification de la sélection de la carte
  if(v_form.number_card.value==0){
    //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_set_number_card').style.display = 'block';
    v_error = v_error+1;
  }
  else{ document.getElementById('meta_webservice_error_set_number_card').style.display = 'none';}

  //vérification que le code de recharge saisi est un code à 12 chiffres
  if(v_form.reload_code.value.length!=12 || checkNum(v_form.reload_code.value) == "-1"){
    //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_reload_code').style.display = 'block';
    v_error = v_error+1;
  }
  else{document.getElementById('meta_webservice_error_reload_code').style.display = 'none';}

  //si il y a une erreur on ne valide pas le formulaire
  if(v_error > 0){return false;}

  return true;
}

function verif_transfer_card(v_form){
  //initialisation des variables
    var v_error = 0;
    var v_id = '0';
    var v_plafond = v_form.meta_webservice_plafond.value;
    var v_plafond_transfert = 0;
    var v_plafond_solde = 0;
    var v_temp_ben = document.getElementById('number_card_emettrice').value.split('-');
    var v_beneficiaire = getMontant(document.getElementById((v_temp_ben[0]-0+1)+'-B').value);

    var v_amount = getNumber(v_form.amount.value);
    v_form.amount.value = v_amount;

  //vérification de la sélection de la carte
  if(v_form.number_card_emettrice.value==0){
    //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_set_number_card').style.display = 'block';
    v_error = v_error+1;
  }
  else{ document.getElementById('meta_webservice_error_set_number_card').style.display = 'none';}

  if(document.getElementById('number_card_emettrice').value != '0'){
      v_id = document.getElementById('number_card_emettrice').value;
      v_solde = getMontant(document.getElementById(v_id).value);

      //vérification que le montant du virement est inférieur au solde
      if(v_amount > v_solde){
        //on affiche le div pour le message d'erreur
          document.getElementById('meta_webservice_error_solde').style.display = 'block';
          v_error = v_error+1;
      }
      else{
        document.getElementById('meta_webservice_error_solde').style.display = 'none';
      }
  }

  //analyse du plafond autorisé
    if(v_plafond == 'KYC_FULL'){
      v_plafond_transfert = v_plafond_transfert_KYC_FULL;
      v_plafond_solde = v_plafond_solde_KYC_FULL;
    }else if(v_plafond == 'KYC_LITE'){
      v_plafond_transfert = v_plafond_transfert_KYC_LITE;
      v_plafond_solde = v_plafond_solde_KYC_LITE;
    }
  //vérification que le montant du transfert est inférieur au maximum autorisé
  //vérification que le solde maximum finale est inférieur au maximum autorisé
  if( (v_amount > v_plafond_transfert) || ((v_amount+v_beneficiaire) > v_plafond_solde) ){
  //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_max_solde').style.display = 'block';
    v_error = v_error+1;
  }
  else{document.getElementById('meta_webservice_error_max_solde').style.display = 'none';}
  
  //vérification que le montant du virement est inférieur au minimum autorisé
  if(v_amount < v_minimum_transfert){
  //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_min_solde').style.display = 'block';
    v_error = v_error+1;
  }
  else{document.getElementById('meta_webservice_error_min_solde').style.display = 'none';}

  //vérification que le montant du virement est un chiffre rond
  if( !isInt(v_amount)){
    //on affiche le div pour le message d'erreur
    document.getElementById('meta_webservice_error_float').style.display = 'block';
    v_error = v_error+1;
  }
  else{document.getElementById('meta_webservice_error_float').style.display = 'none';}

  //si il y a une erreur on ne valide pas le formulaire
  if(v_error > 0){return false;}

  return true;
}

//fonction vérifiant que c'est bien un entier
function isInt(v_num){
  if(parseInt(v_num) != v_num){
    return false;
  }

  return true;
}

//fonction retournant un chiffre en enlevant espace et devise
function getMontant(v_num){
  var v_reg = new RegExp("[ €]+", "g");
  var v_montant = 0;

  v_montant = v_num.split(v_reg);
  v_montant = getNumber(v_montant[0]);
  
  return v_montant;
}

//fonction retournant un chiffre
function getNumber(v_num){
  v_num = v_num.replace(",", ".");
  v_num = parseFloat(v_num);
  v_num = v_num.toFixed(2);
  v_num = parseFloat(v_num);
  
  if(isNaN(v_num)){
    v_num = 0;
  }
  
  return v_num;
}

//fonction vérifiant que le chiffre saisi est bien un nombre
function checkNum(v_num){
  var reg=new RegExp("[0-9]","g");
  var v_error = 0;

  for(i=0;i<v_num.length; i++){
    if(!v_num.substr(i,1).match(reg)){
        v_error = v_error+1;
    }
  }

  if(v_error != 0){
    return "-1";
  }

  return 1;
}

function InitGetBeneficiaire(p_select){
  var v_select = document.getElementById(p_select);
  var emettrice = v_select.value.split('-');
  
  //on affiche le solde de la carte emetteur
  if(v_select.value != 0){
    document.getElementById(v_select.value).style.display = 'block';
    
    list = document.getElementById('number_card_beneficiaire');
    for(i=0; i< list.length; i++){
      beneficiaire = list[i].value.split('-');

      if(beneficiaire[0] == emettrice[0]-0+1 && v_select.value!='0'){
        //on sélectionne cette option
        list[i].selected = true;
        //on affiche son solde
          document.getElementById(v_select.value).style.display = 'block';
          document.getElementById(list[i].value).style.display = 'block';
      }else {
        list[i].selected = false;
      }
    }
  }
}

//
function getBeneficiaire(v_select){
  //alert(v_select.value);
  //récupération du pack
  
  var emettrice = v_select.value.split('-');
  
  //on cache tous les soldes emetteur
  var list = document.getElementById('number_card_emettrice');
  for(var i=0; i< list.length; i++){
    if(list[i].value != 0){
      document.getElementById(list[i].value).style.display = 'none';
    }
  }
  
  //on affiche le solde de la carte emetteur
  if(v_select.value != 0){
    document.getElementById(v_select.value).style.display = 'block';
  }
  
  //on cache tous les soldes bénéficiaires
  list = document.getElementById('number_card_beneficiaire');
  for(i=0; i< list.length; i++){
    if(list[i].value != 0){
      document.getElementById(list[i].value).style.display = 'none';
    }
  }
  
  list = document.getElementById('number_card_beneficiaire');
  for(i=0; i< list.length; i++){
    beneficiaire = list[i].value.split('-');

    if(beneficiaire[0] == emettrice[0]-0+1 && v_select.value!='0'){
      //on sélectionne cette option
      list[i].selected = true;
      //on affiche son solde
        document.getElementById(v_select.value).style.display = 'block';
        document.getElementById(list[i].value).style.display = 'block';
    }else {
      list[i].selected = false;
    }
  }
}

function initGetSolde(p_select){
  v_select = document.getElementById(p_select);
  //on affiche le solde de la carte en cours
  if(v_select.value != 0){
    document.getElementById(v_select.value).style.display = 'inline';
  }
}

function getSolde(v_select){
  //on cache tous les soldes
  var list = document.getElementById('number_card');
  for(var i=0; i< list.length; i++){
    if(list[i].value != 0){
      document.getElementById(list[i].value).style.display = 'none';
    }
  }

  //on affiche le solde de la carte en cours
  if(v_select.value != 0){
    document.getElementById(v_select.value).style.display = 'inline';
  }
}

function setCardTransaction(v_form){
  if(v_form.number_card.value != 0){
    document.getElementById("tx_metawebservice_pi1[card_id]").value = v_form.number_card.value;
    return true;
  }
  return false;
}