//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].replace(",", ""));
  
  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;
}

function verif_mobile_card(v_form, v_text_confirm){
  var v_error = 0;
  var radio = v_form.mobile_code;
  var mobile_code = 0;
  var mobile_code_desc = "";
  var mobile_code_amount = 0;

  //vérification qu'une carte mobile a été cochée
  if(radio.length != undefined){
    for(var i=0; i<radio.length;i++) {
      if (radio[i].checked) {
        mobile_code = radio[i].value;
        mobile_code_desc = radio[i].getAttribute("description");
        mobile_code_amount = radio[i].getAttribute("amount");
      }
    }
  }else{
    if(radio.checked == true){
      mobile_code = radio.value;
      mobile_code_desc = radio.getAttribute("description");
      mobile_code_amount = radio.getAttribute("amount");
    }
  }

  if(mobile_code == 0){
    document.getElementById('meta_webservice_error_mobile_selected').style.display = 'block';
    return false;
  }else{
    document.getElementById('meta_webservice_error_mobile_selected').style.display = 'none';
  }

  var v_amount = getNumber(mobile_code_amount);

  //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_id = document.getElementById('number_card').value;
    v_solde = getMontant(document.getElementById(v_id).value);

      //vérification que le montant de la carte téléphonique mobile est inférieur au solde du compte
      if(v_amount > v_solde){
        //on affiche le div pour le message d'erreur
          document.getElementById('meta_webservice_error_mobile_solde').style.display = 'block';
          v_error = v_error+1;
      }
      else{
        document.getElementById('meta_webservice_error_mobile_solde').style.display = 'none';
      }
  }

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

  return confirm(v_text_confirm.replace('%s', mobile_code_desc));
  //return confirm(v_text_confirm.replace('%s', document.getElementById('mobile_code').options[document.getElementById('mobile_code').selectedIndex].text));
  
  //return true;
}