/* An error occurred during minification, see Sitecore log for more details - returning concatenated content unminified.
 */
;///#SOURCE 1 1 D:\Web\ACN\Website\Scripts\acn\analytics-data-layer.js
//version = 56
(function (root, factory) {
    if (typeof define === 'function' && define.amd) {
        define(['jquery'], function (jquery) {
            return (root.AnalyticsDataLayer = factory(jquery));
        });
    }
    else {
        root.AnalyticsDataLayer = factory(root.jQuery);
        root.jQuery(function () {
            AnalyticsDataLayer.init();
        });

    }

}(typeof self !== 'undefined' ? self : this, function ($) {

    var init = function () {
        if (typeof dataModel != "undefined") {
            setResponsiveLayoutFieldValue();
            setUserProfileInfo();
            setVisitorGroup();
            setJobDetails();
            setBlogDetails();
            setManagedUser();
            setClientType();
            clearCacheOnLogout();
            addInternalSearchIndataModel();
        }
    };

    var addInternalSearchIndataModel = function () {
        // internal search
        dataModel.page.internalSearch = {
            resultType: "",
            keywordStacking: ""
        };
    }

    var setResponsiveLayoutFieldValue = function () {

        var smMin = 768;
        var smMax = 999;

        var deviceSize = "lg/md";

        var windowWidth = $(window).width();

        if (windowWidth < smMin)
            deviceSize = "xs";
        else if (windowWidth >= smMin && windowWidth < smMax)
            deviceSize = "sm";

        dataModel.page.pageInfo.responsiveLayout = deviceSize;
    };

    var setUserProfileInfo = function () {

        dataModel.user = {};

        if (typeof digitalDataUserPersonalize != "undefined") {

            var profileId = digitalDataUserPersonalize.Careers.ProfileID ? digitalDataUserPersonalize.Careers.ProfileID : digitalDataUserPersonalize.Social.ProfileID;
            profileId = profileId ? profileId : "";

            var profileIndustry = digitalDataUserPersonalize.Careers.JobPreference.Industry;
            profileIndustry = profileIndustry ? profileIndustry : "";

            var profileSkill = digitalDataUserPersonalize.Careers.JobPreference.Skill;
            profileSkill = profileSkill ? profileSkill : "";

            var profileSpecialization = digitalDataUserPersonalize.Careers.JobPreference.Specialization;
            profileSpecialization = profileSpecialization ? profileSpecialization : "";

            var profileTravelFrequency = digitalDataUserPersonalize.Careers.JobPreference.TravelFrequency;
            profileTravelFrequency = profileTravelFrequency ? profileTravelFrequency : "";

            var employeeType = digitalDataUserPersonalize.AccentureEmployeeType;
            employeeType = employeeType ? employeeType : "";

            var profileCity = digitalDataUserPersonalize.Careers.JobPreference.City;
            profileCity = profileCity ? profileCity : ""

            var profileCountry = digitalDataUserPersonalize.Careers.JobPreference.Country;
            profileCountry = profileCountry ? profileCountry : ""

            var referral = digitalDataUserPersonalize.Careers.Referral;
            referral = referral ? referral : "none";

            dataModel.user = {
                guid: profileId,
                profileIndustry: profileIndustry,
                profileSkill: profileSkill,
                profileSpecialization: profileSpecialization,
                profileTravelFrequency: profileTravelFrequency,
                profileCity: profileCity,
                profileCountry: profileCountry,
                socialIndustry: digitalDataUserPersonalize.Social.Industry,
                socialSkill: digitalDataUserPersonalize.Social.Skill,
                loginStatus: digitalDataUserPersonalize.UserType,
                candidateId: "",
                candidateType: "",
                accentureEmployeeType: employeeType,
                subscription: {
                    careersBlogSubscriber: digitalDataUserPersonalize.Subscription.CareersBlogSubscriber,
                    careersBlogSubscriberOptInSource: digitalDataUserPersonalize.Subscription.BlogSubscriptionOptInSource,
                    careersBlogSubscriberOptOutSource: digitalDataUserPersonalize.Subscription.BlogSubscriptionOptOutSource,
                    jobAlertsSubscriber: digitalDataUserPersonalize.Subscription.JobAlertsSubscriber,
                    jobAlertsSubscriberOptInSource: digitalDataUserPersonalize.Subscription.JobAlertsOptInSource,
                    jobAlertsSubscriberOptOutSource: digitalDataUserPersonalize.Subscription.JobAlertsOptOutSource,
                    talentConnectionSubscriber: digitalDataUserPersonalize.Subscription.TalentConnectionSubscriber,
                    talentConnectionSubscriberOptInSource: digitalDataUserPersonalize.Subscription.TalentConnectionOptInSource,
                    talentConnectionSubscriberOptOutSource: digitalDataUserPersonalize.Subscription.TalentConnectionOptOutSource
                },
                personalDetails: {
                    profileCountry: digitalDataUserPersonalize.Careers.PersonalDetails.Country,
                    profileStateOrProvince: digitalDataUserPersonalize.Careers.PersonalDetails.StateOrProvince,
                    profileCity: digitalDataUserPersonalize.Careers.PersonalDetails.City
                },
                referral: referral
            };
        }
    };

    //Area of Business List
    var areaOfBusinessList = {
        Abacus:
            [{ "wfId": "1", "entity": "solutions", "displayValue": "solutions" },
            { "wfId": "2", "entity": "accenture operations", "displayValue": "accenture operations" },
            { "wfId": "3", "entity": "corporate functions", "displayValue": "corporate functions" },
            { "wfId": "4", "entity": "consulting", "displayValue": "consulting" }],
        Taleo:
            [{ "OrgUnitLevel1": "Accenture Strategy", "displayValue": "accenture strategy" },
            { "OrgUnitLevel1": "Corporate Functions", "displayValue": "corporate functions" },
            { "OrgUnitLevel1": "Resources", "displayValue": "resources" },
            { "OrgUnitLevel1": "Products", "displayValue": "products" },
            { "OrgUnitLevel1": "Accenture Operations", "displayValue": "accenture operations" },
            { "OrgUnitLevel1": "Health & Public Service", "displayValue": "health & public service" },
            { "OrgUnitLevel1": "Accenture Security", "displayValue": "accenture security" },
            { "OrgUnitLevel1": "Accenture Technology", "displayValue": "accenture technology" },
            { "OrgUnitLevel1": "Communications, Media & Technology", "displayValue": "communications, media & technology" },
            { "OrgUnitLevel1": "Financial Services", "displayValue": "financial services" },
            { "OrgUnitLevel1": "Other", "displayValue": "other" },
            { "OrgUnitLevel1": "Accenture Digital", "displayValue": "accenture digital" },
            { "OrgUnitLevel1": 51573722, "displayValue": "accenture technology" },
            { "OrgUnitLevel1": 51565250, "displayValue": "geographic services" },
            { "OrgUnitLevel1": 51561286, "displayValue": "accenture strategy" },
            { "OrgUnitLevel1": 51546412, "displayValue": "corporate functions" },
            { "OrgUnitLevel1": 51559214, "displayValue": "other" },
            { "OrgUnitLevel1": 52077059, "displayValue": "accenture operations" },
            { "OrgUnitLevel1": 51546758, "displayValue": "financial services" }]
    };


    var setAreaOfBusiness = function () {

        var $areaOfBusiness = $('#joblisting-content[data-job-orgunitlevel1desc');
        var $reinventAreaOfBusiness = $("#job-listing-hero[data-analytics-job-businessArea]");
        var _areaOfBusiness = $areaOfBusiness && $areaOfBusiness.length ? $areaOfBusiness.data('job-orgunitlevel1desc')
            : $reinventAreaOfBusiness && $reinventAreaOfBusiness.length ? $reinventAreaOfBusiness.attr("data-analytics-job-businessArea") : "";

        var isTaleo = function () {
            var getApplyButtonLink = $('#job-listing-hero .apply-job-btn').length != 0 ? $('#job-listing-hero .apply-job-btn').attr('href')
                : $('.joblisting-container .apply-job-btn').attr('href');

            return getApplyButtonLink.indexOf('taleo') != -1 ? true : false;
        };

        if (_areaOfBusiness && _areaOfBusiness.length > 0) {
            if (isTaleo()) {
                //Map Taleo
                for (var n = 0; n < areaOfBusinessList.Taleo.length; n++) {
                    var y = areaOfBusinessList.Taleo[n];

                    if (y.OrgUnitLevel1 === _areaOfBusiness) {
                        return y.displayValue;
                    }
                }
            }
            else {
                //Map Abacus
                for (var i = 0; i < areaOfBusinessList.Abacus.length; i++) {
                    var x = areaOfBusinessList.Abacus[i];

                    if (x.entity === _areaOfBusiness) {
                        return x.displayValue;
                    }
                }
            }
        }
        return _areaOfBusiness ? _areaOfBusiness.trim().toLowerCase() : "";
    };

    //GET JOB DETAILS 
    var setJobDetails = function () {

        if (typeof ComponentRegistry.JobListing === "undefined" && typeof ComponentRegistry.JobDetailsModule === "undefined")
            return;

        var $jobID = $('#jobId');
        var jobNumber = $jobID && $jobID.length ? $jobID.data('job-number') : "";

        var $jobTitle = $('.job-title');
        var jobTitle = $jobTitle && $jobTitle.length ? $jobTitle.find('h1').text().trim() : "";

        var $jobRegion = $('span.job-region-description');
        var jobRegion = $jobRegion && $jobRegion.length ? $jobRegion.text().trim() : "";

        var $jobLocation = $('p.job-location');
        //Remove the space between job location
        var _jobLocation = $jobLocation && $jobLocation.length ? $jobLocation.text().replace(/^\s+|\n|\s+$/gm, '') : "";
        //Omit the word "Job Location"
        var jobLocation = _jobLocation.indexOf("Job Location:") >= 0 ? _jobLocation.replace("Job Location:", "").trim() : _jobLocation;

        var areaOfBusiness = setAreaOfBusiness();

        //Reinvent Job Listing
        var $jobListing = $("#job-listing-hero");
        if ($jobListing && $jobListing.length) {
            var _jobID = $jobListing.attr("data-analytics-job-jobid");
            jobNumber = _jobID && _jobID.length ? _jobID.toLowerCase() : "";

            var _jobTitle = $jobListing.attr("data-analytics-job-title");
            jobTitle = _jobTitle && _jobTitle.length ? _jobTitle.trim().toLowerCase() : "";

            var _jobRegion = $jobListing.attr("data-analytics-job-region");
            jobRegion = _jobRegion && _jobRegion.length ? _jobRegion.trim().toLowerCase() : "";

            var _jobLocation = $jobListing.attr("data-analytics-job-location");
            jobLocation = _jobLocation && _jobLocation.length ? _jobLocation.trim().toLowerCase() : "";

            var _jobSkill = $jobListing.attr("data-analytics-job-skill");
            jobSkill = _jobSkill && _jobSkill.length ? _jobSkill.trim().toLowerCase() : "";

            var _jobJobType = $jobListing.attr("data-analytics-job-jobtype");
            jobJobType = _jobJobType && _jobJobType.length ? _jobJobType.trim().toLowerCase() : "";

            var _specialization = $jobListing.attr('data-analytics-job-specialization');
            _specialization = _specialization ? _specialization.trim().toLowerCase() : "";

            var _yearsOfExperience = $jobListing.attr('data-analytics-job-yearsOfExperience');
            _yearsOfExperience = _yearsOfExperience ? _yearsOfExperience.trim().toLowerCase() : "";

            var _workforceEntity = $jobListing.attr('data-analytics-job-workforceEntity');
            _workforceEntity = _workforceEntity ? _workforceEntity.trim().toLowerCase() : "";

            var _orgUnit1 = $jobListing.attr('data-analytics-job-orgunitLevel1');
            _orgUnit1 = _orgUnit1 ? _orgUnit1.trim().toLowerCase() : "";

            var _orgUnit2 = $jobListing.attr('data-analytics-job-orgUnitLevel2');
            _orgUnit2 = _orgUnit2 ? _orgUnit2.trim().toLowerCase() : "";

            var _orgUnit3 = $jobListing.attr('data-analytics-job-orgUnitLevel3');
            _orgUnit3 = _orgUnit3 ? _orgUnit3.trim().toLowerCase() : "";

            var _orgUnit4 = $jobListing.attr('data-analytics-job-orgUnitLevel4');
            _orgUnit4 = _orgUnit4 ? _orgUnit4.trim().toLowerCase() : "";

            var _orgUnit5 = $jobListing.attr('data-analytics-job-orgUnitLevel5');
            _orgUnit5 = _orgUnit5 ? _orgUnit5.trim().toLowerCase() : "";

            var _orgUnit6 = $jobListing.attr('data-analytics-job-orgUnitLevel6');
            _orgUnit6 = _orgUnit6 ? _orgUnit6.trim().toLowerCase() : "";
        }

        dataModel.job = {
            jobID: jobNumber,
            jobTitle: jobTitle,
            jobRegion: jobRegion,
            jobLocation: jobLocation,
            jobSkill: jobSkill,
            jobJobType: jobJobType,
            jobWorkforceEntity: _workforceEntity,
            businessArea: areaOfBusiness,
            specialization: _specialization,
            jobYearsOfExperience: _yearsOfExperience,
            orgUnit1: _orgUnit1,
            orgUnit2: _orgUnit2,
            orgUnit3: _orgUnit3,
            orgUnit4: _orgUnit4,
            orgUnit5: _orgUnit5,
            orgUnit6: _orgUnit6
        };
    };

    // SET BLOGS DETAILS (Legacy and Redesign)
    var setBlogDetails = function () {
        var blogPageContext = "";
        var blogName = "";
        var blogTagArr = [];
        var blogAuthorArr = [];

        // set blogs object
        dataModel.page.pageInfo.blogs = {
            name: "",
            tag: "",
            topic: "",
            author: ""
        };

        // get blog name 
        if (typeof pageContext !== 'undefined' && pageContext) {
            blogPageContext = pageContext.toLowerCase();
        }
        else {
            blogPageContext = window.location.pathname.toLowerCase();
        }
        if (blogPageContext.indexOf("/blogs/") > -1) {
            var blogBundle = blogPageContext.substr(blogPageContext.lastIndexOf("/blogs/") + 7, blogPageContext.length);
            blogBundle = blogBundle.substr(0, blogBundle.length);
            if (blogPageContext.indexOf("/blogs-main/") > -1) {
                blogBundle = blogPageContext.substr(blogPageContext.lastIndexOf("/blogs-main/") + 12, blogPageContext.length);
                blogBundle = blogBundle.substr(0, blogBundle.length);
            }
            if (blogBundle.indexOf("/") > -1) {
                blogBundle = blogBundle.substr(0, blogBundle.indexOf("/"));
            }
            blogName = blogBundle;
        }

        // get blog tags and blog related topics
        var blogTags = "";
        var $blogTag = $(".module-blog-tags li");
        var $blogRelatedTopic = $(".blog-related-topics li");
        var $blogTagList = $blogTag && $blogTag.length ? $blogTag : $blogRelatedTopic;
        if ($blogTagList.length) {
            for (var i = 0; i < $blogTagList.length; i++) {
                blogTagArr.push($blogTagList[i].getAttribute("title").toLowerCase());
            }
            blogTags = blogTagArr.join('|');
        }

        // populate blogs object under pageInfo
        var multipleAuthors = "";
        var $blogContentModule = $(".blog-content-module");
        //redesign blog post page
        var $blogModuleAuthor = $(".module-blog-authors");
        // legacy blog post page
        var $blogPostModuleAuthor = $("#blogpost-module");
        //article pages
        var $articleBlogPostAuthor = $(".author-profile");
        //AI author pages
        var $AIarticleAuthor = $(".author-module");
        //gets multiple blog authors
        function authorName(selector) {
            var $elem = $(selector);
            if (typeof $elem === "undefined") {
                return;
            }
            for (var i = 0; i < $elem.length; i++) {
                var auth = $($elem[i]).text().replace(/}|{/g, '').trim();
                blogAuthorArr.push(auth.toLowerCase());
            }
            multipleAuthors = blogAuthorArr.join('|');
            dataModel.page.pageInfo.blogs.author = multipleAuthors != null ? multipleAuthors : "";
        }

        if ($blogModuleAuthor && $blogModuleAuthor.length) {
            authorName(".module-blog-authors .module-body #author-name");
        }

        if ($articleBlogPostAuthor && $articleBlogPostAuthor.length) {
            authorName(".author-information .module-title");
        }

        if ($blogPostModuleAuthor && $blogPostModuleAuthor.length) {
            authorName(".blogpost-author-name");
        }

        if ($AIarticleAuthor && $AIarticleAuthor.length) {
            authorName(".author-module .ai-author-info .ai-author-name");
        }

        if ($blogContentModule && $blogContentModule.length) {
            // get details for blogs redesign
            var blogNameRedesign = $blogContentModule.attr('data-analytics-blog-name');
            var blogTopic = $blogContentModule.attr('data-analytics-blog-topic');

            dataModel.page.pageInfo.blogs.name = blogNameRedesign != null ? blogNameRedesign : "";
            dataModel.page.pageInfo.blogs.topic = blogTopic != null ? blogTopic : "";
        } else {
            dataModel.page.pageInfo.blogs.name = blogName;
            dataModel.page.pageInfo.blogs.tag = blogTags;
        }
    };

    var setManagedUser = function () {
        if (dataModel == undefined || dataModel.user == undefined) {
            return;
        }

        var isUserOnManagedPC = false;
        var uAgent = navigator.userAgent.toLowerCase();
        if (uAgent.search("managedpc") > -1) {
            isUserOnManagedPC = true;
        }

        if (acncm != undefined) {
            var _ss_acn_Cookie = acncm.CacheManager.read('_ss_acn');

            var employeeId = "";
            var $navUserDisplayUserName = $('#navUserDisplayUserName');

            /* Detect Accenture employee through the existence of the 'managedpc' string in the browser useragent
            or if the email contains '@accenture.com' */
            if (_ss_acn_Cookie === 'fed' && $navUserDisplayUserName && $navUserDisplayUserName.length > 0) {
                if (isUserOnManagedPC) {
                    employeeId = 'acnemployee|mpc';
                }
                else {
                    employeeId = 'acnemployee|site';
                }
            }

            dataModel.user.AccentureEmployeeId = employeeId.toLowerCase();
        }

    };

    var setVisitorGroup = function () {
        var clientUser = acncm.CacheManager.Authentication.VisitorGroups.value.Client,
            careerUser = acncm.CacheManager.Authentication.VisitorGroups.value.RegisteredUsers,
            visitorKey = acncm.CacheManager.Authentication.VisitorGroups.key,
            isClientUser = acncm.CacheManager.read(visitorKey) === clientUser,
            isCareerUser = acncm.CacheManager.read(visitorKey) === careerUser,
            isSocialUser = (dataModel && dataModel.user && dataModel.user.loginStatus === "auth_sc" ? true : false);

        if (isClientUser) {
            dataModel.user.visitorGroup = "client";
            dataModel.user.loginStatus = "auth";
            dataModel.user.guid = acncm.CacheManager.read(acncm.CacheManager.Authentication.RegisteredUser.ID.key);
        }
        else if (isCareerUser || isSocialUser) {
            dataModel.user.visitorGroup = "career seeker";
        }
        else {
            dataModel.user.visitorGroup = "none";
        }
    };

    //Set Client Type
    var setClientType = function () {

        var clientTypeKey = acncm.CacheManager.Authentication.ClientType.key;
        var clientType = acncm.CacheManager.read(clientTypeKey);

        if (clientType) {
            dataModel.user.clientType = clientType;
        }
        else {
            dataModel.user.clientType = "none";
        }
    };

    //Clear Cache on Logout
    var clearCacheOnLogout = function () {
        var $signOutButton = jQuery('.signin-links li:last-of-type a');

        $signOutButton.off('click').on("click", function () {
            jQuery(window).on("unload", function () {
                acncm.CacheManager.remove(acncm.CacheManager.Authentication.VisitorGroups.key);
                acncm.CacheManager.remove(acncm.CacheManager.Authentication.ClientType.key);
            });
        });
    };

    return {
        init: init
    };
}));
;///#SOURCE 1 1 D:\Web\ACN\Website\Scripts\acn\analytics-tracking-form-analysis.js
//version = 5

