﻿/* #####################################################
MTWB Toolbar detection code
#####################################################
*/

var MyTool = null;
var MyToolbarID = "No Tool";
var bInstalled = false;
var ieToolbars = new Array();
var ffToolbars = new Array();

// modified the standard detection function to work for both IE and FF. In IE we used to check for clsid to make sure it is our toolbar

// AOL Toolbar version 1.0 & MTWB Toolbar
function ToolBarInit(Toolbar) {
    // Is mtwb toolbar?
    if (Toolbar.toolbarid) {
        //console_log("MTWB Toolbar");
        try {
            //console_log(Toolbar);
            if (Toolbar) {
                MyTool = Toolbar;
                MyToolbarID = MyTool.toolbarid;
            }
        }
        catch (err) {
            //console_log(err);
        }
    }
    else {
        //console_log("AOL Toolbar v1.0");
        var ver = "";
        try {
            ver = Toolbar.ver;
            if (ver.indexOf("AOL Toolbar Version ") == 0) {
                ver = ver.substr(20);
            }
        }
        catch (e) {
            ver = "1.0";
        }

        var tb = new ToolbarInfo();
        tb.Brand = "AOL";
        tb.Partner = "aol";
        tb.Version = ver;
        //tb.InstallId = Toolbar.InstallId;
        ieToolbars.push(tb);
    }
}

/* #####################################################
AOL 3rd Party Toolbar detection code
#####################################################
*/

function ieToolbarInitialize(tb) {
    ieToolbars.push(tb);
    MyTool = tb;
    if (MyTool.Guid)
        MyToolbarID = MyTool.Guid;
    else
        MyToolbarID = intToGuid(parseInt(MyTool.InstallId));
}


function ffToolbarInitialize(tb) {
    ffToolbars.push(tb);
    MyTool = tb;
    MyToolbarID = MyTool.Guid;
    //console_log(MyToolbarID);
}
/* #####################################################
AOL Toolbar detection
#####################################################
*/

function ToolbarInfo() {
    var brand = "";
    var partner = "";
    var version = "";
    var country = "";
    var installId = "";
    var guid = "";

    this.Brand = brand;
    this.Partner = partner;
    this.Version = version;
    this.Country = country;
    this.Guid = guid;
}

// AOL Toolbars version 2.0+ 
// AIM Toolbar
// Redskins Toolbar
// HP Toolbar
function AOLToolbarInit(Toolbar) {

    //console_log("AOLToolbarInit CP1");
    var ver = "";
    var ok = false;
    try {
        // first try the ToolbarInfo property
        ver = Toolbar.Version;
        ok = true;
    }
    catch (e) {

    }

    if (!ok) {
        try {
            var partner = "aol";
            ver = Toolbar.Version("aoltb.dll");
            var tb = new ToolbarInfo();

            if (ver.indexOf("5.7") == 0) {
                partner = "aim";
            }

            tb.Brand = "AOL";
            tb.Version = ver;
            tb.Partner = partner;

            ieToolbars.push(tb);
        }
        catch (e) {
        }
    }
    else {
        ieToolbars.push(Toolbar);

    }
}

function BlackVoicesToolbarInit(Toolbar) {
    ieToolbars.push(Toolbar);
}

function CNNToolbarInit(Toolbar) {
    ieToolbars.push(Toolbar);
}

function MapQuestToolbarInit(Toolbar) {
    ieToolbars.push(Toolbar);
}

function moviefoneToolbarInit(Toolbar) {
    ieToolbars.push(Toolbar);
}

function SpinnerToolbarInit(Toolbar) {
    ieToolbars.push(Toolbar);
}

function TMZToolbarInit(Toolbar) {
    ieToolbars.push(Toolbar);
}

function WinampToolbarInit(Toolbar) {
    ieToolbars.push(Toolbar);

}

