// 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.toLowerCase(), language: iLanguage, page: iPageName, channel: iChannel, hierarchy: iHierarchy, tracking: iTracking ? iTracking : 'page' }; }

Telus.Analytics.GetInfo = function(iPageInfos, iUrl)
{
    var url = Telus.Analytics.ParseUrl(iUrl.toLowerCase());
    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.toLowerCase());

        if (url.host == pageUrl.host && (url.fullpath == pageUrl.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://accueil.montelus.com/telusfr/portal/index.aspx', 'fr', 'Home', 'Home', 'fr/Home/(Home)'),
        
        Telus.Analytics.PageInfo('http://accueil.montelus.com/telusfr/portal/newschannel.aspx', 'fr', 'News', 'topheadlines', 'fr/News/(topheadlines)'),
        Telus.Analytics.PageInfo('http://accueil.montelus.com/telusfr/portal/newschannel.aspx?CatID=TopHeadlines', 'fr', 'News', 'topheadlines', 'fr/News/(topheadlines)'),
        Telus.Analytics.PageInfo('http://accueil.montelus.com/telusfr/portal/newschannel.aspx?CatID=GeoRegion', 'fr', 'News', 'regional', 'fr/News/(regional)'),
        Telus.Analytics.PageInfo('http://accueil.montelus.com/telusfr/portal/newschannel.aspx?CatID=National', 'fr', 'News', 'national', 'fr/News/(national)'),
        Telus.Analytics.PageInfo('http://accueil.montelus.com/telusfr/portal/newschannel.aspx?CatID=World', 'fr', 'News', 'world', 'fr/News/(world)'),
        Telus.Analytics.PageInfo('http://accueil.montelus.com/telusfr/portal/newschannel.aspx?CatID=Entertainment', 'fr', 'News', 'entertainment', 'fr/News/(entertainment)'),
        Telus.Analytics.PageInfo('http://accueil.montelus.com/telusfr/portal/newschannel.aspx?CatID=Technology', 'fr', 'News', 'technology', 'fr/News/(technology)'),
        Telus.Analytics.PageInfo('http://accueil.montelus.com/telusfr/portal/newschannel.aspx?CatID=Business', 'fr', 'News', 'business', 'fr/News/(business)'),
        Telus.Analytics.PageInfo('http://accueil.montelus.com/telusfr/portal/newschannel.aspx?CatID=Sports', 'fr', 'News', 'sports', 'fr/News/(sports)'),

        Telus.Analytics.PageInfo('http://recherche.montelus.com/*', 'fr', 'Search Results', 'monTELUS Search', 'en/Search/(Results)')
    ],
    location.href
);

// SiteCatalyst //
Telus.ImportScript('http://www.mytelus.com/global20/js/sitecatalyst/telusmytelus.js');
if (telusAnalytics.tracking == 'page')
    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');
}
