var HataDurum = false
var isStarted
var logs = ['Loglar']
var log = ''

var kontrol

var isRefreshed = false
var SekmeKapatildi = false
var PcName = ''

var AmazonUrl = ''
var AbeUrl = ''
var UrunID = ''
var MagazaAdi = ''
chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) {
    if (message.Link) {
        window.location.reload()
        setTimeout(function () {
            window.location.reload()
        }, 1000)
    }
    if (message.UygulamaBaslatildi) {
        SekmeBilgileriGonder()
    }
    if (message.PageReload) {
        window.location.reload()
        setTimeout(function () {
            window.location.reload()
        }, 1000)
    }
    if (message.SekmeBulunamadi) {
        var text = "Extension'un çalıştığı sekme açık sekmeler arasında bulunamadı!"
        HataKontrolYap(1, text)
        console.log('Hata var:' + text)
    }
})

var linkKontrolCount = 0
var urunKontrolCount = 0

chrome.storage.onChanged.addListener(function (changes, namespace) {
    var storageChange

    for (key in changes) {
        if (key == 'KontrolUrl1' || key == 'KontrolUrl2') {
            storageChange = changes[key]
            if (storageChange.newValue.length > 0) {
                linkKontrolCount++
                //alert(linkKontrolCount);
                if (linkKontrolCount == 2) {
                    setTimeout(function () {
                        //SiparisTamamla()
                    }, 2000)
                }
            }
        } else if (key == 'AmzUrunList' || key == 'AbeUrunList') {
            storageChange = changes[key]
            if (storageChange.newValue != undefined && storageChange.newValue != null) {
                urunKontrolCount++
                if (urunKontrolCount == 2) {
                    setTimeout(function () {
                        console.log(' UrunListeleriniGonder(); onchanged çağrıldı')
                        UrunListeleriniGonder()
                    }, 2000)
                }
            }
        } else {
        }
    }
})

