// Telus //
var Telus = {};

// ImportScript //
Telus.ImportScript = function(iScriptUrl)
{ document.write('<script type="text/javascript" src="' + iScriptUrl + '"></script>'); }

// Telus.Analytics //
Telus.Analytics = {};

Telus.Analytics.ParseUrl = function(iUrl)
{
    var expr = iUrl.match(/^(([^:]*):\/\/)?(([^:]*):([^@]*)@)?([^\/:]*\.[^\/:]*)?(:([^\/]*))?(\/[^?#]*)?(\?([^#]*))?(#(.*))?$/i);

    if (expr)
        return { 'protocol': expr[2], 'user': expr[4], 'password': expr[5], 'host': expr[6], 'port': expr[8], 'fullpath': expr[9], 'query': expr[11], 'anchor': expr[13] };
    else
        return null;
}

Telus.Analytics.ParseQuery = function(iQueryString)
{
    var pairs = iQueryString.split('&');
    var variables = {};

    for (var i = 0; i < pairs.length; i++)
    {
        var pair = pairs[i].split('=');

        if (pair.length > 1)
            variables[unescape(pair[0])] = unescape(pair[1]);
        else
            variables[unescape(pair[0])] = null;
    }

    return variables;
}

Telus.Analytics.PageInfo = function(iUrl, iLanguage, iPageName, iChannel, iHierarchy, iTracking)
{ return { url: iUrl, language: iLanguage, page: iPageName, channel: iChannel, hierarchy: iHierarchy, tracking: iTracking ? iTracking : 'page'}; }

Telus.Analytics.GetInfo = function(iPageInfos, iUrl)
{
    var url = Telus.Analytics.ParseUrl(iUrl);
    var result = null;
    var varMatch = 0;

    for (var i = 0; i < iPageInfos.length; i++)
    {
        var pageInfo = iPageInfos[i];
        var pageUrl = Telus.Analytics.ParseUrl(pageInfo.url);

        if (url.host == pageUrl.host && url.fullpath == pageUrl.fullpath)
        {
            if (pageUrl.query)
            {
                if (url.query)
                {
                    var query = Telus.Analytics.ParseQuery(url.query);
                    var pageQuery = Telus.Analytics.ParseQuery(pageUrl.query);
                    var match = true;
                    var count = 0;

                    for (var variable in pageQuery)
                    {
                        if (!query[variable] || (pageQuery[variable] != null && query[variable] != pageQuery[variable]))
                        {
                            match = false;
                            break;
                        }
                        count++;
                    }

                    if (match && count > varMatch)
                    {
                        varMatch = count;
                        result = pageInfo;
                    }
                }
            }
            else if (result == null && varMatch == 0)
                result = pageInfo;
        }
    }

    if (result)
        return result;

    return Telus.Analytics.PageInfo(iUrl, null, 'unsorted', 'unsorted', 'unsorted/(' + location.href.replace(new RegExp('/', 'g'), '|') + ')');
}


// Identify page //
var telusAnalytics = Telus.Analytics.GetInfo(
    [
        Telus.Analytics.PageInfo('http://telusalerts.at-m.ca/telusalerts', 'fr', 'MobileAlert - FR', 'MobileAlert', null, 'clicks'),
        Telus.Analytics.PageInfo('http://music.telusmobility.com/shop/web/lang/en', 'en', 'MusicShop - EN', 'MusicShop', 'en/MusicShop/(Home)', 'dev'),
        Telus.Analytics.PageInfo('http://music.telusmobility.com/shop/web/lang/fr', 'fr', 'MusicShop - FR', 'MusicShop', 'fr/MusicShop/(Home)', 'dev'),
    ],
    location.href
);

// SiteCatalyst //
if (telusAnalytics.tracking != 'dev')
    Telus.ImportScript('http://www.mytelus.com/global20/js/sitecatalyst/telusmytelus.js');
else
    Telus.ImportScript('http://www.mytelus.com/global20/js/sitecatalyst/telusmytelusdev.js');

if (telusAnalytics.tracking == 'page' || telusAnalytics.tracking == 'dev')
    Telus.ImportScript('http://www.mytelus.com/global20/js/sitecatalyst/page.js');
else if (telusAnalytics.tracking == 'clicks')
    Telus.ImportScript('http://www.mytelus.com/global20/js/sitecatalyst/clicks.js');

// Google Analytics //
if (telusAnalytics.tracking == 'page')
{
    Telus.ImportScript('http://www.google-analytics.com/ga.js');
    Telus.ImportScript('http://www.mytelus.com/global20/js/googleanalytics/mytelus/analytics.js');
}

