// source --> https://www.polamerny.com/wp-content/scripts/tracking.js?20201201 
﻿



$(document).ready(function () {

    var packageNumber = qs("paczka"); 
    $('#trackingWait').hide();
 
    var lang = $("#trackingResult").attr('lang');
    if (typeof lang === typeof undefined || lang === false) {
        lang = "pl";
    }

    if ((packageNumber != null) && (packageNumber.length > 0)) {
        $("#trackingWait").show();
        var htmlNotFound = (lang === "en") ? "<b>Package not found</b>" : "<b>Nie znaleziono paczki.</b>";
        var wsUrl = "https://plmcwebapi.polamerinc.com/PackageTracking/";
        var cssStyle = "<style>.event-date{ color: #0094ff; font-size: 1.05em;} .event-description{ font-size: 1.05em;} .event-location { font-style: italic;} .package-info-label { font-size: 1.1em; font-style: italic; border: none; padding: 2px; vertical-align: middle; } .package-info-number { font-size: 1.2em; font-weight: bold; color: #239ddb; border: none; padding: 2px;} .package-info-courier { font-size: 1.1em; font-weight: bold; border: none; padding: 2px;} .event-container { width: 100%; border-bottom: 1px dashed; margin-bottom: 15px;} .package-info-error{ color: #ff0000; padding: 20px 0px;} </style>";


        $.ajax({
            url: wsUrl + packageNumber,
            type: "GET",
            contentType: "application/json; charset=utf-8",
            headers: { 'Access-Control-Allow-Origin': get_hostname($(location).attr('href')) },
            cache: false,
            dataType: "json",
            success: function (result) {
                $("#trackingWait").hide();
                var container = $("<div id='package-info-container'></div>");
                $(cssStyle).appendTo(container);
                if (lang === "en") {
                    $("<h2 class='elementor-heading-title elementor-size-default'>Package search results</h2>").appendTo(container);
                }
                else {
                    $("<h2 class='elementor-heading-title elementor-size-default'>Wynik wyszukiwania</h2>").appendTo(container);
                }
                if ((result != null) && (result.number > 0)) {
                    var infoContainer = $("<div id='package-info'></div>");
                    var info = $("<table id='package-info-table' style='width: auto;'></table>")
                    $("<tr><td class='package-info-label'>" + (lang === "en" ?"Package number:":"Numer paczki:") + "</td><td class='package-info-number'>" + result.number + "</tr>").appendTo(info);
                    if (result.trackingNumber.length > 0) {
                        $("<tr><td class='package-info-label'>Tracking:</td><td class='package-info-courier'>" + result.trackingNumber + "</tr>").appendTo(info);
                   }
                    if (result.courierName.length > 0) {
                        $("<tr><td class='package-info-label'>" + (lang === "en" ? "Courier:":"Kurier:") + "</td><td class='package-info-courier'>" + result.courierName + "</tr>").appendTo(info);
                    }
                    if (result.additionalMessage.length > 0) {
                        $("<tr><td class='package-info-label'>" + (lang === "en" ? "" : "") + "</td><td class='package-info-courier' style='color:#239ddb;'>" + result.additionalMessage + "</tr>").appendTo(info);
                    }
                    info.appendTo(infoContainer);
                    infoContainer.appendTo(container);
                    if ((result.events != null) && (result.events.length > 0)) {
                        var root = $("<ul id='event-list' style='list-style-type: none; padding-left: 0px; margin-top: 20px;'></ul>");
                        for (var i = 0; i < result.events.length; ++i) {
                            var eElem = $("<li id='event-element'></li>");
                            var eDiv = $("<div class='event-container'></div>");
                            $("<div class='event-date'>" + convertDate(result.events[i].eventDate) + "</div>").appendTo(eDiv);
                            $("<div class='event-description'>" + result.events[i].eventDescription + "</div>").appendTo(eDiv);
                            $("<div class='event-location'>" + result.events[i].city + (result.events[i].countryCode.length > 0 ? " (" + result.events[i].countryCode + ")" : "") + "</div>").appendTo(eDiv);
                            eDiv.appendTo(eElem);
                            eElem.appendTo(root);
                        }
                        root.appendTo(container);
                    }
                    else {
                        if (lang === "en") {
                            $("<div class='package-info-error'>Could not find package with provided number.</div>").appendTo(info);
                        }
                        else {
                            $("<div class='package-info-error'>Nie znaleziono paczki o podanym numerze.</div>").appendTo(info);
                        }
                    }
                }
                else {
                    $(htmlNotFound).appendTo(container);
                }

                $("#trackingResult").hide().html(container).slideDown();
            },
            error: function (msg, url, line) {
                $("#trackingWait").hide();
                $("#trackingResult").hide().html("Error").slideDown();
            }
        })
    }

    function convertDate(eventDate) {
        var sRet = "";
        try {
            sRet = eventDate.toString().replace("T00:00:00", "");
            if (sRet.indexOf(".") >= 0) {
                sRet = sRet.substring(0, sRet.indexOf("."));
            }
            if (sRet.indexOf(":") >= 0) {
                sRet = sRet.substring(0, sRet.lastIndexOf(":"));
            }

            if (sRet.indexOf("T")) {
                sRet = sRet.replace("T", "  <span style='font-size: 0.9em; font-style: italic;'>") + "</span>";
            }
        }
        catch (e) {
            sRet = "";
        }
        
        return sRet;
    }

    function get_hostname(url) {
        var m = url.match(/^http.?:\/\/[^/]+/);
        return m ? m[0] : null;
    }

    $("#package-search-button").click(function () {
        var numberToSearch = $("#form-field-name").val();
        if (numberToSearch == null) {
            numberToSearch = "";
        }
        $("#form-field-name").css('border-color', '');
        $("#form-field-name").css('background-color', '#ffffff');
        if (numberToSearch.trim().length == 0) {
            $("#form-field-name").css('border-color', 'red');
            $("#form-field-name").css('background-color', '#ffbbbb');
        }
        else {
            location.href = "/sledzenie-paczki/?paczka=" + numberToSearch.trim();
        }
        return false;
    });

    $("#package-search-button-en").click(function () {
        var numberToSearch = $("#form-field-name").val();
        if (numberToSearch == null) {
            numberToSearch = "";
        }
        $("#form-field-name").css('border-color', '');
        $("#form-field-name").css('background-color', '#ffffff');
        if (numberToSearch.trim().length == 0) {
            $("#form-field-name").css('border-color', 'red');
            $("#form-field-name").css('background-color', '#ffbbbb');
        }
        else {
            location.href = "/en/package-tracking/?paczka=" + numberToSearch.trim();
        }
        return false;
    });

    $("#form-field-name").keyup(function () {
        $("#form-field-name").css('border-color', '');
        $("#form-field-name").css('background-color', '#ffffff');
    });


});



function qs(key) {
    key = key.replace(/[*+?^$.\[\]{}()|\\\/]/g, "\\$&"); // escape RegEx meta chars
    var match = location.search.match(new RegExp("[?&]" + key + "=([^&]+)(&|$)"));
    return match && decodeURIComponent(match[1].replace(/\+/g, " "));
};