$(document).ready(function () {
    var host = window.location.host
    var href = window.location.href
    chrome.storage.sync.get(
        [
            'isStarted',
            'UrunGetirildi',
            'Durum',
            'KontrolUrl1',
            'KontrolUrl1Hata',
            'KontrolUrl2Hata',
            'KontrolUrl2',
            'UrunFiyat',
            'AmzPageCount',
            'AbePageCount',
            'AmazonUrl',
            'AbeUrl',
            'UrunFiyat',
            'MagazaAdi',
            'RequestTime',
        ],
        function (item) {
            setTimeout(async function () {
                if (item.isStarted == true) {
                    MagazaAdi = item.MagazaAdi
                    AmazonUrl = item.AmazonUrl
                    console.log(item.Durum)
                    AbeUrl = item.AbeUrl
                    var urll = window.location.href
                    if (urll == 'https://www.amazon.com/gp/errors/404.html') {
                        UrunZararYaz()
                    }
                    if (item.UrunGetirildi == false) {
                        chrome.storage.sync.set(
                            {
                                UrunGetirildi: true,
                                Durum: 'TypeKontrol',
                                KontrolUrl1: '',
                                KontrolUrl2: '',
                            },
                            function () {
                                console.log('TypeKontrol')
                                // var marketplaceID = QueryStringOku('marketplaceID')
                                // if (marketplaceID) {
                                BirinciLinkKontrol()
                                //}
                            }
                        )
                        SekmeBilgileriGonder()
                    } else {
                        console.log(item.Durum + 'TypeKontrol')
                        //HataKontrolYap(250);
                        if (item.Durum == 'TypeKontrol') {
                            console.log('TypeKontrol')
                            // var marketplaceID = QueryStringOku('marketplaceID')
                            // if (marketplaceID) {
                            BirinciLinkKontrol()
                            // }

                            // setTimeout(function () {
                            // var TipKontrolYap = LinkKontrolSayfasi == 1 ? BirinciLinkKontrol(KontrolUrl2, KontrolUrl1Hata) : IkinciLinkKontrol(KontrolUrl1, KontrolUrl2Hata);
                            // }, 500);
                        } else if (item.Durum == 'FiyatKontrol') {
                            var Fiyat = item.UrunFiyat
                            var AmzPageCount = 0
                            var AbePageCount = 0
                            AmazonUrl = item.AmazonUrl
                            AbeUrl = item.AbeUrl
                            var FiyatKontrolSayfasi = QueryStringOku('PgNm')
                            if (FiyatKontrolSayfasi != null && FiyatKontrolSayfasi.length > 0) {
                                setTimeout(function () {
                                    var FiyatKontrolYap =
                                        FiyatKontrolSayfasi == 'Abe'
                                            ? AbeFiyatKontrol(Fiyat, AbePageCount, AbeUrl)
                                            : AmazonFiyatKontrol(Fiyat, AmzPageCount, AmazonUrl)
                                    console.log('FiyatKontrolYap')
                                }, 500)
                            }
                        } else if (item.Durum == 'UrunAl') {
                            AmazonUrl = item.AmazonUrl
                            AbeUrl = item.AbeUrl
                            var UrunSatinAlmaSayfasi = QueryStringOku('PgNm')
                            var UrunSepetSayfasi = QueryStringOku('Basket')
                            var AddAdres = QueryStringOku('AddAdres')
                            var AmzSepetBosalt = QueryStringOku('Sil')
                            var AbeBilling = QueryStringOku('Billing')
                            var isAbePlaceOrder = QueryStringOku('Complete')
                            if (UrunSatinAlmaSayfasi != null && UrunSatinAlmaSayfasi.length > 0) {
                                if (UrunSepetSayfasi != null && UrunSepetSayfasi.length > 0) {
                                    setTimeout(function () {
                                        var HangiSayfa =
                                            UrunSatinAlmaSayfasi == 'Abe' ? AbeBasketPage() : AmzBasketPage()
                                    }, 500)
                                } else if (AddAdres != null && AddAdres.length > 0) {
                                    setTimeout(function () {
                                        var HangiSayfa =
                                            UrunSatinAlmaSayfasi == 'Abe' ? AbeAdresSilme() : 'AmzAdresEkle()'
                                    }, 500)
                                } else if (AmzSepetBosalt != null && AmzSepetBosalt.length > 0) {
                                    setTimeout(function () {
                                        AmzBasketBosalt()
                                    }, 500)
                                } else if (AbeBilling != null && AbeBilling != 'false' && AbeBilling.length > 0) {
                                    setTimeout(function () {
                                        AbeEditBilling()
                                    }, 500)
                                } else if (isAbePlaceOrder != null && isAbePlaceOrder.length > 0) {
                                    setTimeout(function () {
                                        AbeOrderComplete()
                                        //incele
                                    }, 500)
                                } else {
                                    setTimeout(function () {
                                        var HangiSayfa =
                                            UrunSatinAlmaSayfasi == 'Abe'
                                                ? AbeUrunAl(item.UrunFiyat)
                                                : AmzUrunAl(item.UrunFiyat)
                                    }, 500)
                                }
                            } else if (window.location.href == 'https://www.abebooks.com/servlet/ShoppingBasket') {
                                AbeBasketBosalt()
                            } else if (window.location.href == 'https://www.abebooks.com/servlet/PaymentDetail?ac=f') {
                                AbeSaveBilling()
                            } else if (
                                window.location.href == 'https://www.abebooks.com/servlet/OrderSummary' &&
                                document.referrer == 'https://www.abebooks.com/servlet/PaymentDetail?ac=f'
                            ) {
                                AbeOrderComplete()
                            } else if (window.location.href == 'https://www.abebooks.com/servlet/ShippingAddress') {
                                var textMessage = $('.errorMessage').text()
                                if (textMessage.length > 0) {
                                    HataKontrolYap(1, textMessage.trim())
                                    console.log('Hata var:' + textMessage.trim())
                                    UrunZararYaz()
                                } else {
                                    //AbeAdresEkle();

                                    chrome.storage.sync.get(['AdresEklendi'], function (item) {
                                        console.log(item.AdresEklendi)
                                        if (!item.AdresEklendi) {
                                            var url =
                                                'https://www.abebooks.com/servlet/ShippingAddress?AddAdres=true&PgNm=Abe'
                                            SayfaGit(url, 1)
                                        } else {
                                            var link =
                                                'https://www.abebooks.com/servlet/OrderSummary?Billing=false&PgNm=Abe&Complete=true'
                                            SayfaGit(link, 1)
                                            console.log('Adres Eklendi && Sayfa Yenilendi')
                                        }
                                    })
                                }
                            } else if (window.location.pathname == '/gp/huc/view.html') {
                                var SepetCount = $('#nav-cart-count').text()
                                if (SepetCount != undefined && SepetCount.length > 0) {
                                    if (parseInt(SepetCount) > 1) {
                                        var amzlink = 'https://www.amazon.com/gp/cart/view.html?'
                                        var params = 'PgNm=Amz&Sil=True'
                                        var link = amzlink + params
                                        SayfaGit(link, 1)
                                    } else if (parseInt(SepetCount) == 1) {
                                        console.log('Sepetteki ürün 0')
                                        var amzlink = 'https://www.amazon.com/gp/cart/view.html?'
                                        var params = 'PgNm=Amz&Basket=True'
                                        var link = amzlink + params
                                        SayfaGit(link, 1)
                                    } else {
                                    }
                                }
                            } else if (window.location.pathname == '/gp/buy/addressselect/handlers/display.html') {
                                if ($('.address-book-title').length > 0) {
                                    location.reload()
                                }
                                AmzAdresEkle()
                            } else if (window.location.pathname == '/gp/yourstore') {
                                var SepetKargoAdres =
                                    'https://www.amazon.com/gp/buy/addressselect/handlers/display.html'
                                // SekmeAc(SepetKargoAdres);
                                console.log('yourstore')
                            } else {
                                var path = window.location.pathname.toString()
                                var NotAdded = 'item-dispatch'
                                var NotAddedDurum = path.indexOf(NotAdded) !== -1
                                if (NotAddedDurum) {
                                    AmzItemNotAdded()
                                } else {
                                    var pass =
                                        $('.auth-text-truncate:first-child').text().trim().toLowerCase() + '478965'
                                    $('#ap_password').val(pass)
                                    if ($('#signInSubmit').length > 0) {
                                        $('#signInSubmit').click()
                                        $('#signInSubmit').trigger('click')
                                    } else UrunAl(1)
                                    console.log('hiç biri')
                                }
                            }
                        } else if (item.Durum == 'SiparisTamamla') {
                            var Sayfa = QueryStringOku('PgNm')
                            var SiparisTamamla = QueryStringOku('SiparisTamamla')
                            if (Sayfa != null && Sayfa.length > 0) {
                                if (SiparisTamamla != null && SiparisTamamla.length > 0) {
                                    setTimeout(function () {
                                        var HangiSayfa = Sayfa == 'Abe' ? AbeSiparisTamamla() : 'AmzSiparisTamamla()'
                                    }, 500)
                                }
                            } else if (window.location.pathname == '/servlet/ThankYou') {
                                // var params = "?PgNm=Abe&SiparisTamamla=True";
                                // var url = "https://www.abebooks.com/servlet/BuyerOrderTrackPL"
                                // var link = url + params;
                                // SayfaGit(link, 1);
                                // } else if (window.location.pathname == "/gp/buy/thankyou/handlers/display.html") {

                                if ($('.mfa-failure').length > 0) {
                                    chrome.storage.sync.set(
                                        {
                                            Durum: 'UrunAl',
                                            AdresEklendi: true,
                                        },
                                        function () {
                                            console.log('Siparişler alınacak. ')
                                            UrunAl(0)
                                        }
                                    )
                                    //UrunAl();//UrunZararYaz();
                                } else {
                                    AbeSiparisTamamla()
                                }
                            } else if (window.location.pathname == '/gp/buy/thankyou/handlers/display.html')
                                AmzSiparisTamamla()
                        }
                    }
                }
            }, parseInt(item.RequestTime) * 1000)
        }
    )
})

