function Skip() {
    if (my_turn) {
        if (isAttacking) {
            isAttacking = false;
            ResetSelection()
            $(".selectionnable").removeClass("selectionnable");
            $("selected").removeClass("selected");
            playableMonsters = monsters; //On met les nouveaux monstres dans la stack
            playableMonsters.forEach(monster => {
                if (!jQuery.isEmptyObject(monster)){
                    monster.has_attacked = false;
                }
            });
            my_turn = false;
            //TODO toute la stylisation
            socket.emit("skip", { room :"{{ room }}"});
        } else {
            isAttacking = true;
            turn.toggle_availables = 0;
            turn.plays_available = 0;
            turn.reineEclipse = 0;
        }
    } else {
        //TODO animation que tu peux pas skip
        console.log("no-skip")
    }
}

function ResetSelection() {
    selectedCard = {
        type: ""
    }
    $(".selected").removeClass("selected");
}

function showPlayableCards(cartes) {
    if(canPlay() == false) {
        //On va aller chercher tous les monstres et les rendre selectionnables
        if (isAttacking) {
            let i = 1
            playableMonsters.forEach(monster => {
               if(canAttack(monster)) {
                $("#monster" + i).addClass("selectionnable");
               } 
            });
            if (jQuery.isEmptyObject(attackingWith) == false) {
                let j = attackingWith.index;
                if (jQuery.isEmptyObject(ennemyMonsters[j])) {
                    //Sur les cotés ou l'ennemie
                    if (j == 0) {
                        $("#ennemy_monster2").addClass("selectionnable")

                    }
                    if (j == 1) {
                        $("#ennemy_monster1").addClass("selectionnable")
                        $("#ennemy_monster3").addClass("selectionnable")
                    }
                    if (j == 2) {
                        $("#ennemy_monster2").addClass("selectionnable")
                    }
                    $("#ennemy_div").addClass("selectionnable")

                } else {
                    $("#ennemy_monster" + index).addClass("selectionnable")
                }
            }
        }
        return;
    }
    $(".cards").each(function(index, value) {
        carte = cartes[index];
        if (carte.color == environnement) { //Si on est dans le bon coté
            if (carte.color == "noire" && carte.cout >= player.cartes.length) { //Si on a pas assez de carte à défausser
                return
            }
            if (carte.color == "blanche" && player.cartes_ennemies.length + carte.cout > 7) {
                //Si on fait piocher trop de carte à l'ennemis
                return
            }
            $("#my_card" + index).addClass("selectionnable");
        }
    });
}

function canPlay() {
    if (turn.plays_available > 0 && my_turn)
        return true;
    return false;
}

function canAttack(monster) {
    if ((monster.name == "ArbreMaudit" && environnement =="blanche") || monster.has_attacked) {
        return false;
    }
    return true;
}

function feedHand(cartes, cartes_ennemies) {
    let i = 0;
    cartes.forEach(carte => {
        if (carte.color != environnement) {
            carte = getCorrespondante(carte);
            player.cartes[i] = carte;
        }
        carte.index = i;
        $("#card_div").append('<div class="cards cartes" id="my_card' + i + '" onclick="PlayCard(' + i + ')"><img src="/imgs/cartes/' + carte.name + '.png" /></div>');
        i++;
    });
    i = 0;
    cartes_ennemies.forEach(carte => {
        if (carte.color != environnement) {
            carte = getCorrespondante(carte);
            player.cartes_ennemies[i] = carte;
        }
        carte.index = i;
        $("#ennemy_div").append('<div class="ennemy_cards cartes" onclick="LogCarte(' + i + ')"><img src="/imgs/cartes/' + carte.name + '.png" /></div>'); 
        i++;
    });
    showPlayableCards(cartes)
}

function ToggleDay()
{
    $("#toggle").css("top", "0");
    setTimeout(function() {
        $("#toggle").css("top:", "-2em");
    }, 1000);
    if (turn.toggle_availables > 0)
    {
        if (environnement == "noire")
        {
            environnement = "blanche"
            $("main").css("background-image", "url(/imgs/plateau/jour.jpg)")
        }
        if (environnement == "blanche")
        {
            environnement = "noire"
            $("main").css("background-image", "url(/imgs/plateau/nuit.jpg)")
        }
        if (turn.reineEclipse > 0) {
            turn.reineEclipse--;
            return
        }
        turn.plays_available--;
        turn.toggle_availables--;
    }
}



function getCorrespondante(carte) {
    return Deck[Deck.findIndex((card) => card.name == carte.correspondante)]
}

socket.on("your_turn", () => {
    console.log("skipped")
    my_turn = true;
    showPlayableCards(player.cartes)
    beginTour()
    //TODO toute la stylisation
})

socket.on("error", () => {
    console.log("error");
    //TODO jouer l'erreur
    //TODO peut etre le type de l'erreur ?
})

function Myturn () {
    console.log(my_turn);
}