
function AffCarAlea() {
var iCar, iNCar, sCar, sInconnnu, sIncertain, sEnsemble;
  sInconnu = document.getElementById('carInconnu').innerHTML; //doivent être sans espace
  sIncertain = document.getElementById('carIncertain').innerHTML;
  sEnsemble = sInconnu + sInconnu + sIncertain;  // favoriser sInconnu
  iNCar = sEnsemble.length;
  iCar = Math.random();
  iCar *= (iNCar-1);
  iCar = Math.round(iCar);
  //alert(iCar + "/" + iNCar + " " + sEnsemble);
  sCar = sEnsemble.substr(iCar, 1);

  document.getElementById('hanzi').innerHTML = sCar;
  document.getElementById('hanzi-2').innerHTML = sCar;
  //document.getElementById('hanzi-3').innerHTML = sCar;
  //reinitialiser les boutons radio à vide
}


function TransfererCarAct(iVers) {
// En entrée, iVers vaut 0 (transférer dans carConnu), 1 (dans carIncertain) ou 2 (dans carInconnu)
var sCarAct, sInconnnu, sIncertain, sConnu;
    sCarAct = document.getElementById('hanzi').innerHTML;
    sConnu = document.getElementById('carConnu').innerHTML;
    sInconnu = document.getElementById('carInconnu').innerHTML;
    sIncertain = document.getElementById('carIncertain').innerHTML;

    sInconnu = Remplacer(sInconnu, sCarAct);
    sIncertain = Remplacer(sIncertain, sCarAct);
    if(iVers==0) { 
        sConnu = sConnu + sCarAct;
    }
    if(iVers==1) { 
        sIncertain =sIncertain + sCarAct;
    }
    if(iVers==2) { 
        sInconnu = sInconnu + sCarAct;
    }
    document.getElementById('carConnu').innerHTML = sConnu;
    document.getElementById('carInconnu').innerHTML = sInconnu;
    document.getElementById('carIncertain').innerHTML = sIncertain;

    ProchainCar();
}
function Remplacer(sFouille, sCherche) {
var sDes;
    sDes = sFouille.substr(0,sFouille.indexOf(sCherche)) + sFouille.substr(sFouille.indexOf(sCherche)+1); 
    return(sDes);
}

function RetirerCarAct() {
// Retirer le caractere affiche dans la balise hanzi de la balise carInconnu ou carIncertain
var sCarAct, sInconnnu, sIncertain, sConnu;
    sCarAct = document.getElementById('hanzi').innerHTML;

    sInconnu = document.getElementById('carInconnu').innerHTML;
    //sInconnu.replace(sCarAct, '');
    sInconnu = sInconnu.substr(0,sInconnu.indexOf(sCarAct)) + sInconnu.substr(sInconnu.indexOf(sCarAct)+1);  // vérifier si paramètre de longueur est obligatoire...
    document.getElementById('carInconnu').innerHTML = sInconnu;

    sIncertain = document.getElementById('carIncertain').innerHTML;
    //sIncertain.replace(sCarAct, '');
    sIncertain = sIncertain.substr(0,sIncertain.indexOf(sCarAct)) + sIncertain.substr(sIncertain.indexOf(sCarAct)+1); 
    document.getElementById('carIncertain').innerHTML = sIncertain;

    sConnu = document.getElementById('carConnu').innerHTML + sCarAct;
    document.getElementById('carConnu').innerHTML = sConnu;
}

function RetirerChaine(s, id) {
// Retirer la chaine s contenue à l'interieur de la balise id
var sSou, sDes;
  sSou = document.getElementById(id).innerHTML;
  sDes = sSou;  //... a modifier
  getElementById('carInconnu').innerHTML = sDes;
}

function InitPartie() {
    var i = document.getElementById('postRaIkura').value;
    var radio = document.getElementById('raIkura');
    radio[i].checked = true;
    i = document.getElementById('postRaNiveau').value;
    var radio2 = document.getElementById('raNiveau');
    radio2[i].checked = true;

var sDes, sSou, sFin, sInconnu;
    sInconnu = document.getElementById('carInconnu').innerHTML;
    iCle = sInconnu.charCodeAt(0) % 64;
    //alert(iCle);
    //iCle=46;
    sSou = document.getElementById('dingyi').value;
    //101012 sDes = CrissageChaine(sSou, iCle, 1);
    //101012 document.getElementById('dingyi').value = sDes;
    ProchainCar();
}


function RicominciarePartita() {
// On ne touche plus aux radios (devenues cachées)...
var sInconnu;
    sInconnu = document.getElementById('carConnu').innerHTML;
    sInconnu += document.getElementById('carIncertain').innerHTML;
    sInconnu += document.getElementById('carInconnu').innerHTML;
    document.getElementById('carInconnu').innerHTML = sInconnu;
    document.getElementById('carConnu').innerHTML = "";
    document.getElementById('carIncertain').innerHTML = "";
    ProchainCar();
}