function dialogModal(message, background = 'limegreen') {
    let loader = document.createElement('div')
    $(loader).addClass('extDialog')
    $(loader).css('position', 'fixed')
    $(loader).css('min-height', '200px')
    $(loader).css('height', 'auto')
    $(loader).css('width', '200px')
    $(loader).css('background', background)
    $(loader).css('color', '#fff')
    $(loader).css('overflow-wrap', 'anywhere')
    $(loader).css('border-radius', '50%')
    $(loader).css('font-weight', 'bold')
    $(loader).css('bottom', '10px')
    $(loader).css('right', '0')
    $(loader).css('z-index', '9999')
    $(loader).css('display', 'flex')
    $(loader).css('justify-content', 'center')
    $(loader).css('align-items', 'center')

    $(loader).html(message)
    document.body.append(loader)
    return loader
}

async function SiparisTamamla(dataArray, lastIndex) {
    console.log(dataArray, dataArray.length)
    if (dataArray.length > 0) {
        chrome.storage.sync.get(['MagazaAdi', 'UrunID', 'tracking', 'kargoFirma', 'ApiUrl'], function (item) {
            //MTip: Mağaza Tip (Amazon (0), Abe (1))

            var datam = {
                AsinArray: dataArray,
                magazaDeger: item.MagazaAdi,
                tip: 'newAsinEnd',
            }
            console.log(datam)
            $.ajax({
                type: 'post',
                url: item.ApiUrl + 'ExtensionWebServis/ajaxCall',
                beforeSend: function (xhr) {
                    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest')
                },
                cache: false,
                dataType: 'json',
                data: datam,
                success: function (cevap) {
                    console.log(cevap)
                    if (cevap.hata == '0') {
                        console.log('Hata: Asin Bilgileri Gönderilemedi!')

                        //Hata alındı bilgilendirilme yapılacak
                    } else {
                        let loader = dialogModal(`Yükleniyor...`)
                        if (cevap.result) {
                            console.log(cevap.result)
                            console.log('Asin bilgileri gönderildi')
                            $(loader).html(cevap.result)
                            //$(loader).html('Kayıt Edildi.')
                            setTimeout(function () {
                                chrome.storage.sync.set({ LastIndex: lastIndex + 1 }, function () {})
                            }, 2000)
                        } else {
                            console.log('else girdi')
                            $(loader).html('Hata oluştu.')
                            //SekmeKapat()
                        }
                    }
                },
                error: function (req, textStatus, errorThrown) {
                    console.log('Ooops, something happened: ' + textStatus + ' ' + errorThrown)
                    //SiparisTamamla()
                },
            })
        })
    } else {
        console.log('Bot engellendi. 15 dk bekleniyor...')
        const loader = dialogModal('Bot engellendi. 15 dk bekleniyor...', 'red')

        // Wait for 15 minutes
        await new Promise((resolve) => setTimeout(resolve, 15 * 60 * 1000))

        console.log('Devam ediliyor...')
        $(loader).remove()
        // chrome.storage.sync.get(['SearchUrl'], function (item) {
        //     SekmeAc(item.SearchUrl)
        // });
    }
}

