﻿function isLoopfuseLink(url) {
    if (url.indexOf("idoc.ashx") != -1) { return true; }
    if (url.indexOf(".pdf") != -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(".pps") != -1) { return true; }
    if (url.indexOf(".xlsx") != -1) { return true; }
    if (url.indexOf(".xls") != -1) { return true; }

    return false;
}

function RawFileName(url) {
    var lastSlash = url.lastIndexOf("/");
    var firstQuestionMark = url.length;
    var fileName = url.substring(lastSlash + 1, firstQuestionMark);
    return fileName;
}

function CheckString(sIn) {
    sIn = sIn.replace(" ", "_");
    sIn = sIn.replace("(", "");
    sIn = sIn.replace(")", "");
    sIn = sIn.replace("<", "");
    sIn = sIn.replace(">", "");
    sIn = sIn.replace("'", "");
    sIn = sIn.replace("&amp;", "");
    sIn = sIn.replace("&", "");
    sIn = sIn.replace("*", "");
    sIn = sIn.replace("!", "");
    sIn = sIn.replace(",", "");
    sIn = sIn.replace(".", "");
    sIn = sIn.replace("?", "");
    return sIn;
}

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];
            if (isLoopfuseLink(a.href)) {
                  addToHandler(a, "onclick", LoopFuseOnClick);
//                a._onclick = a.onclick;
//                a.onclick = function() {
//                    if (this.innerHTML) {
//                        _lf_remora_tracker('Download=' + this.innerHTML + '|Filename=' + RawFileName(this.href));
//                    }
//                    else {
//                        _lf_remora_tracker('Download=' + this.innertext + '|Filename=' + RawFileName(this.href));
//                    }
//                    if (this._onclick) { this._onclick(); }
//                }
            }
        }
    }
}

function LoopFuseOnClick() {
    //get current location
    var sPath = window.location.toString();
    var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
    sPage = sPage.substring(0, sPage.lastIndexOf("."));
    if (sPage == "") {
        sPage = "default"
    }
    //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;
        }
        _lf_remora_tracker('http://downloads.alterian.com/' + CheckString(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;
        }
        _lf_remora_tracker('http://downloads.alterian.com/' + CheckString(linktext));
    }
}

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;
}