/* Rev:$Revision: 146709 $ */
// check for cookie containg user's live updates status.
var lvStatusInit = getCookie('AOL_StockQuotesLiveUpdate');
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/.";
var portfoliosloaded = 0;
var elemStks = '';



function encode64(input) {
    var output = "";
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;
    var done = false;
    while (!done && i < input.length) {
        chr1 = input.charCodeAt(i++) & 0xff;
        enc1 = chr1 >> 2;
        output = output + keyStr.charAt(enc1);

        chr2 = input.charCodeAt(i++) & 0xff;
        if (i <= input.length) {
            enc2 = ((chr1 << 4) & 0x30) | (chr2 >> 4);
            output = output + keyStr.charAt(enc2);
            chr3 = input.charCodeAt(i++) & 0xff;
            if (i <= input.length) {
                enc3 = ((chr2 << 2) & 0x3c) | (chr3 >> 6);
                enc4 = (chr3 & 0x3F);
                output = output + keyStr.charAt(enc3) + keyStr.charAt(enc4);
            } else {
                enc3 = (((chr2 << 2) & 0x3c));
                output = output + keyStr.charAt(enc3);
                output = output + ('.');
                done = true;
            }
        } else {
            enc2 = ((chr1 << 4) & 0x30);
            output = output + keyStr.charAt(enc2);
            output = output + ('.');
            output = output + ('.');
            done = true;
        }
    }
    return output;
}

function ntos(n) {
    n = n.toString(16);
    if (n.length == 1) n = "0" + n;
    n = "%" + n;
    return unescape(n);
}

function readReverseBase64() {
    if (!base64Str) return -1;
    while (true) {
        if (base64Count >= base64Str.length) return -1;
        var nextCharacter = base64Str.charAt(base64Count);
        base64Count++;
        if (reverseBase64Chars[nextCharacter]) {
            return reverseBase64Chars[nextCharacter];
        }
        if (nextCharacter == 'A') return 0;
    }
    return -1;
}

var base64Chars = new Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/');
var reverseBase64Chars = new Array();
for (var i = 0; i < base64Chars.length; i++) {
    reverseBase64Chars[base64Chars[i]] = i;
}
var base64Str;
var base64Count;

function setBase64Str(str) {
    base64Str = str;
    base64Count = 0;
}

function decode64(str) {
    setBase64Str(str);
    var result = "";
    var inBuffer = new Array(4);
    var done = false;
    while (!done && (inBuffer[0] = readReverseBase64()) != -1 && (inBuffer[1] = readReverseBase64()) != -1) {
        inBuffer[2] = readReverseBase64();
        inBuffer[3] = readReverseBase64();
        result += ntos((((inBuffer[0] << 2) & 0xff) | inBuffer[1] >> 4));
        if (inBuffer[2] != -1) {
            result += ntos((((inBuffer[1] << 4) & 0xff) | inBuffer[2] >> 2));
            if (inBuffer[3] != -1) {
                result += ntos((((inBuffer[2] << 6) & 0xff) | inBuffer[3]));
            } else {
                done = true;
            }
        } else {
            done = true;
        }
    }
    return result;
}

function internationalizeCookieValue(cookieValue) {
    var tickerArray = cookieValue.split(',');
    var newTickers = ",";
    for (var i = 0; i < tickerArray.length; i++) {
        if (tickerArray[i] != "") {
            newTickers = newTickers + "C:USA:" + tickerArray[i] + ",";
            //if (tickerArray[i] != "") {
            //if (newTickers != "") {
            //    newTickers = newTickers + ",";
            //}
            //newTickers = newTickers + "C:USA:"+tickerArray[i];
        }
    }
    var encodedValue = encode64(newTickers);
    return encodedValue;
}

var rqSyms2 = '';
// Recent Quotes via Flash callback START
function getRecentQuotes_cb(obj) {
    if (typeof (obj) != "undefined" && obj != null) { //try looping thru symlist results from ajax call
        try {
            var tmp_rqSyms = '';
            for (var rqEx = 0; rqEx < obj.ResultSet.recentquotes.length; rqEx++) {
                if (typeof obj.ResultSet.recentquotes[rqEx].s != 'undefined') tmp_rqSyms += 'E:' + obj.ResultSet.recentquotes[rqEx].x + ':' + obj.ResultSet.recentquotes[rqEx].s + ',';
            }
            tmp_rqSyms = trimAll(tmp_rqSyms);
            rqSyms = tmp_rqSyms;
            rqSyms2 = rqSyms;
            strRecentQuotes = rqSyms2;
            allSyms += ',' + rqSyms2 + ',';
        } catch (err) {}
    }
} // Recent Quotes via Flash END


// Cookie migratioon code
//var MONEY_COOKIE_LIST = "AOL_QuotesWatchList,AOL_StockQuotesLiveUpdate";
//  var MONEY_COOKIE_LIST = "AOL_StockQuotesLiveUpdate";
var MONEY_COOKIE_LIST = "AOL_StockQuotesWatchList,AOL_StockQuotesLiveUpdate";

function checkIfFirstTime() {
    var cookie = getCrossDomainCookie("df_mon_dom");
    if (cookie != null && cookie == "true") {
        return false;
    }
    return true;
}

function loadMoneyCookieCallback(jsonObj) {
    if (checkIfFirstTime() == false) {
        return;
    }
    setCrossDomainCookie("df_mon_dom", "true", 1, "/", null, false);
    if (typeof jsonObj == "undefined") {
        return;
    }
    var moneyCookieCallbacks = "";
    var moneyCookieArray = MONEY_COOKIE_LIST.split(',');
    for (var k = 0; k < moneyCookieArray.length; k++) {
        var cookie = getCrossDomainCookie(moneyCookieArray[k]);
        if (cookie == null) {
            if (moneyCookieCallbacks != "") {
                moneyCookieCallbacks += ",";
            }
            moneyCookieCallbacks += moneyCookieArray[k];
        }
    }
    var cookieCallbacksArray = moneyCookieCallbacks.split(',');
    for (var i = 0; i < cookieCallbacksArray.length; i++) {
        if (cookieCallbacksArray[i] != "") {
            var cookieValue = eval("jsonObj." + cookieCallbacksArray[i]);
            if (typeof cookieValue != "undefined") {
                if (cookieCallbacksArray[i] == "AOL_StockQuotesLiveUpdate") {
                    if (cookieValue == "0") {
                        lvStatusInit = 0;
                        setCrossDomainCookie(cookieCallbacksArray[i], unescape(cookieValue), 1, "/", null, false);
                    }
                } else {
                    if (cookieCallbacksArray[i] == "AOL_StockQuotesWatchList") {
                        cookieValue = internationalizeCookieValue(unescape(cookieValue));
                    }
                    //setCrossDomainCookie(cookieCallbacksArray[i], unescape(cookieValue), 1, "/", null, false);
                    setCrossDomainCookie("AOL_QuotesWatchList", unescape(cookieValue), 1, "/", null, false);
                    AOL_QuotesWatchList = getCookieBase64('AOL_QuotesWatchList');
                }
            }
        }
    }
}

function getCrossDomainCookie(check_name) {
    // first we'll split this cookie up into name/value pairs
    // note: document.cookie only returns name=value, not the other components
    var a_all_cookies = document.cookie.split(';');
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f
    for (i = 0; i < a_all_cookies.length; i++) {
        // now we'll split apart each name=value pair
        a_temp_cookie = a_all_cookies[i].split('=');

        // and trim left/right whitespace while we're at it
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

        // if the extracted name matches passed check_name
        if (cookie_name == check_name) {
            b_cookie_found = true;
            // we need to handle case where cookie has no value but exists (no = sign, that is):
            if (a_temp_cookie.length > 1) {
                cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
            }
            // note that in cases where cookie is initialized but no value, null is returned
            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if (!b_cookie_found) {
        return null;
    }
}

function setCrossDomainCookie(name, value, expires, path, domain, secure) {
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime(today.getTime());

/*
                             if the expires variable is set, make the correct
                             expires time, the current script below will set
                             it for x number of days, to make it for hours,
                             delete * 24, for minutes, delete * 60 * 24
                           */
    if (expires) {
        expires = expires * 1000 * 60 * 60; //set in terms of hrs, took away (* 24)
    }
    var expires_date = new Date(today.getTime() + (expires));

    document.cookie = name + "=" + escape(value) + ((expires) ? ";expires=" + expires_date.toGMTString() : "") + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ((secure) ? ";secure" : "");
}
// Cookie migration code ends
var AOL_QuotesWatchList = getCookieBase64('AOL_QuotesWatchList');
var marketStatus = "";
var lvMarketsArray = [];
// lvReady = 0 until hash is built and populated.
var lvReady = 0;
// declare the live stocks object
var lvStocks = new Object();
var updateable = new Boolean(true);
var symString = ''; // variable for symbol string sent to JSON.
var lvModCtr = 0;
var allSyms = "";
var pageloaded = 0;
var mvList = "";
var liveUpCookieLen = 90;
var watchCookieLen = 90;
var mktXch;
var alertTimerId = 0;
var exchange;
var newSymbol;
var symExchangeCombo;
var symExchangeList = "";
var oldList = "";
var EL = "";
var badSymbol = 0;
var interSymbol = 0;


// Body onload functions
function template_init() {

    //in older code deletion had potential of leaving comma
    if (getCookieBase64("AOL_QuotesWatchList") == ",") delCookie("AOL_QuotesWatchList");

    //checking for modules that use live updates
    var watchlistCheck = document.getElementById("mnc_watchlist");
    var marketNewsCheck = document.getElementById("market-news-mod");
    var lvHotStocksCheck = document.getElementById("lvHotStocks");
    var mnc_marketmoversCheck = document.getElementById("lvmarketmovers");
    var lvHotStocksAltCheck = document.getElementById("lvHotStocksAlt");
    var lvMarketsCheck = (lvMarketsArray != null && lvMarketsArray.length > 0) ? 1 : 0;
    var lvFlashCheck = (flashSyms != null && flashSyms.length > 0) ? 1 : 0;
    if (lvFlashCheck + lvHotStocksAltCheck + mnc_marketmoversCheck + watchlistCheck + marketNewsCheck + lvHotStocksCheck + lvMarketsCheck != 0) {
        lvModCtr++;
    }

    if (lvModCtr > 0) {
        allSyms = trimAll(allSyms);
        var arrLvSyms = allSyms.split(",");

        // Fill the object keys with stock symbols from the array
        for (i = 0; i < arrLvSyms.length; i++) {
            checkSym(arrLvSyms[i].toUpperCase());
        }

        // Build the string for the JSON call
        for (var stock in lvStocks) {
            symString += stock + ",";
        }

        symString = trimAll(symString);

        lvMNsym = set_lvMNsym(first);
        // alert(lvMNsym);//bren
        lvMNtab = set_lvMNtab(first);
        liveUpDatesSwitch();

    }

    if (marketNewsCheck) {
        tabCount = last - 2;
        first = 1;
        displaySymbolData(last);
        //select_tabs(first);
        paginationData = tabCount + " of " + arrMNstocks.length;
        document.getElementById("carouselPagination").innerHTML = paginationData;


    }

}

function liveUpDatesSwitch() {
    // control live updates
    if (shutLiveUpdates == 1) {
        lvStatus('never');
    } else if (lvStatusInit == 1) {
        lvStatus('on');
    } else if (lvStatusInit == 0) {
        lvStatus('off');
    } else {
        setCookie('AOL_StockQuotesLiveUpdate', 1, liveUpCookieLen);
        lvStatus('on');
    }
}

if (window.addEventListener) window.addEventListener("DOMContentLoaded", template_init, false);
else window.attachEvent("onload", template_init);
// end of body On load functions /* Prevent IE flicker */
try {
    document.execCommand("BackgroundImageCache", false, true);
} catch (err) {}


function sendLinkEvent() {}

// feeds module hoverbox functions
function createPop() {
    var popRef = document.createElement("p");
    popRef.className = 'feedPop';
    popRef.setAttribute('id', 'feedPop');
    document.body.appendChild(popRef);
    popRef.style.display = 'none';
}

function showPop(e, trgElement, textPopup) {
    var elHt = trgElement.offsetHeight; //this is the element height
    var elWt = trgElement.offsetWidth; //this is the element height
    createPop();
    posY = findMousePos(e)
    if (document.getElementById('feedPop').style.display.indexOf('none') == 0) {
        popRef = document.getElementById('feedPop');
        var txtNode = document.createTextNode(textPopup);
        var arrPos = findPos(trgElement);
        popRef.style.display = "block";
/* popRef.style.left = arrPos[0] + "px";
	                        popRef.style.top = parseInt(posY+elHt/2)+ "px";*/
        popRef.style.left = $(trgElement).offset().left + "px";
        popRef.style.top = $(trgElement).offset().top + $(trgElement).height() + 10 + "px";

        try {
            popRef.removeChild(popRef.firstChild);
        } catch (e) {}
        popRef.appendChild(txtNode);
    }
}

function hidePop() {
    try {
        var popRef = document.getElementById('feedPop');
        document.body.removeChild(popRef);
        popRef = null;
    } catch (e) {}
}

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft;
        curtop = obj.offsetTop;
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        }
    } else if (obj.x) curleft += obj.x;

    if (document.all) curleft -= document.getElementsByTagName("body")[0].offsetLeft;

    if (navigator.userAgent.indexOf('Safari') != -1) curleft -= document.getElementsByTagName("body")[0].offsetLeft;

    return [curleft, curtop];
}

function findMousePos(e) {
    var posY = 0;
    if (!e) var e = window.event;
    if (e.pageX || e.pageY) {
        posY = e.pageY;
    } else if (e.clientX || e.clientY) {
        posY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }
    return posY;
}
// end: feeds module hoverbox functions
function chportfolio(formName, ctrlName, formSubmit) {
    var formName = 'document.' + formName + '.' + ctrlName;
    if (formSubmit == 0) {
        var ctrlValue = eval(formName).options[eval(formName).selectedIndex].value;
    }
    window.open(ctrlValue);
}

function nav_focus(formname, fieldname) {
    document.forms[formname].elements[fieldname].focus();
}

function popup_window(url, width, height) {
    var features = "status=0,menubar=0,location=0,toolbar=0";
    if (!isNaN(parseInt(width))) {
        features += ",width=" + width;
    }
    if (!isNaN(parseInt(height))) {
        features += ",height=" + height;
    }
    if (typeof (window.screenLeft) != "undefined") {
        features += ",left=" + window.screenLeft;
        features += ",left=" + Math.round(window.screenLeft + ((document.body.clientWidth / 2) - (width / 2)));
    } else if (typeof (window.screenX) != "undefined") {
        features += ",left=" + Math.round(window.screenX + ((window.outerWidth / 2) - (width / 2)));
    }
    if (typeof (window.screenTop) != "undefined") {
        features += ",top=" + window.screenTop;
        features += ",top=" + Math.round(window.screenTop + 150);
    } else if (typeof (window.screenY) != "undefined") {
        features += ",top=" + Math.round(window.screenY + ((window.outerHeight - window.innerHeight) + 150));
    }
    var popupWin = window.open(url, "popupWin", features);
    if (popupWin.focus) {
        popupWin.focus();
    }
}

// for use in the header
function goQuotes(daform) {
    if (!validateSym(daform.sym.value)) {
        alert("There are characters in the symbol that are not allowed.");
        return;
    }

    var exch = daform.exch.value;
    var sym = whichEncode(daform.sym.value);
    var url = "/quotes/quotesandnews" + "?sym=" + sym + "&exch=" + exch;

    window.location = url;
}

function validateSym(str) {
    var invalids = ":<";

    for (i = 0; i < invalids.length; i++) {
        if (str.indexOf(invalids.charAt(i)) >= 0) {
            return false;
        }
    }
    return true;
}

function whichEncode(fld) {
    //if (fld == "") return false;
    var encodedField = "";
    var s = fld;
    if (typeof encodeURIComponent == "function") {
        // Use JavaScript built-in function
        // IE 5.5+ and Netscape 6+ and Mozilla
        encodedField = encodeURIComponent(s);
    } else {
        // Need to mimic the JavaScript version
        // Netscape 4 and IE 4 and IE 5.0 etc
        encodedField = encodeURIComponentNew(s);
    }
    return encodedField;
}

// Functions for Boxley buttons
function artzOvr(o) {
    o.className = o.className.substr(0, 15) + " " + o.className.substr(8, 15) + "Hov"
}

function artzOff(o) {
    o.className = o.className.substr(0, 15)
}


function artzClk(o) {
    o.className = o.className.substr(0, 15) + " " + o.className.substr(8, 15) + "Clk"
}


function goTab2(daform, chartform) {
    if (!validateSym(daform.sym.value)) {
        alert("There are characters in the symbol that are not allowed.");
        return;
    }
    var dist = daform.tabs.options[daform.tabs.selectedIndex].value;
    var sym = makeSym(daform.sym.value).toLowerCase();
    var pid = daform.pid.value;
    var exch = daform.exch.value.toLowerCase();
    var dur = "";
    var symbs = "";
    var compidx1 = "";
    var compidx2 = "";
    var compidx3 = "";
    var url = "";
    if ((dist == "charts") && (chartform != null) && (chartform.dr.value)) {
        dur = chartform.dr.value;
        symbs = chartform.symbs.value;
        if ((chartform.compidx1 != null) && (chartform.compidx1.checked == true)) compidx1 = chartform.compidx1.value;
        if ((chartform.compidx2 != null) && (chartform.compidx2.checked == true)) compidx2 = chartform.compidx2.value;
        if ((chartform.compidx3 != null) && (chartform.compidx3.checked == true)) compidx3 = chartform.compidx3.value;
    } else {
        dur = daform.dr.value;
        symbs = daform.symbs.value;
        compidx1 = daform.compidx1.value;
        compidx2 = daform.compidx2.value;
        compidx3 = daform.compidx3.value;
    }
    if (dist == "quotesandnews") {
        if ((sym != null) && (sym.length > 0)) {
            url = "/quotes/" + sym + "/" + exch + "?tabs=" + dist;
        } else {
            url = "/quotes/" + exch + "?tabs=" + dist;
        }
    } else {
        if ((sym != null) && (sym.length > 0)) {
            url = "/quotes/" + sym + "/" + exch + "/" + dist + "?tabs=" + dist;
        } else {
            url = "/quotes/" + exch + "/" + dist + "?tabs=" + dist;
        }
    }
    if ((pid != null) && (pid != "")) url += "&pid=" + pid;
    if ((symbs != null) && (symbs != "")) url += "&symbs=" + symbs;
    if ((dur != null) && (dur != "")) url += "&dr=" + dur;
    if ((compidx1 != null) && (compidx1 != "")) url += "&compidx1=" + compidx1;
    if ((compidx2 != null) && (compidx2 != "")) url += "&compidx2=" + compidx2;
    if ((compidx3 != null) && (compidx3 != "")) url += "&compidx3=" + compidx3;
    if ((dist == "charts") && (chartform != null)) {
        if (chartform.ag.value) url += "&ag=" + chartform.ag.value;
        if (chartform.index.value) url += "&index=" + chartform.index.value;
        if (chartform.te.value) url += "&te=" + chartform.te.value;
        if (chartform.se.value) url += "&se=" + chartform.se.value;
        if (chartform.vl.checked == true) url += "&vl=" + chartform.vl.value;
        if (chartform.ss.checked == true) url += "&ss=" + chartform.ss.value;
        if (chartform.dv.checked == true) url += "&dv=" + chartform.dv.value;
        if (chartform.hs.checked == true) url += "&hs=" + chartform.hs.value;
        if (chartform.vs.checked == true) url += "&vs=" + chartform.vs.value;
        if (chartform.state.value) url += "&state=" + chartform.state.value;
        if (chartform.settings.value) url += "&settings=" + chartform.settings.value;
        if (chartform.vl1.value) url += "&vl1=" + chartform.vl1.value;
        if (chartform.ss1.value) url += "&ss1=" + chartform.ss1.value;
        if (chartform.dv1.value) url += "&dv1=" + chartform.dv1.value;
        if (chartform.hs1.value) url += "&hs1=" + chartform.hs1.value;
        if (chartform.vs1.value) url += "&vs1=" + chartform.vs1.value;
        if (chartform.scs.value) url += "&scs=" + chartform.scs.value;
        if (chartform.daysb4.value) url += "&daysb4=" + chartform.daysb4.value;
        if (chartform.fromdate.value) url += "&fromdate=" + chartform.fromdate.value;
        if (chartform.todate.value) url += "&todate=" + chartform.todate.value;
        if (chartform.freq.value) url += "&freq=" + chartform.freq.value;
        if (chartform.timeframe.value) url += "&timeframe=" + chartform.timeframe.value;
    }
    window.location = url;
}

/*JSON modules 2007 July ****/

