function initAll() {
    darkMode();
    setLang("fr");
    dysFont();

}

var mobile = false;
var switchs = [], lineCount = [], logiques = [], lines = [], endLines = [], end, switchsInfo = [], switchsInfoCopy = [], lineRemove = [];
var width = window.innerWidth - window.innerWidth / 100 * 30;
var height = window.innerHeight /2.5;
var stage = new Konva.Stage({
    container: 'setting_container',
    width: width,
    height: height,
});
var layer = new Konva.Layer();
tutoCreateLayer();

function tutoCreateLayer() {
    isTuto = true;
    width = window.innerWidth - window.innerWidth / 100 * 30;
    height = window.innerHeight /2.5;
    stage = new Konva.Stage({
        container: 'setting_container',
        width: width,
        height: height,
    });
    stage.add(layer);

    colonneTot = 1;
    numberPerColonne = [1];
    var logiqueCount = 0;

    for (let i = 0; i < colonneTot; i++) {
        liveColonneNumber.push([]);
    }
    insertLogiqueColonne("logique1", "et", 0);
    calculNombreSwitch();
    switchCreator(numberOfSwitch);
    createAllLinkSwitch();

    initAllSwitch();
    createEnd();
    initEnd();
}

function resetAllTabs() {
    switchs = [], lineCount = [], logiques = [], lines = [], endLines = [], end, switchsInfo = [], switchsInfoCopy = [], lineRemove = [];
    width = window.innerWidth - window.innerWidth / 100 * 10;
    height = window.innerHeight /1.5;
    timeEnd = 5;

    numberOfSwitch = 0;

    colonneTot = 0;
    numberPerColonne = [];
    liveColonneNumber = [];

    layer.destroyChildren();
}

function gameOne() {
    createGameOne(niveauActuel);
}

function createGameOne(niveau){
    windowWidth = window.innerWidth;
    windowHeight = window.innerHeight ;
    var numberColonne1 = 2;
    var numberColonne2 = 1;
    var isEtNonAllowed = false;
    var isOuNonAllowed = false;
    switch(niveau){
        case 1:
        case 2:
            timeEnd = 5;
            break;
        case 3:
        case 4:
            timeEnd = 4;
            break;
        case 5:
            timeEnd = 3;
            break;
        case 6:
        case 7:
        case 8:
            isEtNonAllowed = true;
            timeEnd = 5;
            numberColonne1 = 3;
            break;
        case 9:
        case 10:
        case 11:
            isEtNonAllowed = true;
            timeEnd = 4;
            numberColonne1 = 3;
            break;
        case 12:
        case 13:
        case 14:
            isEtNonAllowed = true;
            isOuNonAllowed = true;
            timeEnd = 4;
            numberColonne1 = 3;
            break;
        default:
            isEtNonAllowed = true;
            isOuNonAllowed = true;
            timeEnd = 3;
            numberColonne1 = 4;
            break;
    }
    isTuto = false;
    stage = new Konva.Stage({
        container: 'play_container',
        /*rotation: -90,
        x: 20,
        y: 1000,*/
        width: width,
        height: height,
    });
    stage.add(layer);
    initTimer();
    colonneTot = 2;
    numberPerColonne = [numberColonne1,numberColonne2];
    var logiqueCount = 0;

    for (let i = 0; i < colonneTot; i++) {
        liveColonneNumber.push([]);
    }
    for (let i = 0; i < colonneTot; i++) {
        for (let j = 0; j < numberPerColonne[i]; j++) {
            logiqueCount++;
            let type = null;
            switch (getRandomArbitrary(0, 4)) {
                case 0:
                    type = "et";
                    break;
                case 1:
                    type = "ou";
                    break;
                case 2:
                    if(isEtNonAllowed){
                        type = "etnon";
                    }else{
                        type = "et";
                    }
                    break;
                case 3:
                    if(isOuNonAllowed){
                        type = "nonou";
                    }else{
                        type = "et";
                    }
                    break;
            }
            insertLogiqueColonne("logique" + logiqueCount, type, i);
        }
    }
    
    logiques.forEach(function (element) {
        createLinkAuto(element.name);
    });
    calculNombreSwitch();
    switchCreator(numberOfSwitch);
    createAllLinkSwitch();

    initAllSwitch();
    createEnd();
    initEnd();
    
    console.log(layer.scaleX());

    checkAllSortieLogique();
}

window.addEventListener('resize', changeStage);


function changeStage(){
    if(window.innerWidth <= 900){
        console.log("mobile");
        if(!mobile){
            stage.rotate(90);
            stage.x(stage.getX() + stage.height());
            mobile = true;
        }
    }else{
        stage.scaleX(window.innerWidth / windowWidth);
        console.log(document.querySelector("#play_container").offsetHeight);
        stage.scaleY(window.innerHeight / windowHeight);
    }
    
    stage.draw();
}