﻿//Binary Download Stats
//Alterian - 2009
var sSite = "http://downloads.email.alterian.com/";
var oldLoad;
//types of documents
function isLoopfuseLink(url) {
    if (url.indexOf(".pdf") != -1) { return true; }
    if (url.indexOf(".zip") != -1) { return true; }
    if (url.indexOf(".doc") != -1) { return true; }
    if (url.indexOf(".docx") != -1) { return true; }
    if (url.indexOf(".xls") != -1) { return true; }
    if (url.indexOf(".ppt") != -1) { return true; }
    if (url.indexOf(".pptx") != -1) { return true; }
    if (url.indexOf(".pps") != -1) { return true; }
    if (url.indexOf(".xlsx") != -1) { return true; }
    return false;
}
//Lightbox link addition
function isLightBoxLink(url) {
    if (url.indexOf(".jpg") != -1) { return true; }
    if (url.indexOf(".gif") != -1) { return true; }
    if (url.indexOf(".png") != -1) { return true; }
    return false;
}
//get the raw file name
function RawFileName(url) {
    var lastSlash = url.lastIndexOf("/");
    var firstQuestionMark = url.length;
    var fileName = url.substring(lastSlash + 1, firstQuestionMark);
    return fileName;
}
//Remove unsafe string characters
function CheckString(sIn) {
    sIn = tempReplaceAll(sIn, " ", "_");
    sIn = tempReplaceAll(sIn, "(", "");
    sIn = tempReplaceAll(sIn, ")", "");
    sIn = tempReplaceAll(sIn, "<", "");
    sIn = tempReplaceAll(sIn, ">", "");
    sIn = tempReplaceAll(sIn, "'", "");
    sIn = tempReplaceAll(sIn, "&amp;", "");
    sIn = tempReplaceAll(sIn, "&nbsp;", "_");
    sIn = tempReplaceAll(sIn, "&", "");
    sIn = tempReplaceAll(sIn, "*", "");
    sIn = tempReplaceAll(sIn, "!", "");
    sIn = tempReplaceAll(sIn, ",", "");
    sIn = tempReplaceAll(sIn, ".", "");
    sIn = tempReplaceAll(sIn, "?", "");
    return sIn;
}
//Replace All function
function tempReplaceAll(Source, stringToFind, stringToReplace) {
    var temp = Source;
    var index = temp.indexOf(stringToFind);
    while (index != -1) {
        temp = temp.replace(stringToFind, stringToReplace);
        index = temp.indexOf(stringToFind);
    }
    return temp;
}
//loop through
function LoopfuseLinks(containerList) {
    for (var i = 0; i < containerList.length; i++) {
        var container = document.getElementById(containerList[i]);
        if (container == null) { continue; }
        var as = document.getElementById(containerList[i]).getElementsByTagName("A");
        for (var j = 0; j < as.length; j++) {
            var a = as[j];
            var sLink = a.href;
            if (checkEndsWith(sLink, "/")) {
                sLink = sLink.substring(0, sLink.length - 1);
            }
            if (isLoopfuseLink(sLink)) {
                addToHandler(a, "onclick", LoopFuseOnClick);
            }
            else {
                if (isLightBoxLink(sLink))
                {
                   a.setAttribute("rel","lightbox");
                   a.setAttribute("target","");
                }
            }
        }
    }
}
//logic to create onclick and what details to pass through
function LoopFuseOnClick() {
    //get current location
    var sPath = window.location.toString();
    if (checkEndsWith(sPath, "/")) {
        sPath = sPath.substring(0, sPath.length - 1);
    }
    var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
    //sPage = sPage.substring(0, sPage.lastIndexOf("."));
    if (sPage == "") {
        sPage = "default"
    }
    //Send filename (CME simplename)
    if (this.href)
    {
        var strH = this.href;
        if (checkEndsWith(strH, "/")) {
            strH = strH.substring(0, strH.length - 1);
        }
        strH = strH.substring(strH.lastIndexOf('/') + 1);
        strH = sPage + "/" + strH;
        if (window.console) window.console.log(strH);
        _lf_remora_tracker(sSite + strH, '#');
    }
    else
    {
        //get link/image info
        if (this.innerHTML) {
            var linktext = this.innerHTML;
            if ((linktext.indexOf("<IMG") > -1) || (linktext.indexOf("<img") > -1)) {
                var oImg = this.getElementsByTagName("img");
                if (oImg[0].alt == undefined) {
                    linktext = sPage + "/image_link/" + RawFileName(oImg[0].src);
                }
                else {
                    linktext = sPage + "/image_link/" + oImg[0].alt;
                }
            }
            else {
                linktext = sPage + "/" + linktext;
            }
            linktext = CheckString(linktext);
            if (window.console) window.console.log(linktext);
            _lf_remora_tracker(sSite + linktext);
        }
        else {
            var linktext = this.innertext;
            if ((linktext.indexOf("<IMG") > -1) || (linktext.indexOf("<img") > -1)) {
                var oImg = this.getElementsByTagName("img");
                if ((linktext.indexOf("<IMG") > -1) || (linktext.indexOf("<img") > -1)) {
                    var oImg = this.getElementsByTagName("img");
                    if (oImg[0].alt == undefined) {
                        linktext = sPage + "/image_link/" + RawFileName(oImg[0].src);
                    }
                    else {
                        linktext = sPage + "/image_link/" + oImg[0].alt;
                    }
                }
            }
            else {
                linktext = sPage + "/" + linktext;
            }
            linktext = CheckString(linktext);
            if (window.console) window.console.log(linktext);
            _lf_remora_tracker(sSite + linktext);
        }
    }
}
//event handler to add onlick to doc downloads
function addToHandler(obj, evt, func) {
    if (obj[evt]) {
        obj[evt] = function(f, g) {
            return function() {
                f.apply(this, arguments);
                return g.apply(this, arguments);
            };
        } (func, obj[evt]);
    }
    else
        obj[evt] = func;
}
//Check the pattern doesn't end with...
function checkEndsWith(sMain, sWith) {
    var lastIndex = sMain.lastIndexOf(sWith);
    return (lastIndex != -1) && (lastIndex + sWith.length == sMain.length);
}
//Video Tracking code
function addEventToVideo(objATag, objTrackingString) {
    if (window.console) window.console.log("Add event to video called");
    var objList = document.getElementById(objATag).getElementsByTagName("OBJECT");
    for (var j = 0; j < objList.length; j++) {
        var oObj = objList[j];
        oObj.className = objTrackingString;
        appendHandler(oObj, "onfocus", LoopFuseVidOnClick);
    }
}
function LoopFuseVidOnClick() {
    if (window.console) window.console.log("Tracking video click");
    if (this.className != "done") {
        if (window.console) window.console.log("Track " + this.className);
        _lf_remora_tracker(this.className, window.location);
        this.className = "done";
    }
}
function appendHandler(obj, evt, func) {
    if (window.console) window.console.log("Adding onclick event");
    if (obj[evt]) {
        obj[evt] = function(f, g) {
            return function() {
                f.apply(this, arguments);
                return g.apply(this, arguments);
            };
        } (func, obj[evt]);
    }
    else
        obj[evt] = func;
}