//open individual portfolios
function seeSubPort(elemStks) {
    elemStks = elemStks.replace(/#/g, "\134");
    elemStks = elemStks.replace(/#/g, "\\");
    ensureUploadScriptIsLoaded(portURL + elemStks + '&callback=mnc_myportfolio_sub');

}

function mnc_myportfolio_sub(obj) {
    ourElement = "mnc_myportfolio_sub" + elemNum;
    document.getElementById(ourElement).innerHTML = "";
    moduleString = '';
    var rtnsyms = "";
    var lnk = ""; /* if the the div clicked is the same as the one before AND was not closed before, do not open div again */
    if (previousElemNum == elemNum && previousElemNum != -1) {
        closePortDiv();
        previousElemNum = -1;
        elemNum = 0;

        return false;
    }

    //try looping thru symlist results from ajax call
    try {
        moduleString += '<div class="seesub"><p class="seesubhead">Portfolio Holdings</p></div><div id="mnc_myportfolio_sub_stocks"><table class="marketData" border="0" cellpadding="0" cellspacing="0">';
        moduleString += '<thead><tr class="header"><th class="th_symbol">Symbol</th><th class="th_last">Last</th><th class="th_change" colspan="3">Change</th><th>&nbsp;</th><th>&nbsp;</th></tr></thead><tbody>'

        for (var i = 0; i < obj.ResultSet.symslist.length; i++) {
            var stockDirection = "";
            //add sym to rtnsyms to make request for rtn stories
            rtnsyms += "&qTxt=" + obj.ResultSet.symslist[i].s + "." + obj.ResultSet.symslist[i].xcntrc;

            if (typeof obj.ResultSet.symslist[i].y == 'undefined') {
                var hsValue = obj.ResultSet.symslist[i].p;
                var hsChange = obj.ResultSet.symslist[i].c;
                var hsPChange = obj.ResultSet.symslist[i].pc;
                if (obj.ResultSet.symslist[i].c.indexOf("+") != -1) {
                    stockDirection = "positive";
                    hsPChange = "+" + hsPChange;
                }
                if (obj.ResultSet.symslist[i].c.indexOf("-") != -1) {
                    stockDirection = "negative";
                    hsPChange = "-" + hsPChange;
                }
            } else {
                var hsValue = obj.ResultSet.symslist[i].y + "%";
                var hsChange = obj.ResultSet.symslist[i].yc;
                var hsPChange = obj.ResultSet.symslist[i].ypc;
                var hsDir = obj.ResultSet.symslist[i].yin;
                if (hsDir.indexOf("D") != -1) {
                    stockDirection = "negative";
                    hsPChange = "-" + hsPChange;
                }
                if (hsDir.indexOf("U") != -1) {
                    stockDirection = "positive";
                    hsPChange = "++" + hsPChange;
                    hsChange = "+" + hsChange;
                }
            }

            lnk = obj.ResultSet.symslist[i].lu.replace("http://finance.aol.com", "");
            moduleString += "<tr id=\"MPServerList" + i + "\"";
            moduleString += 'class="' + stockDirection + '"><td class="wl_Symbol"><a  title="' + obj.ResultSet.symslist[i].n + '" href="' + lnk + '">' + obj.ResultSet.symslist[i].s + '</a></td>';
            moduleString += '<td class="last">' + hsValue + '</td>';
            moduleString += '<td  class="amountIncr">' + hsChange.replace('+', '&nbsp;&nbsp;') + '</td>';
            moduleString += '<td><div class="moneyarrow">&nbsp;</div></td>';

            if (hsPChange.indexOf('N/A') < 0) moduleString += '<td class="percentIncr">' + hsPChange.replace('+', '').replace('-', '') + '%</td>';
            else moduleString += '<td class="percentIncr">' + hsPChange + '</td>';

            moduleString += '<td><div class="wl_chart" title="See Chart for ' + obj.ResultSet.symslist[i].s + '"><a href="' + lnk.replace("/quotes/", "/charts/") + '">&nbsp;&nbsp;&nbsp;&nbsp;</a></div></td>';
            moduleString += '<td><div class="wl_headlines" title="See Latest Headlines for ' + obj.ResultSet.symslist[i].s + '"><a href="' + lnk.replace("/quotes/", "/headlines/") + '">&nbsp;&nbsp;&nbsp;&nbsp;</a></div></td></tr>';
        }
        moduleString += '</tbody></table></div>';
        headlines = '';
        headlinesLoop = '';
        headlines = '<div class="seesub2"><p class="seesubhead">Top Headlines</p></div>';

        headlines += '<div id="portstories"></div>';

        headlines += '<table width="270"><tr>';
        headlines += '<td class="hidesumcell"><div class="hidesum"><a href="javascript:void(0);" title="Hide Portfolio" onclick="javascript:closePortDiv();elemNum=-1;" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hide</a></div></td>';
        headlines += '<td><div class="pfeditview"><a class="pfedit" href="' + document.getElementById("viewUrl" + elemNum).innerHTML.replace("view", "edit") + '">&nbsp;&nbsp;&nbsp;&nbsp;Edit Portfolio</a></div></td>';
        headlines += '<td>&nbsp;|</td>';
        headlines += '<td><a class="pfview" href="' + document.getElementById("viewUrl" + elemNum).innerHTML + '">View Porfolio</a></td>';
        headlines += '</tr></table>';
        moduleString += headlines;

        //portfolio
        document.getElementById(ourElement).innerHTML = moduleString;
        document.getElementById(ourElement).style.display = 'block';
        //flips expand image and changes row background
        document.getElementById("portRow" + elemNum).setAttribute("class", "activePortRow");
        document.getElementById("portRow" + elemNum).setAttribute("className", "activePortRow");
        document.getElementById("openSesame" + elemNum).title = "Hide Portfolio";

        //visible portfolio is now given a border and background
        document.getElementById(ourElement).style.borderBottom = '1px solid #DEDEDE';
        document.getElementById("mnc_myportfolio_sub" + elemNum).style.background = '#F3F6F7';
        document.getElementById("portSubRow" + elemNum).style.background = '#F3F6F7';

        previousElemNum = elemNum;
        ensureUploadScriptIsLoaded('http://money-rtn.web.aol.com/rdg/getAssetsMetaBlendedClustered?f=json&appId=MF' + rtnsyms + '&qTyp=ticker&sHdln=1&fLng=en&dPgOff=0&dPgCnt=5&fRelMn=85&fSgrp=1001&sPubDt=1&sSrc=1&sUrl=1&sTopc=1&sRelv=1&c=RTNBlendedNewsCallback');

    } catch (err) {
        //alert(err);
    }

}



function RTNBlendedNewsCallback(obj) {
    //parse rtn new stories json data
    var headlinesLoop = "";

    var clusters = obj.data.metaResponse.queryRsltBlended.clusters;

    //var headline=clusters[i].cluster.assets[0].headline;
    var nonewsstr = '<div class="headlines">No news for these symbols at this time.</div>';
    try {
        if (clusters.length == 0) {
            headlinesLoop = nonewsstr;
        } else {
            for (var i = 0; i < clusters.length && i < newsMAX; i++) {

                var item = clusters[i].cluster.assets[0];

                headlinesLoop += '<div class="headlines"><span class="headsymbol">' + item.relevantEntities[0].relevantEntity.queryText.split(".")[0] + '&nbsp;&nbsp;-&nbsp;&nbsp;';
                headlinesLoop += '<a href="' + item.url + '" >' + item.headline.substr(0, 35);
                if (item.headline.length > 35) headlinesLoop += '...';
/*   if(obj.ResultSet.newspress[i].d.indexOf("AM") > -1 || obj.ResultSet.newspress[i].d.indexOf("PM") > -1)
	                    headlinesLoop +='</a><br /><span class="headlinedate"><b>' + obj.ResultSet.newspress[i].d + '&nbsp;</b></span>';
	                else*/
                var thetime = transformtime(item.publishDate);
                if (thetime != -1) headlinesLoop += '</a><br /><span class="headlinedate">' + thetime + '&nbsp;</span>';
                headlinesLoop += '<span class="headlinesource">|&nbsp;' + item.source + '</span>';
                headlinesLoop += '</div>';
            }
            headlinesLoop += '<div class="pfeditview"><a class="pfview" href="' + document.getElementById("viewUrl" + elemNum).innerHTML + '">More Headlines</a></div>';
        }
    } catch (err) {
        headlinesLoop = nonewsstr;
    }
    document.getElementById("portstories").innerHTML = headlinesLoop;
}

//general default function to use to make json calls
function ensureUploadScriptIsLoaded(jsonCall) {
    jsonCall = jsonCall.replace(/\+/g, "%2b");
    jsonCall = jsonCall.replace(",,,", ",");
    jsonCall = jsonCall.replace(",,", ",");
    var head = document.getElementsByTagName("body")[0];
    script = document.createElement('script');
    script.id = 'uploadScript';
    script.type = 'text/javascript';
    script.src = jsonCall;
    head.appendChild(script);
}

//function to close individual portfolios
function closePortDiv() {

    if (elemNum > 0) {
        document.getElementById("portRow" + elemNum).setAttribute("class", "inactivePortRow");
        document.getElementById("portRow" + elemNum).setAttribute("className", "inactivePortRow");
        document.getElementById("mnc_myportfolio_sub" + elemNum).style.borderBottom = 'none';
        document.getElementById("mnc_myportfolio_sub" + elemNum).innerHTML = '';
        document.getElementById("portSubRow" + elemNum).style.background = 'none';
        document.getElementById("portRow" + elemNum).style.fontWeight = 'normal';
        document.getElementById("openSesame" + elemNum).title = "Show Portfolio";

    }
    elemNum = -1;
}

//general function to get base64-encoded  cookie, returns decoded value
function getCookieBase64(NameOfCookie) {
    if (document.cookie.length > 0) {
        begin = document.cookie.indexOf(NameOfCookie + "=");
        if (begin != -1) {
            begin += NameOfCookie.length + 1;
            end = document.cookie.indexOf(";", begin);
            if (end == -1) end = document.cookie.length; {
                var cookieval = unescape(document.cookie.substring(begin, end));
                cookieval = decode64(cookieval);
                return cookieval;
            }
        }
    }
    return null;
}

//general function to set base64-encoded cookie
function setCookieBase64(NameOfCookie, value, expiredays) {
    var ExpireDate = new Date();
    ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
    value = encode64(value);
    document.cookie = NameOfCookie + "=" + escape(value) + ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString()) + "; path=/";
}


//general function to get cookie
function getCookie(NameOfCookie) {
    if (document.cookie.length > 0) {
        begin = document.cookie.indexOf(NameOfCookie + "=");
        if (begin != -1) {
            begin += NameOfCookie.length + 1;
            end = document.cookie.indexOf(";", begin);
            if (end == -1) end = document.cookie.length;
            return unescape(document.cookie.substring(begin, end));
        }
    }
    return null;
}

//general function to set cookie
function setCookie(NameOfCookie, value, expiredays) {
    var ExpireDate = new Date();
    ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
    document.cookie = NameOfCookie + "=" + escape(value) + ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString()) + "; path=/";
}

//general function to delete cookies
function delCookie(NameOfCookie) {
    setCookie(NameOfCookie, "", -1);
}

// new article toolkit
function checkTextPref() {
    if (getCookie('ArticleTextPref') != null) {
        thePref = getCookie('ArticleTextPref');
        textSize(thePref);
    }
}

function textSize(n) {
    $("#articleToolsTop .textSize a[href*=" + n + "]").each(function (i, item) {
        $(this).addClass("selected");
    });
    document.getElementById('articleBody').style.fontSize = n + '%';
    document.getElementById('articleBody').style.lineHeight = (n * 1.2) + '%';
    setCookie('ArticleTextPref', n, 180);
}

// hp pdf article printing
function __TABBLO_TPT_LOAD() {
    Tabblo.embedded.sites.SettingsObject.preprocess.apply({
        Properties: {
            template: 'news'
        },
        FixedContent: {
            'logo': 'http://o.aolcdn.com/dynamoney/dayfin/i/2-logo_dailyfinance_309x62.gif'
        },
        // content definition:
        Content: {
            'pagetitle': {
                match: 'css',
                selector: 'h1'
            },
            'text': {
                match: 'css',
                selector: '#Article .byline,#Article .posted,#articleHeader>h1,#articleHeader>h2,#articleHeader>h3,#articleBody p,#articleBody>ul,#articleBody>ol,#articleBody>h2,#articleBody>h3,#articleBody>h4',
                outputTagToo: true
            }
        }
    }, []);
    Tabblo.embedded.printabulous();
}

function MakePDF() {
    tpt = document.createElement('script');
    tpt.setAttribute('type', 'text/javascript');
    tpt.setAttribute('charset', 'utf-8');
    tpt.setAttribute('src', 'http://h30405.www3.hp.com/edit/tptboot/1.0');
    document.getElementsByTagName('body').item(0).appendChild(tpt);
}
// end: article toolkit
//function to display watchlist contents
function mnc_watchlist(obj) {
    var addportfolioStr;
    getWLsyms();
    moduleString = '';
    moduleString = '<div class="smybolPut"  id="smybolPut"><form name="addWL" action="javascript:addWatchList();">';
    moduleString += '<input class="addwatchlist" id="addwatchlist" type="text" onClick="if(userAdding==0)this.value=\'\';userAdding=1;" value="Enter symbol(s) separated by commas" name="sym" maxlength="80" alt="Enter a symbol here" >';
    moduleString += '<a id= "addwatchlistAdd" class="aolBtn watchlist_button" href="javascript:addWatchList();" title="Add Symbol(s)" type="submit" tabIndex="0">Add</a></form></div>';
    moduleString += '<div class="symbolErr"  id="symbolErr">' + defSymErr + '</div>';
    moduleString += '<div id="marketDataWL"></div>';
    if (document.getElementById('mnc_watchlist').innerHTML.length == 0) document.getElementById('mnc_watchlist').innerHTML = moduleString;
    if (lvReady == 0 || lvStatusInit != 1) {
        if (AOL_QuotesWatchList != null) {
            //wlSyms = wlSyms+','+AOL_QuotesWatchList;
            wlSyms = wlSyms.replace(",,", ",");
        }
        ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + wlSyms + '&callback=defWatchList' + '&rf=http://www.dailyfinance.com');
    } else {
        wlSyms = wlSyms.replace(",,", ",");
        arSmbls = wlSyms.split(",");
        for (i = 0; i < arSmbls.length; i++) {
            checkSym(arSmbls[i].toUpperCase());
        }
/*if( typeof lvStocks != 'undefined' && typeof lvStocks[arSmbls[0]] != 'undefined' &&
                                       typeof lvStocks[arSmbls[0]].s != 'undefined' && typeof lvStocks[arSmbls[0]].p != 'undefined' &&
                                       lvStocks[arSmbls[0]].s != "" && typeof lvStocks[arSmbls[0]].p != "" ){
                                       wlLive(wlSyms,obj);
                                } else {
                                    ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + wlSyms+'&callback=defWatchList' + '&rf=http://www.dailyfinance.com');
                                }//bren qp reflector migration
                                */
        ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + wlSyms + '&callback=defWatchList' + '&rf=http://www.dailyfinance.com');

        document.getElementById("mnc_portfolios").style.display = "none";
        document.getElementById("mnc_recentquotes").style.display = "none";
        document.getElementById("mnc_watchlist").style.display = "block";
        document.getElementById("watchNav").setAttribute("class", "activeTab");
        document.getElementById("portNav").setAttribute("class", "");
        document.getElementById("recentNav").setAttribute("class", "");
        document.getElementById("watchNav").setAttribute("className", "activeTab");
        document.getElementById("portNav").setAttribute("className", "");
        document.getElementById("recentNav").setAttribute("className", "");
    }
    //if a bad symbol was added while this function was adding symbols, display message
    if (goodSymbol == 0) document.getElementById("symbolErr").innerHTML = symbolErr;

    //max has been set to 100 symbols otherwise error message displays
    if (maxReached == 1) document.getElementById("symbolErr").innerHTML = "<span class=\"errDiv\">You can only have " + watchlistMAX + " symbols in  your Watchlist.  Please remove some to add more.</span>";
}

function getPortfolioData() {
    //get json portfolio data and callback processPortfolios()
    if (user_screen_name != '') ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/?service=myportfolios,&porttype=1&portmax=100&callback=processPortfolios');
    else {
        document.getElementById("portcontain").innerHTML = '<table cellspacing="0" cellpadding="0" border="0" summary="This is a chart of your Portfolios."><caption title="My Investments"/><tbody><tr><td class="pftext" colspan="4"><p><a href="/portfolios/myportfolios"><b>Track Your Investments Here!</b></a><br>See why so many people use the DailyFinance portfolio tool as the corner-stone of their investing strategy.</p></td></tr></tbody></table>' + '<div class="snslinks"><a href="#" class="snslink" id="loginlink"><b>Sign In</b></a> or <a href="#" class="snslink" id="reglink"><b>Register Now</b></a></div>';
        loginCheck();
        showport();


    }
}

function getLvStockDirection(change) {
    var direction = "unch";
    if (change != undefined) change = change.replace(",", "");
    if (change == undefined) direction = "unch";
    else if (change > 0) direction = "U";
    else if (change.indexOf("-") != -1) direction = "D";
    return direction;
}

function processPortfolios(obj) {
    //    for (var i = 0; i < resultsObj.ResultSet.myportfolios[0].p.length; i++) {
    var sHtmlBuffer = '<table cellpadding= "0" cellspacing="0" summary="This is a chart of your Portfolios." border="0"><caption title="My Investments"></caption><thead id="porthead"><tr><th id="portSummary" class="mpLft">View</th><th colspan="2" id="portn" class="mpLft">Portfolio</th><th id="changePort" class="mpRt">Change</th><th id="editPort" class="mpRt">&nbsp;</th></tr></thead><tbody>';;
    //alert(obj.ResultSet.myportfolios[0].p[0].n);
    //alert(obj.ResultSet.myportfolios[0].p[0].h[0].n);
    for (var pi = 0; pi < obj.ResultSet.myportfolios[0].p.length; pi++) {

        var curPortObj = obj.ResultSet.myportfolios[0].p[pi];
        var portsyms = '';
        var sName = curPortObj.n;

        sUrl = curPortObj.u.replace("http://finance.aol.com", "");
        sNameUrl = "<a href=\"" + sUrl + "\">" + sName + "</a>";


        curPercentCh = curPortObj.tglpc;
        var dir = getLvStockDirection(curPercentCh);
        if (curPercentCh.indexOf('-') > -1) {
            curPercentCh += "%";
        } else if (curPercentCh == "N/A") {
            curPercentCh = curPercentCh.replace("N/A", "&mdash;")
        } else if (curPercentCh > 0) {
            curPercentCh = "+" + curPercentCh + "%";
        } else {
            curPercentCh += "%";
        }

        for (var si = 0; si < curPortObj.h.length; si++) {
            var cursymObj = obj.ResultSet.myportfolios[0].p[pi].h[si];
            if (cursymObj != null) {
                portsym = "E:" + cursymObj.x + ":" + cursymObj.n + ",";
                portsyms = portsyms + portsym;
                portsym = "";
            }

        }


        sHtmlBuffer += "<tr id=\"portRow";
        sHtmlBuffer += pi + "\"><td class=\"summary\"><div id=\"openSesame";

        sHtmlBuffer += pi + "\" title=\"Show Portfolio\" class=\"openpf\"><a href=\"javascript:closePortDiv();elemNum=";
        sHtmlBuffer += pi + ";elemStks=trimAll(\'";
        sHtmlBuffer += portsyms + "\');seeSubPort(elemStks);\" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a></div></td>";
        sHtmlBuffer += "<td class=\"miniarrow" + dir.trim() + "\" id=\"nglin";
        sHtmlBuffer += pi + "\">&nbsp;&nbsp;&nbsp;&nbsp;</td>";
        sHtmlBuffer += "<td class=\"portn\"><div>";
        sHtmlBuffer += sNameUrl;
        sHtmlBuffer += "</div>";
        sHtmlBuffer += "<div id=\"viewUrl";
        sHtmlBuffer += pi + "\" style=\"display:none;\">";
        sHtmlBuffer += sUrl + "</div></td>";
        sHtmlBuffer += "<td class=\"percentCh ";
        sHtmlBuffer += dir + "\" id=\"tglpc";
        sHtmlBuffer += pi + "\">";
        sHtmlBuffer += curPercentCh + "</td>";
        sHtmlBuffer += "</tr>";
        sHtmlBuffer += "<tr id=\"portSubRow" + pi + "\"><td colspan=\"5\"><div id=\"mnc_myportfolio_sub";
        sHtmlBuffer += pi + "\"  class=\"mnc_watchlist_pf\"></div></td></tr>";

    }
    sHtmlBuffer += "</tbody></table>";
    document.getElementById("portcontain").innerHTML = sHtmlBuffer;
    showport();
    portfoliosloaded = 1;
}

function showPortfolio() {


    if (lvStatusInit == 0) {
        ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + symString + '&porttype=2&portmax=100&callback=rebuildLiveHash' + '&rf=http://www.dailyfinance.com');
        //previousElemNum = -1;seeSubPort(elemStks);
    }
    showport();
}

function showport() {
    document.getElementById("mnc_watchlist").style.display = "none";
    document.getElementById("mnc_recentquotes").style.display = "none";
    document.getElementById("mnc_portfolios").style.display = "block";
    document.getElementById("portNav").setAttribute("class", "activeTab");
    document.getElementById("watchNav").setAttribute("class", "");
    document.getElementById("recentNav").setAttribute("class", "");
    document.getElementById("portNav").setAttribute("className", "activeTab");
    document.getElementById("watchNav").setAttribute("className", "");
    document.getElementById("recentNav").setAttribute("className", "");

}
// ajax call for one symbol to validate get and pass on to errorcheck
function validateSymbol(ourSymbol) {
    ourSymbol = ourSymbol.replace(/\+/g, "%2b").toUpperCase();
    wlSyms = "";
    var head = document.getElementsByTagName("body")[0];
    script = document.createElement('script');
    script.id = 'uploadScript';
    script.type = 'text/javascript';
    badSymbol = 0;
    //if a colon is found,an international symbol is presant
    if (ourSymbol.search(":") != -1) {
        checkSym(ourSymbol);
        exchange = findExchange(ourSymbol);
        newSymbol = findSymbol(ourSymbol).toUpperCase();
        symExchangeCombo = exchange + ":" + newSymbol;
        symExchangeList = appendSymList(symExchangeCombo);
        script.src = 'http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + symExchangeCombo + '&callback=errorCheck' + '&rf=http://www.dailyfinance.com';
        head.appendChild(script);
    } else { //else, if a colon is not found, the exchange is USA
        exchange = "USA";
        symExchangeCombo = exchange + ":" + ourSymbol;
        script.src = 'http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + symExchangeCombo + '&callback=errorCheck' + '&rf=http://www.dailyfinance.com';
        head.appendChild(script);
    }
}


function appendSymList(symExchangeCombo) {
    oldList = symExchangeList;
    var newList;
    var newPairPos = oldList.search(symExchangeCombo);
    //if new combo is not already presant in list
    if (newPairPos == -1) {
        newList = trimAll(oldList + "," + symExchangeCombo);
    } else {
        newList = symExchangeList;
    }
    return newList;
}


//this function takes international symbols entered as vod:uk and converts it to ise:vod
function findExchange(ourSymbol) {
    var internationalArray = ourSymbol.split(":");
    if ((internationalArray[1] == "ca") || (internationalArray[1] == "CA")) {
        internationalArray[1] = internationalArray[0];
        internationalArray[0] = "tor";
        interSymbolFound = true;
    }
    if ((internationalArray[1] == "uk") || (internationalArray[1] == "UK")) {
        internationalArray[1] = internationalArray[0];
        internationalArray[0] = "ise";
        interSymbolFound = true;

    } else if ((internationalArray[1] == "ca") || (internationalArray[1] == "CA")) {
        internationalArray[1] = internationalArray[0];
        internationalArray[0] = "tor";
        interSymbolFound = true;

    }
    exchange = internationalArray[0].toUpperCase();
    return exchange;
}

function findSymbol(ourSymbol) {
    var internationalArray = ourSymbol.split(":");
    if ((internationalArray[1] == "ca") || (internationalArray[1] == "CA")) {
        internationalArray[1] = internationalArray[0];
        internationalArray[0] = "tor";
        ourSymbol = internationalArray[0] + ":" + internationalArray[1];
        interSymbolFound = true;
    }
    if ((internationalArray[1] == "uk") || (internationalArray[1] == "UK")) {
        internationalArray[1] = internationalArray[0];
        internationalArray[0] = "ise";
        ourSymbol = internationalArray[0] + ":" + internationalArray[1];
        interSymbolFound = true;

    } else if ((internationalArray[1] == "ca") || (internationalArray[1] == "CA")) {
        internationalArray[1] = internationalArray[0];
        internationalArray[0] = "tor";
        ourSymbol = internationalArray[0] + ":" + internationalArray[1];
        interSymbolFound = true;

    }
    newSymbol = internationalArray[1];
    return newSymbol;
}