function delay(ms) {
    return new Promise((resolve) => setTimeout(resolve, ms))
}

var RunCount = 0
function UrunGetir() {
    chrome.storage.sync.set({
        KontrolUrl1: '',
        KontrolUrl2: '',
        Titles: '',
        tracking: '',
        kargoFirma: '',
    })
    var host = window.location.host
    setTimeout(function () {
        chrome.storage.sync.get(['MagazaAdi', 'PcName', 'ApiUrl', 'SearchUrl'], function (item) {
            clearTimeout(HataKontrol)
            //HataKontrolYap(75);
            console.log('Ürün Getirilecek!')
            localStorage.clear()
            localStorage.removeItem('LSAmazonUrunList')
            var datam = {
                magazaDeger: item.MagazaAdi,
                pcAd: item.PcName,
                tip: 'newShipmentLogStart',
            }
            console.log(datam)
            console.log('Ürün getirilecek!')
            $.ajax({
                type: 'post',
                url: item.ApiUrl + 'ExtensionWebServis/ajaxCall',
                beforeSend: function (xhr) {
                    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest')
                },
                cache: false,
                dataType: 'json',
                data: datam,
                timeout: 5000,
                success: function (cevap) {
                    console.log(cevap)
                    // if (cevap.hata == 0 || cevap.data==null) {
                    // chrome.storage.sync.set({
                    // "UrunGetirildi": false,
                    // "Durum": "AppStarted"
                    // }, function () {
                    // console.log("Hata: Ürün getirilemedi!");
                    // var d1 = new Date(),
                    // d2 = new Date(d1);
                    // d2.setMinutes(d1.getMinutes() + 30);
                    // var sure = d2.toLocaleString().substring(11, 19);
                    // var text = " Kontrol edilecek sipariş kalmadı! Uygulama 30 dk bekletiliyor." + sure + " itibariyle tekrar başlatılacak.";
                    // HataKontrolYap(1, text);

                    // chrome.runtime.sendMessage({
                    // YenidenBaslat: true,
                    // });
                    // if (host == "www.amazon.com" || host == "www.abebooks.com") {
                    // SekmeKapat(2);
                    // }
                    // });
                    // } else {
                    if (cevap) {
                        if (cevap.hata) {
                            chrome.storage.local.set({ isStarted: false }, function () {
                                chrome.storage.sync.remove(['isStarted'], function () {})
                            })
                        }

                        if (Array.isArray(cevap.result)) {
                            chrome.storage.sync.set(
                                {
                                    ShipID: cevap.result[0].ShipmentId,
                                    ShipDate: cevap.result[0].ShipDate,
                                    UrunGetirildi: true,
                                    Durum: 'TypeKontrol',
                                    KontrolUrl1: '',
                                    KontrolUrl2: '',
                                },
                                function () {
                                    linkKontrolCount = 0
                                    urunKontrolCount = 0
                                    var link1 = cevap.result.Url

                                    SekmeAc(item.SearchUrl)

                                    // if(data.KontrolUrl1 == data.KontrolUrl2)
                                    // {
                                    // chrome.storage.sync.set({
                                    // "Durum": "FiyatKontrol"
                                    // },function () {
                                    // SiparisLinkleriGetir(data.ID, data.AmazonUrl, data.AbeUrl);
                                    // });

                                    // }else{

                                    //SekmeAc(link1);

                                    //AmazonUrl = link1;
                                    //AbeUrl = data.AbeUrl;
                                    console.log('Sekmeler Açılacak!')
                                    if (host == 'www.amazon.com' || host == 'www.ebay.com') {
                                        SekmeKapat(2)
                                    }
                                    //}
                                }
                            )
                        } else {
                            chrome.storage.local.set({ isStarted: false }, function () {
                                chrome.storage.sync.remove(['isStarted'], function () {})
                            })
                        }
                    }
                    //}
                },
                error: function (req, textStatus, errorThrown) {
                    console.log('Ooops, something happened: ' + textStatus + ' ' + errorThrown)
                    //UrunGetir()
                },
            })
        })
    }, 2000)
}

