﻿function trackAtlas(tag) {
    $("<img height='1' width='1' src='http://view.atdmt.com/action/mrtwxp_" + tag + "' />").appendTo("#Footer");
}



/* 
tracking.js
Methods that deal with traffic and click tracking, 
such as Omniture and Atlas, as well as Google Analytics
*/

var trackingMatrix = Array();


// BEGIN Atlas Tracking
function AddClickListener() {
    if (document.addEventListener) {
        addEventListener("click", ConsumeClick, false);
    } else {
        document.onclick = ConsumeClick;
    }
}

function ConsumeClick(ptrEvent) {
    var ptrTarget;
    if (ptrEvent) {
        ptrTarget = ptrEvent.target;
    } else {
        ptrTarget = window.event.srcElement;
    }

    var strClasses = GetClassAttribute(ptrTarget);
    if (strClasses && strClasses.indexOf("tt$") != -1) {
        var classArray = strClasses.split(" ");
        for (var i = 0; i < classArray.length; i++) {
            if (classArray[i].indexOf("tt$") != -1) {
                var trackingArray = classArray[i].substring(3).split("$");
                for (var ii = 0; ii < trackingArray.length; ii++) {
                    if (trackingArray[ii].indexOf("at-") != -1) {
                        CallAtlas(trackingArray[ii].substring(3));
                    }
                    else if (trackingArray[ii].indexOf("om-") != -1) {
                        s.eVar7 = "";
                        s.prop7 = "";

                        //set default values
                        var events_var = "";
                        var eVar17_var = "";

                        var omniture_array = trackingArray[ii].substring(3).split("-");

                        var pageName_var = omniture_array[0];

                        if (omniture_array.length == 2) {
                            eVar17_var = omniture_array[1];
                        }

                        CallOmniture(events_var, eVar17_var, pageName_var);
                    }
                    else if (trackingArray[ii].indexOf("tag-") != -1) {
                        var index = trackingArray[ii].substring(4);
                        if (tracking_tags[index]["om"]) {
                            var om_tag = tracking_tags[index]["om"];
                            s.eVar7 = "";
                            s.prop7 = "";
                            //set default values
                            var events_var = "";
                            var eVar17_var = "";
                            var omniture_array = om_tag.split("-");
                            var pageName_var = omniture_array[0];
                            if (omniture_array.length == 2) {
                                eVar17_var = omniture_array[1];
                            }
                            CallOmniture(events_var, eVar17_var, pageName_var);
                        }
                        if (tracking_tags[index]["at"]) {
                            var at_tag = tracking_tags[index]["at"];
                            CallAtlas(at_tag);
                        }
                    }
                }
                //return true;
                var id = ptrTarget.getAttribute("id");
                if (id && trackingMatrix[id]) {
                    var href = trackingMatrix[id]["redirect"];
                    //var target = ptrTarget.getAttribute("target");
                    if (href && href != "#") {
                        if ($.browser.safari || $.browser.msie) { trackingRedirect(href, trackingMatrix[id]["newwindow"]); }
                        else { setTimeout("trackingRedirect('" + href + "','" + trackingMatrix[id]["newwindow"] + "')", 100); }
                    }
                    return false;
                }
                else {
                    return true;
                }
                //if(href.indexOf("mailto:")!=-1) {
                //} else {
                //redirect(href);
                //}
            }
        }
    }
    return true;
}

function trackingRedirect(thisHref, new_window) {
    //alert(thisHref+"::"+new_window);
    if (new_window == "true") {
        var myWindow = window.open(thisHref, "shareLink");
    } else {/*alert('trying to redirect to '+thisHref);*/
        location.href = thisHref;
        //window.location(thisHref);
    }
}

function CallOmnitureForVideo(events, pageName) {
    // remember the previous pagename   
    var oldpagename = s.pageName;  
    s.pageName = "softwear:" + pageName;

    // kylie4 for example
    s.eVar6 = getPage();

    // keep track of the page where the video was viewed for pathing reports              
    s.eVar7 = oldpagename;

    // wmp or sl
    s.eVar8 = videoType;               
    if (events)
        s.events = events;
    else
        s.events = "event1";

    //make tracking call
    try { s.t(); } catch (err) { }

    // restore pagename after tracking call
    s.pageName = oldpagename;          
}

function CallOmniture(events, evar17, pageName, vars) {

    // remember the previous pagename 
    var oldpagename = s.pageName;       
    s.pageName = "softwear:" + pageName;

    // classic for example
    s.eVar6 = getPage();
    // keep track of the page where the video was viewed for pathing reports
    s.eVar7 = oldpagename; 
             
    s.eVar8 = null;
    if (events)
        s.events = events;
    else s.events = "";
    if (vars) {
        //replace the %20 I had to put in because it doesn't accept spaces in certain circumstances
        vars = vars.replace(/%20/g, ' ');
        
        eval(vars);
    }
    //make tracking call

    try { s.t(); } catch (err) { }

    // restore pagename after tracking call  
    s.pageName = oldpagename;
   
}