// watchlist symbol is added
function errorCheck(obj) {
    var previousSym = wlSyms;
    try {
        flagVar = obj.ResultSet.symslist[0].pc.length;
        var sym = '';
        var sym_cntry = '';
        if (obj.ResultSet.symslist[0].x != 'undefined' && obj.ResultSet.symslist[0].s != 'undefined' && obj.ResultSet.symslist[0].s != '') {
            sym = 'E:' + obj.ResultSet.symslist[0].x + ':' + obj.ResultSet.symslist[0].s;
            var sym_cntry = 'C:' + obj.ResultSet.symslist[0].xcntrc + ':' + obj.ResultSet.symslist[0].s;

        }

        if (sym_cntry && AOL_QuotesWatchList.indexOf("," + sym_cntry + ",") == -1) {
            if (AOL_QuotesWatchList.split(",").length > watchlistMAX + 1 || maxReached == 1) {
                document.getElementById("symbolErr").innerHTML = "You can only have " + watchlistMAX + " symbols in your Watchlist.  Please remove some to add more.";
                maxReached = 1;
            } else if (sym_cntry.length > 0) {
                if (!AOL_QuotesWatchList) {
                    setCookieBase64("AOL_QuotesWatchList", "," + sym_cntry + ",", watchCookieLen);
                } else {
                    if (AOL_QuotesWatchList.indexOf(",") == 0) {
                        AOL_QuotesWatchList = sortString("," + sym_cntry + AOL_QuotesWatchList);
                    } else {
                        AOL_QuotesWatchList = sortString("," + sym_cntry + "," + AOL_QuotesWatchList);
                    }
                    // AOL_QuotesWatchList = sortString("," + sym + AOL_QuotesWatchList);
                    setCookieBase64("AOL_QuotesWatchList", AOL_QuotesWatchList, watchCookieLen);
                }
                if (lvStocks[sym] == undefined || lvStocks[sym].s == 'undefined' || lvStocks[sym].s == '') {
                    var lvStockDirection = '';
                    checkSym(sym);
                    lvName = obj.ResultSet.symslist[0].n;
                    lvCurPrice = obj.ResultSet.symslist[0].p;
                    lvCurVolume = obj.ResultSet.symslist[0].v;

                    if (obj.ResultSet.symslist[0].c != undefined) lvTodayDelta = obj.ResultSet.symslist[0].c;
                    else if (obj.ResultSet.symslist[0].c == undefined) lvTodayDelta = "";

                    lvPctDelta = obj.ResultSet.symslist[0].pc.replace('+', '');

                    if (obj.ResultSet.symslist[0].c.indexOf("+") != -1) lvStockDirection = "U";
                    else if (obj.ResultSet.symslist[0].c.indexOf("-") != -1) lvStockDirection = "D";

                    if (obj.ResultSet.symslist[0].asof != undefined) lvAsOf = obj.ResultSet.symslist[0].asof;
                    else lvAsOf = "";

                    lvUrl = obj.ResultSet.symslist[0].lu;
                    lvMktXch = obj.ResultSet.symslist[0].x;
                    lvStocks[sym] = {
                        "s": sym,
                        "n": lvName,
                        "p": lvCurPrice,
                        "c": lvTodayDelta,
                        "pc": lvPctDelta,
                        "ind": lvStockDirection,
                        "lu": lvUrl,
                        "x": lvMktXch,
                        "v": lvCurVolume,
                        "asof": lvAsOf
                    };
                }

                AOL_QuotesWatchList = getCookieBase64("AOL_QuotesWatchList");
                //getWLsyms();
                mnc_watchlist(1);
                document.getElementById('addwatchlist').value = "";
                userAdding = 0; //indicates user is no longer in the process of adding
            }
        } else {
            document.getElementById("symbolErr").innerHTML = "One or more symbols you entered is already present.";

        }
    } catch (err) {
        document.getElementById("symbolErr").innerHTML = symbolErr;
    }

}




// add new watchlist symbols
function addWatchList() {
    document.getElementById("symbolErr").innerHTML = "";
    if (errFlag == 1) {
        document.getElementById("symbolErr").innerHTML = defSymErr;
        errFlag = 0;
    }
    var additions = document.getElementById('addwatchlist').value.replace(/ /g, ',').toLowerCase();
    var ourArray = additions.split(",");
    for (i = 0; i < ourArray.length; i++) {
        if (ourArray[i].length > 0) validateSymbol(ourArray[i]);
    }
    if (goodSymbol == 0) {
        errFlag = 0;
        goodSymbol = 1;
        document.getElementById("symbolErr").innerHTML = defSymErr;
    }
}



function delFromList(sym) {
    // remove error shown if any
    document.getElementById("symbolErr").innerHTML = defSymErr;
    sym = sym.replace(/#/g, "\\");
    sym = sym.toUpperCase();
    goodSymbol = 1;
    errFlag = 0;
    if (AOL_QuotesWatchList.indexOf("," + sym + ",") > -1) {
        setCookieBase64("AOL_QuotesWatchList", AOL_QuotesWatchList.replace("," + sym + ",", ","), watchCookieLen);
    }
    AOL_QuotesWatchList = getCookieBase64("AOL_QuotesWatchList");
    // if comma is left delete cookie
    if (getCookieBase64("AOL_QuotesWatchList") == ",") delCookie("AOL_QuotesWatchList");

    getWLsyms();
    mnc_watchlist();
    document.getElementById('addwatchlist').value = addText;
    maxReached = 0;
    userAdding = 0;
}

// delete all symbols
function delAllList() {

    //remove error shown if any
    document.getElementById("symbolErr").innerHTML = defSymErr;
    errFlag = 0;
    maxReached = 0;
    userAdding = 0;
    maxReached = 0;
    goodSymbol = 1;
    delCookie("AOL_QuotesWatchList");
    AOL_QuotesWatchList = "";
    wlSyms = "";
    mnc_watchlist();
    document.getElementById("symbolErr").innerHTML = defSymErr;
    symString = "";
    exchange = "";

}

//var mostactivesURL = "http://portal.pf.aol.com/jsonmfus/ws?service=mostactives,&exchange=";
var mostactivesURL = "http://api.fool.com/quotes/aol/v1/mostactives?exchanges=";

function show_marketmovers(xchnge) {
    currentMostActX = xchnge;
    mostActiveStr = "";
    marketGainersStr = "";
    marketLosersStr = "";

    var show = true;
    $(".divs").each(function () {
        divname = $(this).attr("id").replace("drawer", "data");
        div = $(this).attr("id");
        $("#" + divname).hide();
        cnt = $("#" + div + " .mmdrawer").html().replace("icon-open", "icon-closed");
        $("#" + div + " .mmdrawer").html(cnt);
        if (show) {
            $("#" + divname).show();
            cnt = $("#" + div + " .mmdrawer").html().replace("icon-closed", "icon-open");
            $("#" + div + " .mmdrawer").html(cnt);
            show = false;
        }
    });

    ensureUploadScriptIsLoaded(mostactivesURL + xchnge + '&mosttype=cumulativevol,pricepctgain,pricepctloss&apikey=c3cd46afbf2ae8ceca2cf8753fe480e7&mostmax=' + symbolMax[0] + '&callback=mnc_marketmovers');
}

var mostActiveStr = "";
var marketGainersStr = "";
var marketLosersStr = "";

function mnc_marketmovers(obj) {
    //alert("mnc_marketmovers in js file");
    mvUpdateCnt = 0;
    marketmoversString = "";
    //most actives
    subSection++;
    mostActiveObj = obj.ResultSet.mostactives[0].mostactives;

    currenttabLables = tabLabels[marketmoveTB - 1];
    currenttabLinks = tabLinks[marketmoveTB - 1];
    currenttabTargets = tabTargets[marketmoveTB - 1];

    var tabDrawer1Lnk = currenttabLinks[0];
    var tabDrawer1Lbl = currenttabLables[0];
    var tabDrawer1Trgt = currenttabTargets[0];

    var tabDrawer2Lnk = currenttabLinks[1];
    var tabDrawer2Lbl = currenttabLables[1];
    var tabDrawer2Trgt = currenttabTargets[1];

    var tabDrawer3Lnk = currenttabLinks[2];
    var tabDrawer3Lbl = currenttabLables[2];
    var tabDrawer3Trgt = currenttabTargets[2];


    marketmoversString += '<table class="mmData" border="0" cellpadding="0" cellspacing="1"><tbody>';

    for (var i = 0; i < mostActiveObj.length; i++) {
        checkSym("E:" + mostActiveObj[i].x + ":" + mostActiveObj[i].s);
        mostActiveStr += "E:" + mostActiveObj[i].x + ":" + mostActiveObj[i].s + ",";

        var stockDirection = "";
        var percentIncr = mostActiveObj[i].pc;
        if (mostActiveObj[i].c.indexOf("+") != -1) {
            var stockDirection = "positive";
            if (percentIncr.indexOf("+") == -1) var percentIncr = "+" + percentIncr;
        } else if (mostActiveObj[i].c.indexOf("-") != -1) {
            var stockDirection = "negative";
            if (percentIncr.indexOf("-") == -1) var percentIncr = "-" + percentIncr;
        }

        if (i % 2 == 0) stockDirection = stockDirection + ' grey_bg';
        else stockDirection = stockDirection + ' white_bg';

        marketmoversString += '<tr class="' + stockDirection + '">';
        marketmoversString += '<td class="wl_Symbol"><div class="mm_symbol"><a title="' + mostActiveObj[i].n + ' Quote, News & Summary" href="' + mostActiveObj[i].lu + '">'

        if (mostActiveObj[i].s.length > 5) marketmoversString += mostActiveObj[i].s.substr(0, 4) + '...</a><br><div class="cname">' + mostActiveObj[i].n + '</div></div></td>';
        else marketmoversString += mostActiveObj[i].s + '</a><br><div class="cname">' + mostActiveObj[i].n + '</div></div></td>';
        marketmoversString += '<td class="last">' + mostActiveObj[i].p + '</td>';
        marketmoversString += '<td class="amountIncr">' + mostActiveObj[i].c + '<br/>' + percentIncr + '%</td>';
        marketmoversString += '<td class="mv_volume">' + mostActiveObj[i].v + '</td></tr>';

    }

    marketmoversString += '</tbody></table><div class="footerLink"><a href="' + tabDrawer1Lnk + '" target="' + tabDrawer1Trgt + '">' + tabDrawer1Lbl + '</a></div>';
    document.getElementById("data0").innerHTML = marketmoversString;

    //biggest gainers
    subSection++;
    mostActiveObj = obj.ResultSet.mostactives[1].mostactives;
    marketmoversString = "";
    marketmoversString += '<table class="mmData" border="0" cellpadding="0" cellspacing="1"><tbody>';

    for (var i = 0; i < mostActiveObj.length; i++) {
        checkSym("E:" + mostActiveObj[i].x + ":" + mostActiveObj[i].s);
        marketGainersStr += "E:" + mostActiveObj[i].x + ":" + mostActiveObj[i].s + ",";
        var stockDirection = "";
        var percentIncr = mostActiveObj[i].pc;
        if (mostActiveObj[i].c.indexOf("+") != -1) {
            var stockDirection = "positive";
            if (percentIncr.indexOf("+") == -1) var percentIncr = "+" + percentIncr;
        } else if (mostActiveObj[i].c.indexOf("-") != -1) {
            var stockDirection = "negative";
            if (percentIncr.indexOf("-") == -1) var percentIncr = "-" + percentIncr;
        }
        if (i % 2 == 0) stockDirection = stockDirection + ' grey_bg';
        else stockDirection = stockDirection + ' white_bg';

        marketmoversString += '<tr class="' + stockDirection + '">';
        marketmoversString += '<td class="wl_Symbol"><div class="mm_symbol"><a title="' + mostActiveObj[i].n + ' Quote, News & Summary" href="' + mostActiveObj[i].lu + '">'

        if (mostActiveObj[i].s.length > 5) marketmoversString += mostActiveObj[i].s.substr(0, 4) + '...</a><br><div class="cname">' + mostActiveObj[i].n + '</div></div></td>';
        else marketmoversString += mostActiveObj[i].s + '</a><br><div class="cname">' + mostActiveObj[i].n + '</div></div></td>';

        marketmoversString += '<td class="last">' + mostActiveObj[i].p + '</td>';
        marketmoversString += '<td class="amountIncr">' + mostActiveObj[i].c + '<br/>' + percentIncr + '%</td>';
        marketmoversString += '<td class="mv_volume">' + mostActiveObj[i].v + '</td></tr>';

    }
    marketmoversString += '</tbody></table><div class="footerLink"><a href="' + tabDrawer2Lnk + '" target="' + tabDrawer2Trgt + '">' + tabDrawer2Lbl + '</a></div>';
    document.getElementById("data1").innerHTML = marketmoversString;

    //biggest losers
    subSection++;
    mostActiveObj = obj.ResultSet.mostactives[2].mostactives;
    marketmoversString = "";
    marketmoversString += '<table class="mmData" border="0" cellpadding="0" cellspacing="1"><tbody>';

    for (var i = 0; i < mostActiveObj.length; i++) {
        checkSym("E:" + mostActiveObj[i].x + ":" + mostActiveObj[i].s);
        marketLosersStr += "E:" + mostActiveObj[i].x + ":" + mostActiveObj[i].s + ",";
        var stockDirection = "";
        var percentIncr = mostActiveObj[i].pc;
        if (mostActiveObj[i].c.indexOf("+") != -1) {
            var stockDirection = "positive";
            if (percentIncr.indexOf("+") == -1) var percentIncr = "+" + percentIncr;
        } else if (mostActiveObj[i].c.indexOf("-") != -1) {
            var stockDirection = "negative";
            if (percentIncr.indexOf("-") == -1) var percentIncr = "-" + percentIncr;
        }
        if (i % 2 == 0) stockDirection = stockDirection + ' grey_bg';
        else stockDirection = stockDirection + ' white_bg';

        marketmoversString += '<tr class="' + stockDirection + '">';
        marketmoversString += '<td class="wl_Symbol"><div class="mm_symbol"><a title="' + mostActiveObj[i].s + ': ' + mostActiveObj[i].n + ' Quote, News & Summary" href="' + mostActiveObj[i].lu + '">'

        if (mostActiveObj[i].s.length > 5) marketmoversString += mostActiveObj[i].s.substr(0, 4) + '...</a><br><div class="cname">' + mostActiveObj[i].n + '</div></div></td>';
        else marketmoversString += mostActiveObj[i].s + '</a><br><div class="cname">' + mostActiveObj[i].n + '</div></div></td>';

        marketmoversString += '<td class="last">' + mostActiveObj[i].p + '</td>';
        marketmoversString += '<td class="amountIncr">' + mostActiveObj[i].c + '<br/>' + percentIncr + '%</td>';
        marketmoversString += '<td class="mv_volume">' + mostActiveObj[i].v + '</td></tr>';

    }
    marketmoversString += '</tbody></table><div class="footerLink"><a href="' + tabDrawer3Lnk + '" target="' + tabDrawer3Trgt + '">' + tabDrawer3Lbl + '</a></div>';

    document.getElementById("data2").innerHTML = marketmoversString;

    //pass in tab as selected, resets all and sets active tab
    reset_tabs("mkMovertab", 3, marketmoveTB);
    subSection = 0;

    mvList = mostActiveStr + marketGainersStr + marketLosersStr;

    symString += mvList + ",";
}

function mvLive() {

    subSection = 0;
    var mostActiveStrArr = trimAll(mostActiveStr).split(",");
    var marketGainersStrArr = trimAll(marketGainersStr).split(",");
    var marketLosersStrArr = trimAll(marketLosersStr).split(",");
    var symTxtReplace = "E:" + currentMostActX + ":";

    currenttabLables = tabLabels[marketmoveTB - 1];
    currenttabLinks = tabLinks[marketmoveTB - 1];
    currenttabTargets = tabTargets[marketmoveTB - 1];

    var tabDrawer1Lnk = currenttabLinks[0];
    var tabDrawer1Lbl = currenttabLables[0];
    var tabDrawer1Trgt = currenttabTargets[0];

    var tabDrawer2Lnk = currenttabLinks[1];
    var tabDrawer2Lbl = currenttabLables[1];
    var tabDrawer2Trgt = currenttabTargets[1];

    var tabDrawer3Lnk = currenttabLinks[2];
    var tabDrawer3Lbl = currenttabLables[2];
    var tabDrawer3Trgt = currenttabTargets[2];

    marketmoversString = "";
    //most actives
    subSection++;
    marketmoversString += '<table class="mmData" border="0" cellpadding="0" cellspacing="1"><tbody>';

    for (var i = 0; i < mostActiveStrArr.length; i++) {
        if (lvStocks[mostActiveStrArr[i]].s == '') return false;
        var stockDirection = "";
        var percentIncr = lvStocks[mostActiveStrArr[i]].pc
        if (lvStocks[mostActiveStrArr[i]].c.indexOf("+") != -1) {
            var stockDirection = "positive";
            if (percentIncr.indexOf("+") == -1) var percentIncr = "+" + percentIncr;
        } else if (lvStocks[mostActiveStrArr[i]].c.indexOf("-") != -1) {
            var stockDirection = "negative";
            if (percentIncr.indexOf("-") == -1) var percentIncr = "-" + percentIncr;
        }

        if (i % 2 == 0) stockDirection = stockDirection + ' grey_bg';
        else stockDirection = stockDirection + ' white_bg';

        marketmoversString += '<tr class="' + stockDirection + '">';
        marketmoversString += '<td class="wl_Symbol"><div class="mm_symbol"><a title="' + lvStocks[mostActiveStrArr[i]].n + ' Quote, News & Summary" href="' + lvStocks[mostActiveStrArr[i]].lu + '">'
        currentMvSym = lvStocks[mostActiveStrArr[i]].s.replace(symTxtReplace, '');

        if (currentMvSym.length > 5) marketmoversString += currentMvSym.substr(0, 4) + '...</a><br><div class="cname">' + lvStocks[mostActiveStrArr[i]].n + '</div></div></td>';
        else marketmoversString += currentMvSym + '</a><br><div class="cname">' + lvStocks[mostActiveStrArr[i]].n + '</div></div></td>';

        marketmoversString += '<td class="last">' + lvStocks[mostActiveStrArr[i]].p + '</td>';
        marketmoversString += '<td class="amountIncr">' + lvStocks[mostActiveStrArr[i]].c + '<br/>' + percentIncr + '%</td>';
        marketmoversString += '<td class="mv_volume">' + lvStocks[mostActiveStrArr[i]].v + '</td></tr>';

    }
    marketmoversString += '</tbody></table><div class="footerLink"><a href="' + tabDrawer1Lnk + '" target="' + tabDrawer1Trgt + '">' + tabDrawer1Lbl + '</a></div>';
    document.getElementById("data0").innerHTML = marketmoversString;


    //biggest gainers
    subSection++;
    marketmoversString = "";
    marketmoversString += '<table class="mmData" border="0" cellpadding="0" cellspacing="1"><tbody>';


    for (var i = 0; i < marketGainersStrArr.length; i++) {
        if (lvStocks[marketGainersStrArr[i]].s == '') return false;
        var stockDirection = "";
        var percentIncr = lvStocks[marketGainersStrArr[i]].pc;
        if (lvStocks[marketGainersStrArr[i]].c.indexOf("+") != -1) {
            var stockDirection = "positive";
            if (percentIncr.indexOf("+") == -1) var percentIncr = "+" + percentIncr;
        } else if (lvStocks[marketGainersStrArr[i]].c.indexOf("-") != -1) {
            var stockDirection = "negative";
            if (percentIncr.indexOf("-") == -1) var percentIncr = "-" + percentIncr;
        }

        if (i % 2 == 0) stockDirection = stockDirection + ' grey_bg';
        else stockDirection = stockDirection + ' white_bg';

        marketmoversString += '<tr class="' + stockDirection + '">';
        marketmoversString += '<td class="wl_Symbol"><div class="mm_symbol"><a title="' + lvStocks[marketGainersStrArr[i]].n + ' Quote, News & Summary" href="' + lvStocks[marketGainersStrArr[i]].lu + '">'

        currentMvSym = lvStocks[marketGainersStrArr[i]].s.replace(symTxtReplace, '');
        if (currentMvSym.length > 5) marketmoversString += currentMvSym.substr(0, 4) + '...</a><br><div class="cname">' + lvStocks[marketGainersStrArr[i]].n + '</div></div></td>';
        else marketmoversString += currentMvSym + '</a><br><div class="cname">' + lvStocks[marketGainersStrArr[i]].n + '</div></div></td>';

        marketmoversString += '<td class="last">' + lvStocks[marketGainersStrArr[i]].p + '</td>';
        marketmoversString += '<td class="amountIncr">' + lvStocks[marketGainersStrArr[i]].c + '<br/>' + percentIncr + '%</td>';
        marketmoversString += '<td class="mv_volume">' + lvStocks[marketGainersStrArr[i]].v + '</td></tr>';

    }
    marketmoversString += '</tbody></table><div class="footerLink"><a href="' + tabDrawer2Lnk + '" target="' + tabDrawer2Trgt + '">' + tabDrawer2Lbl + '</a></div>';
    document.getElementById("data1").innerHTML = marketmoversString;

    //biggest losers
    subSection++;
    marketmoversString = "";
    marketmoversString += '<table class="mmData" border="0" cellpadding="0" cellspacing="1"><tbody>';

    for (var i = 0; i < marketLosersStrArr.length; i++) {
        if (lvStocks[marketLosersStrArr[i]].s == '') return false;
        var stockDirection = "";
        var percentIncr = lvStocks[marketLosersStrArr[i]].pc;
        if (lvStocks[marketLosersStrArr[i]].c.indexOf("+") != -1) {
            var stockDirection = "positive";
            if (percentIncr.indexOf("+") == -1) var percentIncr = "+" + percentIncr;
        } else if (lvStocks[marketLosersStrArr[i]].c.indexOf("-") != -1) {
            var stockDirection = "negative";
            if (percentIncr.indexOf("-") == -1) var percentIncr = "-" + percentIncr;
        }

        if (i % 2 == 0) stockDirection = stockDirection + ' grey_bg';
        else stockDirection = stockDirection + ' white_bg';

        marketmoversString += '<tr class="' + stockDirection + '">';
        marketmoversString += '<td class="wl_Symbol"><div class="mm_symbol"><a title="' + lvStocks[marketLosersStrArr[i]].n + ' Quote, News & Summary" href="' + lvStocks[marketLosersStrArr[i]].lu + '">'

        currentMvSym = lvStocks[marketLosersStrArr[i]].s.replace(symTxtReplace, '');
        if (currentMvSym.length > 5) marketmoversString += currentMvSym + '...</a><br><div class="cname">' + lvStocks[marketLosersStrArr[i]].n + '</div></div></td>';
        else marketmoversString += currentMvSym + '</a><br><div class="cname">' + lvStocks[marketLosersStrArr[i]].n + '</div></div></td>';

        marketmoversString += '<td class="last">' + lvStocks[marketLosersStrArr[i]].p + '</td>';
        marketmoversString += '<td class="amountIncr">' + lvStocks[marketLosersStrArr[i]].c + '<br/>' + percentIncr + '%</td>';
        marketmoversString += '<td class="mv_volume">' + lvStocks[marketLosersStrArr[i]].v + '</td></tr>';

    }
    marketmoversString += '</tbody></table><div class="footerLink"><a href="' + tabDrawer3Lnk + '" target="' + tabDrawer3Trgt + '">' + tabDrawer3Lbl + '</a></div>';

    document.getElementById("data2").innerHTML = marketmoversString;

    subSection = 0;
}


function reset_tabs(idString, num, setLoc) {
    for (i = 1; i < num + 1; i++) {
        document.getElementById(idString + i).setAttribute("class", "inActiveTab");
        document.getElementById(idString + i).setAttribute("className", "inActiveTab");
    }
    document.getElementById(idString + setLoc).setAttribute("class", "activeTab");
    document.getElementById(idString + setLoc).setAttribute("className", "activeTab");

}


// Market News
function buildArray(obj) {

    symobj = obj.ResultSet.symslist[0];
    mktsym = symobj.s;
    curPrice = symobj.p;
    todayDelta = symobj.c;
    pctDelta = symobj.pc.replace('+', '');


    if (symobj['in'] == '' || null == symobj['in'] || symobj['in'] == undefined) {
        if (symobj.c.indexOf("+") != -1) stockDirection = "U";
        else if (symobj.c.indexOf("-") != -1) stockDirection = "D";


    } else {
        stockDirection = symobj['in'];

    }
    thisUrl = symobj.lu;
    mktXch = symobj.x;


}

function buildArrayfutures(obj) {

    symobj = obj.ResultSet.futures[0];
    mktsym = symobj.s;
    curPrice = symobj.p;
    todayDelta = symobj.c;
    pctDelta = symobj.pc.replace('+', '');

    if (symobj['in'] == '' || null == symobj['in'] || symobj['in'] == undefined) {
        if (symobj.c.indexOf("+") != -1) stockDirection = "U";
        else if (symobj.c.indexOf("-") != -1) stockDirection = "D";


    } else {
        stockDirection = symobj['in'];

    }

    thisUrl = symobj.lu;
    mktXch = symobj.x;
}

function buildArrayStay(obj) {
    if (lvStatusInit == 0) {
        buildArray(obj);
        mnArrDisplaySymbolData(last);
    } else {

        mnLive(lvMNsym, lvMNtab);
        displaySymbolData(last);
    }
    select_tabs(first);
    paginationData = tabCount + " of " + arrMNstocks.length;
    document.getElementById("carouselPagination").innerHTML = paginationData;
    paintButtons();


} // end buildArrayStay
function mnArrDisplaySymbolData(last) {

    if (last - 3 < arrMNstocks.length) document.getElementById("carousel-tab-1").innerHTML = stockLabelsArr[last - 3] + '<div class="tab-data" id="lvMNtab1">' + curPrice + '<p class="' + stockDirection + '"><span class="amountIncr">' + todayDelta + '</span><span class="moneyarrow"> </span><span class="percentIncr">' + pctDelta + '%</span></p></div>';
    else document.getElementById("carousel-tab-1").innerHTML = "";

    if (last - 2 < arrMNstocks.length) document.getElementById("carousel-tab-2").innerHTML = stockLabelsArr[last - 2] + '<div class="tab-data" id="lvMNtab2">' + curPrice + '<p class="' + stockDirection + '"><span class="amountIncr">' + todayDelta + '</span><span class="moneyarrow"> </span><span class="percentIncr">' + pctDelta + '%</span></p></div>';
    else document.getElementById("carousel-tab-2").innerHTML = "";
    if (last - 1 < arrMNstocks.length) document.getElementById("carousel-tab-3").innerHTML = stockLabelsArr[last - 1] + '<div class="tab-data" id="lvMNtab3">' + +curPrice + '<p class="' + stockDirection + '"><span class="amountIncr">' + todayDelta + '</span><span class="moneyarrow"> </span><span class="percentIncr">' + pctDelta + '%</span></p></div>';
    else document.getElementById("carousel-tab-3").innerHTML = "";
    if (last < arrMNstocks.length) document.getElementById("carousel-tab-4").innerHTML = stockLabelsArr[last] + '<div class="tab-data" id="lvMNtab" id="lvMNtab4">' + +curPrice + '<p class="' + stockDirection + '"><span class="amountIncr">' + todayDelta + '</span><span class="moneyarrow"> </span><span class="percentIncr">' + pctDelta + '%</span></p></div>';
    else document.getElementById("carousel-tab-4").innerHTML = "";

}


function buildArrayNext(obj) {
    if (tabCount <= arrMNstocks.length) {
        paginationData = tabCount + " of " + arrMNstocks.length;
        document.getElementById("carouselPagination").innerHTML = paginationData;
        mnLive(lvMNsym, lvMNtab);
        displaySymbolData(last);
        select_tabs(first);
        paintButtons();
    }

} // end buildArrayNext
function mnArrBuildArrayNext(obj) {

    buildArray(obj);

    if (tabCount <= arrMNstocks.length) {

        paginationData = tabCount + " of " + arrMNstocks.length;
        document.getElementById("carouselPagination").innerHTML = paginationData;
        mnArrDisplaySymbolData(last);
        select_tabs(first);

        paintButtons();
    }

} // end mnArrBuildArrayNext
function buildArrayPrevious(obj) {
    if (tabCount >= 1) {
        paginationData = tabCount + " of " + arrMNstocks.length;
        document.getElementById("carouselPagination").innerHTML = paginationData;
        mnLive(lvMNsym, lvMNtab);
        displaySymbolData(last);
        select_tabs(first);
        paintButtons();
    }

} // end buildArrayPrevious
function mnArrBuildArrayPrevious(obj) {
    buildArray(obj);
    if (tabCount >= 1) {
        paginationData = tabCount + " of " + arrMNstocks.length;
        document.getElementById("carouselPagination").innerHTML = paginationData;
        mnArrDisplaySymbolData(last);
        select_tabs(first);
        paintButtons();
    }

} // end mnArrBuildArrayPrevious
function mnBuildArrayStay(obj) {

    buildArray(obj);

    mnArrDisplaySymbolData(last);
    select_tabs(first);


    paginationData = tabCount + " of " + arrMNstocks.length;
    document.getElementById("carouselPagination").innerHTML = paginationData;
    paintButtons();

} // end mnBuildArrayNext
function paintButtons() {
    if (!(tabCount < arrMNstocks.length)) {
        document.getElementById("next-button").setAttribute("class", "carousel-Btn-disabled");
        document.getElementById("next-button").setAttribute("className", "carousel-Btn-disabled");
    } else {
        document.getElementById("next-button").setAttribute("class", "carousel-Btn");
        document.getElementById("next-button").setAttribute("className", "carousel-Btn");
    }

    if (tabCount == 1) {
        document.getElementById("previous-button").setAttribute("class", "carousel-Btn-disabled");
        document.getElementById("previous-button").setAttribute("className", "carousel-Btn-disabled");
    } else {
        document.getElementById("previous-button").setAttribute("class", "carousel-Btn");
        document.getElementById("previous-button").setAttribute("className", "carousel-Btn");
    }

    var s_265 = s_gi(clickTrack);
    s_265.linkTrackVars = 'prop23';
    s_265.linkTrackEvents = 'None';
    s_265.prop23 = s_265.pageName + ' Market News Symbol: ' + arrMNstocks[tabCount - 1];
    s_265.tl(true, 'o', s_265.pageName + ' Market News Tab: ' + tabCount);
}

var last = 3;
var first = 1;
var arrMNstocks = [];
var myDiv, myDiv2;
var selTabInit;
var tabCount = 1;
var paginationData;
var currentDirection = "";
var clickTrack = "aolpf";


function mnArrBuildArrayNextFutBase(obj) {
    buildArrayfutures(obj);

    if (tabCount <= arrMNstocks.length) {
        paginationData = tabCount + " of " + arrMNstocks.length;
        document.getElementById("carouselPagination").innerHTML = paginationData;
        mnArrDisplaySymbolData(last);
        select_tabs(first);
        paintButtons();
    }

}

function mnArrBuildArrayPreviousFutBase(obj) {
    buildArrayfutures(obj);
    if (tabCount >= 1) {
        paginationData = tabCount + " of " + arrMNstocks.length;
        document.getElementById("carouselPagination").innerHTML = paginationData;

        mnArrDisplaySymbolData(last);
        select_tabs(first);

        mnArrDisplaySymbolData(last);


        paintButtons();
    }

}

function mnBuildArrayStayFutBase(obj) {
    buildArrayfutures(obj);

    mnArrDisplaySymbolData(last);
    select_tabs(first);


    paginationData = tabCount + " of " + arrMNstocks.length;
    document.getElementById("carouselPagination").innerHTML = paginationData;
    paintButtons();

}

function callTab(direction) {




    if (direction == "next" && tabCount < arrMNstocks.length) {
        ++tabCount;
        if (first % 4 == 0) {
            first = 1;

            last = tabCount + 2;
        } else {
            first++;

        }
    } else if (direction == "previous" && tabCount > 1) {

        --tabCount;
        if (first > 1) {
            first--;
        } else {
            last = tabCount - 1;
            first = 4;
        }


    } else {

    }

    lvMNsym = set_lvMNsym(first);
    lvMNtab = set_lvMNtab(first);

    templvMNsym = lvMNsym;

    if (templvMNsym.indexOf("/") != -1 && templvMNsym.indexOf("\\") == -1) { //future base symbol
        if (direction == "next") ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=futures&futurestype=0&futuresmax=1&symbols=' + templvMNsym + '&callback=mnArrBuildArrayNextFutBase' + '&rf=http://www.dailyfinance.com');
        else if (direction == "previous") ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=futures&futurestype=0&futuresmax=1&symbols=' + templvMNsym + '&callback=mnArrBuildArrayPreviousFutBase' + '&rf=http://www.dailyfinance.com');
        else ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=futures&futurestype=0&futuresmax=1&symbols=' + templvMNsym + '&callback=mnBuildArrayStayFutBase' + '&rf=http://www.dailyfinance.com');

    } else { //normal symbol
        if (lvReady > 0 && lvStatusInit == 1) {
            currentDirection = direction;
            if (direction == "next") buildArrayNext();
            else if (direction == "previous") buildArrayPrevious();
            else buildArrayStay();
        } else if (lvStatusInit == 0 && pageloaded == 1) {
            currentDirection = direction;
            if (direction == "next") ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + templvMNsym + '&callback=mnArrBuildArrayNext' + '&rf=http://www.dailyfinance.com');
            else if (direction == "previous") ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + templvMNsym + '&callback=mnArrBuildArrayPrevious' + '&rf=http://www.dailyfinance.com');
            else ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + templvMNsym + '&callback=mnBuildArrayStay' + '&rf=http://www.dailyfinance.com');

        }
    }

}