const getInfoTab = async (shipID) => {
    return await axios
        .get(
            'https://sellercentral.amazon.com/fba/inbound-shipment/summary/shipment-info/' + shipID,
            {},
            {
                headers: {
                    cookie: document.cookie,
                },
            }
        )
        .then((response) => {
            if (response.data && response.data.carrierShipmentInfo.totalCostEstimate) {
                return response.data.carrierShipmentInfo.totalCostEstimate.amount ?? undefined
            }
        })
        .catch((e) => {})
}

let shipingData = []
var count = 0
async function BirinciLinkKontrol() {
    chrome.storage.sync.get(['LastIndex'], async function (item) {
        const href = window.location.href
        const loader = dialogModal(`Loading...`)
        let pagenation = 1

        const paginationNext = document.querySelector('a.pagination__next')
        if (paginationNext) {
            const lastPageLink = paginationNext.previousElementSibling
            if (lastPageLink && !isNaN(parseInt(lastPageLink.textContent))) {
                pagenation = parseInt(lastPageLink.textContent)
            }
        }

        console.log('pagenation Sonuc-->' + pagenation)

        function isbn13to10(isbn13) {
            // Sadece 978 veya 979 ile başlıyorsa çevir
            if (!/^(978|979)\d{10}$/.test(isbn13)) return null
            const core = isbn13.substring(3, 12) // İlk 3 haneyi at
            let sum = 0
            for (let i = 0; i < 9; i++) {
                sum += parseInt(core[i], 10) * (10 - i)
            }
            const remainder = 11 - (sum % 11)
            let checkDigit = remainder === 10 ? 'X' : remainder === 11 ? '0' : remainder.toString()
            return core + checkDigit
        }

        const isbnList = []
        let totalFetched = 0

        // 📘 ISBN alma fonksiyonu
        function extractISBNFromHTML(html) {
            const parser = new DOMParser()
            const doc = parser.parseFromString(html, 'text/html')
            const subtitle = doc.querySelector('.x-item-title__subTitle')
            const description = doc.querySelector('.x-item-description-child')
            const isbnBlocks = doc.querySelectorAll('[data-testid="ux-labels-values"]')

            const textSources = [
                subtitle?.textContent || '',
                description?.textContent || '',
                doc.body.textContent || '',
            ]

            for (const text of textSources) {
                const parts = text.split('|').map((p) => p.trim())
                for (const part of parts) {
                    // ISBN-13: 13 rakam (978 veya 979 ile başlar)
                    const isbn13Match = part.match(/(?:ISBN(?:-13)?)[:\s]*((?:978|979)\d{10})/i)
                    if (isbn13Match) return isbn13to10(isbn13Match[1])

                    // ISBN-10: 9 rakam + 1 kontrol karakteri (X/x veya rakam)
                    const isbn10Match = part.match(/(?:ISBN-10)[:\s]*([0-9]{9}[0-9Xx])/i)
                    if (isbn10Match) return isbn10Match[1]

                    // ISBN: alfanümerik veya rakam içerikli
                    const isbnMatch = part.match(/(?:ISBN)[:\s]*([A-Z0-9]{8,10})/i)
                    if (isbnMatch) return isbnMatch[1]

                    // ASIN: genellikle 10 karakterli alfanümerik
                    const asinMatch = part.match(/(?:ASIN)[:\s]*([A-Z0-9]{8,10})/i)
                    if (asinMatch) return asinMatch[1]
                }
            }

            // Alternatif olarak özel alanlardan kontrol et
            for (const block of isbnBlocks) {
                const label = block.querySelector('.ux-labels-values__labels .ux-textspans')?.textContent?.trim()
                const value = block.querySelector('.ux-labels-values__values .ux-textspans')?.textContent?.trim()
                if (label && value) {
                    if (/ISBN-13/i.test(label) && /^(978|979)\d{10}$/.test(value)) return isbn13to10(value)
                    if (/ISBN-10/i.test(label) && /^\d{9}[\dXx]$/.test(value)) return value.toUpperCase()
                    if (/ISBN/i.test(label) && /^[A-Z0-9]{8,13}$/i.test(value)) return value.toUpperCase()
                    if (/ASIN/i.test(label) && /^[A-Z0-9]{8,10}$/i.test(value)) return value
                }
            }

            return null
        }

        let lIndex = 1

        if (item.LastIndex > 1) {
            lIndex = item.LastIndex
        }

        for (let index = lIndex; index <= pagenation; index++) {
            $(loader).html(`Sayfa ${index} / ${pagenation} taranıyor...`)
            const url = `${href}&_pgn=${index}`
            console.log('Url' + url)
            await axios.get(url).then(async (response) => {
                const html = $.parseHTML(response.data)
                const itemLinks = $('a.s-item__link', html)
                    .map((i, el) => el.href)
                    .get()
                let pageIsbnList = []
                console.log('ItemLinks-->' + itemLinks)
                console.log('ItemLinksLength-->' + itemLinks.length)

                for (let i = 0; i < itemLinks.length; i++) {
                    const link = itemLinks[i]
                    try {
                        const detailRes = await axios.get(link)
                        const detailHTML = detailRes.data
                        const isbn = extractISBNFromHTML(detailHTML)
                        if (isbn != null) {
                            let data = {}
                            data.asin = isbn
                            pageIsbnList.push(data)
                        }

                        console.log(`Sayfa ${index} - Ürün ${i + 1}: ${isbn || 'ISBN bulunamadı'} (${link})`)

                        await new Promise((r) => setTimeout(r, 500)) // Saygılı gecikme
                    } catch (err) {
                        console.error('Detay sayfa hatası:', link, err)
                    }
                }

                // ✅ sadece bu sayfaya ait ISBN'ler gönderilir
                await SiparisTamamla(pageIsbnList, index)
            })
        }
    })
}