function CallAtlas(param, noappend1) {
    var trackingImage = document.createElement("img");

    var nocache = new Date().getTime();
    trackingImage.setAttribute("src", "http://view.atdmt.com/action/" + param + "?nocache=" + nocache);
    trackingImage.setAttribute("alt", "");
    trackingImage.setAttribute("width", "1");
    trackingImage.setAttribute("height", "1");
    document.getElementById("Footer").appendChild(trackingImage);

}
function GetClassAttribute(element) {

    if (element.getAttribute("className")) {
        return element.getAttribute("className");
    } else if (element.getAttribute("class")) {
        return element.getAttribute("class");
    } else { return null; }
}

var confirmCookieName = "Conf";

function SetConfirmCookie() {
    var date = new Date();
    date.setTime(date.getTime() + (60 * 60 * 1000));
    document.cookie = confirmCookieName + "=1" + "; expires=" + date.toGMTString() + "; path=/";
}

function HasConfirmCookie() {
    return document.cookie.indexOf(confirmCookieName) > -1;
}

function RemoveConfirmCookie() {
    var date = new Date();
    date.setTime(date.getTime() - (60 * 60 * 1000));
    document.cookie = confirmCookieName + "=1" + "; expires=" + date.toGMTString() + "; path=/";
}

function track(atlasTag, omnitureTag, om1, om2, tech) {
    if (tech) {
        //s.eVar7=tech;
        //s.prop7=tech;
        s.eVar8 = tech;
    }
    //call Atlas
    if (atlasTag)
        CallAtlas(atlasTag);
    //call Omniture
    if (omnitureTag) {
        CallOmniture(om1, om2, omnitureTag);
    }
}

function track_tag(tag) {
    var index = tag;
    if (tracking_tags[index]["om"]) {
        var om_tag = tracking_tags[index]["om"];
        s.eVar7 = "";
        s.prop7 = "";
        //set default values
        var events_var = "";
        var eVar17_var = "";
        var omniture_array = om_tag.split("-");
        var pageName_var = omniture_array[0];
        if (omniture_array.length == 2) {
            eVar17_var = omniture_array[1];
        }

        if (tracking_tags[index]["om1"])
            events_var = tracking_tags[index]["om1"];

        if (tracking_tags[index]["om2"])
            eVar17_var = tracking_tags[index]["om2"];

        CallOmniture(events_var, eVar17_var, pageName_var);
    }
    if (tracking_tags[index]["at"]) {
        var at_tag = tracking_tags[index]["at"];
        CallAtlas(at_tag);
    }
}

//js tracking global for all flash players on the site
function trackFlashAtlas(playerType, action, trackingDump) {
    //console.log("trackFlashAtlas("+playerType+","+action+","+trackingDump+") called.");
    var input = new Array();

    //parse input
    var pairs = trackingDump.split(":::");
    for (var i = 0; i < pairs.length; i++) {
        var key_value = pairs[i].split("=");
        input[key_value[0]] = key_value[1];
    }

    switch (playerType) {
        case "flv_intro_player":
            if (action == "end") {
                $get("landing-embed-replace").style.display = "none";
                $get("landing-end-overlay").style.display = "block";
            }
            break;
        case "flv_player_extended":
            if (action == "start") {
                if (tracking_tags["pcstory_start"]) {
                    track(tracking_tags["pcstory_start"]["at"], tracking_tags["pcstory_start"]["om"] + input["videoName"], "event5", null, "flash");
                }
            }
            else if (action == "end") {
                if (tracking_tags["pcstory_complete"]) {
                    track(tracking_tags["pcstory_complete"]["at"], tracking_tags["pcstory_complete"]["om"] + input["videoName"], "event6", null, "flash");
                }
            }
            break;
        case "flv_player_spot":
            if (action == "interaction") {
                if (tracking_tags["ugcvideo_interaction"]) {
                    track(tracking_tags["ugcvideo_interaction"]["at"], null, null, null, "flash");
                }
                if (tracking_tags["ugcvideo_start"]) {
                    track(tracking_tags["ugcvideo_start"]["at"], tracking_tags["ugcvideo_start"]["om"], null, null, "flash");
                }
            }
            else if (action == "end") { /*console.log("spot: stop");*/ }
            break;
        case "flv_player_ads":
            if (action == "start") {
                /*console.log("ads: start");*/
                flashVideoOpen();
                if (tracking_tags["ad_start"]) {
                    CreateAtlasImage(tracking_tags["ad_start"]["at"] + input["videoName"].toLowerCase().replace(/[^a-zA-Z0-9]/g, ""));
                }
            }
            else if (action == "end") {
                //console.log("ads: stop");
                //WMPvideoClose();
                flashVideoClose();
                if (tracking_tags["ad_end"]) {
                    CreateAtlasImage(tracking_tags["ad_end"]["at"] + input["videoName"].toLowerCase().replace(/[^a-zA-Z0-9]/g, ""));
                }
            }
            break;
        default:
            break;
    }
}