function getBrowser() {
    var browser = "";
    if (navigator.userAgent.indexOf("MSIE") != -1) {
        // make sure not AOL
        if (navigator.userAgent.indexOf("AOL 9.0") == -1) {
            browser = "ie";
        }
    }
    else if (navigator.userAgent.indexOf("Firefox") != -1) {
        browser = "firefox";
    }
    return browser;
}

function getToolbarsIE() {
    var tbList = new Array();
    for (var i = 0; i < ieToolbars.length; i++) {
        var tb = ieToolbars[i];
        tbList.push(tb.Partner + " " + tb.InstallId);
    }
    return tbList;
}

function getToolbarsFF() {
    var tbList = new Array();
    for (var i = 0; i < ffToolbars.length; i++) {
        var tb = ffToolbars[i];
        tbList.push(tb.Partner + " " + tb.InstallId);
    }
    return tbList;
}


function getToolbars(browser) {
    var tbList = new Array();

    if (browser == null || browser == "") {
        browser = getBrowser();
    }

    if (browser == "ie") {
        tbList = getToolbarsIE();
    }
    else if (browser == "firefox") {
        tbList = getToolbarsFF();
    }
    return tbList;
}



function CheckAOLToolbar() {

    try {
        //console_log("AOL1");
        browser = getBrowser();
        var tbList = getToolbars(browser);
        //console_log(tbList);
        //console_log("AOL2");          
        for (var i = 0; i < tbList.length; i++) {
            tbname = tbList[i];
            if (tbname.indexOf("aol") != -1) {
                // generate a fake toolbarid
                //MyToolbarID = MyTool.;;
                MyTool = tbList[i];
                //                  console_log(MyTool);
                //                  console_log(MyTool.Guid);
                //                  console_log(MyTool.InstallId);
                //                  console_log(intToGuid(MyTool.InstallId));
            }
        }
    }
    catch (err) {
        //alert(err);
        //console_log(err);
    }
}


/* #####################################################
Global detection code   
#####################################################
*/
function GrabToolbarID(hdnToolbar) {
    var jsVar = MyToolbarID;
    //alert(jsVar);
    if (jsVar == "No Tool") {
        CheckUserAgent();
        jsVar = MyToolbarID;
    }
    document.getElementById(hdnToolbar).value = jsVar;
    //console_log(jsVar);
}

function DoForm() {
    document.form1.submit();
}


function intToGuid(n) {
    var hexa = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];
    var guidSample = "00000000-0000-0000-0000-000000000000";
    guid = "";
    var guidIndex = guidSample.length - 1;
    //console_log(guidIndex);   

    while (n > 16) {
        hexaDigit = n % 16;
        guid = hexa[hexaDigit] + guid;

        guidIndex--;
        if (guidSample.charAt(guidIndex) == '-') {
            guid = "-" + guid;
            guidIndex--;
        }

        n = Math.floor(n / 16);
        //console_log("n = " + n);
    }

    guid = guidSample.substring(0, guidIndex + 1) + guid;
    return guid;
    //console.log(guid);
}

function CheckUserAgent() {
    var ua = navigator.userAgent;
    //console_log(ua);
    if ((ua.toLowerCase().indexOf('wbsmtwb') > -1) || (ua.toLowerCase().indexOf('zap0') > -1)) { //|| (ua.toLowerCase().indexOf('bri') > -1) 
        //console_log("WBSMTWB");
        // check to see if there is a cookie
        if (document.cookie.indexOf("wbsid=") > -1) {
            // TODO: encrypt cookie content!
            // if we have the cookie already, read the ID from the cookie            
            cookie = getCookie("wbsid");
            MyToolbarID = getCookie("wbsid");
        }
        else {
            // if no cookie, create a new ID
            MyToolbarID = guid();
        }
    }

    //console_log(MyToolbarID);
}


function console_log(msg) {
    try {
        console.log(msg);
    }
    catch (err) {
        alert(msg);
    }
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

function S4() {
    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
function guid() {
    return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}