function displaySymbolData(last) {

    if (lvMNsym == '' || null == lvMNsym || lvMNsym == undefined) {
        lvMNsym = arrMNstocks[last - 3][0];
    }
    if (lvMNtab == '' || null == lvMNtab || lvMNtab == undefined) {
        lvMNtab = "lvMNtab1";
    }

    if (lvReady == 0) {
        if (last - 3 < arrMNstocks.length) document.getElementById("carousel-tab-1").innerHTML = stockLabelsArr[last - 3] + '<div class="tab-data" id="lvMNtab1"></div>';
        else document.getElementById("carousel-tab-1").innerHTML = "";
    } else {

        if (last - 3 < arrMNstocks.length) document.getElementById("carousel-tab-1").innerHTML = stockLabelsArr[last - 3] + '<div class="tab-data" id="lvMNtab1">' + lvStocks[arrMNstocks[last - 3]].p + '<p class="' + lvStocks[arrMNstocks[last - 3]].ind + '"><span class="amountIncr">' + lvStocks[arrMNstocks[last - 3]].c + '</span><span class="moneyarrow"> </span><span class="percentIncr">' + lvStocks[arrMNstocks[last - 3]].pc + '%</span></p></div>';
        else document.getElementById("carousel-tab-1").innerHTML = "";

    }

    if (last - 2 < arrMNstocks.length) document.getElementById("carousel-tab-2").innerHTML = stockLabelsArr[last - 2] + '<div class="tab-data" id="lvMNtab2">' + lvStocks[arrMNstocks[last - 2]].p + '<p class="' + lvStocks[arrMNstocks[last - 2]].ind + '"><span class="amountIncr">' + lvStocks[arrMNstocks[last - 2]].c + '</span><span class="moneyarrow"> </span><span class="percentIncr">' + lvStocks[arrMNstocks[last - 2]].pc + '%</span></p></div>';
    else document.getElementById("carousel-tab-2").innerHTML = "";
    if (last - 1 < arrMNstocks.length) document.getElementById("carousel-tab-3").innerHTML = stockLabelsArr[last - 1] + '<div class="tab-data" id="lvMNtab3">' + lvStocks[arrMNstocks[last - 1]].p + '<p class="' + lvStocks[arrMNstocks[last - 1]].ind + '"><span class="amountIncr">' + lvStocks[arrMNstocks[last - 1]].c + '</span><span class="moneyarrow"> </span><span class="percentIncr">' + lvStocks[arrMNstocks[last - 1]].pc + '%</span></p></div>';
    else document.getElementById("carousel-tab-3").innerHTML = "";
    if (last < arrMNstocks.length) document.getElementById("carousel-tab-4").innerHTML = stockLabelsArr[last] + '<div class="tab-data" id="lvMNtab4">' + lvStocks[arrMNstocks[last]].p + '<p class="' + lvStocks[arrMNstocks[last]].ind + '"><span class="amountIncr">' + lvStocks[arrMNstocks[last]].c + '</span><span class="moneyarrow"> </span><span class="percentIncr">' + lvStocks[arrMNstocks[last]].pc + '%</span></p></div>';
    else document.getElementById("carousel-tab-4").innerHTML = "";

}

function createChartLinks() {
    var currentIndex = tabCount - 1;
    var chartLinks;
    chartLinks = '<ul class="chart-date-selector" id="chartLinks"><li><span class="chart-view">' + chartDay + '</span></li>';

    var chartTimeStr = chartStringsArr[currentIndex];
    chartTimeStr = trimAll(chartTimeStr);

    /* convert the string to an array */
    chartTimeStrArray = chartTimeStr.split(",");
    //for non bonds
    if (chartTimeStrArray[0] != "" && arrMNstocks[currentIndex].charAt(0) != "(") {
        for (i = 0; i < chartTimeStrArray.length; i++) {
            timeLabelArray = chartTimeStrArray[i].split(":");
            timeStr = timeLabelArray[0];
            labelStr = timeLabelArray[1];
            var chartsbaseurltemp;
            if (mktXch == undefined) { //if  not futures or when live updates off for normal stock
                chartsbaseurltemp = lvStocks[arrMNstocks[currentIndex]].lu;

            } else {

                chartsbaseurltemp = thisUrl;
            }
            var chartsbaseurl = chartsbaseurltemp.replace(/quotes/, "charts");
            chartLinks += '<li><a href="' + chartsbaseurl + '/classic-charts?dr=' + timeLabelArray[0] + '" class="chart-view" onclick ="s_objectID=s_265.pageName + \' Market News Chart: ' + timeLabelArray[1] + '\';">' + timeLabelArray[1] + '</a></li>';
        }
    }
    nowtime = new Date(); //so that chart image is not cached
    chartLinks += '</ul><a href="' + chartsbaseurl + '/classic-charts?dr=999" class="chart-view" onclick ="s_objectID=s_265.pageName + \' Market News Chart: View More Charts\';">View More Charts</a>';



    if (mktXch == undefined) {

        chartLinks += '<a href="' + chartsbaseurl + '/classic-charts?dr=999" onclick ="s_objectID=s_265.pageName + \' Market News Chart: Main Chart Clicked\';"><img src="http://quote-web.aol.com/?s=' + arrMNstocks[currentIndex].replace(/.*[:]/ig, "") + '&e=' + lvStocks[arrMNstocks[currentIndex]].x + '&dur=999&type=mountain&hgl=1&vgl=1&vol=0&splits=0&div=0&w=432&h=242&scheme=platinum&gran=d&timeStamp=' + nowtime.getTime() + '" width="432" height="242" alt="Market News" border="0" /></a>';
    } else {

        chartLinks += '<a href="' + chartsbaseurl + '/classic-charts?dr=999" onclick ="s_objectID=s_265.pageName + \' Market News Chart: Main Chart Clicked\';"><img src="http://quote-web.aol.com/?s=' + mktsym + '&e=' + mktXch + '&dur=999&type=mountain&hgl=1&vgl=1&vol=0&splits=0&div=0&w=432&h=242&scheme=platinum&gran=d&timeStamp=' + nowtime.getTime() + '" width="432" height="242" alt="Market News" border="0" /></a>';
    }
    document.getElementById("selected-tab-area").innerHTML = chartLinks;
}

function select_tabs(tabnum) {
    reset_carousel_tabs("carousel-tab-", 4, tabnum);
}

function setPagination(tabCount) {
    if (tabCount < arrMNstocks.length) {
        paginationData = ++tabCount + " of " + arrMNstocks.length;
        document.getElementById("carouselPagination").innerHTML = paginationData;
    }
}

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + reset_carousel_tabs function                                  +
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//pass in tab as selected, resets all and sets active tab
function reset_carousel_tabs(idString, num, setLoc) {
    for (i = 1; i < num + 1; i++) {
        document.getElementById(idString + i).setAttribute("class", "inActiveTab");
        document.getElementById(idString + i).setAttribute("className", "inActiveTab");
    }

    document.getElementById(idString + setLoc).setAttribute("class", "activeTab");
    document.getElementById(idString + setLoc).setAttribute("className", "activeTab");
    createChartLinks();
} // end reset_tabs function


// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + function sortString                                      +
// + A generic function to sort comma delimeted strings       +
// + through conversion to array and then back to string      +
// + after sorting.                                           +
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function sortString(string) {

    string = trimAll(string);

    var strSortString;
    var arrSortStringArray;

    /* convert the string to an array */
    arrSortStringArray = string.split(",");

    /* sort the array */
    arrSortStringArray.sort();

    /* convert the sorted array back into a string */
    strSortString = arrSortStringArray.join(",");
    strSortString = "," + strSortString + ",";

    /* return the string so we can use it. */
    return strSortString;

}

/* function from jslib used by symbol lookup */
prntPackPop = null;

function prntPack(args, width, height) {
    if (prntPackPop && (!prntPackPop.closed)) {
        prntPackPop.close();
    }
    prntPackPop = window.open(args, "prntPackRef", "width=" + width + ",height=" + height + ",toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no");
    prntPackPop.focus();
} /* end: func from jslib */


/*  this deletes the cookie when called */