(function (root, factory) {
    if (typeof define === 'function' && define.amd) {
        define(['jquery'], function (jquery) {
            return (root.AnalyticsTrackingFormAnalysis = factory(jquery));
        });
    }

    else {
        root.AnalyticsTrackingFormAnalysis = factory(root.jQuery);
        root.jQuery(window).on("load", function () {
            AnalyticsTrackingFormAnalysis.init();
        });

    }

}(typeof self !== 'undefined' ? self : this, function ($) {

    var init = function () {
        setFormCache();

        if (typeof dataModel != "undefined") {
            readFromCache();
        }
    };

    var setFormCache = function () {
        jQuery("body").on("analytics-form-success", function (event, noCache) {
            if (noCache) {
                setDataModelFormSuccess();
            }
            else {
                analyticsCache.write(analyticsCache.Forms.key, analyticsCache.Forms.value.Success);

            }
        });
    };

    var setDataModelFormSuccess = function () {
        dataModel.form = {
            isSuccess: true
        };
    };

    var readFromCache = function () {
        var formSuccessValue = analyticsCache.read(analyticsCache.Forms.key);
        if (formSuccessValue)
        {
            setDataModelFormSuccess();
            analyticsCache.remove(analyticsCache.Forms.key);
        }
    };

    var analyticsCache = {
        Forms: {
            key: "formanalysis_status",
            value: {
                Success: "success"
            }
        },
        isLocalStorageSupported: function () {
            var isSupported = false;
            if (typeof Modernizr != 'undefined' && typeof Modernizr.localstorage != 'undefined') {
                isSupported = Modernizr.localstorage;
            };

            return isSupported;
        },
        isCookieSupported: function () {
            return typeof $.cookie != 'undefined';
        },
        write: function (key, value, secure) {
            var isSuccessful = false;
            if (typeof key != 'undefined' && typeof value != 'undefined' && key.length > 0) {
                if (this.isLocalStorageSupported()) {
                    //write to local storage
                    localStorage.setItem(key, value);
                    isSuccessful = true;
                } else if (this.isCookieSupported()) {
                    //write to cookie
                    if (typeof secure != 'undefined') {
                        $.cookie(key, value, { secure: secure });
                    } else {
                        $.cookie(key, value, { secure: true });
                    }

                    isSuccessful = true;
                }
            }

            return isSuccessful;
        },
        read: function (key) {
            var value = key;
            if (typeof key != 'undefined' && key.length > 0) {
                if (this.isLocalStorageSupported()) {
                    //get from local storage
                    value = localStorage.getItem(key)
                }

                if (this.isCookieSupported() && (value == key || value == null)) {
                    //get from cookie
                    value = $.cookie(key);
                }
            }

            return value;
        },
        remove: function (key, path, domain) {
            var keyLocation = this.getKeyStorageLocation(key);

            if (keyLocation == "localstorage") {
                //remove from local storage
                localStorage.removeItem(key);
            }
            else if (keyLocation == "cookie") {
                //remove from cookie
                var removeCookie = key + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';

                if (domain) {
                    removeCookie += 'domain=' + domain + ';';
                }
                if (path) {
                    removeCookie += 'path=' + path + ';';
                }

                document.cookie = removeCookie;

            }
        },
        getKeyStorageLocation: function (key) {
            var value = key;
            if (this.isLocalStorageSupported()) {
                //get from local storage
                value = localStorage.getItem(key)

                if (value !== null) {
                    return "localstorage";
                }
            }

            if (this.isCookieSupported()) {
                //get from cookie
                value = $.cookie(key);

                if (value) {
                    return "cookie";
                }
            }

            return "Cached key location not found.";
        }
    }
    return {
        init: init
    };
}));
;///#SOURCE 1 1 D:\Web\ACN\Website\Scripts\reinvent\analytics-metadata-blog.js
/* version='8.0' */
(function (root, factory) {
    /* Browser globals */
    root.AnalyticsMetadataBlog = factory(root.jQuery);
}(typeof self !== 'undefined' ? self : this,
    function ($) {
        var metadataMap = {
            serviceMeta: "ServiceCapability",
            appliedNowThemeMeta: "Themes",
            contentFormatMeta: "ContentFormat",
            contentTypeMeta: "ContentType",
            externalMarketingCampaignsMeta: "Campaign",
            industryMeta: "Industry"
        };
        var metadataCategoryMap = {
            ServiceCapability: { Capability2: "capability2", Capability3: "capability3" },
            Themes: { Theme1: "theme1", Theme2: "theme2" },
            ContentGroup: { Content1: "content1", Content2: "content2", Content3: "content3", Content4: "content4" },
            ContentType: { ContentType: "contentType" },
            Campaign: { CorporateCampaign: "corporateCampaign" },
            Campaigns: { Content5: "content5" },
            Industry: { Industry2: "industry2", Industry3: "industry3" },
            CareersSkill: { Skill1: "skill1", Skill2: "skill2" },
            PrimaryBuyerFunction: { PrimaryBuyerFunction: "primaryBuyerFunction" },
            SecondaryBuyerFunction: { SecondaryBuyerFunction: "secondaryBuyerFunction" }
        };
        var clean_category = function (txt) {
            var firstRegex = '.*?';
            var secondRegex = '(\\{.*?\\})';
            var pattern = new RegExp(firstRegex + secondRegex, ["i"]);
            var match = pattern.exec(txt);
            var matches = [];
            var meta = "";
            var metarow = [];
            var metadata = [];

            match[1].replace(/(".*?")/g, function (string, match) {
                matches.push(match);
            });

            for (var i = 0; i < matches.length; i++) {
                matches[i] = matches[i].replace('"', '');
                meta = matches[i];
                metadata.push(meta.split('|'));
            }
            metarow = create_structure(metadata);

            return metarow;
        };

        var clean_meta = function (txt) {
            var re1 = '.*?';
            var re2 = '(\\{.*?\\})';
            var p = new RegExp(re1 + re2, ["i"]);
            var m = p.exec(txt);
            var matches = [];
            var meta = "";
            var metarow = [];
            var metadata = [];

            m[1].replace(/(".*?")/g, function (string, match) {
                matches.push(match);
            });

            for (var i = 0; i < matches.length; i++) {
                matches[i] = matches[i].replace('"', '');
                meta = matches[i];
                metadata.push(meta.split('|'));
            }

            metadata = populate_meta(metadata);
            metarow = create_structure(metadata);

            return metarow;
        };

        var populate_meta = function (array_of_metas) {
            for (var i = 0; i < array_of_metas.length; i++) {
                if (check_meta_path(array_of_metas[i][2], array_of_metas)) {
                    array_of_metas[i][2] = '';
                }
            }
            return array_of_metas;
        };

        var check_meta_path = function (path, array_of_metas) {
            var count = 0;

            for (var i = 0; i < array_of_metas.length; i++) {
                if (path != null && (array_of_metas[i][2].replace(/ /g, '')).indexOf(path) !== -1) {
                    count++;

                    if (count > 1)
                        return true;
                }
            }
        };

        var create_structure = function (metadata) {
            var meta = [];
            for (var i = 0; i < metadata.length; i++) {
                if (metadata[i][2] !== "") {
                    meta.push({ "category": { "primaryCategory": metadata[i][0] }, "metadataInfo": { "metadataID": metadata[i][1], "metadataName": metadata[i][3] } });
                }
            }
            return meta;
        };

        var getPageCategory = function () {
            if (digitalData != null && digitalData.page.attributes.metadata != null) {
                for (var i = 0; i < digitalData.page.attributes.metadata.length; i++) {
                    if (digitalData.page.attributes.metadata[i].category.primaryCategory == "m270") {
                        redesignBlogsMetadata.push(digitalData.page.attributes.metadata[i]);
                    }
                }

            }
        };

        var getWordPressMetadataId = function (metadata, digiData) {
            var childMetaId = [];
            if (metadata != undefined && digiData != undefined && metadata != "pageCategoryMeta" && digidata[0][metadataMap[metadata]] !== "") {
                var childMetas = clean_meta(digidata[0][metadataMap[metadata]]);
                for (var i = 0; i < childMetas.length; i++) {
                    childMetaId.push(childMetas[i].metadataInfo.metadataID);
                }
            }
            return childMetaId.join("|");
        };

        

        var getWordPressCategory = function (digidata) {

            $.each(dataModel.page.category, function (key) {
                dataModel.page.category[key] = "";
            });

            //Populate dataModel category values
            $.each(digidata[0], function (meta) {
                if (digidata[0][meta] !== "") {
                    var childMetas;
                    var last_index;
                    var childMeta1 = "";
                    var childMeta2 = "";
                    var childMeta3 = "";
                    var childMeta4 = "";

                    if (meta != "ObjectState") {
                        childMetas = clean_category(digidata[0][meta]);
                        childMeta1 = typeof childMetas[0] !== "undefined" ? childMetas[0].metadataInfo.metadataName.toLowerCase() : "";
                        childMeta2 = typeof childMetas[1] !== "undefined" ? childMetas[1].metadataInfo.metadataName.toLowerCase() : "";
                        childMeta3 = typeof childMetas[2] !== "undefined" ? childMetas[2].metadataInfo.metadataName.toLowerCase() : "";
                        childMeta4 = typeof childMetas[3] !== "undefined" ? childMetas[3].metadataInfo.metadataName.toLowerCase() : "";
                    }

                    if (meta === "ServiceCapability" && (dataModel.page.category[metadataCategoryMap.ServiceCapability.Capability2] != undefined && dataModel.page.category[metadataCategoryMap.ServiceCapability.Capability3] != undefined)) {
                        dataModel.page.category[metadataCategoryMap.ServiceCapability.Capability2] = childMeta2;
                        dataModel.page.category[metadataCategoryMap.ServiceCapability.Capability3] = childMeta3;
                    }

                    else if (meta === "Industry" && (dataModel.page.category[metadataCategoryMap.Industry.Industry2] != undefined && dataModel.page.category[metadataCategoryMap.Industry.Industry3] != undefined)) {
                        dataModel.page.category[metadataCategoryMap.Industry.Industry2] = childMeta2;
                        dataModel.page.category[metadataCategoryMap.Industry.Industry3] = childMeta3;
                    }

                    else if (meta === "ContentType" && dataModel.page.category[metadataCategoryMap.ContentType.ContentType] != undefined) {
                        dataModel.page.category[metadataCategoryMap.ContentType.ContentType] = childMeta1;
                    }

                    else if (meta === "ContentGroup" &&
                        (dataModel.page.category[metadataCategoryMap.ContentGroup.Content1] != undefined && dataModel.page.category[metadataCategoryMap.ContentGroup.Content2] != undefined &&
                            dataModel.page.category[metadataCategoryMap.ContentGroup.Content3] != undefined && dataModel.page.category[metadataCategoryMap.ContentGroup.Content4] != undefined)) {
                        dataModel.page.category[metadataCategoryMap.ContentGroup.Content1] = childMeta1;
                        dataModel.page.category[metadataCategoryMap.ContentGroup.Content2] = childMeta2;
                        dataModel.page.category[metadataCategoryMap.ContentGroup.Content3] = childMeta3;
                        dataModel.page.category[metadataCategoryMap.ContentGroup.Content4] = childMeta4;
                    }

                    else if (meta === "Campaigns" && dataModel.page.category[metadataCategoryMap.Campaigns.Content5] != undefined) {
                        last_index = childMetas.length - 1;
                        dataModel.page.category[metadataCategoryMap.Campaigns.Content5] = typeof childMetas[last_index] !== "undefined" ? childMetas[last_index].metadataInfo.metadataName.toLowerCase() : "";
                    }

                    else if (meta === "Themes" &&
                        (dataModel.page.category[metadataCategoryMap.Themes.Theme1] != undefined && dataModel.page.category[metadataCategoryMap.Themes.Theme2] != undefined)) {
                        dataModel.page.category[metadataCategoryMap.Themes.Theme1] = childMeta1;
                        dataModel.page.category[metadataCategoryMap.Themes.Theme2] = childMeta2;
                    }

                    else if (meta === "CareersSkill" && (
                        dataModel.page.category[metadataCategoryMap.CareersSkill.Skill1] != undefined && dataModel.page.category[metadataCategoryMap.CareersSkill.Skill2] != undefined)) {
                        dataModel.page.category[metadataCategoryMap.CareersSkill.Skill1] = childMeta1;
                        dataModel.page.category[metadataCategoryMap.CareersSkill.Skill2] = childMeta2;
                    }

                    else if (meta === "PrimaryBuyerFunction" && (dataModel.page.category[metadataCategoryMap.PrimaryBuyerFunction.PrimaryBuyerFunction] !== undefined)) {
                        dataModel.page.category[metadataCategoryMap.PrimaryBuyerFunction.PrimaryBuyerFunction] = childMeta1;
                    }

                    else if (meta === "SecondaryBuyerFunction" && (dataModel.page.category[metadataCategoryMap.SecondaryBuyerFunction.SecondaryBuyerFunction] !== undefined)) {
                        dataModel.page.category[metadataCategoryMap.SecondaryBuyerFunction.SecondaryBuyerFunction] = childMetas.map(m => m.metadataInfo.metadataName.toLowerCase()).join("|");
                    }

                    else if (meta === "Campaign" && dataModel.page.category[metadataCategoryMap.Campaign.CorporateCampaign] != undefined) {
                        last_index = childMetas.length - 1;
                        dataModel.page.category[metadataCategoryMap.Campaign.CorporateCampaign] = typeof childMetas[last_index] !== "undefined" ? childMetas[last_index].metadataInfo.metadataName.toLowerCase() : "";
                    }
                }
            });
        };

        return {
            clean_meta: clean_meta,
            getPageCategory: getPageCategory,
            getWordPressMetadataId: getWordPressMetadataId,
            getWordPressCategory: getWordPressCategory
        };
    }));
