﻿var $CM =
{
// start wrapper

    evaluateCoreMetricsScript : function(element)
    {
        if(element.length)
        {
            var script = $(".core_metrics", element).text();
            if(script.length)
            {
                eval(script);
            }
        }
    },
    
    coreMetricsLoggingActive : function()
    {
        if(typeof(__coreMetricsOn) == 'undefined' || __coreMetricsOn == null)
        {
            return false;
        }
        
        return __coreMetricsOn;
    },

    safeString: function (inputStr) 
    {
        if(null == inputStr || "null" == inputStr)
        {
            return null;
        }

        return inputStr.replace(/[\?\\`~!@#$%^&*()/+=<>\[\]{};'",.]+/g, "");
    },

    createPageElementTag : function(elementID, elementCategory)
    {
        if($CM.coreMetricsLoggingActive())
        {
            cmCreatePageElementTag($CM.safeString(elementID), $CM.safeString(elementCategory));
        }
    },
    
    createPageviewTag : function(pageID, categoryID, searchTerm, searchResults)
    {
        if($CM.coreMetricsLoggingActive())
        {
            cmCreatePageviewTag($CM.safeString(pageID), $CM.safeString(categoryID), $CM.safeString(searchTerm), $CM.safeString(searchResults));
        }
    },
    
    createProductviewTag : function(productID, productName, categoryID)
    {
        if($CM.coreMetricsLoggingActive())
        {
            cmCreateProductviewTag($CM.safeString(productID), $CM.safeString(productName), $CM.safeString(categoryID));
        }
    },
    
    createRegistrationTag : function(customerID, customerEmail, customerCity, customerState, customerZip, customAttributes)
    {
        if($CM.coreMetricsLoggingActive())
        {
            cmCreateRegistrationTag($CM.safeString(customerID), $CM.safeString(customerEmail), $CM.safeString(customerCity), $CM.safeString(customerState)
                , $CM.safeString(customerZip), $CM.safeString(customAttributes));
        }
    },

    createAddToCartTag : function(productID, productName, quantity, unitPrice)
    {
        if($CM.coreMetricsLoggingActive())
        {
            var categoryID = null;

            cmCreateShopAction5Tag($CM.safeString(productID), $CM.safeString(productName), quantity, unitPrice, $CM.safeString(categoryID));
            cmDisplayShop5s();
        }
    },

    createPurchasedTag : function(productID, productName, quantity, unitPrice, customerID, orderID)
    {
        if($CM.coreMetricsLoggingActive())
        {
            var categoryID = null;
            orderSubTotal = unitPrice;

            cmCreateShopAction9Tag($CM.safeString(productID), $CM.safeString(productName), quantity
                , unitPrice, $CM.safeString(customerID), $CM.safeString(orderID), orderSubTotal, $CM.safeString(categoryID));

            cmDisplayShop9s();

            var orderShipping = "0";
            cmCreateOrderTag($CM.safeString(orderID), orderSubTotal, orderShipping, $CM.safeString(customerID), "", "", "");
        }
    }

// end wrapper
}