var page = require('webpage').create();
var system = require('system');

// Postavke URL-a i korisničkih podataka
var baseUrl = "http://desktop-t3pjdpe/ugo/";
var loginUrl = baseUrl + "users/login";
var salesUrl = baseUrl + "sales";
var emailUrl = baseUrl + "sales/email/"; // Dodaj broj računa kasnije

// Podaci za prijavu
var username = "kasepro";
var password = "6664999";

// Broj računa koji treba poslati email (ovaj broj treba doći iz baze ili parametra)
var brojRacuna = "12"; // Promijeni ovo kako bi koristio dinamičku vrijednost

// Omogućavanje prikaza konzolnih poruka
page.onConsoleMessage = function(msg) {
    console.log("[INFO] " + msg);
};

// Učitavanje login stranice
console.log("Otvaram login stranicu: " + loginUrl);
page.open(loginUrl, function(status) {
    if (status !== "success") {
        console.log("[ERROR] Ne mogu otvoriti login stranicu!");
        phantom.exit(1);
    }

    console.log("[SUCCESS] Login stranica učitana!");

    // Popunjavanje forme za prijavu
    page.evaluate(function(username, password) {
        document.querySelector("input#UserUsername").value = username;
        document.querySelector("input#UserPassword").value = password;
        document.querySelector("input[type='submit']").click();
    }, username, password);

    console.log("[INFO] Prijavljujem se...");
    
    // Sačekaj malo da se login završi
    setTimeout(function() {
        // Provjera je li korisnik logiran (ako postoji H2 s tekstom "POČETNA")
        var isLoggedIn = page.evaluate(function() {
            return document.querySelector("h2")?.innerText.trim() === "POČETNA";
        });

        if (!isLoggedIn) {
            console.log("[ERROR] Login nije uspio!");
            phantom.exit(1);
        }

        console.log("[SUCCESS] Prijavljen sam!");

        // Otvaranje stranice računa
        console.log("Otvaram stranicu računa: " + salesUrl);
        page.open(salesUrl, function(status) {
            if (status !== "success") {
                console.log("[ERROR] Ne mogu otvoriti stranicu računa!");
                phantom.exit(1);
            }

            console.log("[SUCCESS] Stranica računa učitana!");

            // Provjera je li stranica s računima učitana
            var isOnSalesPage = page.evaluate(function() {
                return document.querySelector("h2")?.innerText.trim() === "Računi";
            });

            if (!isOnSalesPage) {
                console.log("[ERROR] Stranica računa nije pravilno učitana!");
                phantom.exit(1);
            }

            // Generiranje URL-a za email slanje
            var emailSendUrl = baseUrl + "sales/email/" + brojRacuna;

            console.log("Klikam na email dugme: " + emailSendUrl);
            page.open(emailSendUrl, function(status) {
                if (status !== "success") {
                    console.log("[ERROR] Ne mogu otvoriti email stranicu!");
                    phantom.exit(1);
                }

                console.log("[SUCCESS] E-mail poslan!");

                phantom.exit(0);
            });
        });
    }, 3000);
});