function Delete_Cookie(name, path, domain) {
    if (getCookie(name)) document.cookie = name + "=" + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function delRecentQuotes() {

    Delete_Cookie("AOL_QUOTE_HISTORY_LIST", "/", ".aol.com");
    strRecentQuotes = "";
    rqSyms = "";
    //ensureUploadScriptIsLoaded(recentqURL + rqSyms + '&callback=mnc_recentquotes');
    rqLive(rqSyms);
}

// +++++++++++++++ start code related to Recent Quotes tab ++++++++++++++++
function mnc_recentquotes(g) {
    // Max number of Recent Quote symbols.
    var rqMax = 20;
    var moduleString = '';
    if (lvReady == 0 || lvStatusInit != 1) {
        ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&exchange=USA&symbols=' + rqSyms2 + '&callback=defRecentQuotes' + '&rf=http://www.dailyfinance.com');
    } else {
        //    rqLive(rqSyms,g);
        strRecentQuotes = rqSyms2;
        ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&exchange=USA&symbols=' + rqSyms2 + '&callback=defRecentQuotes' + '&rf=http://www.dailyfinance.com');

        document.getElementById("mnc_portfolios").style.display = "none";
        document.getElementById("mnc_watchlist").style.display = "none";
        document.getElementById("mnc_recentquotes").style.display = "block";
        document.getElementById("recentNav").setAttribute("class", "activeTab");
        document.getElementById("watchNav").setAttribute("class", "");
        document.getElementById("portNav").setAttribute("class", "");
        document.getElementById("recentNav").setAttribute("className", "activeTab");
        document.getElementById("watchNav").setAttribute("className", "");
        document.getElementById("portNav").setAttribute("className", "");

    }

}
// +++++++++++++++ end code related to Recent Quotes tab ++++++++++++++++
// this function trims leading and trailing commas
function trimAll(sString) {

    while (sString.substring(0, 1) == ',') {
        sString = sString.substring(1, sString.length);
    }

    while (sString.substring(sString.length - 1, sString.length) == ',') {
        sString = sString.substring(0, sString.length - 1);
    }

    return sString;
}


function checkSym(arg0) {
    if (lvStocks[arg0] == undefined && arg0.indexOf("C:") != 0) {
        lvStocks[arg0] = {
            "s": '',
            "n": '',
            "p": '',
            "c": '',
            "pc": '',
            "ind": '',
            "lu": '',
            "x": '',
            "v": '',
            "asof": ''
        };
        return false;
    }
    return true;
}

function buildString(arg0) {
    arg0 = arg0.replace(/#/g, "\\");
    var string = trimAll(arg0);
    var stringArray = string.split(",");
    var newString = '';

    for (var i = 0; i < stringArray.length; i++) {
        if (stringArray[i].indexOf("C:") != 0) newString += stringArray[i] + ",";
    }
    return trimAll(newString);
}

// *** getWLsyms ***
function getWLsyms() {

    //Call this function for live update display of new watchlist symbols
    if (null == getCookieBase64("AOL_QuotesWatchList")) {
        wlSyms = "";
    } else {
        wlSyms = getCookieBase64("AOL_QuotesWatchList");
    }
    wlSyms = trimAll(wlSyms);
    // split string into an array for building the 'hash'
    var aWLSyms = wlSyms.split(",");
    // Fill the object keys with stock symbols from the array
    for (var i = 0; i < aWLSyms.length; i++) {
        checkSym(aWLSyms[i].toUpperCase());
    }
    return wlSyms;
}

/*  created following global var for returning time left until close/open of markets */
var timeLeft;

var subSection = 0;
var marketmoveTB = 1;
var county = 0;
var mkCounty = 0;


// ****************************
// * rebuildLiveHash function *
// ****************************
function rebuildLiveHash(obj) {
    //alert("rebuild live hash");
    county++;
    symString = "";
    lvHashRefresh(obj);
    //loops through all markets modules and gets the symbols
    //from open tab and adds them to symString which
    // is used in the json call
    if (lvMarketsArray != null && lvMarketsArray.length > 0) {
        for (var market = 0; market < lvMarketsArray.length; market++) {
            var lvMarketsTempID = "#" + lvMarketsArray[market].shortn + "lvMarkets";
            var whichtabhref = jQuery(lvMarketsTempID + " .opened a").attr("href");
            if (whichtabhref == '#us') {
                symString += lvMarketsArray[market].mktSymsT0 + ",";

            } else if (whichtabhref == '#globl') {
                symString += lvMarketsArray[market].mktSymsT1 + ",";
            } else if (whichtabhref == '#currs') {
                symString += lvMarketsArray[market].mktSymsT2 + ",";
            } else if (whichtabhref == '#futrs') {
                symString += lvMarketsArray[market].mktSymsT3 + ",";
            }
        }
    }

    // update all flash items
    if (flashSyms.length > 0) {
        updateDataInSwfs();
        symString += flashSyms + ",";
    }

    //if(document.getElementById("lvMarkets")){
    //  if(county>0)lvMkts(mktSyms);
    //  symString += mktSyms + ",";
    //}
    if (document.getElementById("lvHotStocks")) {
        if (county > 0) hsLive(hsSyms);
        symString += hsSyms + ",";
    }
    //build the recent quotes table
    if (document.getElementById("mnc_recentquotes")) {
        if (county > 0) rqLive(rqSyms);
        symString += rqSyms + ",";
    }

    //build the market movers table
    if (document.getElementById("lvmarketmovers") && mvList.indexOf("E:" + currentMostActX + ":") != -1) {
        var refreshMktMv = mvLive();
        symString += mvList + ",";
    }
    //build the watch list table
/* if(document.getElementById("marketDataWL") && wlSyms.length > 0) {
	                        getWLsyms();
	                        if(county>0)wlLive(wlSyms);
	                        symString += wlSyms + ",";
	                    }bren qp relector migration
                             */

    //build market news tab data
    if (document.getElementById("market-news-mod")) {
        mkCounty++;
        if (county > 0) mnLive(lvMNsym, lvMNtab);

        //update the chart after 60 seconds
        if ((mkCounty * intervalNum) > 60000) {
            createChartLinks();
            mkCounty = 1;
        }
        symString += mnSyms;
    }

    //if original hot stocks module look
    if (document.getElementById("lvHotStocksAlt")) {
        if (county > 0) hsLiveAlt(hsSyms);
        symString += hsSyms + ',';
    }
    //market status
    marketTime(obj);

    if (elemStks != undefined && elemStks.length > 0) {
        symString += elemStks + ',';
    }

    //if a portfolio is currently showing
    if (document.getElementById("mnc_myportfolio_sub_stocks") && elemNum > 0 && county > 0) buildSubPortfolio();

}


//build a single portfolio
function buildSubPortfolio() {
    try {
        refreshPortDiv = "mnc_myportfolio_sub" + elemNum;
        var origContent = document.getElementById(refreshPortDiv).innerHTML;
        var subStrIndex = origContent.indexOf("</TABLE>") + 8;
        if (subStrIndex < 8) subStrIndex = origContent.indexOf("</table>") + 8;
        var beginStr = "<div class=\"seesub\"><p class=\"seesubhead\">Portfolio Holdings</p></div><div id=\"mnc_myportfolio_sub_stocks\">";
        var endStr = origContent.substring(subStrIndex);
        var stockString = '';
        var lnk = "";

        if (document.getElementById("mnc_myportfolio_sub_stocks") && elemNum > 0) {

            var portElemStocks = "";
            //for inside update debug
            //portElemStocks = county;
            var currentPortStocks = elemStks.split(",");
            portElemStocks += '<table class="marketData" border="0" cellpadding="0" cellspacing="0">';
            portElemStocks += '<thead><tr class="header"><th class="th_symbol">Symbol</th><th class="th_last">Last</th><th class="th_change" colspan="3">Change</th><th>&nbsp;</th><th>&nbsp;</th></tr></thead><tbody>'

            for (var i = 0; i < currentPortStocks.length; i++) {
                if (lvStocks[currentPortStocks[i]].s.length > 0) {
                    var stockDirection = "";
                    var modifiedSymIndex = lvStocks[currentPortStocks[i]].s.lastIndexOf(":") + 1;
                    if (lvStocks[currentPortStocks[i]].c.indexOf("+") != -1) var stockDirection = "positive";
                    else if (lvStocks[currentPortStocks[i]].c.indexOf("-") != -1) var stockDirection = "negative";
                    lnk = lvStocks[currentPortStocks[i]].lu.replace("http://finance.aol.com", "");
                    stockString = '';
                    stockString = "<tr id=\"MPServerList" + i + "\" ";
                    stockString += 'class="' + stockDirection + '"><td class="wl_Symbol"><a  title="' + lvStocks[currentPortStocks[i]].n + '" href="' + lnk + '">' + lvStocks[currentPortStocks[i]].s.substring(modifiedSymIndex) + '</a></td>';
                    stockString += '<td class="last">' + lvStocks[currentPortStocks[i]].p + '</td>';
                    stockString += '<td  class="amountIncr">' + lvStocks[currentPortStocks[i]].c + '</td>';
                    stockString += '<td><div class="moneyarrow">&nbsp;</div></td>';

                    if (lvStocks[currentPortStocks[i]].pc.indexOf('N/A') < 0) stockString += '<td class="percentIncr">' + lvStocks[currentPortStocks[i]].pc + '%</td>';
                    else stockString += '<td class="percentIncr">' + lvStocks[currentPortStocks[i]].pc + '</td>';

                    stockString += '<td><div class="wl_chart" title="See Chart for ' + lvStocks[currentPortStocks[i]].s + '"><a href="' + lnk.replace("/quotes/", "/charts/") + '">&nbsp;&nbsp;&nbsp;&nbsp;</a><div></td>';
                    stockString += '<td><div class="wl_headlines" title="See Latest Headlines for ' + lvStocks[currentPortStocks[i]].s + '"><a href="' + lnk.replace("/quotes/", "/headlines/") + '">&nbsp;&nbsp;&nbsp;&nbsp;</a></div></td></tr>';


                    if ((lvStocks[currentPortStocks[i]].x.indexOf("NYM") == -1) || (lvStocks[currentPortStocks[i]].x.indexOf("CMX") == -1)) {
                        portElemStocks += stockString;
                    } else {
                        portElemStocks += "<tr id=\"MPServerList" + i + "\" " + "class=\"" + stockDirection + "\">" + document.getElementById("MPServerList" + i).innerHTML + "</tr>";
                    }

                }

            }
            portElemStocks += '</tbody></table></div>';

            document.getElementById(refreshPortDiv).innerHTML = beginStr + portElemStocks + endStr;;
        }
    } catch (err) {}
}



function rqLive(syms, irr) {

    // Max number of Recent Quote symbols. *
    var rqMax = 20;
    syms = trimAll(syms);
    var lvRQSyms = syms.split(",");
    var moduleString = '';
    var stockString = '';
    var curSym1 = "";
    var curSym2 = "";
    try {
        if (lvRQSyms.length == 0 || null == lvRQSyms || rqSyms == '') {
            // if the backend string is empty, display a default message.
            moduleString += '<div id="trmost"><div id="trmosti"><b>Track Your Most Recent Quotes Here!</b><br />Enter a symbol at the top of the page in the search box or look up a symbol.</div></div><br />'

        } else {
            moduleString += '<table class="marketData" border="0" cellpadding="0" cellspacing="0">';
            moduleString += '<thead><tr class="header"><th class="th_symbol">Symbol</th><th class="th_last">Last</th><th class="th_change" colspan="3">Change</th><th>&nbsp;</th><th>&nbsp;</th></tr></thead><tbody>'

            for (var i = 0; i < rqMax && i < lvRQSyms.length; i++) {
                var stockDirection = '';
                var stockString = '';
                if (typeof lvStocks != 'undefined' && typeof lvStocks[lvRQSyms[i]] != 'undefined') {
                    var rqName = lvStocks[lvRQSyms[i]].n;
                    var rqUrl = lvStocks[lvRQSyms[i]].lu;
                    if (typeof lvStocks[lvRQSyms[i]].y == 'undefined') {
                        rqValue = lvStocks[lvRQSyms[i]].p;
                        if (typeof lvStocks[lvRQSyms[i]].c == 'undefined') lvStocks[lvRQSyms[i]].c = '0.00';
                        var rqChange = lvStocks[lvRQSyms[i]].c;
                        if (typeof lvStocks[lvRQSyms[i]].pc == 'undefined') lvStocks[lvRQSyms[i]].pc = 'N/A';
                        var rqPChange = lvStocks[lvRQSyms[i]].pc;
                        if (lvStocks[lvRQSyms[i]].c.indexOf("+") != -1) stockDirection = "positive";
                        if (lvStocks[lvRQSyms[i]].c.indexOf("-") != -1) stockDirection = "negative";
                    } else {
                        rqValue = lvStocks[lvRQSyms[i]].y + "%";
                        var rqChange = lvStocks[lvRQSyms[i]].yc;
                        var rqPChange = lvStocks[lvRQSyms[i]].ypc;
                        var rqDir = lvStocks[lvRQSyms[i]].yin;
                        if (rqDir.indexOf("D") != -1) {
                            stockDirection = "negative";
                        }
                        if (rqDir.indexOf("U") != -1) {
                            stockDirection = "positive";
                        }
                    }

                    stockString = "<tbody><tr id=\"RQServerList" + i + "\" ";
                    stockString += 'class="' + stockDirection + '"><td class="wl_Symbol"><a title="' + lvStocks[lvRQSyms[i]].n + '" href="' + lvStocks[lvRQSyms[i]].lu + '">';

                    //alert("xcntrc: "+lvRQSyms[i].x);
                    if (lvRQSyms[i].indexOf("ISE") != -1) {
                        curSym1 = lvRQSyms[i].replace("E:", "");
                        curSym2 = curSym1.split(":");
                        curSym2[0] = "UK";
                        stockString += curSym2[1] + ":" + curSym2[0];

                        curSym1 = "";
                        curSym2 = "";
                    }
                    if (lvRQSyms[i].indexOf("VAN") != -1) {
                        curSym1 = lvRQSyms[i].replace("E:", "");
                        curSym2 = curSym1.split(":");
                        curSym2[0] = "CA";
                        stockString += curSym2[1] + ":" + curSym2[0];
                        curSym1 = "";
                        curSym2 = "";
                    }
                    if (lvRQSyms[i].indexOf("TOR") != -1) {
                        curSym1 = lvRQSyms[i].replace("E:", "");
                        curSym2 = curSym1.split(":");
                        curSym2[0] = "CA";
                        stockString += curSym2[1] + ":" + curSym2[0];
                        curSym1 = "";
                        curSym2 = "";
                    } else {
                        if (lvRQSyms[i].indexOf("E:ISE") != -1) {
                            //alert("nothing"+lvRQSyms[i]);
                        } else if (lvRQSyms[i].indexOf("E:TOR") != -1) {
                            // alert("nothing"+lvRQSyms[i]);
                        } else if (lvRQSyms[i].indexOf("E:VAN") != -1) {
                            //alert("nothing"+lvRQSyms[i]);
                        } else {
                            stockString += lvRQSyms[i].replace(/.*[:]/ig, "").substring(0, 9);
                        }
                    }
                    if (lvRQSyms[i].replace(/.*[:]/ig, "").length > 9) moduleString += '...';

                    stockString += '</a></td>';
                    stockString += '<td class="last">' + rqValue + '</td>';
                    stockString += '<td  class="amountIncr">' + rqChange.replace('+', '&nbsp;&nbsp;') + '</td>';
                    stockString += '<td><div class="moneyarrow">&nbsp;</div></td>';

                    if (rqPChange.indexOf('N/A') < 0) stockString += '<td class="percentIncr">' + rqPChange.replace('+', '').replace('-', '') + '%</td>';
                    else stockString += '<td class="percentIncr">' + rqPChange + '</td>';

                    stockString += '<td title="See Chart for ' + lvRQSyms[i] + '"><div class="wl_chart"><a href="' + lvStocks[lvRQSyms[i]].lu.replace("/quotes/", "/charts/") + '">&nbsp;&nbsp;&nbsp;&nbsp;</a></div></td>';
                    stockString += '<td title="See Latest Headlines for ' + lvRQSyms[i] + '"><div class="wl_headlines"><a href="' + lvStocks[lvRQSyms[i]].lu.replace("/quotes/", "/headlines/") + '">&nbsp;&nbsp;&nbsp;&nbsp;</a></div></td></tr>';

                    if ((irr == 1) || ((lvStocks[lvRQSyms[i]].x.indexOf("NYM") == -1) && (lvStocks[lvRQSyms[i]].x.indexOf("CMX") == -1))) {
                        moduleString += stockString;
                    } else {
                        moduleString += "<tbody><tr id=\"RQServerList" + i + "\" " + "class=\"" + stockDirection + "\">" + document.getElementById("RQServerList" + i).innerHTML + "</tr>";
                    }

                }

            }

            // We need to send only the first 20 symbols in the cookie to the add portfolio.
            var addportfolioRQ = '';
            for (var j = 0; j < rqMax && j < lvRQSyms.length; j++) {
                // Build the addportfolio symbols:exchange string.
                addportfolioRQ += 'symbols=' + lvRQSyms[j].replace(/.*[:]/ig, "") + '&exchange=' + lvStocks[lvRQSyms[j]].x;
                if (j < (rqMax - 1)) {
                    addportfolioRQ += '&';
                }
            }

            moduleString += '<tr><td colspan="2" class="clearall"><a class="clearAllBtn" href="javascript:delRecentQuotes();" title="ClearAll" style="display:none;">Clear All</a></td><td colspan="4" class="wl_right">';
            moduleString += '<a href="/portfolios/advancedCreate?' + addportfolioRQ + '">Save as new Portfolio</a></td></tr>';
            moduleString += '</tbody></table>';
        }
        document.getElementById("mnc_recentquotes").innerHTML = moduleString;

    } catch (err) { //alert(err);
    }

} /*  end function rqLive  */



function wlLive(syms, irr) {
    var addportfolioStr;
    syms = trimAll(syms);
    var aSyms = syms.split(",");

    /*  Fill the object keys with stock symbols from the array  */
    for (i = 0; i < aSyms.length; i++) {
        checkSym(aSyms[i].toUpperCase());
    }

    var moduleString = ''; /* if user has no cookie is set, or cookie has no symbols, display default message */
    if (null == syms || syms == "") {
        moduleString += '<br /><a href="/portfolios/myportfolios"><b>Create a Custom Watchlist!</b></a><br />Enter ';
        moduleString += 'securities you follow regularly to create a customized watchlist that is always at your fingertips.<br /><br />'
    } else {
        moduleString += '<table class="marketData" border="0" cellpadding="0" cellspacing="0"><thead>';
        moduleString += '<tr class="header"><th class="th_symbol">Symbol</th><th class="th_last">Last</th><th colspan="2" ';
        moduleString += 'class="th_change">Change</th><th class="th_chg">% Chg</th><th class="th_delete">Delete</th></tr>'

        /* looping thru results from json call  */
        for (var i = 0; i < aSyms.length; i++) {
            var stockString = '';
            var stockDirection = '';
            if (typeof lvStocks != 'undefined' && typeof lvStocks[aSyms[i]] != 'undefined' && typeof lvStocks[aSyms[i]].s != 'undefined' && typeof lvStocks[aSyms[i]].p != 'undefined') {
                var wlName = lvStocks[aSyms[i]].n;
                var wlUrl = lvStocks[aSyms[i]].lu;
                if (typeof lvStocks[aSyms[i]].y == 'undefined') {
                    var wlValue = lvStocks[aSyms[i]].p;
                    if (typeof lvStocks[aSyms[i]].c == 'undefined') lvStocks[aSyms[i]].c = '0.00';
                    var wlChange = lvStocks[aSyms[i]].c;
                    if (typeof lvStocks[aSyms[i]].pc == 'undefined') lvStocks[aSyms[i]].pc = 'N/A';
                    var wlPChange = lvStocks[aSyms[i]].pc;
                    if (lvStocks[aSyms[i]].c.indexOf("+") != -1) stockDirection = "positive";
                    if (lvStocks[aSyms[i]].c.indexOf("-") != -1) stockDirection = "negative";
                } else {
                    var wlValue = lvStocks[aSyms[i]].y + "%";
                    var wlChange = lvStocks[aSyms[i]].yc;
                    var wlPChange = lvStocks[aSyms[i]].ypc;
                    var wlDir = lvStocks[aSyms[i]].yin;
                    if (wlDir.indexOf("D") != -1) {
                        stockDirection = "negative";
                    }
                    if (wlDir.indexOf("U") != -1) {
                        stockDirection = "positive";
                    }
                }
                stockString = "<tr id=\"WLServerList" + i + "\" ";
                if (lvStocks[aSyms[i]].x == 'ISE') {
                    stockString += 'class="' + stockDirection + '"><td class="wl_Symbol"><a title="' + lvStocks[aSyms[i]].n + ' Quote, News & Summary" href="' + lvStocks[aSyms[i]].lu.replace("http://finance.aol.com", "") + '">' + aSyms[i].replace(/.*[:]/ig, "").substring(0, 9) + ":UK";
                } else if (lvStocks[aSyms[i]].x == 'VAN') {
                    stockString += 'class="' + stockDirection + '"><td class="wl_Symbol"><a title="' + lvStocks[aSyms[i]].n + ' Quote, News & Summary" href="' + lvStocks[aSyms[i]].lu.replace("http://finance.aol.com", "") + '">' + aSyms[i].replace(/.*[:]/ig, "").substring(0, 9) + ":CA";
                } else if (lvStocks[aSyms[i]].x == 'TOR') {
                    stockString += 'class="' + stockDirection + '"><td class="wl_Symbol"><a title="' + lvStocks[aSyms[i]].n + ' Quote, News & Summary" href="' + lvStocks[aSyms[i]].lu.replace("http://finance.aol.com", "") + '">' + aSyms[i].replace(/.*[:]/ig, "").substring(0, 5) + ":CA";
                } else {
                    stockString += 'class="' + stockDirection + '"><td class="wl_Symbol"><a title="' + wlName + ' Quote, News & Summary" href="' + wlUrl + '">' + aSyms[i].replace(/.*[:]/ig, "").substring(0, 9);
                }
                if (aSyms[i].replace(/.*[:]/ig, "").length > 5) stockString += '...';
                stockString += '</a></td>';
                stockString += '<td class="last">' + wlValue + '</td>';
                stockString += '<td class="amountIncr">' + wlChange + '</td>';
                stockString += '<td><div class="moneyarrow">&nbsp;</div></td>';
                stockString += '<td class="percentIncr">' + wlPChange + '%</td>';
                stockString += '<td><a class="wl_delete" href="" onClick="javascript:delFromList(\'' + aSyms[i].replace(/\134/g, "#") + '\');return false;" title="Remove ' + aSyms[i] + ' from Watchlist">&nbsp;&nbsp;&nbsp;&nbsp;</a></td>';
                stockString += '<td>&nbsp;</td></tr>';

                if ((irr == 1) || ((lvStocks[aSyms[i]].x.indexOf("NYM") == -1) && (lvStocks[aSyms[i]].x.indexOf("CMX") == -1))) {
                    moduleString += stockString;
                } else {
                    moduleString += "<tr id=\"WLServerList" + i + "\" ";
                    moduleString += ' class="' + stockDirection + '">';
                    moduleString += document.getElementById("WLServerList" + i).innerHTML + "</tr>";
                }
            }
        }

        /*  We need to send only the first 20 symbols in the cookie to the add portfolio.  */
        addportfolioStr = '';
        for (var j = 0; j < aSyms.length; j++) {
            // Build the addportfolio symbols/exchange string.
            addportfolioStr += 'symbols=' + aSyms[j].replace(/.*[:]/ig, "") + '&exchange=' + lvStocks[aSyms[j]].x;
            if (j < (aSyms.length - 1)) {
                addportfolioStr += '&';
            }
        }

        moduleString += '<tr><td colspan="2" class="clearall"><a class="aolBtn watchlist_button" href="javascript:delAllList();" title="Clear All"/>Clear All</a></div></td><td colspan="4" class="wl_right"><a href="/portfolios/advancedCreate?' + addportfolioStr + '">Save as New Portfolio</a></td></tr></table>';

    }

    //display watchlist
    document.getElementById('marketDataWL').innerHTML = moduleString;

    //if a bad symbol was added while this function was adding symbols, display message
    if (goodSymbol == 0) document.getElementById("symbolErr").innerHTML = symbolErr;

    //max has been set to 100 symbols otherwise error message displays
    if (maxReached == 1) document.getElementById("symbolErr").innerHTML = "<span class=\"errDiv\">You can only have " + watchlistMAX + " symbols in  your Watchlist.  Please remove some to add more.</span>";

} //end function wlLive



/* New function for Markets module live update */
/* Uses the boolean updateable to do one-time update for CMX and NYM stocks */
/* Written Nov 2009 by plamen */
//
function lvMkts(o) {
    //alert("Name" + o.name + " short=" + o.shortn + o.mktSymsT0);
    var r = o.shortn;
    var moduleString = '';
    syms = trimAll(mktSymsT0 + "," + mktSymsT1 + "," + mktSymsT2 + "," + mktSymsT3);

    var symsT0 = trimAll(o.mktSymsT0);
    var aMKTsymsT0 = symsT0.split(",");
    var mktLblsT0 = (o.mktLabelsT0).split(',');

    var symsT1 = trimAll(o.mktSymsT1);
    var aMKTsymsT1 = symsT1.split(",");
    var mktLblsT1 = (o.mktLabelsT1).split(',');

    var symsT2 = trimAll(mktSymsT2);
    var aMKTsymsT2 = symsT2.split(",");
    var mktLblsT2 = mktLabelsT2.split(',');

    var symsT3 = trimAll(mktSymsT3);
    var aMKTsymsT3 = symsT3.split(",");
    var mktLblsT3 = mktLabelsT3.split(',');

    var aMKTsyms = aMKTsymsT0;
    var mktLbls = mktLblsT0;

    for (var j = 0; j <= 3; j++) {
        if (j == 0) {
            aMKTsyms = aMKTsymsT0;
            mktLbls = mktLblsT0;
        }
        if (j == 1) {
            aMKTsyms = aMKTsymsT1;
            mktLbls = mktLblsT1;
        }
        if (j == 2) {
            aMKTsyms = aMKTsymsT2;
            mktLbls = mktLblsT2;
        }
        if (j == 3) {
            aMKTsyms = aMKTsymsT3;
            mktLbls = mktLblsT3;
        }

        for (var i = 0; i <= aMKTsyms.length - 1; i++) {
            moduleString = '';
            var mktLabel = mktLbls[i];
            var stockDirection = '';
            if (typeof lvStocks != 'undefined' && typeof lvStocks[aMKTsyms[i]] != 'undefined' && lvStocks[aMKTsyms[i]].p.length > 0) {
                if (lvStocks[aMKTsyms[i]].y == null) {
                    hsValue = lvStocks[aMKTsyms[i]].p;
                    var hsChange = lvStocks[aMKTsyms[i]].c;
                    var hsPChange = lvStocks[aMKTsyms[i]].pc;
                    if (lvStocks[aMKTsyms[i]].c.indexOf("+") != -1) {
                        stockDirection = "positive";
                        hsPChange = "+" + hsPChange;
                    }
                    if (lvStocks[aMKTsyms[i]].c.indexOf("-") != -1) {
                        stockDirection = "negative";
                        hsPChange = "-" + hsPChange;
                    }
                } else {
                    var hsValue = lvStocks[aMKTsyms[i]].y + "%";
                    var hsChange = lvStocks[aMKTsyms[i]].yc;
                    var hsPChange = lvStocks[aMKTsyms[i]].ypc;
                    var hsDir = lvStocks[aMKTsyms[i]].yin;
                    if (hsDir.indexOf("D") != -1) {
                        stockDirection = "negative";
                        hsPChange = "-" + hsPChange;
                    }
                    //if (hsDir.indexOf("D") != -1){stockDirection="negative";hsPChange="-"+hsPChange;hsChange="-"+hsChange;}
                    if (hsDir.indexOf("U") != -1) {
                        stockDirection = "positive";
                        hsPChange = "++" + hsPChange;
                        hsChange = "+" + hsChange;
                    }
                }
            } else {
                continue;
            }
            var mktLink = '';
            if (typeof lvStocks != 'undefined' && typeof lvStocks[aMKTsyms[i]] != 'undefined' && lvStocks[aMKTsyms[i]].lu != 'undefined') mktLink = lvStocks[aMKTsyms[i]].lu;

            var face = "";
            if (stockDirection.indexOf("positive") != -1) face = "face U";
            else face = "face D";

            var arrow = "icon-closed";
            moduleString += '<div class="';
            moduleString += face;
            // moduleString += '"><h4><a href="http://money.aol.com">';
            moduleString += '"><h4><a href="' + mktLink + '">';
            moduleString += mktLabel;
            moduleString += '</a><span class="" title="">';
            moduleString += hsValue;
            moduleString += '</span></h4>';
            moduleString += '<span class="amt">';
            moduleString += hsChange;
            moduleString += '</span>';
            moduleString += '<span class="pct">';
            moduleString += hsPChange.replace('+', '').replace('-', '') + '%';

            var myidi = "istate" + j + i;
            var b = "";
            b = jQuery("#istate" + j + i).attr("class");
            moduleString += '</span><div id="' + myidi + '" class="' + arrow + '"></div></div>';
            var temp = "#" + r + "drawer" + j + i;
            var temp2 = "#" + r + "lvMarkets";
            if (aMKTsyms[i].indexOf("NYM") == -1 && aMKTsyms[i].indexOf("CMX") == -1) {
                //jQuery("#drawer" + j + i).html(moduleString);
                jQuery(temp2).find(temp).html(moduleString);
                //jQuery(temp).html(moduleString);
            } else if (updateable) {
                jQuery(temp2).find(temp).html(moduleString);
                //jQuery(temp).html(moduleString);
            }
            if (b != "" && b != "undefined") jQuery("#istate" + j + i).attr("class", b);
            // if ("istate"+j+i == "istate00" && b == "") {document.getElementById("istate"+j+i).setAttribute("class","icon-open");}
            if ("istate" + j + i == "istate00" && b == "") jQuery("#istate" + j + i).attr("class", "icon-open");
        }
    }

    updateable = false;

    jQuery("#mktTime").html("U.S. " + marketStatus);
}


function lvMkts2(p, t, m) {
    var moduleString = '';
    //syms = trimAll( mktSymsT0 + "," + mktSymsT1 + "," + mktSymsT2 + "," + mktSymsT3);
    var r = m.shortn;

    var symsT0 = trimAll(m.mktSymsT0);
    var aMKTsymsT0 = symsT0.split(",");
    var mktLblsT0 = (m.mktLabelsT0).split(',');

    var symsT1 = trimAll(m.mktSymsT1);
    var aMKTsymsT1 = symsT1.split(",");
    var mktLblsT1 = (m.mktLabelsT1).split(',');

    var symsT2 = trimAll(m.mktSymsT2);
    var aMKTsymsT2 = symsT2.split(",");
    var mktLblsT2 = (m.mktLabelsT2).split(',');

    var symsT3 = trimAll(m.mktSymsT3);
    var aMKTsymsT3 = symsT3.split(",");
    var mktLblsT3 = (m.mktLabelsT3).split(',');

    var aMKTsyms = aMKTsymsT0;
    var mktLbls = mktLblsT0;
    for (var j = 0; j <= 3; j++) {
        if (j == 0) {
            aMKTsyms = aMKTsymsT0;
            mktLbls = mktLblsT0;
        }
        if (j == 1) {
            aMKTsyms = aMKTsymsT1;
            mktLbls = mktLblsT1;
        }
        if (j == 2) {
            aMKTsyms = aMKTsymsT2;
            mktLbls = mktLblsT2;
        }
        if (j == 3) {
            aMKTsyms = aMKTsymsT3;
            mktLbls = mktLblsT3;
        }
        for (var i = 0; i <= aMKTsyms.length - 1; i++) {
            moduleString = '';
            var mktLabel = mktLbls[i];
            var stockDirection = 'negative';
            if (typeof lvStocks != 'undefined' && typeof lvStocks[aMKTsyms[i]] != 'undefined' && lvStocks[aMKTsyms[i]].p.length > 0) {
                if (typeof lvStocks[aMKTsyms[i]].y == 'undefined') {
                    //if( null == lvStocks[aMKTsyms[i]].y){
                    hsValue = lvStocks[aMKTsyms[i]].p;
                    var hsChange = lvStocks[aMKTsyms[i]].c;
                    var hsPChange = lvStocks[aMKTsyms[i]].pc;
                    if (lvStocks[aMKTsyms[i]].c.indexOf("+") != -1) {
                        stockDirection = "positive";
                        hsPChange = "+" + hsPChange;
                    }
                    if (lvStocks[aMKTsyms[i]].c.indexOf("-") != -1) {
                        stockDirection = "negative";
                        hsPChange = "-" + hsPChange;
                    }
                } else {
                    var hsValue = lvStocks[aMKTsyms[i]].y + "%";
                    var hsChange = lvStocks[aMKTsyms[i]].yc;
                    var hsPChange = lvStocks[aMKTsyms[i]].ypc;
                    var hsDir = lvStocks[aMKTsyms[i]].yin;
                    if (hsDir.indexOf("D") != -1) {
                        stockDirection = "negative";
                        hsPChange = "-" + hsPChange;
                    }
                    //if (hsDir.indexOf("D") != -1){stockDirection="negative";hsPChange="-"+hsPChange;hsChange="-"+hsChange;}
                    if (hsDir.indexOf("U") != -1) {
                        stockDirection = "positive";
                        hsPChange = "++" + hsPChange;
                        hsChange = "+" + hsChange;
                    }
                }
            } else {
                continue;
            }
            var mktLink = '';
            if (typeof lvStocks != 'undefined' && typeof lvStocks[aMKTsyms[i]] != 'undefined' && lvStocks[aMKTsyms[i]].lu != 'undefined') mktLink = lvStocks[aMKTsyms[i]].lu;

            var face = "";
            if (stockDirection.indexOf("positive") != -1) face = "face U";
            else face = "face D";

            var arrow = "icon-closed";
            if (j == p & i == t) arrow = "icon-open";

            moduleString += '<div class="';
            moduleString += face;
            // moduleString += '"><h4><a href="http://money.aol.com">';
            moduleString += '"><h4><a href="' + mktLink + '">';
            moduleString += mktLabel;
            moduleString += '</a><span class="" title="">';
            if (typeof hsValue != 'undefined') moduleString += hsValue;
            moduleString += '</span></h4>';
            moduleString += '<span class="amt">';
            if (typeof hsChange != 'undefined') moduleString += hsChange;
            moduleString += '</span>';
            moduleString += '<span class="pct">';
            if (typeof hsPChange != undefined && hsPChange != null) moduleString += hsPChange.replace('+', '').replace('-', '') + '%';
            var myidi = "istate" + j + i;

            moduleString += '</span><div id="' + myidi + '" class="' + arrow + '"></div></div>';
            //document.getElementById("drawer"+j+i).innerHTML=moduleString;
            var temp = "#" + r + "drawer" + j + i;
            var temp2 = "#" + r + "lvMarkets";
            jQuery(temp2).find(temp).html(moduleString);
            //jQuery(temp).html(moduleString);
            //var plamen = "hey"; plamen= jQuery("#lvMarkets").find(temp).attr("id"); alert(plamen);
            //var plamen = "hey"; plamen= jQuery("#lvMarkets").find(temp).html(); alert(plamen);
            //jQuery("#drawer"+j+i).html(moduleString);
            //}
        }
    }
}


function hsLive(syms) { /* changed by brendan February 2009  */
    /* changed by plamen July 2009: adding Yields  */
    /* changed by Anusha Oct 2009: for New hotstocks mod implementation*/

    syms = trimAll(syms);
    var aHSsyms = syms.split(",");
    if (syms == '' || null == syms) {} else {
        rmtd = document.getElementById('hotstockDataTbl');
        var trs = rmtd.getElementsByTagName('tr');
        var rows = trs.length;

        for (var i = 0; i < aHSsyms.length; i++) {
            var hsLabel = hsLbls[i];

            //this stores the direction of increase/decrease of stocks
            var stockDirection = '';

            // get yield if available
            if (lvStocks[aHSsyms[i]].y == null) {
                hsValue = lvStocks[aHSsyms[i]].p;
                var hsChange = lvStocks[aHSsyms[i]].c;
                var hsPChange = lvStocks[aHSsyms[i]].pc;
                if (lvStocks[aHSsyms[i]].c.indexOf("+") != -1) stockDirection = "positive";
                else if (lvStocks[aHSsyms[i]].c.indexOf("-") != -1) stockDirection = "negative";
                else stockDirection = "direction";
            } else {
                var hsValue = lvStocks[aHSsyms[i]].y + "%";
                var hsChange = lvStocks[aHSsyms[i]].yc;
                var hsPChange = lvStocks[aHSsyms[i]].ypc;
                var hsDir = lvStocks[aHSsyms[i]].yin;
                if (hsDir.indexOf("D") != -1) stockDirection = "negative";
                else if (hsDir.indexOf("U") != -1) stockDirection = "positive";
                else stockDirection = "direction";
            }

            if (aHSsyms[i].indexOf("NYM") == -1 && aHSsyms[i].indexOf("CMX") == -1) {

                var tr_ref = document.getElementById("HotStocksSym" + i);
                var exClass = tr_ref.className;
                nClass = exClass.split(" ");
                tr_ref.className = stockDirection + " " + nClass[1];
                var tds = tr_ref.getElementsByTagName('td');
                var tds_len = tds.length;

                for (var j = 0; j < tds_len; j++)
                document.getElementById("HotStocksSym" + i).deleteCell(0);

                var td1 = document.createElement("td");
                td1.setAttribute("class", "symbol");
                td1.setAttribute("className", "symbol");
                td1.innerHTML = '<a href="' + lvStocks[aHSsyms[i]].lu + '" title="' + lvStocks[aHSsyms[i]].n + '">' + hsLabel + '</a>';

                var td2 = document.createElement("td");
                td2.setAttribute("class", "last");
                td2.setAttribute("className", "last");
                td2.innerHTML = hsValue;

                if ((stockDirection == "positive") && (hsChange.indexOf("+") == -1)) {
                    hsChange = "+" + hsChange;
                }
                if ((stockDirection == "negative") && (hsChange.indexOf("-") == -1)) {
                    hsChange = "-" + hsChange;
                }
                var td3 = document.createElement("td");
                td3.setAttribute("class", "amountIncr");
                td3.setAttribute("className", "amountIncr");
                td3.innerHTML = hsChange;

                var td4 = document.createElement("td");
                td4.setAttribute("class", "moneyarrow");
                td4.setAttribute("className", "moneyarrow");
                td4.innerHTML = ' ';

                if ((stockDirection == "positive") && (hsPChange.indexOf("+") == -1)) {
                    hsPChange = "+" + hsPChange;
                }
                if ((stockDirection == "negative") && (hsPChange.indexOf("-") == -1)) {
                    hsPChange = "-" + hsPChange;
                }
                var td5 = document.createElement("td");
                td5.setAttribute("class", "percentIncr");
                td5.setAttribute("className", "percentIncr");
                td5.innerHTML = hsPChange + "%";

                tr_ref.appendChild(td1);
                tr_ref.appendChild(td2);
                tr_ref.appendChild(td3);
                tr_ref.appendChild(td4);
                tr_ref.appendChild(td5);
            }
        }
    }
}

var lvUpdates; //for control of the live update setInterval in function lvStatus
var currentMostActX = ""; //tracking most actives current market
var intervalNum = 120000;
var portfoliosCount = 0;
var portfolioLive = 0;
var shutLiveUpdates = 0;



function lvStatus(status) {
    switch (status.toLowerCase()) {
    case "never":
        lvStatusInit = 0;
        ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + symString + '&porttype=2&portmax=100&callback=lvHashRefresh' + '&rf=http://www.dailyfinance.com');
        break;

    case "off":
        setCookie('AOL_StockQuotesLiveUpdate', 0, liveUpCookieLen);
        clearInterval(lvUpdates);

        ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + symString + '&porttype=2&portmax=100&callback=lvHashRefresh');

        if (lvModCtr > 0) var luText = 'Live Updates: <a href="javascript:lvStatus(\'on\')">On</a> | Off';

        if (window.document.getElementById("lvSelect")) {
            document.getElementById("lvSelect").innerHTML = luText;
        }
        lvStatusInit = 0;
        break;

    case "on":
        setCookie('AOL_StockQuotesLiveUpdate', 1, liveUpCookieLen);
        if (intervalNum > 2000) {
            ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + symString + '&porttype=2&portmax=100&callback=rebuildLiveHash' + '&rf=http://www.dailyfinance.com');
            // ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + symString + ',' + AOL_QuotesWatchList +'&porttype=2&portmax=100&callback=rebuildLiveHash');
            //ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + exchanges + '&callback=errorCheck')
            //    ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + EL + '&porttype=2&portmax=100&callback=rebuildLiveHash');
        }
        //lvUpdates = setInterval("ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + symString +'&porttype=2&portmax=100&callback=rebuildLiveHash')",intervalNum);
        //lvUpdates = setInterval("ensureUploadScriptIsLoaded(''http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + exchanges + '&callback=errorCheck')",intervalNum);
        lvUpdates = setInterval("ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + symString  + '&porttype=2&portmax=100&callback=rebuildLiveHash' + '&rf=http://www.dailyfinance.com')", intervalNum);
        if (lvModCtr > 0) var luText = 'Live Updates: On | <a href="javascript:lvStatus(\'off\')">Off</a>';
        if (document.getElementById("lvSelect")) document.getElementById("lvSelect").innerHTML = luText;
        lvStatusInit = 1;
        break;
    }
}


