﻿
var HybrisIntegration = {
    CommonAjaxURL: "#",
    CountryCode: "#",
    LocaleCode: "#",
    Enabled: false,
    init: function (commonAjaxURL, countryCode, localeCode) {
        if (this.Enabled == false) {
            this.CommonAjaxURL = commonAjaxURL,
            this.CountryCode = countryCode,
            this.LocaleCode = localeCode,
            this.Enabled = true;
        }
    },
    _getHtml: function (address, sf, ef) {
        $.ajax({
            url: HybrisIntegration.CommonAjaxURL + "/store/ajax/" + address,
            context: document.body,
            success: function (result, a, b) {
                if (sf) {
                    if (b.status == 200) {
                        var rmv = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
                        result = result.replace(rmv, '').replace(/^\s\s*/, '').replace(/\s\s*$/, '');
                        sf(result);
                    }
                    else sf("");
                }
            },
            error: function (err) {
                if (ef) ef(err);
            }
        });
    },
    getMenuFlyoutHtml: function (sf, ef) {
        return HybrisIntegration.Enabled ? HybrisIntegration._getHtml("menuFlyout",
            function (d) {
                if (d.indexOf('<!-- FLYOUT--START -->') > 0 && d.indexOf('<!-- FLYOUT--ENDE -->') > 0)
                    d = d.substring(d.indexOf('<!-- FLYOUT--START -->') + '<!-- FLYOUT--START -->'.length, d.indexOf('<!-- FLYOUT--ENDE -->'));
                sf(d);
            },
        ef) : "";
    },
    getCartHtml: function (sf, ef) {
        return HybrisIntegration.Enabled ? HybrisIntegration._getHtml("cart", sf, ef) : "";
    },
    getCartFlyoutHtml: function (sf, ef) {
        return HybrisIntegration.Enabled ? HybrisIntegration._getHtml("cartFlyout", sf, ef) : "";
    },
    getBuyOnlineHtml: function (vib, sf, ef) {
        return HybrisIntegration.Enabled ? HybrisIntegration._getHtml("buyOnline/vib/" + vib.toUpperCase(), sf, ef) : "";
    },
    getMyAccountLink: function (sf, ef) {
        return HybrisIntegration.Enabled ? HybrisIntegration._getHtml("myaccount/button", sf, ef) : "";
        //return HybrisIntegration.Enabled ? (this.CommonAjaxURL + "/store/" + this.LocaleCode + "/" + this.CountryCode + "/myaccount/login/") : "";
    },
    getLoginLogoutLink: function (sf, ef) {
        return HybrisIntegration.Enabled ? HybrisIntegration._getHtml("myaccount/toggle/", sf, ef) : "";
    },
    keepAlive: function () {
        if (HybrisIntegration.Enabled) HybrisIntegration._getHtml("keepAlive");
    }
}