function getSayfa(adres) {
    var strText = null
    $.ajax({
        url: adres,
        async: false,
        dataType: 'text',
        success: function (text) {
            strText = text
        },
        error: function (http, message, exc) {
            strText = null
        },
    })

    return strText
}

function QueryStringOku(name, url) {
    if (!url) url = window.location.href
    name = name.replace(/[\[\]]/g, '\\$&')
    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
        results = regex.exec(url)
    if (!results) return null
    if (!results[2]) return ''
    return decodeURIComponent(results[2].replace(/\+/g, ' '))
}

function SekmeKapat(sure) {
    setTimeout(function () {
        chrome.runtime.sendMessage({
            SekmeKapat: true,
        })
    }, sure * 1000)
}

function SekmeBilgileriGonder() {
    chrome.runtime.sendMessage({
        AktifSekmeBilgileri: true,
    })
}

function waitForElement(elementPath, callBack) {
    window.setTimeout(function () {
        if ($(elementPath).text().length > 0) {
            callBack(elementPath, $(elementPath))
        } else {
            waitForElement(elementPath, callBack)
        }
    }, 100)
}

function ClearData() {
    AppLog(log)
    AppLogGonder()
    sessionStorage.clear()
    chrome.runtime.sendMessage({
        LinkHata: 'LinkteError',
        YeniSekme: true,
    })
    clearTimeout(HataKontrol)
}