function lvHashRefresh(obj) {

    var lvTotalItems = obj.ResultSet.symslist.length;

    var lvSym, lvName, lvCurPrice, lvTodayDelta, lvPctDelta, lvUrl, lvMktXch;
    var lvYield, lvYieldChange, lvYieldPChange, lvYieldDir;

    for (var i = 0; i < lvTotalItems; i++) {
        try {
            var lvStockDirection = '';
            lvSym = obj.ResultSet.symslist[i].s;
            checkSym(lvSym);
            lvName = obj.ResultSet.symslist[i].n;
            lvCurPrice = obj.ResultSet.symslist[i].p;
            lvCurVolume = obj.ResultSet.symslist[i].v;

            lvYield = obj.ResultSet.symslist[i].y;
            lvYieldChange = obj.ResultSet.symslist[i].yc;
            lvYieldPChange = obj.ResultSet.symslist[i].ypc;
            lvYieldDir = obj.ResultSet.symslist[i].yin;

            if (obj.ResultSet.symslist[i].c != undefined) lvTodayDelta = obj.ResultSet.symslist[i].c;
            else if (obj.ResultSet.symslist[i].c == undefined) lvTodayDelta = "";

            if (obj.ResultSet.symslist[i].asof != undefined) lvAsOf = obj.ResultSet.symslist[i].asof;
            else lvAsOf = "";

            lvPctDelta = obj.ResultSet.symslist[i].pc;

            if (obj.ResultSet.symslist[i].c.indexOf("+") != -1) lvStockDirection = "U";
            else if (obj.ResultSet.symslist[i].c.indexOf("-") != -1) lvStockDirection = "D";

            lvUrl = obj.ResultSet.symslist[i].lu;
            lvMktXch = obj.ResultSet.symslist[i].x;

            //lvStocks[lvSym] = {"y":lvYield,"yc":lvYieldChange,"ypc":lvYieldPChange,"yin":lvYieldDir,"s":lvSym,"n":lvName,"p":lvCurPrice,"c":lvTodayDelta,"pc":lvPctDelta,"ind":lvStockDirection,"lu":lvUrl,"x":lvMktXch,"v":lvCurVolume,"asof":lvAsOf};
            if (checkSym('E:' + lvMktXch + ':' + lvSym)) {
                lvStocks['E:' + lvMktXch + ':' + lvSym] = {
                    "s": 'E:' + lvMktXch + ':' + lvSym,
                    "y": lvYield,
                    "yc": lvYieldChange,
                    "ypc": lvYieldPChange,
                    "yin": lvYieldDir,
                    "n": lvName,
                    "p": lvCurPrice,
                    "c": lvTodayDelta,
                    "pc": lvPctDelta,
                    "ind": lvStockDirection,
                    "lu": lvUrl,
                    "x": lvMktXch,
                    "v": lvCurVolume,
                    "asof": lvAsOf
                };
            } else {
                lvStocks['E:' + lvMktXch + ':' + lvSym] = {
                    "y": lvYield,
                    "yc": lvYieldChange,
                    "ypc": lvYieldPChange,
                    "yin": lvYieldDir,
                    "s": 'E:' + lvMktXch + ':' + lvSym,
                    "n": lvName,
                    "p": lvCurPrice,
                    "c": lvTodayDelta,
                    "pc": lvPctDelta,
                    "ind": lvStockDirection,
                    "lu": lvUrl,
                    "x": lvMktXch,
                    "v": lvCurVolume,
                    "asof": lvAsOf
                };
            }
        } catch (err) {}
        if (obj.ResultSet.markets[0].close != undefined) marketStatus = obj.ResultSet.markets[0].close.mkstr;
        else if (obj.ResultSet.markets[0].open != undefined) marketStatus = obj.ResultSet.markets[0].open.mkstr;

    }
    // build market news tab data
    if (document.getElementById("market-news-mod") && pageloaded == 0) {
        mnLive(lvMNsym, lvMNtab);
        createChartLinks();
    }

    if (portfolioLive > 0) {
        for (i = 0; i < portfoliosCount; i++) {
            curIndicator = "U";
            curPercentChObj = obj.ResultSet.myportfolios[0].p;
            curPercentCh = curPercentChObj[i].tglpc;

            if (curPercentCh.indexOf('-') > -1) {
                curIndicator = "D";
                curPercentCh += "%";
            } else if (curPercentCh == "N/A") {
                curIndicator = "";
            } else {
                curPercentCh += "%";
            }

            document.getElementById("tglpc" + (i + 1)).innerHTML = curPercentCh;
            document.getElementById("nglin" + (i + 1)).setAttribute("class", "miniarrow" + curIndicator);
            document.getElementById("nglin" + (i + 1)).setAttribute("className", "miniarrow" + curIndicator);
            document.getElementById("tglpc" + (i + 1)).setAttribute("class", "percentCh " + curIndicator);
            document.getElementById("tglpc" + (i + 1)).setAttribute("className", "percentCh " + curIndicator);
        }
    }

    if (lvMarketsArray != null && lvMarketsArray.length > 0) {
        for (var market = 0; market < lvMarketsArray.length; market++) {
            var lvMarketsTempID = "#" + lvMarketsArray[market].shortn + "lvMarkets";
            if (jQuery(lvMarketsTempID).html()) lvMkts(lvMarketsArray[market]);
        }
    }

    pageloaded = 1;
    lvReady = 1;
}

/* -- Functions for Updating Flash prices -- */

/* store a list of Flash Movies that need price updating */
var swfList = new Array(); /* track the complete list of symbols that all subscribed flash movies are using */
var flashSyms = "";

/* Register a SWF for receiving JS updates */

function registerSWF(swfid, syms) {
    //alert("Register SWF " + swfid + ", " + syms);
    var swf = getSwfItem(swfid);
    if (swf != null) {
        swf.syms = syms;
        swf.symsArray = syms.split(",");
    } else {
        swfListItem = new Object();
        swfListItem.id = swfid;
        swfListItem.syms = syms;
        swfListItem.symsArray = syms.split(",");
        swfListItem.index = swfList.length;
        swfList.push(swfListItem);
    }
    flashSyms += syms + ",";
}

/* Get the reference to a Flash movie */

function getSWF(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}

function getSwfItem(id) {
    if (id != null & id.length > 0) {
        for (var i = 0; i < swfList.length; i++) {
            if (swfList[i].id == id) return swfList[i];
        }
    }
    return null;
}

/* Remove a SWF from receiving JS updates */

function unRegisterSWF(swfid) {
    if (swfid != "") {
        for (var i = 0; i < swfList.length; i++) {
            if (swfList[i].id == swfid) {
                swfList.splice(i, 1);
                break;
            }
        }
    }
}

/* Pass the update price data to all swfs that are registered for updates */

function updateDataInSwfs() {
    // loop through all the swfs
    for (var i = 0; i < swfList.length; i++) {
        var myData = new Array();
        // pick out the price data objects for each of this swfs symsbols
        for (var k = 0; k < swfList[i].symsArray.length; k++) {
            var d = lvStocks[swfList[i].symsArray[k]];
            if (d) myData.push(d);
        }
        // send the list of price data to this swf
        try {
            getSWF(swfList[i].id).jsUpdatePriceData(myData);
        } catch (err) {
            //alert(err.message)
        }
    }
}

/* -- End of functions for Updating Flash prices -- */



function updatelvStocks(obj) {
    var lvTotalItems = obj.ResultSet.symslist.length;
    var lvSym, lvName, lvCurPrice, lvTodayDelta, lvPctDelta, lvUrl, lvMktXch;
    var lvYield, lvYieldChange, lvYieldPChange, lvYieldDir;

    for (var i = 0; i < lvTotalItems; i++) {
        try {
            var lvStockDirection = '';
            lvSym = obj.ResultSet.symslist[i].s;
            checkSym(lvSym);
            lvName = obj.ResultSet.symslist[i].n;
            lvCurPrice = obj.ResultSet.symslist[i].p;
            lvCurVolume = obj.ResultSet.symslist[i].v;

            lvYield = obj.ResultSet.symslist[i].y;
            lvYieldChange = obj.ResultSet.symslist[i].yc;
            lvYieldPChange = obj.ResultSet.symslist[i].ypc;
            lvYieldDir = obj.ResultSet.symslist[i].yin;

            if (obj.ResultSet.symslist[i].c != undefined) lvTodayDelta = obj.ResultSet.symslist[i].c;
            else if (obj.ResultSet.symslist[i].c == undefined) lvTodayDelta = "";

            if (obj.ResultSet.symslist[i].asof != undefined) lvAsOf = obj.ResultSet.symslist[i].asof;
            else lvAsOf = "";

            lvPctDelta = obj.ResultSet.symslist[i].pc;

            if (obj.ResultSet.symslist[i].c.indexOf("+") != -1) lvStockDirection = "U";
            else if (obj.ResultSet.symslist[i].c.indexOf("-") != -1) lvStockDirection = "D";

            lvUrl = obj.ResultSet.symslist[i].lu;
            lvMktXch = obj.ResultSet.symslist[i].x;

            if (checkSym('E:' + lvMktXch + ':' + lvSym)) {
                lvStocks['E:' + lvMktXch + ':' + lvSym] = {
                    "s": 'E:' + lvMktXch + ':' + lvSym,
                    "y": lvYield,
                    "yc": lvYieldChange,
                    "ypc": lvYieldPChange,
                    "yin": lvYieldDir,
                    "n": lvName,
                    "p": lvCurPrice,
                    "c": lvTodayDelta,
                    "pc": lvPctDelta,
                    "ind": lvStockDirection,
                    "lu": lvUrl,
                    "x": lvMktXch,
                    "v": lvCurVolume,
                    "asof": lvAsOf
                };
            } else {
                lvStocks['E:' + lvMktXch + ':' + lvSym] = {
                    "y": lvYield,
                    "yc": lvYieldChange,
                    "ypc": lvYieldPChange,
                    "yin": lvYieldDir,
                    "s": 'E:' + lvMktXch + ':' + lvSym,
                    "n": lvName,
                    "p": lvCurPrice,
                    "c": lvTodayDelta,
                    "pc": lvPctDelta,
                    "ind": lvStockDirection,
                    "lu": lvUrl,
                    "x": lvMktXch,
                    "v": lvCurVolume,
                    "asof": lvAsOf
                };

            }
        } catch (err) {}
    }
}

function defWatchList(obj) {
    var moduleString = '';
    //if user has no cookie is set, or cookie has no symbols, display default message
    if (!AOL_QuotesWatchList || AOL_QuotesWatchList == "" || AOL_QuotesWatchList.replace(",", "").length == 0) {
        moduleString += '<br /><a href="/portfolios/myportfolios"><b>Track Your Stocks Here!</b></a><br />Find out why ';
        moduleString += 'more people track their stocks on<br />AOL Money and Finance than anywhere else.<br /><br />';
    } else {
        moduleString += '<table class="marketData" border="0" cellpadding="0" cellspacing="0"><thead><tr class="header">';
        moduleString += '<th class="th_symbol">Symbol</th><th class="th_last">Last</th><th colspan="2" class="th_change">';
        moduleString += 'Change</th><th class="th_change">% Chg</th><th class="th_delete">Delete</th></tr>';

        //looping thru results from json call
        if (obj.ResultSet != 'undefined') var createport = "";
        for (var i = 0; i < obj.ResultSet.symslist.length; i++) {
            if (typeof obj.ResultSet.symslist[i].c == 'undefined') obj.ResultSet.symslist[i].c = '0.00';
            var stockDirection = "";
            if (obj.ResultSet.symslist[i].c.indexOf("+") != -1) var stockDirection = "positive";
            else if (obj.ResultSet.symslist[i].c.indexOf("-") != -1) var stockDirection = "negative";

            moduleString += "<tr class=\"" + stockDirection + "\">";
            moduleString += '<td class="wl_Symbol"><a title="' + obj.ResultSet.symslist[i].n + ' Quote, News & Summary" href="';
            //moduleString +=obj.ResultSet.symslist[i].lu.replace("http://finance.aol.com","") + '">' + obj.ResultSet.symslist[i].s.substring(0,5);
            //alert(obj.ResultSet.symslist[i].x);
            moduleString += obj.ResultSet.symslist[i].lu.replace("http://finance.aol.com", "") + '">';
            if (obj.ResultSet.symslist[i].x == 'ISE') moduleString += (obj.ResultSet.symslist[i].s + ':UK').substring(0, 6);
            else if (obj.ResultSet.symslist[i].x == 'VAN') moduleString += (obj.ResultSet.symslist[i].s + ':CA').substring(0, 6);
            else if (obj.ResultSet.symslist[i].x == 'TOR') moduleString += (obj.ResultSet.symslist[i].s + ':CA').substring(0, 6);
            else moduleString += obj.ResultSet.symslist[i].s.substring(0, 5);


            if (obj.ResultSet.symslist[i].s.length > 5) moduleString += '...';

            var tmpsym = 'E:' + obj.ResultSet.symslist[i].x + ':' + obj.ResultSet.symslist[i].s;
            var tmpsym_ctry = 'C:' + obj.ResultSet.symslist[i].xcntrc + ':' + obj.ResultSet.symslist[i].s;

            if (i > 0) createport += '&';
            createport += 'symbols=' + obj.ResultSet.symslist[i].s + '&exchange=' + obj.ResultSet.symslist[i].x;

            moduleString += '<td class="last">' + obj.ResultSet.symslist[i].p + '</td>';
            moduleString += '<td class="amountIncr">' + obj.ResultSet.symslist[i].c + '</td>';
            moduleString += '<td><div class="moneyarrow">&nbsp;</div></td>';
            moduleString += '<td class="percentIncr">' + obj.ResultSet.symslist[i].pc + '%</td>';
            moduleString += '</a></td><td><a class="wl_delete" href="" onClick="javascript:delFromList(\'' + tmpsym_ctry;
            moduleString += '\');return false;" title="Remove ' + tmpsym + ' from Watchlist">&nbsp;&nbsp;&nbsp;&nbsp;</a></td></tr>';
        }

        //portion of cookie to use to add new portfolio
        addportfolioStr = AOL_QuotesWatchList.substring(1, AOL_QuotesWatchList.length - 1);

        moduleString += '<tr><td colspan="2" class="clearall"><a class="aolBtn watchlist_button" href="javascript:delAllList();" ';
        //moduleString +='title="Clear All"/>Clear All</a></div></td><td colspan="4" class="wl_right"><a href="/portfolios/advancedCreate?symbols=';
        //moduleString += addportfolioStr.replace(/,/g,'&exchange=NYS&symbols=') + '&exchange=NYS">Save as New Portfolio</a></td></tr></tbody></table>';
        moduleString += 'title="Clear All"/>Clear All</a></div></td><td colspan="4" class="wl_right"><a href="/portfolios/advancedCreate?';
        moduleString += createport + '">Save as New Portfolio</a></td></tr></tbody></table>';
        updatelvStocks(obj);
    }

    //display watchlist
    document.getElementById('marketDataWL').innerHTML = moduleString;
    document.getElementById("mnc_portfolios").style.display = "none";
    document.getElementById("mnc_recentquotes").style.display = "none";
    document.getElementById("mnc_watchlist").style.display = "block";
    document.getElementById("watchNav").setAttribute("class", "activeTab");
    document.getElementById("portNav").setAttribute("class", "");
    document.getElementById("recentNav").setAttribute("class", "");
    document.getElementById("watchNav").setAttribute("className", "activeTab");
    document.getElementById("portNav").setAttribute("className", "");
    document.getElementById("recentNav").setAttribute("className", "");
}



