﻿$(document).ready(function () {
    $('.trackLink').click(function (link) {

        Track(this);

    });
});


function Track(objLink) {
    var linkType = $(objLink).attr("target") && $(objLink).attr("target") == '_blank' ? 'e' : 'o';
    var trackVars = $(objLink).attr("rel") ? jQuery.parseJSON($(objLink).attr("rel").replace(/'/g, "\"")) : {};
    var linkName = trackVars.linkName ? trackVars.linkName : ($(objLink).attr("name") ? $(objLink).attr("name") : $(objLink).attr("text"));
    scj.omniture.trackLink(trackVars, { "linkName": linkName, "linkType": linkType }, objLink);
}


function InitializeHierarchyVariables() {
    /* Hierarchy Variables */
    s.hier1 = '';
}

function TrackOmnitureFromSIFR(selector) {

    Track($(selector).find("a.trackLink"));

    return true;
}


/*
* R/GA written function from Scrubbing bubbles. The global.js functions from Glade use mootools
*/
function getQueryString(parameter) {
    var queryString = window.location.search.substring(1);
    var sections = queryString.split("&");
    var store = new Array();
    for (var i = 0; i < sections.length; i++) {
        var pieces = sections[i].split("=");
        if (pieces.length > 1) {
            store[pieces[0]] = pieces[1];
        } else {
            store[pieces[0]] = null;
        }
    }
    if (parameter == null) {
        return store;
    }
    if (typeof store[parameter] != undefined) {
        return store[parameter];
    }
    return null;
}

function update_tracking(obj) {

    var obj = obj ? obj : {};

    for (key in obj) {
        s[key] = obj[key];
    }

    var s_code = s.t(); if (s_code) document.write(s_code);
    clear_tracking();
}

function clear_tracking() {
    s.events = '';
    s.products = '';
    /*s.channel = '';
    s.pageName = '';*/

    for (i = 1; i < 30; i++) {
        s['prop' + i.toString()] = '';
    }

    for (i = 1; i < 30; i++) {
        s['eVar' + i.toString()] = '';
    }
    
}

var scj = {};
scj.omniture = {
    symbols: ['&#174;', '&#8482;', '&copy;', '&trade;', '&reg;', '%AE', '%3F', '%u2122', '&#153;'],
    clear: function () {
        s = s_gi(s_account);
        s.events = '';
        s.products = '';
        /*s.pageName = '';*/
        s.linkTrackVars = '';
        s.linkTrackEvents = '';

        for (i = 1; i < 51; i++) {
            s['prop' + i.toString()] = '';
            s['eVar' + i.toString()] = '';
        }

        
        return true;
    },
    format: function (name) {
        return name.underscore().replaceSymbols(scj.omniture.symbols).toLowerCase();
    },
    track: function (tagObj) {
        s = s_gi(s_account);
        scj.omniture.clear();
        var tagObj = tagObj ? tagObj : {};
        for (key in tagObj) { s[key] = tagObj[key]; }
        s_code = s.t(); if (s_code) document.write(s_code);
    },
    trackLink: function (tagObj, trackLinkObj) {
        //tagObj sample - {events: "event5", channel: "Product", eVar6: "value", prop6: "value"}
        //trackLink will not record page view so if you include a pageName key in the tagObj that will cause an error
        //trackLinkObj sample s.tl(this,'o','Link Name');
        // var trackLinkObj = {elementName: "View Testimonial Button", 
        //                     linkType: "[o|d|e]", 
        //					   linkName: "View Testimonial OnClick"}
        s = s_gi(s_account);
        scj.omniture.clear();
        var tagObj = tagObj ? tagObj : {};
        var trackLinkObj = trackLinkObj ? trackLinkObj : {};
        for (key in tagObj) {
            if (key != 'pageName') {
                s[key] = tagObj[key];
                /*Fix to Omniture so all set variables go even if they are not set on the rel attribute of a link. Things like prop49,prop50*/
                /*s.linkTrackVars += key + ',';*/
            } else if (tagObj.events) {
                /*Fix to Omniture so all set variables go even if they are not set on the rel attribute of a link. Things like prop49,prop50*/
                /*s.linkTrackEvents = tagObj.events;*/
            } else { ; }
        }

       
        s.tl(trackLinkObj.elementName ? trackLinkObj.elementName : {}, trackLinkObj.linkType, trackLinkObj.linkName);
    }
};

