var logs = []
var sizes = ['1', '2', '3', '5', '10', '15', '20', '25', '30']

var AramaZamani = 5
$(document).ready(function () {
    // Listen for storage changes
    chrome.storage.onChanged.addListener(function (changes, namespace) {
        if (changes.lastIndex) {
            // Update the lastIndex display
            $('.lastindex').text(changes.lastIndex.newValue)
        }
    })

    Dashboard()
    chrome.runtime.sendMessage(
        {
            method: 'Dashboard',
        },
        function (response) {
            var logsDiv = $('.applogs')
            if (response != undefined) {
                if (response.AppLog) {
                    logsDiv.html('')
                    logs = response.AppLog

                    var uzunluk = logs.length
                    var logsHTML = ''
                    for (index = 0; index < uzunluk; index++) {
                        logsHTML += `<p>⚡ ${logs[index].split('-')[0].trim()}   <i>(${logs[index]
                            .split('-')[1]
                            .trim()})</i></p>`
                    }
                    logsDiv.html(logsHTML)
                }
                if (response.HataDurum == true) {
                    $('.hatavar').show()
                } else {
                    $('.hatavar').hide()
                }
            } else {
                logsDiv.html('')
            }
        }
    )

    $('.slider').slider({
        min: 0,
        max: sizes.length - 1,
        value: 0,
        step: 1,
        slide: function (event, ui) {
            $('.range').text(sizes[ui.value])
            var reqTime = sizes[ui.value]
            chrome.storage.sync.set(
                {
                    RequestTime: reqTime,
                },
                function () {}
            )
            AramaZamani = reqTime
        },
    })

    $('.menu-item').click(function () {
        //divDashboard 0
        //divAyarlar 1
        var index = $(this).index()
        var aktif = $(this).hasClass('active')
        var item = $(this)
        if (!aktif) {
            TabAcKapa(index)
        }
    })

    var StartButton = document.getElementById('StartButton')
    StartButton.disabled = false

    var ResetButton = document.getElementById('ResetButton')
    ResetButton.addEventListener('click', function () {
        chrome.storage.sync.set(
            {
                isStarted: false,
            },
            function (item) {
                chrome.storage.sync.remove(['isStarted', 'RequestTime'], function () {})

                localStorage.clear()
                $('.uygulamabaslat').hide()
                StartButton.disabled = false
                var logsDiv = $('.applogs')
                logsDiv.html('')
                Dashboard()
                console.log('Tüm datalar temizlendi.')
            }
        )
    })

    var CancelButton = document.getElementById('CancelButton')

    CancelButton.addEventListener('click', function () {
        chrome.storage.sync.set(
            {
                isStarted: false,
            },
            function (item) {
                chrome.storage.sync.remove(['isStarted', 'AppLog'], function () {})

                StartButton.disabled = false
                $('.uygulamabaslat').hide()
                var logsDiv = $('.applogs')
                logsDiv.html('')
                Dashboard()
                console.log('İşlemler İptal Edildi')
                chrome.runtime.sendMessage({
                    UygulamaKapatildi: true,
                })
            }
        )
    })

    StartButton.addEventListener(
        'click',
        function (tab) {
            $('.uygulamabaslat').hide()
            chrome.storage.sync.get(['isStarted', 'LastIndex', 'SearchUrl'], function (item) {
                if (item.isStarted == true) {
                    alert('Uygulamayı tekrar başlatmak için önce durdurmalısınız!')
                } else {
                    chrome.tabs.create({
                        url: item.SearchUrl,
                    })
                    chrome.tabs.query(
                        {
                            active: true,
                            currentWindow: true,
                        },
                        function (tabs) {
                            chrome.tabs.sendMessage(tabs[0].id, {
                                Link: item.SearchUrl,
                                UygulamaBaslatildi: true,
                            })
                        }
                    )
                    var MagazaAdi = $('#txtMagazaAdi').val()
                    var PcName = $('#txtPcName').val()
                    var ApiUrl = $('#txtApiUrl').val()
                    var LastIndex = $('#txtLastIndex').val()
                    var SearchUrl = $('#txtSearchUrl').val()

                    if (MagazaAdi.length > 0 && PcName.length > 0 && ApiUrl.length > 0 && SearchUrl.length > 0) {
                        var RequestTime = AramaZamani
                        var Applog = ''

                        Start(RequestTime, PcName, MagazaAdi, Applog, ApiUrl, LastIndex, SearchUrl)
                        setTimeout(function () {
                            Dashboard()
                        }, 1000)
                        StartButton.disabled = false
                        TabAcKapa(0)
                    } else {
                        alert('Lütfen mağaza adı ve bilgisayar adını girdiğinize emin olun!')
                        TabAcKapa(1)
                    }
                }
            })
        },
        false
    )

    //log in
    chrome.storage.sync.get(
        ['PcName', 'RequestTime', 'MagazaAdi', 'ApiUrl', 'LastIndex', 'SearchUrl'],
        function (item) {
            if (item.RequestTime) {
                AramaZamani = item.RequestTime
            }
            if (item.PcName && item.ApiUrl) {
                var pcname = item.PcName
                $('#txtPcName').val(pcname)
                $('#txtMagazaAdi').val(item.MagazaAdi)
                $('#txtApiUrl').val(item.ApiUrl)
                $('#txtLastIndex').val(item.LastIndex)
                $('#txtSearchUrl').val(item.SearchUrl)
            } else {
                // setTimeout(function () {
                // //alert("Lütfen önce bilgisayar adı giriniz.");
                // TabAcKapa(2);
                // }, 1000);
            }
        }
    )
})