function defRecentQuotes(obj) {
    // Max number of Recent Quote symbols. *
    var rqMax = 20;

    var moduleString = '';
    //try looping thru symlist results from ajax call
    try {

        // check ResultSet for exception returned data
        var exCount = 0;
        for (var rqEx = 0; rqEx < obj.ResultSet.symslist.length; rqEx++) {
            if (obj.ResultSet.symslist[rqEx].e) {
                exCount++;
            }
        }

        if (strRecentQuotes == "" || exCount > 0) {

            // if the backend string is empty, display a default message.
            moduleString += '<div id="trmost"><div id="trmosti"><b>Track Your Most Recent Quotes Here!</b><br />Enter a symbol at the top of the page in the search box.</div></div><br />'

        } else {
            moduleString += '<table class="marketData" border="0" cellpadding="0" cellspacing="0">';
            moduleString += '<thead><tr class="header"><th class="th_symbol">Symbol</th>'
            moduleString += '<th class="th_last">Last</th><th class="th_change" colspan="3">Change</th><th>&nbsp;</th><th>&nbsp;</th></tr></thead><tbody>'
            var createport = "";
            for (var i = 0; i < rqMax && i < obj.ResultSet.symslist.length; i++) {

                var stockDirection = '';

                if (typeof obj.ResultSet.symslist[i].c == 'undefined') obj.ResultSet.symslist[i].c = '0.00';
                if (obj.ResultSet.symslist[i].c.indexOf("+") != -1) var stockDirection = "positive";
                else if (obj.ResultSet.symslist[i].c.indexOf("-") != -1) var stockDirection = "negative";

                moduleString += "<tbody><tr id=\"RQServerList" + i + "\"";
                moduleString += "class=\"" + stockDirection + "\">";
                moduleString += '<td class="wl_Symbol"><a  title="' + obj.ResultSet.symslist[i].n + '" href="' + obj.ResultSet.symslist[i].lu.replace("http://finance.aol.com", "") + '">';
                if (obj.ResultSet.symslist[i].x == 'ISE') moduleString += (obj.ResultSet.symslist[i].s + ':UK').substring(0, 6);
                else if (obj.ResultSet.symslist[i].x == 'VAN') moduleString += (obj.ResultSet.symslist[i].s + ':CA').substring(0, 6);
                else if (obj.ResultSet.symslist[i].x == 'TOR') moduleString += (obj.ResultSet.symslist[i].s + ':CA').substring(0, 6);
                else moduleString += obj.ResultSet.symslist[i].s.substring(0, 9);

                if (i > 0) createport += '&';
                createport += 'symbols=' + obj.ResultSet.symslist[i].s + '&exchange=' + obj.ResultSet.symslist[i].x;

                if (obj.ResultSet.symslist[i].s.length > 9) moduleString += '...';

                moduleString += '</a></td>';
                moduleString += '<td class="last">' + obj.ResultSet.symslist[i].p + '</td>';
                moduleString += '<td  class="amountIncr">' + obj.ResultSet.symslist[i].c + '</td>';
                moduleString += '<td><div class="moneyarrow">&nbsp;</div></td>';

                if (typeof obj.ResultSet.symslist[i].pc == 'undefined') obj.ResultSet.symslist[i].pc = '-';
                if (obj.ResultSet.symslist[i].pc.indexOf('N/A') < 0) moduleString += '<td class="percentIncr">' + obj.ResultSet.symslist[i].pc + '%</td>';
                else moduleString += '<td class="percentIncr">' + obj.ResultSet.symslist[i].pc + '</td>';
                moduleString += '<td title="See Chart for ' + obj.ResultSet.symslist[i].s + '"><div class="wl_chart"><a href="' + obj.ResultSet.symslist[i].lu.replace("/quotes/", "/charts/") + '">&nbsp;&nbsp;&nbsp;&nbsp;</a></div></td>';
                moduleString += '<td title="See Latest Headlines for ' + obj.ResultSet.symslist[i].s + '"><div class="wl_headlines"><a href="' + obj.ResultSet.symslist[i].lu.replace("/quotes/", "/headlines/") + '">&nbsp;&nbsp;&nbsp;&nbsp;</a></div></td></tr>';
            }
            updatelvStocks(obj);
            addportfolioRQ = strRecentQuotes.substring(0, strRecentQuotes.length);

            moduleString += '<tr><td colspan="2" class="clearall"><a class="aolBtn watchlist_button" href="javascript:delRecentQuotes();" title="ClearAll" style="display:none">Clear All</a></td><td colspan="4" class="wl_right">';
            // moduleString += '<a href="/portfolios/advancedCreate?symbols=' + addportfolioRQ.replace(/,/g,'&exchange=NYS&symbols=') + '&exchange=NYS"">Save as new Portfolio</a></td></tr>';
            moduleString += '<a href="/portfolios/advancedCreate?' + createport + '">Save as new Portfolio</a></td></tr>';

            moduleString += '</tbody></table>';
        }

        document.getElementById("mnc_recentquotes").innerHTML = moduleString;

    } catch (err) {
        //alert(err);
    }
    document.getElementById("mnc_portfolios").style.display = "none";
    document.getElementById("mnc_watchlist").style.display = "none";
    document.getElementById("mnc_recentquotes").style.display = "block";
    document.getElementById("recentNav").setAttribute("class", "activeTab");
    document.getElementById("watchNav").setAttribute("class", "");
    document.getElementById("portNav").setAttribute("class", "");
    document.getElementById("recentNav").setAttribute("className", "activeTab");
    document.getElementById("watchNav").setAttribute("className", "");
    document.getElementById("portNav").setAttribute("className", "");
}



/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

function mnLive(sym, tab) {
    //alert(sym+"      "+tab);
    var lvMNelement = 'lvMNtab' + tab;

    var tabString = '';

    tabString += lvStocks[sym].p + '<p class="' + lvStocks[sym].ind + '">';
    tabString += '<span class="amountIncr">' + lvStocks[sym].c + '</span><span class="moneyarrow"> </span>';
    tabString += '<span class="percentIncr">';
    if (lvStocks[sym].pc == undefined || lvStocks[sym].pc.length == 0 || null == lvStocks[sym].pc || lvStocks[sym].pc == '') tabString += '</span></p>';
    else tabString += lvStocks[sym].pc + '%</span></p>';


    document.getElementById(lvMNelement).innerHTML = tabString;
}

function set_lvMNsym(first) {
    switch (first) {
    case 1:
        lvMNsym = arrMNstocks[last - 3];
        break;
    case 2:
        lvMNsym = arrMNstocks[last - 2];
        break;
    case 3:
        lvMNsym = arrMNstocks[last - 1];
        break;
    case 4:
        lvMNsym = arrMNstocks[last];
        break;
    }
    return lvMNsym;
}

function set_lvMNtab(first) {

    switch (first) {
    case 1:
        lvMNtab = '1';
        break;
    case 2:
        lvMNtab = '2';
        break;
    case 3:
        lvMNtab = '3';
        break;
    case 4:
        lvMNtab = '4';
        break;
    }
    return lvMNtab;
}


// function for live update of alternate hot stocks mod.
function hsLiveAlt(syms) {

    var moduleString = '';

    syms = trimAll(syms);

    var aHSsyms = syms.split(",");

    if (syms == '' || null == syms) {
        moduleString += '';
    } else {
        // Need to completely rebuild the table code to avoid any IE idiosyncrasies associated with giving <table> an id.
        moduleString += '<table><tbody><tr><th class="itemLeft">Symbol</th><th class="itemRight">Last Trade</th><th class="itemRight">Change</th><th class="itemRight">% Change</th></tr>';

        for (var i = 0; i < aHSsyms.length; i++) {

            if (i % 2 == 1) {
                var bgClass = 'alternateBg';
            } else {
                var bgClass = 'firstBg';
            }

            var hsLabel = hsLbls[i];

            //this stores the direction of increase/decrease of stocks
            var stockDirection = '';

            if (lvStocks[aHSsyms[i]].c.indexOf("+") != -1) {
                var stockDirection = "up";
                var stockDirection2 = "marketUp";

            } else if (lvStocks[aHSsyms[i]].c.indexOf("-") != -1) {
                var stockDirection = "down";
                var stockDirection2 = "marketDown";
            }


            moduleString += '<tr class="' + bgClass + '">';
            moduleString += '<td class="marketSymbol ' + stockDirection + '"><a href="' + lvStocks[aHSsyms[i]].lu + '">' + hsLabel + '</a></td>';
            moduleString += '<td class="marketValue">' + lvStocks[aHSsyms[i]].p + '</td><td class="' + stockDirection2 + '">' + lvStocks[aHSsyms[i]].c + '</td>';
            moduleString += '<td class="' + stockDirection2 + '">' + lvStocks[aHSsyms[i]].pc + '</td></tr>';
        }
        moduleString += '</tbody></table><div class="clear"></div><div class="feedTimestamp" id="lvHSfeedTimestamp"></div>';
    }

    if (document.getElementById("lvHotStocksAlt")) document.getElementById('lvHotStocksAlt').innerHTML = moduleString;

}


// function to grab the time remaining until markets close/open
function marketTime(obj) {

    if (obj.ResultSet.markets[0].close) {
        timeLeft = 'U.S Markets ' + obj.ResultSet.markets[0].close.mkstr;
    } else if (obj.ResultSet.markets[0].open) {
        timeLeft = 'U.S Markets ' + obj.ResultSet.markets[0].open.mkstr;
    }
    lvHSfeedTimestampCheck = document.getElementById("lvHSfeedTimestamp");

    if (lvHSfeedTimestampCheck) {
        lvHSfeedTimestampCheck.innerHTML = timeLeft + ' (' + htDisclaimer + ')';
    }
}

var myimages = new Array();

function preloadimages() {
    for (i = 0; i < preloadimages.arguments.length; i++) {
        myimages[i] = new Image();
        myimages[i].src = preloadimages.arguments[i]
    }
}
//Enter path of images to be preloaded inside parenthesis. Extend list as desired.
preloadimages("http://o.aolcdn.com/art/webwidgets/sfsw_v1_3/images/sprite_buttons.gif");


/* Supertabs */


function closeTabsBody(divname) {
    var tabsdiv = document.getElementById(divname);
    if (tabsdiv) {
        tabsdiv.style.display = "none";
    }
    document.getElementById("mnc_watchlist").style.display = "none";
    document.getElementById("mnc_recentquotes").style.display = "none";
    document.getElementById("mnc_portfolios").style.display = "none";
    document.getElementById("portNav").setAttribute("class", "");
    document.getElementById("watchNav").setAttribute("class", "");
    document.getElementById("recentNav").setAttribute("class", "");
    document.getElementById("portNav").setAttribute("className", "");
    document.getElementById("watchNav").setAttribute("className", "");
    document.getElementById("recentNav").setAttribute("className", "");
}

function closeSuperTabs(calling_div) {
    if (typeof document.readyState != "undefined" && document.readyState != "complete") {
        return;
    }
    if (userAdding == 1) {
        return;
    }
    clearTimeout(alertTimerId);
    if (calling_div == 'myport') {
        alertTimerId = setTimeout("closeTabsBody('myport')", 1000);
    } else if (calling_div == 'watch') {
        alertTimerId = setTimeout("closeTabsBody('watch')", 1000);
    } else if (calling_div == 'recquo') {
        alertTimerId = setTimeout("closeTabsBody('recquo')", 1000);
    }

}

function stayOpen() {
    clearTimeout(alertTimerId);
}

function openSuperTabs(calling_div) {
    if (typeof document.readyState != "undefined" && document.readyState != "complete") {
        return;
    }
    clearTimeout(alertTimerId);
    if (calling_div == 'myport') {
        alertTimerId = setTimeout("openTabsBody('myport')", 1000);
    } else if (calling_div == 'watch') {
        alertTimerId = setTimeout("openTabsBody('watch')", 1000);
    } else if (calling_div == 'recquo') {
        alertTimerId = setTimeout("openTabsBody('recquo')", 1000);
    }
}

function openTabsBody(divreq) {
    if (divreq == 'myport') {
        if (portfoliosloaded == 0) getPortfolioData();
        else showPortfolio();
    } else if (divreq == 'watch') {
        mnc_watchlist(1);
    } else if (divreq == 'recquo') {
        mnc_recentquotes(1)
    }
}

function goPort(pid) {
    var url = "";
    if (pid == "myport") {
        url = "/portfolios/myportfolios";
        window.location = url;
    } else if (pid == "create") {
        var openfull = "openfull=" + "false";
        openCreateWindowFromDropDownMenu(openfull);
    } else {
        url = "/portfolios/view?pid=" + pid;
        window.location = url;
    }
}
createWin = null;

function openCreateWindowFromDropDownMenu(params) {
    var defaultCheck = "default"
    if (checkBrowser() == "is_mac") {
        createWin = window.open('/portfolios/create?' + params + '&defaultCheck=' + defaultCheck, 'createWin', 'resizable=yes, toolbar=no, location=no, directories=no, scrollbars, status=yes, width=875, height=500');
    } else {
        createWin = window.open('/portfolios/create?' + params + '&defaultCheck=' + defaultCheck, 'createWin', 'resizable=yes, toolbar=no, location=no, directories=no, scrollbars, status=yes, width=875, height=500');
    }
    createWin.focus();
}

function checkBrowser() {
    var agt = navigator.userAgent.toLowerCase();
    var is_major = parseInt(navigator.appVersion);
    var browser = "";
    if (agt.indexOf("gecko") != -1) {
        browser = "is_gecko";
    }
    if ((agt.indexOf('mozilla') != -1) && (agt.indexOf('spoofer') == -1) && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera') == -1) && (agt.indexOf('webtv') == -1)) {
        browser = "is_nav";
    }
    if (agt.indexOf("mac") != -1) {
        browser = "is_mac";
    }
    return browser;
} /* Generic Tab start bcorcoranirl*/
$(document).ready(function () {
    showGenericTab = function (divId, fId, tabId) {
        tabcurrent = $("#" + divId + tabId);

        if (jQuery.trim(tabcurrent.html()).length < 122) {


            $.get("/ajaxGenericTab.jsp", {
                fId: fId
            }, function (data) {
                tabcurrent.html(data);
            });
        }
        var gentabindex = 1;
        while (document.getElementById(divId + gentabindex)) {
            document.getElementById(divId + gentabindex).className = "inActiveGenTabBody";
            gentabindex++;
        }

        document.getElementById(divId + tabId).className = "activeGenTabBody";
        var gentabindex = 1;
        while (document.getElementById(divId + "but" + gentabindex)) {
            document.getElementById(divId + "but" + gentabindex).className = "genTab";
            gentabindex++;
        }
        document.getElementById(divId + "but" + tabId).className = "activeGenTab";


    }
}); /* Generic Tab end*/

/* Market News Pages Start */
$(document).ready(function () { /* Blogsmith migration - Prepopulated charts, so no need for AJAX request */
    showGenericTabMktNews = function (divId, tabId) {

        var tabcurrentMktNews = $("#" + divId + tabId);
        var gentabindexmktnws = 1;

        while (document.getElementById(divId + gentabindexmktnws)) {
            document.getElementById(divId + gentabindexmktnws).className = "inActiveGenTabBody";
            gentabindexmktnws++;
        }

        document.getElementById(divId + tabId).className = "activeGenTabBody";
        var gentabindexmktnws = 1;
        while (document.getElementById(divId + "but" + gentabindexmktnws)) {
            document.getElementById(divId + "but" + gentabindexmktnws).className = "genTab";
            gentabindexmktnws++;
        }
        document.getElementById(divId + "but" + tabId).className = "activeGenTab";
    }

    var df_mkt_tabs = ['NYMEX_GOLD_FUTURES', 'NYMEX_CRUDE_FUTURES', 'HEATING_OIL_FUTURES', 'NYMEX_SILVER_FUTURES', 'NYMEX_NATURAL_GAS_FUTURES', 'COTTON_FUTURES', 'LUMBER_RL_FUTURES', 'CORN_FUTURES'];


    showGenericTabFuture = function (divId, tabId) {
        //var df_mkt_url = "http://portal.pf.aol.com/mncus/ws?service=futures,&futurestype=2&futuresmax=1&futureskeyword="+df_mkt_tabs[tabId-1];
        var df_mkt_url = "http://portal.pf.aol.com/jsonqpus/ws?service=futures,&futurestype=2&futuresmax=1&futureskeyword=" + df_mkt_tabs[tabId - 1];
        tabcurrentMktNews = $("#" + divId + tabId); /* if (jQuery.trim(tabcurrentMktNews.html()).indexOf("THEFUTURE") >= 0 ) {*/
        $.ajax({
            'url': df_mkt_url,
            'type': 'GET',
            'dataType': 'jsonp',
            // this adds &callback=? by design
            'cache': true,
            'async': false,
            'success': function (data) {
                $("#" + divId + tabId).html().replace("THEFUTURE", data.ResultSet.futures[0].s);
                var str = $("#" + divId + tabId).html();
                var newstr = str.replace('THEFUTURE', data.ResultSet.futures[0].s);
                str = newstr.replace('THEEXCHANGE', data.ResultSet.futures[0].x);
                $("#" + divId + tabId).html(str);
                var gentabindexmktnws = 1;
                while (document.getElementById(divId + gentabindexmktnws)) {
                    document.getElementById(divId + gentabindexmktnws).className = "inActiveGenTabBody";
                    gentabindexmktnws++;
                }
                document.getElementById(divId + tabId).className = "activeGenTabBody";
                var gentabindexmktnws = 1;
                while (document.getElementById(divId + "but" + gentabindexmktnws)) {
                    document.getElementById(divId + "but" + gentabindexmktnws).className = "genTab";
                    gentabindexmktnws++;
                }
                document.getElementById(divId + "but" + tabId).className = "activeGenTab";
            }
        });
    }

    
    if(window.location.pathname.search(/market-news/i)>0){
    	showGenericTabFuture('13446tab', 1);
    }
    

    
    
}); /* Market News Pages end*/



/* dyna daily finance html photo gallery :  v1.0 - 20090429 */

function getElementsByClass(node, searchClass, tag) {
    var classElements = new Array();
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("\\b" + searchClass);
    for (i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}

var numSlides = null;
var slideNum = null;
var modInstId = document.title + " -pg";
var zfTot;

var docRef = document.referrer;
var refSpl = docRef.indexOf('?');
if (refSpl > 0) {
    var refUrl = docRef.substring(0, refSpl);
} else {
    var refUrl = docRef;
}
var refVal = "mmx_" + refUrl;

function hpg_deeplink(p) {
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'content_', 'div');
    numSlides = el.length;
    el[0].className = "content_1 hidden gcontent";
    slideNum = parseFloat(p);
    elNum = p - 1;
    hpgCount();
    el[elNum].className = "content_" + (++elNum) + " gcontent";
    return false;
}

function makePrintContent() {
    $('.gcontent').each(function () {
        $('#print_popup_content').append($(this).html())
    })

    $('.gallery_content').each(function () {
        $('#print_popup_content').append($(this).html())
    })
}

function callPrint() {
    makePrintContent();
    var headContent = document.getElementsByTagName('link');

    var linkContent = "";
    for (lc = 0; lc < headContent.length; lc++) {
        linkContent += '<link rel="stylesheet" type="text/css" href="' + headContent[lc].href + '"/>';
    }
    var WinPrint = window.open('', '', 'left=0,top=0,width=670,toolbar=0,scrollbars=1,status=0');
    //alert("print:" + $("#print_popup").html());
    //var bodyContent = document.getElementById('print_popup');
    WinPrint.document.write('<html><head>' + linkContent + '</head><body>')
    //WinPrint.document.write("<div id='hpgContainer'><div id='print_popup' style='display:block'>" + bodyContent.innerHTML + "</div></div>");
    WinPrint.document.write("<div id='hpgContainer'><div id='print_popup' style='display:block'>" + $('#print_popup').html() + "</div></div>");
    WinPrint.document.close();
    WinPrint.focus();

    //SOME IE VERSIONS STRIP INNERHTML ONCLICK EVENTS.  RE ASSIGN CLOSE AND PRINT FUNCTIONS 
    if ($.browser.msie) {
        popupWindow = WinPrint.document.getElementById('print_popup');
        $(popupWindow).children("a:eq(0)").removeAttr("onclick").click(function () {
            WinPrint.close();
        });
        $(popupWindow).children("a:eq(1)").removeAttr("onclick").click(function () {
            WinPrint.print();
        });
    }
}

function hpg_gallery_view() {
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'content_', 'div');
    numSlides = el.length;
    slideNum = 1;
    var start = 1;
    for (var x = 0; x < numSlides; x++) {
        el[x].className = "content_" + (start++) + " gcontent hidden";
    }
    el[0].className = "content_" + 1 + " gcontent";
    highlightFeatures('galleryView')
    geryOutFeatures('listAll');
    geryOutFeatures('print');
    geryOutFeatures('share');
    hideBothDropdown();
    hpgCount();
    adsReloadIframe('adsF0');
    hpg_buttons_enable();
    hpg_print_hide();
    document.getElementById('newFeaturesBottom').className = "hidden";
    document.getElementById('share_view').className = "hpgText last";
    return false;
}