function AppLogGonder() {
    chrome.runtime.sendMessage({
        HataDurum: HataDurum,
        isStarted: isStarted,
        AppLog: logs,
    })
}

function AppLog(log) {
    var time = new Date().toLocaleString()
    var test = log + ' - ' + time
    var loglar = logs
    if (loglar.length < 6) {
        loglar.push(test)
    } else {
        loglar.splice(0, 1)
        loglar.push(test)
    }
    logs = loglar
    localStorage.setItem('LocalStorageAppLog', JSON.stringify(logs))
    chrome.storage.sync.set(
        {
            AppLog: test,
        },
        function () {}
    )
}

function SayfaGit(adres, time) {
    setTimeout(function () {
        window.location.href = adres
    }, parseInt(time) * 1000)
}

function BellekSil() {
    chrome.storage.sync.remove(['isStarted', 'Durum'], function () {})
}

var HataKontrol

function HataKontrolYap(time, msj2) {
    HataKontrol = setTimeout(function () {
        //location.reload();
        chrome.storage.sync.get(
            ['isStarted', 'PcName', 'UygulamaAdi', 'Durum', 'UrunID', 'MagazaAdi'],
            function (item) {
                var aciklama = ''
                if (msj2 == undefined) {
                    aciklama = ''
                } else {
                    aciklama = msj2
                }
                var msj = `Bilgisayar: ${item.PcName} Mağaza Adı: ${item.MagazaAdi}  Durum: ${item.Durum} iken extension çalışmayı durdurdu! ${aciklama}`
                var datam = {
                    ID: item.UrunID,
                    tip: 'newOrderBreak',
                    mesaj: msj,
                }
                console.log(msj)

                $.ajax({
                    type: 'post',
                    url: 'https://www.andromedaworkspace.com/Extension/ajaxCall',
                    beforeSend: function (xhr) {
                        xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest')
                    },
                    cache: false,
                    dataType: 'json',
                    data: datam,
                    success: function (cevap) {
                        if (cevap.hata == 0) {
                            console.log('Hata: Hata Bilgisi Gönderilemedi!')
                        } else {
                            if (cevap.result) {
                                console.log(cevap.result)
                                setTimeout(function () {}, 3000)
                            }
                        }
                        console.log('Hata Bilgisi  Gönder Response!')
                    },
                    error: function (req, textStatus, errorThrown) {
                        console.log('Ooops, something happened: ' + textStatus + ' ' + errorThrown)
                    },
                })
            }
        )
    }, parseInt(time) * 1000)
}