function TabAcKapa(index) {
    $('.settings').each(function () {
        $(this).slideUp()
    })
    $('.menu-item').each(function () {
        $(this).removeClass('active')
    })
    $('.menu-item').eq(index).addClass('active')
    $('.settings').eq(index).slideDown()
    setTimeout(function () {
        Dashboard()
    }, 500)
}

function Dashboard() {
    chrome.storage.sync.get(
        ['isStarted', 'RequestTime', 'PcName', 'MagazaAdi', 'ApiUrl', 'LastIndex'],
        function (item) {
            $('.durum').text(item.isStarted == true ? 'Çalışıyor' : 'Devre Dışı')
            $('.bilgisayaradi').text(item.PcName == undefined ? '-' : item.PcName)
            $('.magazaadi').text(item.MagazaAdi == undefined ? '-' : item.MagazaAdi)
            $('.apiurl').text(item.ApiUrl == undefined ? '-' : item.ApiUrl)
            $('.lastindex').text(item.LastIndex == undefined ? 1 : item.LastIndex)
            $('.durum').removeClass('started cancelled')
            $('.durum').addClass(item.isStarted == true ? 'durum started' : 'durum cancelled')
            $('.aramasuresi').text(item.RequestTime == undefined ? '-' : item.RequestTime + ' Saniye')
            var RequestTimeIndex
            if (item.RequestTime == undefined) {
                $('.range').text(sizes[0])
                RequestTimeIndex = 0
            } else {
                RequestTimeIndex = sizes.findIndex((x) => x == item.RequestTime)
                $('.range').text(sizes[RequestTimeIndex])
            }
            $('.slider').slider({
                min: 0,
                max: sizes.length - 1,
                value: RequestTimeIndex,
                step: 1,
            })
        }
    )
}

function Start(RequestTime, PcName, MagazaAdi, Applog, ApiUrl, LastIndex, SearchUrl) {
    chrome.storage.local.clear()
    chrome.storage.sync.set(
        {
            RequestTime: RequestTime,
            isStarted: true,
            LastIndex: LastIndex,
            SearchUrl: SearchUrl,
            UrunID: undefined,
            PcName: PcName,
            MagazaAdi: MagazaAdi,
            ApiUrl: ApiUrl,
            UrunGetirildi: false,
            Durum: 'AppStarted',
            KontrolUrl1: '',
            KontrolUrl2: '',
            UrunFiyat: '',
            AmzPageCount: 0,
            AmzUrunLink: '',
            AbePageCount: 0,
            AbeUrunLink: '',
            KontrolUrl1Hata: 0,
            KontrolUrl2Hata: 0,
            UygulamaAdi: 'Amazon Sipariş',
        },
        function () {
            console.log('Ayarlar Kaydedildi...')
        }
    )
}