function hideBothDropdown() {
    document.getElementById('count_bot_option').style.display = 'none';
    document.getElementById('count_top_option').style.display = 'none';
}

function hpg_list_all() {
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'content_', 'div');
    numSlides = el.length;
    slideNum = 1;
    for (var x = 0; x < numSlides; x) {
        el[x++].className = "content_" + x + " gallery_content";
    }
    highlightFeatures('listAll')
    geryOutFeatures('galleryView');
    geryOutFeatures('print');
    geryOutFeatures('share');
    hideBothDropdown();
    hpgCount();
    adsReloadIframe('adsF0');
    hpg_buttons_hide();
    hpg_print_hide();
    document.getElementById('newFeaturesBottom').className = "";
    document.getElementById('print_view').className = "hpgText last";
    return false;
}

function highlightFeatures(arg) {
    var selList = getElementsByClass(document.getElementById('hpgContainer'), arg, 'li');
    for (var x = 0; x < selList.length; x) {
        selList[x++].className = arg + " selected";
    }
}

function geryOutFeatures(arg) {
    var selList = getElementsByClass(document.getElementById('hpgContainer'), arg, 'li');
    for (var x = 0; x < selList.length; x) {
        selList[x++].className = arg;
    }
}

function hpg_next() {
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'content_', 'div');
    numSlides = el.length;
    if (slideNum == null) {
        slideNum = 1;
    }
    el[slideNum - 1].className = el[slideNum - 1].className + " hidden";
    if (slideNum == numSlides) {
        slideNum = 1;
    } else {
        slideNum = slideNum + 1;
    }
    hpgCount();
    el[slideNum - 1].className = "content_" + slideNum + " gcontent";;
    adsReloadIframe('adsF0');
    mmx_track(slideNum);
    hideBothDropdown();
    return false;
}

function hpg_prev() {
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'content_', 'div');
    numSlides = el.length;
    if (slideNum == null) {
        slideNum = 1;
    }
    el[slideNum - 1].className = el[slideNum - 1].className + " hidden";
    slideNum = slideNum - 1;
    if (slideNum == 0) {
        slideNum = numSlides;
    }
    hpgCount();
    el[slideNum - 1].className = "content_" + slideNum + " gcontent";
    adsReloadIframe('adsF0');
    mmx_track(slideNum);
    hideBothDropdown();
    return false;
}

function hpg_print_enable() {
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'print_content_', 'div');
    numSlides = el.length;
    slideNum = 1;
    for (var x = 0; x < numSlides; x) {
        el[x++].className = "print_content_" + x + " print_content";
    }
}

function hpg_print_hide() {
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'print_content_', 'div');
    numSlides = el.length;
    slideNum = 1;
    for (var x = 0; x < numSlides; x) {
        el[x++].className = "print_content_" + x + " print_content hidden";
    }
}

function hpg_gallery_hide() {
    var galleryViewEl = getElementsByClass(document.getElementById('hpgContainer'), 'content_', 'div');
    for (var x = 0; x < numSlides; x++) {
        galleryViewEl[x].className = galleryViewEl[x].className + " hidden";
    }
}

function hpg_buttons_enable() {
    var id2BlockOne = document.getElementById('navBttns1');
    if (id2BlockOne != null) {
        id2BlockOne.style.display = 'block';
    }
    var id2BlockTwo = document.getElementById('navBttns2');
    if (id2BlockTwo != null) {
        id2BlockTwo.style.display = 'block';
    }
}

function hpg_buttons_hide() {
    var id2BlockOne = document.getElementById('navBttns1');
    if (id2BlockOne != null) {
        id2BlockOne.style.display = 'none';
    }
    var id2BlockTwo = document.getElementById('navBttns2');
    if (id2BlockTwo != null) {
        id2BlockTwo.style.display = 'none';
    }
}

function hpgCount() {
    document.getElementById('selectNav1').innerHTML = slideNum + " of " + numSlides;
    document.getElementById('selectNav2').innerHTML = slideNum + " of " + numSlides;
}

function hpgInit() {
    if (!document.getElementById('hpgContainer')) {
        return false;
    }
    s_265.pageName = s_265.pageName + ' - HTML Gallery';
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'content_', 'div');
    numSlides = el.length;
    slideNum = 1;
    hpgCount();
    theUrl = document.URL;
    deepUrl = theUrl.split('?photo=');
    theSlide = deepUrl[1];
    if (theSlide > 0) {
        if (theSlide <= numSlides) {
            hpg_deeplink(deepUrl[1]);
        }
    }
    zfTot = zeroFill(numSlides);
}

function zeroFill(numl) {
    var n2s = "" + numl;
    while (n2s.length < 3) {
        n2s = "0" + n2s;
    }
    return n2s;
}

function hpgCountListBot() {
    document.getElementById('count_bot_option').innerHTML = "";
    for (var cl = 1; cl <= numSlides; cl++) {
        if (slideNum != cl) {
            document.getElementById('count_bot_option').innerHTML += "<a href='javascript:hpg_select_view_bot(" + cl + ");'>" + cl + " of " + numSlides + "</a><br/>";
        } else {
            document.getElementById('count_bot_option').innerHTML += "<span class='selected'>" + cl + " of " + numSlides + "</span><br/>";
        }
    }
    document.getElementById('count_top_option').style.display = 'none';
    document.getElementById('count_bot_option').style.display = 'block';
}

function hpgCountListTop() {
    document.getElementById('count_top_option').innerHTML = "";
    for (var cl = 1; cl <= numSlides; cl++) {
        if (slideNum != cl) {
            document.getElementById('count_top_option').innerHTML += "<a href='javascript:hpg_select_view_top(" + cl + ");'>" + cl + " of " + numSlides + "</a><br/>";
        } else {
            document.getElementById('count_top_option').innerHTML += "<span class='selected'>" + cl + " of " + numSlides + "</span><br/>";
        }
    }
    document.getElementById('count_top_option').style.display = 'block';
    document.getElementById('count_bot_option').style.display = 'none';
}

function hpg_select_view_top(arg) {
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'content_', 'div');
    numSlides = el.length;
    slideNum = arg - 1;
    if (slideNum == null) {
        slideNum = 1;
    }
    for (var x = 0; x < numSlides; x) {
        el[x++].className = "content_" + x + " gcontent hidden";
    }
    el[slideNum].className = "content_" + (slideNum + 1) + " gcontent";
    slideNum = slideNum + 1;
    adsReloadIframe('adsF0');
    mmx_track(slideNum);
    document.getElementById('count_top_option').style.display = 'none';
    hpgCount();
}

function hpg_select_view_bot(arg) {
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'content_', 'div');
    numSlides = el.length;
    slideNum = arg - 1;
    if (slideNum == null) {
        slideNum = 1;
    }
    for (var x = 0; x < numSlides; x) {
        el[x++].className = "content_" + x + " gcontent hidden";
    }
    el[slideNum].className = "content_" + (slideNum + 1) + " gcontent";
    slideNum = slideNum + 1;
    adsReloadIframe('adsF0');
    mmx_track(slideNum);
    document.getElementById('count_bot_option').style.display = 'none';
    hpgCount();
}

function hpg_print_view() {
    hideBothDropdown();
    document.getElementById('print_popup_content').innerHTML = "";
    var el = getElementsByClass(document.getElementById('hpgContainer'), 'print_content_', 'div');
    for (var x = 0; x < numSlides; x) {
        document.getElementById('print_popup_content').innerHTML += el[x++].innerHTML;
    }
    document.getElementById('print_popup').style.display = "block";
    return false;
}

function print_close() {
    document.getElementById('print_popup').style.display = 'none';
    return false;

}

function mmx_track(currImage) {
    var zfSlide = zeroFill(currImage);
    var zfTotal = zfTot;
    s_265.prop6 = refVal;
    s_265.prop7 = 'mmx_' + zfSlide + '_' + zfTotal;
    s_265.prop8 = 'mmx_HTML';
    s_265.prop9 = '';
    s_265.t();
    var f = document.getElementById('mm_track');
    var d = new Date();
    var cbts = d.getTime();
/* DEV set this only during DEV testing using PF dev until walletpop dev exists
	        var DEVmmxurl = "http://pf.channel.office.aol.com/mm_track/info_htmlphotogallery/"+modInstId+"-"+currImage+"-"+cbts;
	        f.src = DEVmmxurl;
	                     */
/* PROD will look for mm_track page on root domain */
    var mmxurl = "/mm_track/info_htmlphotogallery/" + modInstId + "-" + currImage + "-" + cbts;
    f.src = mmxurl;
}

window.addEventListener ? window.addEventListener("load", hpgInit, false) : window.attachEvent("onload", hpgInit); /*  end: html photo gallery  */

/* Start : LeftRail writers module */
var curSlideIdx = 1;
var noOfSlides = 3;
var slidesColWidth = 657;
var autoScrollTimer = 10000;
var si;
jQuery(document).ready(function () {
    var slidesColWidth = 657;
    showBox();
    $("#lineup ul li .rgt_arw").click(function () {
        var leftPos = $("#daily_lineup .tabSelected ul.slides").css("left");
        var newPos;
        if ($("#daily_lineup .tabSelected ul.slides li").size() <= (curSlideIdx * noOfSlides)) {
            //animate
            $("#daily_lineup .tabSelected ul.slides").css("left", slidesColWidth);
            newPos = 0;
            curSlideIdx = 1;

        } else {
            newPos = parseInt(leftPos) - slidesColWidth;
            curSlideIdx = curSlideIdx + 1;
        }
        $("#daily_lineup .tabSelected ul.slides").animate({
            left: newPos
        }, 200);
        selectBox();
    })
    $("#lineup ul li .lft_arw").click(function () {
        var leftPos = $("#daily_lineup .tabSelected ul.slides").css("left");
        var newPos = parseInt(leftPos) + slidesColWidth;
        if (curSlideIdx == 1) {
            var ceilpos = Math.ceil($('#daily_lineup .tabSelected ul.slides li').size() / noOfSlides);
            $("#daily_lineup .tabSelected ul.slides").css("left", -parseInt(slidesColWidth * ceilpos));
            newPos = -parseInt((ceilpos - 1) * slidesColWidth);
            curSlideIdx = ceilpos;
        } else curSlideIdx = curSlideIdx - 1;
        $("#daily_lineup .tabSelected ul.slides").animate({
            left: newPos
        }, 200);
        selectBox();
    })

    $("#lineup ul li .box").mouseover(function () {
        $(this).addClass("box_hover");
    }).mouseout(function () {
        $(this).removeClass("box_hover");
    });
    $("#lineup ul li .lft_arw").mouseover(function () {
        $(this).addClass("lft_arw_hover");
    }).mouseout(function () {
        $(this).removeClass("lft_arw_hover");
    });
    $("#lineup ul li .rgt_arw").mouseover(function () {
        $(this).addClass("rgt_arw_hover");
    }).mouseout(function () {
        $(this).removeClass("rgt_arw_hover");
    });

    $("#lineup ul li .box").click(function () {
        $("#daily_lineup .tabSelected ul.slides").css('left', -($("#lineup ul li .box").index(this)) * slidesColWidth);
        curSlideIdx = $("#lineup ul li .box").index(this) + 1;
        selectBox();
    })
    $("#lineup ul li.tab a").click(function () {
        curSlideIdx = 1;
        $("#daily_lineup .slider").removeClass("tabSelected");
        $("#daily_lineup .slider ul.slides").removeClass("tabSelected");
        $("#daily_lineup ." + this.id).addClass("tabSelected");
        $("#daily_lineup ul#ul_" + this.id).css("left", "0")
        selectTab(this.id);
        selectBox();
        showBox();
    })
});

function autoScroll() {
    var leftPos = $("#daily_lineup .tabSelected ul.slides").css("left");
    var newPos = parseInt(leftPos) - this.slidesColWidth;
    if ($("#daily_lineup .tabSelected ul.slides li").size() <= (curSlideIdx * noOfSlides)) {
        newPos = 0;
        curSlideIdx = 1;
    } else {
        newPos = parseInt(leftPos) - slidesColWidth;
        curSlideIdx = curSlideIdx + 1;
    }
    $("#daily_lineup .tabSelected ul.slides").css("left", newPos);
    selectBox();
}

function resetScroll() {
    clearInterval(si);
    si = setInterval(autoScroll, autoScrollTimer);
}

function selectBox() {
    $("#lineup ul li .box").removeClass("boxSelected");
    $("#lineup ul li #box" + curSlideIdx).addClass("boxSelected");

    //load author images on demand
    if (curSlideIdx == 2) {
        var url4 = document.getElementById('urlHolder4').innerHTML;
        var url5 = document.getElementById('urlHolder5').innerHTML;
        var url6 = document.getElementById('urlHolder6').innerHTML;
        document.getElementById('pic4').src = url4;
        document.getElementById('pic5').src = url5;
        document.getElementById('pic6').src = url6;
    }
    if (curSlideIdx == 3) {

        var url7 = document.getElementById('urlHolder7').innerHTML;
        var url8 = document.getElementById('urlHolder8').innerHTML;
        var url9 = document.getElementById('urlHolder9').innerHTML;
        document.getElementById('pic7').src = url7;
        document.getElementById('pic8').src = url8;
        document.getElementById('pic9').src = url9;

    }
    if (curSlideIdx == 4) {
        var url10 = document.getElementById('urlHolder10').innerHTML;
        var url11 = document.getElementById('urlHolder11').innerHTML;
        var url12 = document.getElementById('urlHolder12').innerHTML;
        document.getElementById('pic10').src = url10;
        document.getElementById('pic11').src = url11;
        document.getElementById('pic12').src = url12;
    }


}

function selectTab(id) {
    $("#lineup ul li.tab").removeClass("tabOn");
    $("#lineup ul li#hdr_" + id).addClass("tabOn");
}

function showBox() {
    var boxCnt = Math.ceil($('#daily_lineup .tabSelected ul.slides li').size() / noOfSlides);
    $("#lineup ul li.carosel span.box").each(function () {
        var currBoxIdx = $("#lineup ul li.carosel span.box").index(this) + 1;
        if (currBoxIdx > boxCnt) {
            $("#lineup ul li.carosel span#box" + currBoxIdx).css("display", "none");
        } else {
            $("#lineup ul li.carosel span#box" + currBoxIdx).css("display", "block");
        }

    })
} /* End : LeftRail writers module */

/*Start: Hot Stock Module */
jQuery(document).ready(function () {
    $(".hotstockData tbody tr:odd").addClass("white_bg");
    $(".hotstockData tbody tr:even").addClass("grey_bg");
    $(".hotstockData tbody tr").mouseover(function () {
        $(this).addClass("grey_bg_hover");
    }).mouseout(function () {
        $(this).removeClass("grey_bg_hover");
    })

}); /*End: Hot Stock Module */
/*Start: Right rail article synopsis */
jQuery(document).ready(function () {
    $(".editorOverride_article_collection .blogContent").hide();
    $(".editorOverride_article_collection .blogContent").each(function () {
        var str = $(this).children("*").text();
        $(this).children("*").remove();
        $(this).append("<p class='content'>" + str + "</p>");
    });
    $('.editorOverride_article_collection .colhdr .postHdln a').hover(function () {
        $(this).parents().nextAll(".blogContent").css({
            "top": $(this).offset().top + $(this).height() + 10,
            "left": $(this).offset().left - 7
        });
        $(this).parents().nextAll(".blogContent").show();
    }, function () {
        $(this).parents().nextAll(".blogContent").hide();
    });
    $(".dfWire_article_collection .blogContent").hide();
    $(".dfWire_article_collection .blogContent").each(function () {
        var str = $(this).children("*").text();
        $(this).children("*").remove();
        $(this).append("<p class='content'>" + str + "</p>");
    });
    $('.dfWire_article_collection .colhdr .postHdln a').hover(function () {
        $(this).parents().nextAll(".blogContent").css({
            "top": $(this).offset().top + $(this).height() + 17,
            "left": $(this).offset().left
        });
        $(this).parents().nextAll(".blogContent").show();
    }, function () {
        $(this).parents().nextAll(".blogContent").hide();
    });

});

/*End: Right rail article synopsis */
/* start: US16074 - Font Size Label on Article */
$(document).ready(function () {
    $('#articleToolsTop .textSize a').click(function () {
        $('#articleToolsTop .textSize a').removeClass("selected");
        $(this).addClass("selected");
    });
}); /* end: US16074 - Font Size Label on Article */
/* start: sphere module */
jQuery(document).ready(function () {
    $("#Spheretalk ul li:last").each(function () {
        $(this).addClass("last");
    });
    $("#Sphereart ul li:last").each(function () {
        $(this).addClass("last");
    });
}); /* end: sphere module */

/* start time functions*/

function monthToNum(month) {
    var monthnum = -1;
    if (month == "Jan") monthnum = 0;
    else if (month == "Feb") monthnum = 1;
    else if (month == "Mar") monthnum = 2;
    else if (month == "Apr") monthnum = 3;
    else if (month == "May") monthnum = 4;
    else if (month == "Jun") monthnum = 5;
    else if (month == "Jul") monthnum = 6;
    else if (month == "Aug") monthnum = 7;
    else if (month == "Sep") monthnum = 8;
    else if (month == "Oct") monthnum = 9;
    else if (month == "Nov") monthnum = 10;
    else if (month == "Dec") monthnum = 11;

    return monthnum;
}



function getMS(date) {
    var retdat = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
    return retdat;
}



function getNthDay(dayOfWeek, nth, daysInMonth, month) {
    // dayOfWeek sunday==0 saturday==6
    //nth 1st =1 snd == 2
    //daysInMonth how many days that month has .i.e 30 or 31
    //month 0== january 1 ==february
    var currentNth = 1;
    var resultdaynum = -1;
    var start = new Date();

    start.setMonth(month, 1);
    start.setHours(2, 0, 0, 0)


    for (i = 1; i <= daysInMonth; i++) {
        start.setDate(i);
        if (currentNth <= nth && start.getDay() == dayOfWeek) {
            currentNth++;
            resultdaynum = i;
        }

    }
    return resultdaynum;
}

function make2digit(num) {
    if (num < 10) num = "0" + num;
    return num;
}

function parsedate(datestr) {
    var thedate = -1;
    var digitpattern = /\w+/g
    matches = datestr.match(digitpattern);
    thedate = new Date(matches[3], monthToNum(matches[2]), matches[1], matches[4], matches[5], matches[6]);
    return thedate;
}

function transformtime(datestr) {
    //parse a date in the format "Tue, 8 Mar 2008 5:38:22 GMT"
    //outputs in the format hh:mm AM/PM mm/dd/yy
    //if the date is between 7 gmt on the second sunday in march
    //and 6gmt on the first sunday in november then the time is gmt-4 otherwise its gmt -5
    var retstr = -1;
    var thedate = parsedate(datestr);
    //Date (year,month,day, hour,min, sec )

    var DSTstart = new Date(thedate.getFullYear(), 2, getNthDay(0, 2, 31, 2), 7, 0, 0); // 7 gmt is 2 est
    var DSTend = new Date(thedate.getFullYear(), 10, getNthDay(0, 1, 30, 10), 6, 0, 0); //6 gmt is 2 edt
    var thedateMS = getMS(thedate);
    var DSTstartMS = getMS(DSTstart);
    var DSTendMS = getMS(DSTend);
    if (thedateMS > DSTstartMS && thedateMS < DSTendMS) {
        thedate.setUTCHours(thedate.getUTCHours() - 4);
    } else {
        //not daylight saving
        thedate.setUTCHours(thedate.getUTCHours() - 5);
    }

    //hh:mm AM/PM mm/dd/yy
    var themonth = thedate.getMonth() + 1;
    var theyear = thedate.getFullYear().toString().substring(2);
    var amOrPm;
    var thehour = thedate.getHours();
    if (thehour < 12) amOrPm = "AM";
    else amOrPm = "PM";
    if (thehour > 12) thehour = thehour - 12;
    if (thehour == 0) thehour = 12;

    retstr = thehour + ":" + make2digit(thedate.getMinutes()) + " " + amOrPm + " " + make2digit(themonth) + "/" + make2digit(thedate.getDate()) + "/" + theyear;
    return retstr;
} /* end time functions*/






function loginCheck() {


    var url = "siteState=" + encodeURIComponent("OrigUrl=" + encodeURIComponent(window.location));
    document.getElementById("loginlink").href = "https://my.screenname.aol.com/_cqr/login/login.psp?sitedomain=" + sitedomain + "&" + url;
    document.getElementById("reglink").href = "https://new.aol.com/productsweb/?promocode=827686";

}


/* end sign in*/
/* start print function */

function PrintStory() {
    if (document.getElementById('tempcontent')) {
        document.getElementById('tempcontent').innerHTML = "";
    } else {
        var dv = document.createElement("div");
        dv.id = "tempcontent";
        document.body.appendChild(dv);
    }
    document.getElementById('tempcontent').innerHTML = $('#Article').html();
    $('#tempcontent script, #tempcontent .blogArtAd').remove();
    $('#tempcontent iframe').parent().remove();
    var headContent = document.getElementsByTagName('link');
    var linkContent = "";
    for (lc = 0; lc < headContent.length; lc++) {
        linkContent += '<link rel="stylesheet" type="text/css" href="' + headContent[lc].href + '"/>';
    }
    var WinPrint = window.open('', '', 'left=0,top=0,width=670,toolbar=0,scrollbars=1,resizable=0,status=0');
    WinPrint.document.write('<html><head>' + linkContent + '</head><body id="printContent">');
    WinPrint.document.write('<div class="header"><a onclick="javascript: window.close();" href="#" class="options">Close[x]</a><a onclick="javascript: window.print(); return false;" href="#" class="options">Print</a><h2 title="DailyFinance"><a title="DailyFinance Main" href="http://www.dailyfinance.com/" class="_o0-0"><img src="http://o.aolcdn.com/os/money/dailyfinance/css/aol.globalheader-1.1_df.png" alt="Dailyfinance"/></a></h2></div>');
    WinPrint.document.write("<div id='Article' class='articleStory'>" + $('#tempcontent').html() + "</div>");
    WinPrint.document.close();
    WinPrint.focus();
} /* end print function */
/* Function to return Search Query term */

function getParameterByName(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
} /* End of Query term function */

/* jQuery to remove a class in the buckets and replace it with a new class */
$(document).ready(function () {
    $("#col2Sel:last-child").removeClass("twoCol");
    $("#col2Sel:last-child").addClass("twoCol_second");
    $("#col3Sel:last-child").removeClass("threeCol");
    $("#col3Sel:last-child").addClass("threeCol_third");
}); /* end of class modification */

/* Gallery Show Post */
var hpg_total_cnt = 12
var hpg_track_imgid = 1;
var hpg_pageUrl = "http://www.dailyfinance.com/investing/breakaway-brands";
var hpg_title = "Breakaway Brands";
var hpg_current = 0;
var listExists = "";
var botNav_pos = "";
var hpg_adcount = 0;
var hpg_countdisp = 0;
var hpg_cntDiff = 0;
var hpg_currimage = 1;
var hpg_pageURL = "http://www.dailyfinance.com";
var hpg_pageTitle = "Breakaway Brands";
var hpg_pageConUrl = "investing/breakaway-brands/";
var hpg_ad_interval = 0;
var hpg_ad_flag = 1; /* End of Gallery */


//This functions is used to remove the duplicate image in articles
function hideUnwantedRepeatImage() {
    var imageNumber = 1;
    $("img", "#articleBody").each(function () {
        if (imageNumber === 2) {
            $(this).hide();
        }
        imageNumber++;
    });
    document.getElementById('articleBody').style.display = "block";
}

//This is used for the symbol lookup page
$('[data-mod="stock-lookup-search"] form').live('submit.stock', function () {
    $(this).attr('action', '/lookup/' + $(this).find('[name="ticker"]').val());
});