function createXMLHttpRequest() {
    if (typeof XMLHttpRequest != "undefined") return new XMLHttpRequest();
    else if (typeof ActiveXObject != "undefined") return new ActiveXObject("Microsoft.XMLHTTP");
    else throw new Error("XMLHttpRequest not supported");
}

function loadXML(file) {
    var request = this.createXMLHttpRequest();
    request.open("GET", file, true);
    request.onreadystatechange = function() {
        if (request.readyState == 4) {
            processXML(request.responseXML);
        }
    }
    request.send(null);
}

function setupTracking(xmlfile) {
    AddClickListener();
    loadXML(xmlfile);
}


$.fn.tagName = function() {
    return this.get(0) ? this.get(0).tagName : null;
}

function processXML(xmldata) {

    var trackNodes = xmldata.getElementsByTagName("track");

    for (var i = 0; i < trackNodes.length; i++) {

        var id = trackNodes[i].attributes.getNamedItem("id").value;

        //validate
        //if($('#'+id).length == 0) {
        //    console.log(id);
        //}

        var track_tag = "";
        var atlas_tag = "";
        var omniture_tag = "";
        var redirect_url = "";
        var new_window = "";
        

        if (trackNodes[i].getElementsByTagName("omniture").item(0).firstChild) {
            if (trackNodes[i].getElementsByTagName("omniture").item(0).firstChild.nodeValue != null) {
                omniture_tag = trackNodes[i].getElementsByTagName("omniture").item(0).firstChild.nodeValue.split(":")[1];
                track_tag += "$om-" + omniture_tag;
            }
        }
        if (trackNodes[i].getElementsByTagName("atlas").item(0).firstChild) {
            if (trackNodes[i].getElementsByTagName("atlas").item(0).firstChild.nodeValue != null) {
                atlas_tag = trackNodes[i].getElementsByTagName("atlas").item(0).firstChild.nodeValue;
                track_tag += "$at-" + atlas_tag;                
            }
        }
        if (trackNodes[i].getElementsByTagName("redirect").item(0).firstChild) {
            if (trackNodes[i].getElementsByTagName("redirect").item(0).firstChild.nodeValue != null) {
                redirect_url = trackNodes[i].getElementsByTagName("redirect").item(0).firstChild.nodeValue;
            }
        }
        if (trackNodes[i].getElementsByTagName("newwindow").item(0).firstChild) {
            if (trackNodes[i].getElementsByTagName("newwindow").item(0).firstChild.nodeValue != null) {
                new_window = trackNodes[i].getElementsByTagName("newwindow").item(0).firstChild.nodeValue;
            }
        }

        if (id) {
            trackingMatrix[id] = Array();
            trackingMatrix[id] = { "omniture": omniture_tag, "atlas": atlas_tag, "newwindow": new_window/*,"redirect":redirect_url*/ };
        }

        if (track_tag) {
            
            //assign tracking class
            var old_class = $('#' + id).attr("class");
            $('#' + id).attr("class", "tt" + track_tag + " " + old_class);

            if ($('#' + id).tagName() && $('#' + id).tagName() == "A" && old_class != "Active") {
                //return false;
               // $('#' + id).attr("onclick", "return false;");
                if ($('#' + id).attr("href") && $('#' + id).attr("href") != "#") {
                    
                    //save href                    
                    trackingMatrix[id]["redirect"] = $('#' + id).attr("href");
                    //remove href
                    $('#' + id).attr("href", "#");
                    //remove target
                    $('#' + id).attr("target", "");
                }
                else {
                    
                    trackingMatrix[id]["redirect"] = redirect_url;
                }
            }
            else {
                trackingMatrix[id]["redirect"] = redirect_url;
            }
        }

        //defaults

        if (!trackingMatrix[id]["redirect"]) { trackingMatrix[id]["redirect"] = "#"; }
        if (!trackingMatrix[id]["omniture"]) { trackingMatrix[id]["omniture"] = ""; }
        if (!trackingMatrix[id]["atlas"]) { trackingMatrix[id]["atlas"] = ""; }
        if (!trackingMatrix[id]["newwindow"]) { trackingMatrix[id]["newwindow"] = "false"; }

        /*
        for(item in trackNodes[i]) {
        console.log(item+"::"+trackNodes[i][item]);
        }
        */
    }


}

function getPage() {
    var url = window.location.toString();
    if (url.indexOf("/classic/") != -1) {
        return "classic";
    } else if (url.indexOf("/common/") != -1) {
        return "common";
    } else if (url.indexOf("/collections/") != -1) {
        return "collections";
    } else {
        return "home";
    }
    return url;
}