function ProchainCar() {
    document.getElementById('pi').style.display = 'none';
    document.getElementById('fr').style.display = 'none';
    document.getElementById('mot').innerHTML = "";
    var radio = document.getElementById('raDecision');
    for (var i=0; i<radio.length;i++) {
         radio[i].checked = false; }
    var radio = document.getElementById('raDefinition');
    for (var i=0; i<radio.length;i++) {
         radio[i].checked = false; }
    AffCarAlea();
    //AffDef(1,1); //test***
}

function AffDef(bPi, bFr, sLang) {
var kDelimChamp = "|";
var sCarAct, iUni, sPin, sTra, sLig, tChamp;
var sMots, tMots, iMot, tChamps, sMot;
var sDefCumul;
//var sLang="zh-cn";

    sCarAct = document.getElementById('hanzi').innerHTML;
    iUni = sCarAct;

    sDefCumul = document.getElementById('dingyi').value;
    sLig = TrouverLigneDef(iUni, sDefCumul);  //ligne 111
    tChamp = sLig.split(kDelimChamp);
    sPin = tChamp[1];
    sTra = tChamp[2];

    if (bPi==1) {
        document.getElementById('pi').innerHTML = sPin;
        document.getElementById('pi').style.display = 'inline'; }
    if (bFr==1) {
        document.getElementById('fr').innerHTML = sTra;
        document.getElementById('fr').style.display = 'inline'; }
    if (bPi==1 && bFr==1) {
        sTra = tChamp[5];
        sMot = "<span class='zh1' lang='" + sLang + "'>" + tChamp[3] + " </span><span class='pi'>" + tChamp[4] + " : </span><span class='fr'>" + sTra + "</span>";
        document.getElementById('mot').innerHTML = sMot;
        document.getElementById('mot').style.display = 'inline'; }
}

var iCle = 10;
function CrissageChaine(sSou, iDecal, iDirection) {
var sDes;
var iMin = 40;  //65
var iMax =256;

var iLonSou = sSou.length;
var tAsc = new Array(iLonSou);
var tCar = new Array(iLonSou);

    if (iDirection==-1) iDecal = (iMax - iMin - iDecal);

    for (i=0; i<sSou.length; i++) {
        tAsc[i] = sSou.charCodeAt(i);
        if (tAsc[i] < iMax) tCar[i] = String.fromCharCode(tAsc[i]); else tCar[i] = "&#" + tAsc[i] + ";" ;
    }
    sSou = tCar.join("");
//alert(sSou + " = " + sSou.length);

    for (i=0; i<sSou.length; i++) {
        tAsc[i] = sSou.charCodeAt(i);
        if((tAsc[i]>=iMin) && (tAsc[i]<=iMax)) {
            tAsc[i] = tAsc[i] + iDecal;
            if (tAsc[i]>=iMax) tAsc[i] = (tAsc[i] - iMax + iMin);
        }
        tCar[i] = String.fromCharCode(tAsc[i]);
    }
    sDes = tCar.join("");
//alert(sSou + " = " + sSou.length);
//alert(sDes + " = " + sDes.length);
    return(sDes);
}

function TrouverLigneDef(sUni, sDico) {
//On renvoie la ligne de définition de sUni
var kDelimChamp = "|";
var kDelimLig = "§";
var iDeb;
var iFin;
var sSou;

//101012 sUni = "&#" + sUni.charCodeAt(0) + ";";  // si Crissage ***
    iDeb = sDico.indexOf(kDelimChamp + sUni + kDelimChamp);
    if (iDeb != -1) {
        sSou = sDico.substr(iDeb + 1);
        iFin = sSou.indexOf(kDelimLig);
        if (iFin != -1) {
            sSou = sSou.substr(0, iFin);
        }
    }
    return(sSou);
}

function ExTrouverLigneDef(sUni, sDico) {
//On renvoie la ligne de définition de sUni
var kDelimLig = "§";
var iDeb;
var iFin;
var sSou;

    iDeb = sDico.indexOf(sUni);
    if (iDeb != -1) {
        sSou = sDico.substr(iDeb);
        iFin = sSou.indexOf(kDelimLig);
        if (iFin != -1) {
            sSou = sSou.substr(0, iFin);
        }
    }
    return(sSou);
}



function Alea(iMin, iMax) {
var iCar;
    iCar = Math.random();
    iCar *= (iMax-1);
    iCar = Math.round(iCar);
    iCar += iMin;
    return(iCar);
}

