var tdv_sdk = {};

tdv_sdk.list = [
    {
        "id": "q1",
        "question": "What is this?",
        "answer": "Scissors", // Đáp án chuẩn
        "image": "https://images.senaai.vn/images/Scissors21.jpg", 
        "audio": "https://audio.senaai.vn/audio/en_male_1_what_is_this.mp3",
        "text": "It is scissors."
    },
    {
        "id": "q2",
        "question": "What is this?",
        "answer": "Glue",
        "image": "https://images.senaai.vn/images/glue.jpg",
        "audio": "https://audio.senaai.vn/audio/en_male_1_what_is_this.mp3",
        "text": "It is glue."
    },
    {
        "id": "q3",
        "question": "What is this?",
        "answer": "Eraser", // Học sinh cần nhập đủ "An Eraser"
        "image": "https://images.senaai.vn/images/eraser52.jpg",
        "audio": "https://audio.senaai.vn/audio/en_male_1_what_is_this.mp3",
        "text": "It is an eraser."
    },
    {
        "id": "q4",
        "question": "What is this?",
        "answer": "Pencil Sharpener",
        "image": "https://images.senaai.vn/images/sharpener.jpg",
        "audio": "https://audio.senaai.vn/audio/en_male_1_what_is_this.mp3",
        "text": "It is a pencil sharpener."
    },
    {
        "id": "q5",
        "question": "What are these?",
        "answer": "Pencils",
        "image": "https://images.senaai.vn/images/colored_pencils18.jpg",
        "audio": "https://audio.senaai.vn/audio/en_male_1_what_are_these.mp3",
        "text": "They are colored pencils."
    }
];


tdv_sdk.currentTotal = 0;
tdv_sdk.currentLevel = 0;
tdv_sdk.question = {}; 


tdv_sdk.shuffleArray = function(Array) {
    for (let i = Array.length - 1; i > 0; i--) {
        const j = Math.floor(Math.random() * (i + 1));
        [Array[i], Array[j]] = [Array[j], Array[i]];
    }
};

// Bắt đầu game
tdv_sdk.start = function() {
    tdv_sdk.currentLevel = 0;
    tdv_sdk.currentTotal = tdv_sdk.list.length;
    tdv_sdk.shuffleArray(tdv_sdk.list);
};

// Lấy câu hỏi hiện tại
tdv_sdk.getQuestions = function(){
    console.log("Current level:", tdv_sdk.currentLevel);
    // Clone dữ liệu để tránh tham chiếu sai
    var currentItem = tdv_sdk.list[tdv_sdk.currentLevel];
    
    tdv_sdk.question = {
        id: currentItem.id,
        question: currentItem.question,
        answer: currentItem.answer,
        audio: currentItem.audio,
        image: currentItem.image,
        text: currentItem.text
    };
    console.log("Question Data:", tdv_sdk.question);
};

// Lấy thông tin cụ thể (dùng trong Construct 2)
tdv_sdk.getQuestionsInfo = function(attr){
    if (tdv_sdk.question && tdv_sdk.question[attr]) {
        return tdv_sdk.question[attr];
    }
    return "";
};

// Phát âm thanh
tdv_sdk.playSoundQuestion = function(rate) {
    const audioSrc = tdv_sdk.question.audio;
    if (!audioSrc) return;
    
    if ((window.audio) && (!window.audio.paused)) {
        window.audio.pause();
    }

    const audio = new Audio(audioSrc);
    audio.playbackRate = rate || 1; 
    window.audio = audio;
    audio.play();
};

/* =========================================
   PHẦN 4: LOGIC KIỂM TRA ĐÁP ÁN (NEW)
   ========================================= */

// Hàm làm sạch chuỗi: Viết thường -> Xóa dấu câu -> Xóa khoảng trắng thừa
tdv_sdk.normalizeString = function(str) {
    if (!str) return "";
    str = str.toString().toLowerCase().trim();
    // Xóa dấu chấm, phẩy, chấm than, chấm hỏi
    str = str.replace(/[.,!?]/g, ""); 
    // Gộp nhiều khoảng trắng thành 1 (Ví dụ: "a   b" -> "a b")
    str = str.replace(/\s\s+/g, ' ');
    return str;
};

// Hàm chấm điểm: Trả về 1 (Đúng) hoặc 0 (Sai)
// Construct 2 gọi: Browser.ExecJS("tdv_sdk.checkAnswer('" & TextBox.Text & "')")
tdv_sdk.checkAnswer = function(studentInput) {
    if (!tdv_sdk.question || !tdv_sdk.question.answer) return 0;

    var inputClean = tdv_sdk.normalizeString(studentInput);
    var answerClean = tdv_sdk.normalizeString(tdv_sdk.question.answer);

    console.log("Student input:", inputClean, "| Correct answer:", answerClean);

    if (inputClean === answerClean) {
        return 1;
    } else {
        return 0;
    }
};



tdv_sdk.getCorrectAnswerImage = function() {
    // Logic mới: Lấy thẳng ảnh của câu hỏi hiện tại
    if (tdv_sdk.question && tdv_sdk.question.image) {
        return tdv_sdk.question.image;
    }
    return ""; 
};

tdv_sdk.getTotalQuestion = function(){
    return tdv_sdk.currentTotal;
};

tdv_sdk.nextLevel = function(){
    if (tdv_sdk.currentLevel < tdv_sdk.list.length) {
        tdv_sdk.currentLevel++;
    }
};

tdv_sdk.getCurrentLevel = function(){
    return tdv_sdk.currentLevel;
};