function getRandomInt(max) {
    return Math.floor(Math.random() * (max - 0 + 1)) + 0
}

function SekmeAc(link) {
    setTimeout(function () {
        console.log('Sekme Açılıyor: ' + link)
        chrome.runtime.sendMessage({
            YeniSekme: true,
            Url: link,
        })
    }, 1000)
}

//localStorage.removeItem("KontrolUrl1");
//localStorage.removeItem("KontrolUrl2");
// chrome.storage.local.set({
// 'SekmeCount': 0
// }, function () {
// });
// HataKontrolYap(75);
// chrome.storage.local.get(["RunCount"], function (item) {
// RunCount=item.RunCount
// });
// console.log(RunCount+1);

// chrome.storage.sync.set({
// "UrunID": "",
// "UrunGetirildi": true,
// "Durum": "TypeKontrol",
// "UrunFiyat": "",
// "AbeUrl": "",
// "AmazonUrl": "",
// "KontrolUrl1Hata": 0,
// "KontrolUrl2Hata": 0,
// "KontrolUrl1": "",
// "KontrolUrl2": "",
// "AdresEklendi":false,
// "RunCount": RunCount+1
// }, function () {
// linkKontrolCount = 0;
// urunKontrolCount = 0;
// var link1 = `https://www.amazon.com/Bedtime-Originals-Twinkle-Elephant-Plush/dp/B0771V1JZX`;
// //var link2 = `https://www.ebay.com/itm/Fluffy-Rugs-Anti-Skid-Shaggy-Area-Rug-Carpet-Dining-Room-Home-Bedroom-Floor-Mat/383128436979`;
// var link3 = `https://www.walmart.com/ip/Safavieh-California-Solid-Plush-Shag-Area-Rug-or-Runner/17691964`;
// var link4 = `https://www.wayfair.com/rugs/pdp/calvin-klein-la-hand-woven-shag-cobalt-blue-area-rug-drqh1001.html`;
// var link5 = `https://www.overstock.com/Home-Garden/Safavieh-Madison-Bohemian-Vintage-Cream-Multi-Distressed-Rug-8-x-10/12659869/product.html`;
// var link6 = `https://www.homedepot.com/p/Foss-Unbound-Smoke-Gray-Ribbed-6-ft-x-8-ft-Indoor-Outdoor-Area-Rug-CP45N41PJ1VH/202800194`;
// var link7 = `https://markandday.com/collections/deals-of-month/products/cambrai-modern-white-rug`;
// var link8 = `https://boutiquerugs.com/venezia-vnz-2309-area-rug/?button=shop_now`;
// // if(data.KontrolUrl1 == data.KontrolUrl2)
// // {
// // chrome.storage.sync.set({
// // "Durum": "FiyatKontrol"
// // },function () {
// // SiparisLinkleriGetir(data.ID, data.AmazonUrl, data.AbeUrl);
// // });

// // }else{
// SekmeAc(link1);
// //SekmeAc(link2);
// SekmeAc(link3);
// SekmeAc(link4);
// SekmeAc(link5);
// SekmeAc(link6);
// SekmeAc(link7);
// SekmeAc(link8);

// // AmazonUrl = data.AmazonUrl;
// // AbeUrl = data.AbeUrl;
// // console.log("Sekmeler Açılacak!");
// // if (host == "www.amazon.com" || host == "www.abebooks.com") {
// // SekmeKapat(2);
// // }
// //}
// });
