/*
 Rev:$Revision: 107495a $
*/

// check for cookie containg user's live updates status.
var lvStatusInit = getCookie('AOL_StockQuotesLiveUpdate');
var marketStatus = "";
// lvReady = 0 until hash is built and populated.
var lvReady = 0;

// declare the live stocks object
var lvStocks = new Object();

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;

// Body onload functions
function template_init(){
    
    //in older code deletion had potential of leaving comma 
    if(getCookie("AOL_StockQuotesWatchList")=="," )delCookie("AOL_StockQuotesWatchList");

    //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("mnc_marketmovers_sub");
    var lvHotStocksAltCheck = document.getElementById("lvHotStocksAlt");

    //number of modules on the page  
    if( lvHotStocksAltCheck + mnc_marketmoversCheck + watchlistCheck + marketNewsCheck + lvHotStocksCheck != 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);
        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);

function buildArrayInit(obj) {
    buildArray(obj);
    displaySymbolData(last);
    select_tabs(first);
    paginationData = tabCount + " of " + arrMarketData.length;
    document.getElementById("carouselPagination").innerHTML = paginationData;
} // end buildArrayInit
// end of body On load functions

function sendLinkEvent()
{
}

/* header functions */
function p_o(o){return document.getElementById(o);}

function ai_posX(obj){
 var left=0;
 if(obj.offsetParent){
  while(obj.offsetParent){
   left+=obj.offsetLeft;
   obj=obj.offsetParent;
  }
 }else if(obj.x)left+=obj.x;
 return left;
}

function togMore(e,state,oDivName){
 if ((oDivName == undefined) || (oDivName.length <= 0)) {
    oDivName = 'smore';
 }
 var oDiv=p_o(oDivName);
 if(state=='show'){
  posMore(e,oDivName);
  oDiv.style.zIndex=99999999;
  oDiv.style.display='block';
 } else {
  oDiv.style.display='none';
 }
 return false;
}

function posMore(e,oDivName){
    if ((oDivName == undefined) || (oDivName.length <= 0)) {
        oDivName = 'smore';
    }
    var oDiv=p_o(oDivName);
        var oLnk=p_o(oDivName+'a');

        posY = findMousePos(e);
        oDiv.style.left=(ai_posX(oLnk))+'px';
        oDiv.style.top=(posY+oLnk.offsetHeight/2)+'px';
}

/* Utility trim string */
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

/* Prevent IE flickr */
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

/* Figure out where mouse is upon a click */
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;
}

// Begin : Headers 2 code
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

function srchSub(ref){
  var frm=p_o("search");
  var queryval = frm.topquery.value.trim();
  queryval = queryval.replace( /\+/, " ");
  newurl = ref.href + queryval;
  window.location = newurl;
  return false;
}

function searchTarget(url, newWindow, newTarget) {
    // Set the target for the form
    document.dp_topform.action = url;
    if (newWindow) {
        document.dp_topform.target = '_blank';
    } else {
        document.dp_topform.target = '';
    }

    // Update the tabs classes to allow highlighting of the selected
//    var arrElements = getElementsByClassName ('searchCatBg', 'li');
    var arrElements = getElementsByClassName ('searchTabBg', 'li');
    for (var i=0; i<arrElements.length; i++) {
        arrElements[i].className = '';
    }
//    document.getElementById(newTarget).className = 'searchCatBg';
    document.getElementById(newTarget).className = 'searchTabBg';
	if(document.dp_topform.query.value!="") {
	  submitHeaderSearch('onclick');
	}
    return false;
}

	/*  functions for old BigBowl Footer  */
	function searchTargetFt(url, newWindow, newTarget) {
    	// Set the target for the form
	    document.bb_botform.action = url;
    	if (newWindow) {
	        document.bb_botform.target = '_blank';
    	} else {
	        document.bb_botform.target = '';
    	}

	    // Update the tabs classes to allow highlighting of the selected
    	var arrElements = getElementsByClassName ('searchCatBgFt', 'li');
	    for (var i=0; i<arrElements.length; i++) {
    	    arrElements[i].className = '';
	    }
    	document.getElementById(newTarget).className = 'searchCatBgFt';
		if(document.bb_botform.query.value!="") {
		  submitFooterSearch('onclick');
		}
    	return false;
	}
	/* end: old bigbowl footer search */

function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr[arr.length] = objColl[i];
          //arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}

function eventIsEnterKey(event) {
    if (event && event.which == 13 || window.event && window.event.keyCode == 13 || event && event.which == 3 || window.event && window.event.keyCode == 3) {
        return true;
    }
    return false;
}

function submitHeaderSearch(event) {
    if (event == "onclick" || eventIsEnterKey(event)) {
        return srchSub2();        
    } else {
        return true;
    }
}

function submitFooterSearch(event) {
    if (event == "onclick" || eventIsEnterKey(event)) {
        return srchSub4();        
    } else {
        return true;
    }
}

function srchSub2() {
    var frm=p_o("search");
    var queryval = frm.topquery.value.trim();
    queryval = queryval.replace( /\+/, " ");
    var newurl = frm.action + queryval;
    if (frm.target == '_blank') {
        window.open(newurl, '_blank', '');
    } else {
        window.location = newurl;
    }
    return false;
}

function srchSub3(ref){
  var frm=p_o("searchFt");
  var queryval = frm.botquery.value.trim();
  queryval = queryval.replace( /\+/, " ");
  newurl = ref.href + queryval;
  window.location = newurl;
  return false;
}

function srchSub4(){
  var frm=p_o("searchFt");
  var queryval = frm.botquery.value.trim();
  queryval = queryval.replace( /\+/, " ");
  var newurl = frm.action + queryval;
  if (frm.target == '_blank') {
      window.open(newurl, '_blank', '');
  } else {
      window.location = newurl;
  }
  return false;
}
/* end header functions */

//Prevent IE flickr
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

/* Sonar v2 */
sonar={v:2,d:0,ae:function(a,b,c){if(a.addEventListener){a.addEventListener(b,c,false)}else{if(a.attachEvent){a.attachEvent("on"+b,c)}}},re:function(a,b,c){if(a.removeEventListener){a.removeEventListener(b,c,false)}else{if(a.detachEvent){a.detachEvent("on"+b,c)}}},b:"",detect:function(c,a){if(sonar.b==""){sonar.b=document.getElementsByTagName("body")[0]}var g=document,h=window,i=c,k=0,j=sonar.b.offsetHeight,e=h.innerHeight||g.documentElement.clientHeight||g.body.clientHeight||0,f=g.documentElement.scrollTop||h.pageYOffset||g.body.scrollTop||0,b=c.offsetHeight;a=a||sonar.d;if(!c.__top||c.__bh!=j){if(i.offsetParent){do{k+=i.offsetTop}while(i=i.offsetParent)}c.__top=k;c.__bh=j}if((c.__top+b)<(f-a)||(c.__top)>(f+e+a)){return false}return true},c:[],add:function(a){if(typeof a.obj=="object"&&typeof a.call=="function"){if(sonar.detect(a.obj,(a.px||sonar.d))){a.call(a.obj);return}else{if(!window.__sonarBlip){sonar.ae(window,"scroll",sonar._poll);window.__sonarBlip=1}sonar.c.push(a)}}},_poll:function(){var d,c=sonar.c,b,a=c.length,e;for(b=0;b<a;b++){d=c[b];if(!d){continue}e=d.px||sonar.d;if(sonar.detect(d.obj,e)){d.call(d.obj);sonar.c.splice(b,1);if(sonar.c.length==0){sonar.re(window,"scroll",sonar._poll);window.__sonarBlip=0}}}}};
/* Sonar Ion v2 */
sonar.ion=function(f){var e=0,a=document.getElementsByTagName("img"),d="http://o.aolcdn.com/js/x.gif",c,b=a.length;f=f||e;for(c=0;c<b;c++){if(sonar.detect(a[c],f)){continue}a[c].__src=a[c].src;a[c].src=d;sonar.add({obj:a[c],px:f,call:function(g){g.src=g.__src;g.__src=undefined}})}};


// Feed Module Mouse Over Popup Functions - Starts
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";
       
        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;
}
// Feed Module Mouse Over Popup Functions - Ends

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 = "http://finance.aol.com/usw/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="http://finance.aol.com/quotes/"+sym+"/"+exch+"?tabs="+dist;
                }
                else{
                        url="http://finance.aol.com/quotes/"+exch+"?tabs="+dist;
                }
        }
        else{
                if((sym!=null)&&(sym.length>0)){
                        url="http://finance.aol.com/quotes/"+sym+"/"+exch+"/"+dist+"?tabs="+dist;
                }
                else{
                        url="http://finance.aol.com/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){
      ensureUploadScriptIsLoaded(portURL + elemStks+'&callback=mnc_myportfolio_sub');
}

function mnc_myportfolio_sub(obj) {
    ourElement ="mnc_myportfolio_sub" +elemNum ; 
    moduleString ='';

    /* 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){
        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 = "";

            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 + '"><td class="wl_Symbol"><a  title="' + obj.ResultSet.symslist[i].n + '" href="' + obj.ResultSet.symslist[i].lu + '">' + obj.ResultSet.symslist[i].s + '</a></td>';
            moduleString +='<td class="last">' + obj.ResultSet.symslist[i].p + '</td>';
            moduleString +='<td  class="amountIncr">' + obj.ResultSet.symslist[i].c.replace('+','&nbsp;&nbsp;') + '</td>';
            moduleString +='<td class="moneyarrow">&nbsp;</td>';

            if (obj.ResultSet.symslist[i].pc.indexOf('N/A') < 0)
                moduleString +='<td class="percentIncr">' + obj.ResultSet.symslist[i].pc.replace('+','').replace('-','') + '%</td>';
            else
                moduleString +='<td class="percentIncr">' + obj.ResultSet.symslist[i].pc + '</td>';

            moduleString +='<td class="wl_chart" title="See Chart for ' + obj.ResultSet.symslist[i].s + '"><a href="' + obj.ResultSet.symslist[i].lu + '/charts">&nbsp;&nbsp;&nbsp;&nbsp;</a></td>';
            moduleString +='<td class="wl_headlines" title="See Latest Headlines for ' + obj.ResultSet.symslist[i].s + '"><a href="' + obj.ResultSet.symslist[i].lu.replace("/quotes/","/headlines/") + '">&nbsp;&nbsp;&nbsp;&nbsp;</a></td></tr>';


        }
    moduleString +='</tbody></table></div>';
    headlines ='';
    headlinesLoop = ''; 
    headlines = '<div class="seesub2"><p class="seesubhead">Top Headlines</p>';

    //try looping thru news results from ajax call
    try{
        for(var i=0;i<obj.ResultSet.newspress.length && i<newsMAX;i++){
            headlinesLoop +='<div class="headlines"><span class="headsymbol">' + obj.ResultSet.newspress[i].s + '&nbsp;&nbsp;-&nbsp;&nbsp;';
            headlinesLoop +='<a href="' + obj.ResultSet.newspress[i].u + '" >' + obj.ResultSet.newspress[i].h.substr(0,35);
            if(obj.ResultSet.newspress[i].h.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
                headlinesLoop +='</a><br /><span class="headlinedate">' + obj.ResultSet.newspress[i].d + '&nbsp;</span>';
            headlinesLoop +='<span class="headlinesource">|&nbsp;' + obj.ResultSet.newspress[i].i + '</span>';
            headlinesLoop +='</div>';
        }
        headlinesLoop +='<div class="pfeditview"><a class="pfview" href="' + document.getElementById("viewUrl" + elemNum).innerHTML + '">More Headlines</a></div>';
    }catch(err){
       headlinesLoop ='<div class="headlines">No news for these symbols at this time.</div>'; 
    }
    headlines += headlinesLoop +'<div class="pfeditview"><a class="pfedit" href="' + document.getElementById("viewUrl" + elemNum).innerHTML.replace("view","edit") + '">Edit Portfolio</a><a class="pfview" href="' + document.getElementById("viewUrl" + elemNum).innerHTML + '">View Porfolio</a></div></div>';

    headlines += '<div class="hidesum"><a href="javascript:void(0);" title="Hide Portfolio" onclick="javascript:closePortDiv();elemNum=-1;" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hide</a></div>';

    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 #DEDDE2';
    document.getElementById("mnc_myportfolio_sub" +elemNum).style.background = '#F7F7F7';
    document.getElementById("portSubRow" +elemNum).style.background = '#F7F7F7';

    previousElemNum = elemNum;
    }catch(err){
        //alert(err);
    }
}

//general default function to use to make json calls
function ensureUploadScriptIsLoaded(jsonCall) {
    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.display = 'none';
        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 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());
}

function delCookie (NameOfCookie) {
    if (getCookie(NameOfCookie)) {
        document.cookie = NameOfCookie + "=" +
        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

//function to display watchlist contents
function mnc_watchlist(obj) {   
    var addportfolioStr;
    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) {
        ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + wlSyms +'&callback=defWatchList');
        document.getElementById("watchNav").setAttribute("className", "activeTab");
        document.getElementById("portNav").setAttribute("className", "");
    } else {
        wlLive(wlSyms);
        document.getElementById("mnc_portfolios").style.display = "none";
        document.getElementById("mnc_recentquotes").style.display = "none";
        document.getElementById("mnc_watchlist").style.display = "block";
	document.getElementById("portNav").setAttribute("class", "");
        document.getElementById("watchNav").setAttribute("class", "activeTab");
        document.getElementById("watchNav").setAttribute("className", "activeTab");
        document.getElementById("portNav").setAttribute("className", "");
    }
    //remove focus from textfield
    document.getElementById("addwatchlistAdd").focus();window.focus();
    //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 showPortfolio(){
    if(lvStatusInit == 0) {
         ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + symString +'&porttype=2&portmax=100&callback=rebuildLiveHash');
        //previousElemNum = -1;seeSubPort(elemStks);
    } 
    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("portNav").setAttribute("className", "activeTab");
    document.getElementById("watchNav").setAttribute("className", "");
}

//ajax call for one symbol to validate get and pass on to errorcheck 
function validateSymbol(ourSymbol){
   var head = document.getElementsByTagName("body")[0];
   script = document.createElement('script');
   script.id = 'uploadScript';
   script.type = 'text/javascript';
   script.src = 'http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + ourSymbol + '&callback=errorCheck';
   head.appendChild(script);
}

//watchlist symbol is added
function errorCheck( obj ){

    var previousSym = wlSyms;

    try{
        flagVar = obj.ResultSet.symslist[0].pc.length;
        var sym = obj.ResultSet.symslist[0].s;
        if ( sym && AOL_StockQuotesWatchList.indexOf("," + sym + ",") == -1 ) {
           if(AOL_StockQuotesWatchList.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.length > 0){
               if (!AOL_StockQuotesWatchList){
                   setCookie("AOL_StockQuotesWatchList", "," + sym + ",", watchCookieLen) ;
               }else{
                   AOL_StockQuotesWatchList = sortString("," + sym + AOL_StockQuotesWatchList);
                   setCookie("AOL_StockQuotesWatchList", AOL_StockQuotesWatchList, watchCookieLen);
               }
               if (lvStocks[sym] == undefined && sym.indexOf("C:") != 0) {
                   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";

                   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};
              }

               AOL_StockQuotesWatchList = getCookie("AOL_StockQuotesWatchList");
               getWLsyms();
               
               mnc_watchlist();
               document.getElementById('addwatchlist').value = addText;
               userAdding=0;//indicates user is no longer in the process of adding
           }
        }
    }catch(err){
        goodSymbol = 0;document.getElementById("symbolErr").innerHTML =symbolErr; 
    }
        
}

//add new watchlist symbols
function addWatchList(){

   //start addition clean 
    if(errFlag==1){
        document.getElementById("symbolErr").innerHTML =defSymErr;
        errFlag=0;
    }
    //goodSymbol = 1;
    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;
    }
}

//delete symbol by symbol
function delFromList( sym ){
   //remove error shown if any 
   document.getElementById("symbolErr").innerHTML =defSymErr;
   sym= sym.toUpperCase();
   goodSymbol=1;
   errFlag=0;
   if( AOL_StockQuotesWatchList.indexOf("," + sym + ",") > -1){

        setCookie("AOL_StockQuotesWatchList", AOL_StockQuotesWatchList.replace("," + sym + ",",","), watchCookieLen);
    }
    AOL_StockQuotesWatchList = getCookie("AOL_StockQuotesWatchList");
    //if comma is left delete cookie
    if(getCookie("AOL_StockQuotesWatchList")=="," )
        delCookie("AOL_StockQuotesWatchList");
         
    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_StockQuotesWatchList");
    AOL_StockQuotesWatchList="";
    wlSyms = "";
    mnc_watchlist();
    document.getElementById("symbolErr").innerHTML =defSymErr;
}

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

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

    ensureUploadScriptIsLoaded(mostactivesURL + xchnge + '&mosttype=0,3,4&&mostmax=' + symbolMax[0] + '&callback=mnc_marketmovers');
}

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

function mnc_marketmovers(obj) {
    mvUpdateCnt = 0;
    marketmoversString = "";
    //most actives
    subSection++;
    mostActiveObj = obj.ResultSet.mostactives[0].mostactive0;
    marketmoversString +='<h3>' + catTitle[0]  + '</h3>';
    marketmoversString +='<table class="marketData" border="0" cellpadding="0" cellspacing="0">';
    marketmoversString +='<thead><tr class="header"><th class="th_symbol">' + symLbl + '</th><th class="th_last">' + lastLbl + '</th><th colspan="3" class="th_change">' + changeLbl + '</th><th class="th_volume">' + volumeLbl + '</th></tr></thead><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 = "";
        if(mostActiveObj[i].c.indexOf("+") != -1)
            var stockDirection = "positive"; 
        else if(mostActiveObj[i].c.indexOf("-") != -1)
            var stockDirection = "negative";

        marketmoversString +='<tr class="' + stockDirection + '">';
        marketmoversString +='<td class="wl_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></td>';
        else
            marketmoversString +=mostActiveObj[i].s + '</a></td>';

        marketmoversString +='<td class="last">' + mostActiveObj[i].p + '</td>';
        marketmoversString +='<td class="amountIncr">' + mostActiveObj[i].c.replace('+','&nbsp;') + '</td>';
        marketmoversString +='<td class="moneyarrow">&nbsp;</td>';
        marketmoversString +='<td class="percentIncr">' + mostActiveObj[i].pc.replace('+','').replace('-','') + '%</td>';
        marketmoversString +='<td class="mv_volume">' + mostActiveObj[i].v + '</td></tr>';      

    }
    marketmoversString +='</tbody></table><div class="footerLink"><a href="' + catLinksLnk[subSection-1]  + '">' + catLinksLbl[subSection-1]  + '</a></div>';

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

    marketmoversString +='<thead><tr class="header"><th class="th_symbol">' + symLbl + '</th><th class="th_last">' + lastLbl + '</th><th colspan="3" class="th_change">' + changeLbl + '</th><th class="th_volume">' + volumeLbl + '</th></tr></thead><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 = "";
        if(mostActiveObj[i].c.indexOf("+") != -1)
            var stockDirection = "positive"; 
        else if(mostActiveObj[i].c.indexOf("-") != -1)
            var stockDirection = "negative";

        marketmoversString +='<tr class="' + stockDirection + '">';
        marketmoversString +='<td class="wl_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></td>';
        else
            marketmoversString +=mostActiveObj[i].s + '</a></td>';

        marketmoversString +='<td class="last">' + mostActiveObj[i].p + '</td>';
        marketmoversString +='<td class="amountIncr">' + mostActiveObj[i].c.replace('+','&nbsp;') + '</td>';
        marketmoversString +='<td class="moneyarrow">&nbsp;</td>';
        marketmoversString +='<td class="percentIncr">' + mostActiveObj[i].pc.replace('+','').replace('-','') + '%</td>';
        marketmoversString +='<td class="mv_volume">' + mostActiveObj[i].v + '</td></tr>';      

    }
    marketmoversString +='</tbody></table><div class="footerLink"><a href="' + catLinksLnk[subSection-1]  + '">' + catLinksLbl[subSection-1]  + '</a></div>';
    
    //biggest losers
    subSection++;
    mostActiveObj = obj.ResultSet.mostactives[2].mostactive4;  
     marketmoversString +='<h3>' + catTitle[2]  + '</h3>';
    marketmoversString +='<table class="marketData" border="0" cellpadding="0" cellspacing="0">';

    marketmoversString +='<thead><tr class="header"><th class="th_symbol">' + symLbl + '</th><th class="th_last">' + lastLbl + '</th><th colspan="3" class="th_change">' + changeLbl + '</th><th class="th_volume">' + volumeLbl + '</th></tr></thead><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 = "";
        if(mostActiveObj[i].c.indexOf("+") != -1)
            var stockDirection = "positive"; 
        else if(mostActiveObj[i].c.indexOf("-") != -1)
            var stockDirection = "negative";

        marketmoversString +='<tr class="' + stockDirection + '">';
        marketmoversString +='<td class="wl_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></td>';
        else
            marketmoversString +=mostActiveObj[i].s + '</a></td>';

        marketmoversString +='<td class="last">' + mostActiveObj[i].p + '</td>';
        marketmoversString +='<td class="amountIncr">' + mostActiveObj[i].c.replace('+','&nbsp;') + '</td>';
        marketmoversString +='<td class="moneyarrow">&nbsp;</td>';
        marketmoversString +='<td class="percentIncr">' + mostActiveObj[i].pc.replace('+','').replace('-','') + '%</td>';
        marketmoversString +='<td class="mv_volume">' + mostActiveObj[i].v + '</td></tr>';      

    }
    marketmoversString +='</tbody></table><div class="footerLink"><a href="' + catLinksLnk[subSection-1]  + '">' + catLinksLbl[subSection-1]  + '</a></div>';
   
    document.getElementById("mnc_marketmovers_sub").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 + ":";

    marketmoversString = "";
    //most actives
    subSection++;
    marketmoversString +='<h3>' + catTitle[0]  + '</h3>';
    marketmoversString +='<table class="marketData" border="0" cellpadding="0" cellspacing="0">';
    marketmoversString +='<thead><tr class="header"><th class="th_symbol">Symbol</th><th class="th_last">Last</th><th colspan="3" class="th_change">Change</th><th class="th_volume">Volume</th></tr></thead><tbody>';

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

        marketmoversString +='<tr class="' + stockDirection + '">';
        marketmoversString +='<td class="wl_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></td>';
        else
            marketmoversString +=currentMvSym + '</a></td>';

        marketmoversString +='<td class="last">' + lvStocks[mostActiveStrArr[i]].p + '</td>';
        marketmoversString +='<td class="amountIncr">' + lvStocks[mostActiveStrArr[i]].c.replace('+','&nbsp;') + '</td>';
        marketmoversString +='<td class="moneyarrow">&nbsp;</td>';
        marketmoversString +='<td class="percentIncr">' + lvStocks[mostActiveStrArr[i]].pc.replace('+','').replace('-','') + '%</td>';
        marketmoversString +='<td class="mv_volume">' + lvStocks[mostActiveStrArr[i]].v + '</td></tr>'; 

    }
    marketmoversString +='</tbody></table><div class="footerLink"><a href="' + catLinksLnk[subSection-1]  + '">' + catLinksLbl[subSection-1]  + '</a></div>';

    //biggest gainers
    subSection++;
    marketmoversString +='<h3>' + catTitle[1]  + '</h3>';
    marketmoversString +='<table class="marketData" border="0" cellpadding="0" cellspacing="0">';
    marketmoversString +='<thead><tr class="header"><th class="th_symbol">Symbol</th><th class="th_last">Last</th><th colspan="3" class="th_change">Change</th><th class="th_volume">Volume</th></tr></thead><tbody>';

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

        marketmoversString +='<tr class="' + stockDirection + '">';
        marketmoversString +='<td class="wl_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></td>';
        else
            marketmoversString +=currentMvSym + '</a></td>';

        marketmoversString +='<td class="last">' + lvStocks[marketGainersStrArr[i]].p + '</td>';
        marketmoversString +='<td class="amountIncr">' + lvStocks[marketGainersStrArr[i]].c.replace('+','&nbsp;') + '</td>';
        marketmoversString +='<td class="moneyarrow">&nbsp;</td>';
        marketmoversString +='<td class="percentIncr">' + lvStocks[marketGainersStrArr[i]].pc.replace('+','').replace('-','') + '%</td>';
        marketmoversString +='<td class="mv_volume">' + lvStocks[marketGainersStrArr[i]].v + '</td></tr>';      

    }
    marketmoversString +='</tbody></table><div class="footerLink"><a href="' + catLinksLnk[subSection-1]  + '">' + catLinksLbl[subSection-1]  + '</a></div>';
    
    //biggest losers
    subSection++;  
     marketmoversString +='<h3>' + catTitle[2]  + '</h3>';
    marketmoversString +='<table class="marketData" border="0" cellpadding="0" cellspacing="0">';
    marketmoversString +='<thead><tr class="header"><th class="th_symbol">Symbol</th><th class="th_last">Last</th><th colspan="3" class="th_change">Change</th><th class="th_volume">Volume</th></tr></thead><tbody>';

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

        marketmoversString +='<tr class="' + stockDirection + '">';
        marketmoversString +='<td class="wl_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></td>';
        else
            marketmoversString +=currentMvSym + '</a></td>';

        marketmoversString +='<td class="last">' + lvStocks[marketLosersStrArr[i]].p + '</td>';
        marketmoversString +='<td class="amountIncr">' + lvStocks[marketLosersStrArr[i]].c.replace('+','&nbsp;') + '</td>';
        marketmoversString +='<td class="moneyarrow">&nbsp;</td>';
        marketmoversString +='<td class="percentIncr">' + lvStocks[marketLosersStrArr[i]].pc.replace('+','').replace('-','') + '%</td>';
        marketmoversString +='<td class="mv_volume">' + lvStocks[marketLosersStrArr[i]].v + '</td></tr>';       

    }
    marketmoversString +='</tbody></table><div class="footerLink"><a href="' + catLinksLnk[subSection-1]  + '">' + catLinksLbl[subSection-1]  + '</a></div>';
   
    document.getElementById("mnc_marketmovers_sub").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");

}

var arrMarketData = new Array();

//Market News
function buildArray(obj) {
        var arrayString;
        var lastItem = 4;
        var totalItems = obj.ResultSet.symslist.length;

        var mktAcronym, curPrice, todayDelta, pctDelta,stockDirection, thisUrl;

        // empty the array for fresh data to be pushed into from JSON call.
        arrMarketData = new Array(); 

        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        // + Let's populate the 'multidimensional' array with     +
        // + data culled from the JSON call.                      +
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        for (i = 0;i < totalItems; i++) {

            mktAcronym = obj.ResultSet.symslist[i].s;
            curPrice = obj.ResultSet.symslist[i].p;
            todayDelta = obj.ResultSet.symslist[i].c;
            pctDelta = obj.ResultSet.symslist[i].pc.replace('+','');
            if(obj.ResultSet.symslist[i].c.indexOf("+") != -1)
                stockDirection = "U"; 
            else if(obj.ResultSet.symslist[i].c.indexOf("-") != -1)
                stockDirection = "D";
            thisUrl = obj.ResultSet.symslist[i].lu;
            mktXch = obj.ResultSet.symslist[i].x;
            arrMarketData.push([mktAcronym, curPrice, todayDelta, pctDelta, stockDirection, thisUrl, mktXch]);

        }

}

function buildArrayStay(obj) {
    if( lvStatusInit == 0 ){
        buildArray(obj);
        mnArrDisplaySymbolData(last);
    } else {
        lvMNsym = set_lvMNsym(first);
        lvMNtab = set_lvMNtab(first);
        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<arrMarketData.length)document.getElementById("carousel-tab-1").innerHTML = stockLabelsArr[last - 3]+'<div class="tab-data" id="lvMNtab1">' + arrMarketData[last - 3][1] + '<p class="' + arrMarketData[last - 3][4] + '"><span class="amountIncr">'+arrMarketData[last-3][2]+'</span><span class="moneyarrow"> </span><span class="percentIncr">'+arrMarketData[last - 3][3]+'%</span></p></div>'; else document.getElementById("carousel-tab-1").innerHTML="";
    if(last-2<arrMarketData.length)document.getElementById("carousel-tab-2").innerHTML = stockLabelsArr[last - 2]+'<div class="tab-data" id="lvMNtab2">' + arrMarketData[last - 2][1] + '<p class="' + arrMarketData[last - 2][4] + '"><span class="amountIncr">'+arrMarketData[last - 2][2]+'</span><span class="moneyarrow"> </span><span class="percentIncr">'+arrMarketData[last - 2][3]+'%</span></p></div>'; else document.getElementById("carousel-tab-2").innerHTML="";
    if(last-1<arrMarketData.length)document.getElementById("carousel-tab-3").innerHTML =  stockLabelsArr[last - 1]+'<div class="tab-data" id="lvMNtab3">' + arrMarketData[last - 1][1] + '<p class="' + arrMarketData[last - 1][4] + '"><span class="amountIncr">'+arrMarketData[last - 1][2]+'</span><span class="moneyarrow"> </span><span class="percentIncr">'+arrMarketData[last - 1][3]+'%</span></p></div>'; else document.getElementById("carousel-tab-3").innerHTML="";
    if(last<arrMarketData.length) 
        document.getElementById("carousel-tab-4").innerHTML = stockLabelsArr[last]+'<div class="tab-data" id="lvMNtab" id="lvMNtab4">' + arrMarketData[last][1] + '<p class="' + arrMarketData[last][4] + '"><span class="amountIncr">'+arrMarketData[last][2]+'</span><span class="moneyarrow"> </span><span class="percentIncr">'+arrMarketData[last][3]+'%</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;

            if(first%4==0) {
                 first=1;last=tabCount+2;
                 lvMNsym = set_lvMNsym(first);
                 lvMNtab = set_lvMNtab(first);
                 mnLive(lvMNsym,lvMNtab);
                 displaySymbolData(last);
                 select_tabs(1);
            } else if(tabCount < arrMNstocks.length+1){
                        
                 first++;//alert("last: "+last);
                 lvMNsym = set_lvMNsym(first);
                 lvMNtab = set_lvMNtab(first);
                 mnLive(lvMNsym,lvMNtab);
                 displaySymbolData(last);
                 select_tabs(first);

            }
           paintButtons();
        }

} // end buildArrayNext

function mnArrBuildArrayNext(obj) {
        buildArray(obj);
        if(tabCount < arrMarketData.length) {
            paginationData = ++tabCount + " of " + arrMarketData.length;
            document.getElementById("carouselPagination").innerHTML = paginationData;

            if(first%4==0) {
                 first=1;last=tabCount+2;
                 mnArrDisplaySymbolData(last);
                 select_tabs(1);
            } else if(tabCount < arrMarketData.length+1){

                 first++;//alert("last: "+last);
                 mnArrDisplaySymbolData(last);
                 select_tabs(first);

            }
           lvMNsym = set_lvMNsym(first);
           lvMNtab = set_lvMNtab(first);
           paintButtons();
        }
} // end mnArrBuildArrayNext

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

                reset_carousel_tabs('carousel-tab-',4,--first);
                lvMNsym = set_lvMNsym(first);
                lvMNtab = set_lvMNtab(first);
                mnLive(lvMNsym,lvMNtab);
            } else {
                last=tabCount-1;
                first=4;
                lvMNsym = set_lvMNsym(first);
                lvMNtab = set_lvMNtab(first);
                mnLive(lvMNsym,lvMNtab);
                displaySymbolData(last);
                //select_tabs(4);first=4;
                select_tabs(4);
            }

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

            if (first > 1) {

                 first--;//alert("last: "+last);
                 mnArrDisplaySymbolData(last);
                 select_tabs(first);

            } else {
                last=tabCount-1;
                mnArrDisplaySymbolData(last);
                select_tabs(4);first=4;
            }
            lvMNsym = set_lvMNsym(first);
            lvMNtab = set_lvMNtab(first);
            paintButtons();
        }

} // end mnArrBuildArrayPrevious

function mnBuildArrayStay(obj) {

        buildArray(obj);

        mnArrDisplaySymbolData(last);
        select_tabs(first);
        lvMNsym = set_lvMNsym(first);
        lvMNtab = set_lvMNtab(first);

        paginationData = tabCount + " of " + arrMarketData.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 callTab(direction){
//alert(lvReady+ "   " +lvStatusInit);
    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=' + marketNewsStocks + '&callback=mnArrBuildArrayNext');
    else if(direction=="previous")
        ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + marketNewsStocks + '&callback=mnArrBuildArrayPrevious');
    else
        ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist&exchange=USA&symbols=' + marketNewsStocks + '&callback=mnBuildArrayStay');
 
    } 
} 


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]; 
            chartLinks+='<li><a href="'+ lvStocks[arrMNstocks[currentIndex]].lu +'/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="'+ lvStocks[arrMNstocks[currentIndex]].lu +'/charts?dr=999" class="chart-view" onclick ="s_objectID=s_265.pageName + \' Market News Chart: View More Charts\';">View More Charts</a>';
    chartLinks+='<a href="'+ lvStocks[arrMNstocks[currentIndex]].lu +'/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>';

    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



// Start:  SHARE THIS WIDGET JS

var sharePopFlag = true;                             //variable for onclick popup
  
function showShareThisPop(topDivId, botDivId)        //function to call the popup onclick
{
    if (sharePopFlag)
    {
        document.getElementById('shareLeftIDBB').style.borderBottom = "1px solid #000";
        document.getElementById(botDivId).style.display = "block";
        document.getElementById(topDivId).className = "share_right_on";
    }
    else 
    {
        document.getElementById('shareLeftIDBB').style.borderBottom = "none";
        document.getElementById(botDivId).style.display = "none";
        document.getElementById(topDivId).className = "share_right";
    }
    sharePopFlag = !sharePopFlag;
}

function shareOperation(iOperation, strUrl, strTitle)
{
    var staf_obj = new staf_SE();
    staf_obj.setLang("en-US");
    if (strUrl != "")
    {
        staf_obj.setURL(strUrl);
    }
    if (strTitle != "")
    {
        staf_obj.setTitle(strTitle);        
    }
    if (iOperation == 1) // IM This
    {
        staf_obj.sendIM();
    }
    else
    {
        staf_obj.sendEmail();
    }
}

function mouseoverup()
{
    document.getElementById("thumbsup").className="thumbsup_on";
}

function mouseoutup()
{
    document.getElementById("thumbsup").className="thumbsup";
} 

function mouseoverdown()
{
    document.getElementById("thumbsdown").className="thumbsdown_on";
}

function mouseoutdown()
{
    document.getElementById("thumbsdown").className="thumbsdown";
}

// End: SHARE THIS WIDGET JS

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + 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;

}

// 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() {
    // 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=' + rqSyms +'&callback=defRecentQuotes');
    } else {
        rqLive(rqSyms);

        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":''};
        return false;
 }
    return true;
}

function buildString(arg0){

    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 == getCookie("AOL_StockQuotesWatchList")) {
        wlSyms = "";
    } else {
        wlSyms = getCookie("AOL_StockQuotesWatchList");
    }
    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) {
    county++;
        symString = ""; 
        lvHashRefresh(obj);

        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("mnc_marketmovers_sub") && 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 + ",";
        }

        //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 a portfolio is currently showing
        if(document.getElementById("mnc_myportfolio_sub_stocks") && elemNum > 0 && county>0)
            buildSubPortfolio();

}

//build a single portfolio
function buildSubPortfolio(){
    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);

    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";

                portElemStocks +='<tr class="' + stockDirection + '"><td class="wl_Symbol"><a  title="' + lvStocks[currentPortStocks[i]].n + '" href="' + lvStocks[currentPortStocks[i]].lu + '">' + lvStocks[currentPortStocks[i]].s.substring(modifiedSymIndex) + '</a></td>';
                portElemStocks +='<td class="last">' + lvStocks[currentPortStocks[i]].p + '</td>';
                portElemStocks +='<td  class="amountIncr">' + lvStocks[currentPortStocks[i]].c.replace('+','&nbsp;&nbsp;') + '</td>';
                portElemStocks +='<td class="moneyarrow">&nbsp;</td>';

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

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

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

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

}

function rqLive(syms) {

    // Max number of Recent Quote symbols. *
    var rqMax = 20;

    syms = trimAll(syms);

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

    var moduleString = '';
    
    try {
        
    if (lvRQSyms.length == 0 || null == lvRQSyms || rqSyms=='') {
        // if the backend string is empty, display a default message.
        moduleString +='<center><br /><b>Track your most recent quotes here!</b><br />Enter a symbol above or <a href="javascript:prntPack(\'http://finance.aol.com/quotes/lookup?from=quote_lookup&pop=y&exch=USA\',703,326);">look up a symbol</a>.<br /><br /></center>'
               
    } 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++) {
            if(lvStocks[lvRQSyms[i]].p != '') {

                var stockDirection = '';
                
                if(lvStocks[lvRQSyms[i]].c.indexOf("+") != -1)
                    var stockDirection = "positive";
        
                else if(lvStocks[lvRQSyms[i]].c.indexOf("-") != -1)
                    var stockDirection = "negative";

                moduleString +='<tbody><tr class="' + stockDirection + '"><td class="wl_Symbol"><a title="' + lvStocks[lvRQSyms[i]].n + '" href="' + lvStocks[lvRQSyms[i]].lu + '">';
                moduleString += lvRQSyms[i].replace(/.*[:]/ig,"").substring(0,5);
                
                if(lvRQSyms[i].replace(/.*[:]/ig,"").length > 5)
                    moduleString +='...';
        
                moduleString +='</a></td>';
                moduleString +='<td class="last">' + lvStocks[lvRQSyms[i]].p + '</td>';
                moduleString +='<td  class="amountIncr">' + lvStocks[lvRQSyms[i]].c.replace('+','&nbsp;&nbsp;') + '</td>';
                moduleString +='<td class="moneyarrow">&nbsp;</td>';
    
                if (lvStocks[lvRQSyms[i]].pc.indexOf('N/A') < 0)
                    moduleString +='<td class="percentIncr">' + lvStocks[lvRQSyms[i]].pc.replace('+','').replace('-','') + '%</td>';
                else
                    moduleString +='<td class="percentIncr">' + lvStocks[lvRQSyms[i]].pc + '</td>';
            
                moduleString +='<td class="wl_chart" title="See Chart for ' + lvRQSyms[i] + '"><a href="' + lvStocks[lvRQSyms[i]].lu + '/charts">&nbsp;&nbsp;&nbsp;&nbsp;</a></td>';
                moduleString +='<td class="wl_headlines" title="See Latest Headlines for ' + lvRQSyms[i] + '"><a href="' + lvStocks[lvRQSyms[i]].lu.replace("/quotes/","/headlines/") + '">&nbsp;&nbsp;&nbsp;&nbsp;</a></td></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="aolBtn watchlist_button" href="javascript:delRecentQuotes();" title="ClearAll"/>Clear All</a></td><td colspan="5" class="wl_right">';
        moduleString += '<a href="http://finance.aol.com/usw/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) {
     
    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 +='<center><br /><a href="http://finance.aol.com/usw/portfolios/myportfolios"><b>Track Your Stocks Here!</b></a><br />Find out why more people track their stocks on<br />AOL Money and Finance than anywhere else.<br /><br /></center>'

    } else {

        moduleString +='<table class="marketData" border="0" cellpadding="0" cellspacing="0"><thead>';
        moduleString +='<tr class="header"><th class="th_symbol">Symbol</th><th>&nbsp;</th><th class="th_last">Last</th><th colspan="3" class="th_change">Change</th><th>&nbsp;</th></tr>'
            //looping thru results from json call  
            for(var i=0;i<aSyms.length;i++){
            if(lvStocks[aSyms[i]].p != '') {
            
                //this stores the direction of increase/decrease of stocks
                var stockDirection = "";
    
                if(lvStocks[aSyms[i]].c.indexOf("+") != -1)
                    var stockDirection = "positive"; 
                else if(lvStocks[aSyms[i]].c.indexOf("-") != -1)
                    var stockDirection = "negative";
     
                    moduleString +='<tr class="' + stockDirection + '"><td class="wl_Symbol"><a title="' + lvStocks[aSyms[i]].n + ' Quote, News & Summary" href="' + lvStocks[aSyms[i]].lu + '">' + aSyms[i].replace(/.*[:]/ig,"").substring(0,5);
                        
                    if(aSyms[i].replace(/.*[:]/ig,"").length > 5)
                            moduleString +='...';
                        
                    moduleString +='</a></td><td><a class="wl_delete" href="" onClick="javascript:delFromList(\'' + aSyms[i] + '\');return false;" title="Remove ' + aSyms[i] + ' from Watchlist">&nbsp;&nbsp;</a></td>';
                        moduleString +='<td class="last">' + lvStocks[aSyms[i]].p + '</td>';
                        moduleString +='<td class="amountIncr">' + lvStocks[aSyms[i]].c.replace('+','&nbsp;') + '</td>';
                        moduleString +='<td class="moneyarrow">&nbsp;</td>';
                        moduleString +='<td class="percentIncr">' + lvStocks[aSyms[i]].pc.replace('+','').replace('-','') + '%</td>';
                        moduleString +='<td><a class="wl_headlines" title="' + aSyms[i] + ': ' + lvStocks[aSyms[i]].n + ' News & Analysis" href="' + lvStocks[aSyms[i]].lu.replace('/quotes/','/news/') + '?more=news">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a></td></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="3" 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="http://finance.aol.com/usw/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

function hsLive(syms) {

    var moduleString = '';

    syms = trimAll(syms);
    var aHSsyms = syms.split(",");
    if(syms == '' || null == syms) {   
        moduleString += '';
    } else {

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

            var hsLabel = hsLbls[i];

            //this stores the direction of increase/decrease of stocks
            var stockDirection = '';
            if(lvStocks[aHSsyms[i]].c.indexOf("+") != -1)
                var stockDirection = "positive"; 
            else if(lvStocks[aHSsyms[i]].c.indexOf("-") != -1)
                var stockDirection = "negative";
    
            moduleString += '<div class="volume"><div class="symbol" title="' + lvStocks[aHSsyms[i]].n + '"><a href="' + lvStocks[aHSsyms[i]].lu + '">' + hsLabel + '</a></div>';
            moduleString += '<div class="amount" id="leftnavmarketS1">' + lvStocks[aHSsyms[i]].p + '<span class="charSpace2"></span></div></div>';
            moduleString += '<div class="' + stockDirection + ' direction"><div class="stockRow"><div class="amountIncr" id="leftnavdirS1">' + lvStocks[aHSsyms[i]].c.replace('+','') + '<span class="charSpace2"></span></div><div class="moneyarrow" id="leftnavarrowS1">&nbsp;</div>';
            moduleString += '<div class="percentIncr" id="leftnavprcS1">' + lvStocks[aHSsyms[i]].pc.replace('+','').replace('-','') + '%</div></div></div><div class="clear"></div>';
        }

    }
    document.getElementById("lvHotStocks").innerHTML = moduleString;
    document.getElementById("mrktStatus").innerHTML =  "U.S. " + marketStatus;
}

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

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');
            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';

            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');
            }
            lvUpdates = setInterval("ensureUploadScriptIsLoaded('http://portal.pf.aol.com/jsonmfus/ws?service=symslist,markets&symbols=' + symString +'&porttype=2&portmax=100&callback=rebuildLiveHash')",intervalNum);
           if(lvModCtr > 0)
                var luText = 'Live Updates: On | <a href="javascript:lvStatus(\'off\')">Off</a>';
            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;

    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;
           
            if(obj.ResultSet.symslist[i].c != undefined)
                lvTodayDelta = obj.ResultSet.symslist[i].c;
            else if(obj.ResultSet.symslist[i].c == undefined)
                lvTodayDelta = "";
                
            lvPctDelta = obj.ResultSet.symslist[i].pc.replace('+','');
            
            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] = {"s":lvSym,"n":lvName,"p":lvCurPrice,"c":lvTodayDelta,"pc":lvPctDelta,"ind":lvStockDirection,"lu":lvUrl,"x":lvMktXch,"v":lvCurVolume};
            
            if(checkSym('E:' + lvMktXch + ':' + lvSym)) {
                lvStocks['E:' + lvMktXch + ':' + lvSym] = {"s":'E:' + lvMktXch + ':' + lvSym,"n":lvName,"p":lvCurPrice,"c":lvTodayDelta,"pc":lvPctDelta,"ind":lvStockDirection,"lu":lvUrl,"x":lvMktXch,"v":lvCurVolume};
            }
        } 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(pageloaded == 0 && document.getElementById("mnc_watchlist") && typeof(initWatchlist) != "undefined" && initWatchlist==1) {
        mnc_watchlist();
    }

    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);
        }
    }
    pageloaded = 1; 
}

function defWatchList(obj){
    var moduleString = '';
    //if user has no cookie is set, or cookie has no symbols, display default message

    if(!AOL_StockQuotesWatchList || AOL_StockQuotesWatchList=="" || AOL_StockQuotesWatchList.replace(",","").length==0){
        moduleString +='<center><br /><a href="http://finance.aol.com/usw/portfolios/myportfolios"><b>Track Your Stocks Here!</b></a><br />Find out why more people track their stocks on<br />AOL Money and Finance than anywhere else.<br /><br /></center>'

    }else{

        moduleString +='<table class="marketData" border="0" cellpadding="0" cellspacing="0"><thead>';
        moduleString +='<tr class="header"><th class="th_symbol">Symbol</th><th>&nbsp;</th><th class="th_last">Last</th><th colspan="3" class="th_change">Change</th><th>&nbsp;</th></tr>'
        //looping thru results from json call  
            for(var i=0;i<obj.ResultSet.symslist.length;i++){
            //this stores the direction of increase/decrease of stocks
                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 + '"><td class="wl_Symbol"><a title="' + obj.ResultSet.symslist[i].n + ' Quote, News & Summary" href="' + obj.ResultSet.symslist[i].lu + '">' + obj.ResultSet.symslist[i].s.substring(0,5);
                if(obj.ResultSet.symslist[i].s.length > 5)
                    moduleString +='...';
                moduleString +='</a></td><td><a class="wl_delete" href="" onClick="javascript:delFromList(\'' + obj.ResultSet.symslist[i].s + '\');return false;" title="Remove ' + obj.ResultSet.symslist[i].s + ' from Watchlist">&nbsp;&nbsp;</a></td>';
                moduleString +='<td class="last">' + obj.ResultSet.symslist[i].p + '</td>';
                moduleString +='<td class="amountIncr">' + obj.ResultSet.symslist[i].c.replace('+','&nbsp;') + '</td>';
                moduleString +='<td class="moneyarrow">&nbsp;</td>';
                moduleString +='<td class="percentIncr">' + obj.ResultSet.symslist[i].pc.replace('+','').replace('-','') + '%</td>';
                moduleString +='<td><a class="wl_headlines" title="' + obj.ResultSet.symslist[i].s + ': ' + obj.ResultSet.symslist[i].n + ' News & Analysis" href="' + obj.ResultSet.symslist[i].lu.replace('/quotes/','/news/') + '?more=news">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a></td></tr>';
        
        }
    
        //portion of cookie to use to add new portfolio 
        addportfolioStr = AOL_StockQuotesWatchList.substring(1,AOL_StockQuotesWatchList.length - 1);

        moduleString +='<tr><td colspan="3" 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="http://finance.aol.com/usw/portfolios/advancedCreate?symbols=' + addportfolioStr.replace(/,/g,'&exchange=NYS&symbols=') + '&exchange=NYS">Save as New Portfolio</a></td></tr></table>';
           
    }
    //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 +='<center><br /><b>Track your most recent quotes here!</b><br />Enter a symbol above or <a href="javascript:prntPack(\'http://finance.aol.com/quotes/lookup?from=quote_lookup&pop=y&exch=USA\',703,326);">look up a symbol</a>.<br /><br /></center>'

        } 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 < obj.ResultSet.symslist.length;i++){

                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 +='<tbody><tr class="' + stockDirection + '"><td class="wl_Symbol"><a  title="' + obj.ResultSet.symslist[i].n + '" href="' + obj.ResultSet.symslist[i].lu + '">';
                moduleString += obj.ResultSet.symslist[i].s.substring(0,5);

                if(obj.ResultSet.symslist[i].s.length > 5)

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


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

                        moduleString +='<tr><td colspan="2" class="clearall"><a class="aolBtn watchlist_button" href="javascript:delRecentQuotes();" title="ClearAll"/>Clear All</a></td><td colspan="5" class="wl_right">';
                        moduleString += '<a href="http://finance.aol.com/usw/portfolios/advancedCreate?symbols=' + addportfolioRQ.replace(/,/g,'&exchange=NYS&symbols=') + '&exchange=NYS"">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">' + 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 + ')';
    }
}

//walletpop cott module
function walletpop_cott_next(){
        if(cottIndex + 2 < cottMax){
                document.getElementById("section"+cottIndex).style.display = 'none';
                document.getElementById("section"+(cottIndex+3)).style.display = 'block';
                cottIndex++;
        } else {
          for(i=1;i<=cottMax;i++){              document.getElementById("section"+i).style.display = 'none';
          }
          cottIndex = 1;
          document.getElementById("section1").style.display = 'block';
          document.getElementById("section2").style.display = 'block';
          document.getElementById("section3").style.display = 'block';
        }
}
function walletpop_cott_pre(){
        if(cottIndex > 1){
                cottIndex--;
                document.getElementById("section"+(cottIndex+3)).style.display = 'none';
                document.getElementById("section"+(cottIndex)).style.display = 'block';

        } else {
          for(i=1;i<=cottMax;i++){              document.getElementById("section"+i).style.display = 'none';
          }
          cottIndex = cottMax - 2;
          document.getElementById("section"+cottIndex).style.display = 'block';
          document.getElementById("section"+(cottIndex +1)).style.display = 'block';
          document.getElementById("section"+(cottIndex +2)).style.display = 'block';
        }
}
function hoverstate(elemNum){
    document.getElementById("cott_img_" +elemNum).setAttribute("class", "activeSection");
    document.getElementById("cott_img_" +elemNum).setAttribute("className", "activeSection");
} 
function hoverOutstate(elemNum){
    document.getElementById("cott_img_" +elemNum).setAttribute("class", "cott_img_box");
    document.getElementById("cott_img_" +elemNum).setAttribute("className", "cott_img_box");
}

function walletpop_daily_next(){
        if(dailyIndex < dailyMax){
                document.getElementById("daily_section"+dailyIndex).style.display = 'none';
                document.getElementById("daily_section"+(dailyIndex+1)).style.display = 'block';
                dailyIndex++;
        } else {
          document.getElementById("daily_section"+dailyIndex).style.display = 'none';
          document.getElementById("daily_section1").style.display = 'block';
          dailyIndex = 1;
        }
}
function walletpop_daily_pre(){
        if(dailyIndex > 1){
                document.getElementById("daily_section"+(dailyIndex)).style.display = 'none';
                document.getElementById("daily_section"+(dailyIndex-1)).style.display = 'block';
                dailyIndex--;

        } else {
          document.getElementById("daily_section"+dailyIndex).style.display = 'none';
          document.getElementById("daily_section"+(dailyMax)).style.display = 'block';
          dailyIndex = dailyMax;
        }
}
function hoverstate_dailyL(){
    document.getElementById("daily_left_arrow").setAttribute("class", "activeSectionL");
    document.getElementById("daily_left_arrow").setAttribute("className", "activeSectionL");
} 
function hoverOutstate_dailyL(){
    document.getElementById("daily_left_arrow").setAttribute("class", "left_arrow");
    document.getElementById("daily_left_arrow").setAttribute("className", "left_arrow");
}  
function hoverstate_dailyR(){
    document.getElementById("daily_right_arrow").setAttribute("class", "activeSectionR");
    document.getElementById("daily_right_arrow").setAttribute("className", "activeSectionR");
} 
function hoverOutstate_dailyR(){
    document.getElementById("daily_right_arrow").setAttribute("class", "right_arrow");
    document.getElementById("daily_right_arrow").setAttribute("className", "right_arrow");
}


// For tabbed module v2
var ccob = new cob();
function p(j){return document.getElementById(j)}
function ob(j){return document.getElementById(j)}
 
function cob() {
    var cache = new Array();
 
    // methods
    this.add     = function add(key,data) {cache[key] = data}
    this.getData = function getData(key) {return cache[key]}
    this.getKeys = function getKeys() {
        var keys = new Array();
    var ix = 0;
        for (var i in  cache) {
            keys[ix] = i;
      ix++;
        }
        return keys;
    }
    this.hvDat = function hvDat(key) {
     if (cache[key] || cache[key] == 0){return 1}
      return 0;
    }
}
 
function tbmd_set(mod,t) {
    
    // get all the li tags from the parent ul 
    lis = ob('tbsid' + mod).getElementsByTagName('UL').item(0).getElementsByTagName('LI');
   
    // if data key is in the cache object then use it to turn off tab
    key = 'curidx' + mod;
    if (ccob.hvDat(key)) {
        aObj = lis.item(ccob.getData(key)).getElementsByTagName('A').item(0);
        aObj.className = '';
 aObj.style.display = 'block';
    }
  
    // turn on clicked tab current tab if 
    if (lis.length >= t) {
        aObj = lis.item(t).getElementsByTagName('A').item(0);
        aObj.className = 'selected';
        aObj.style.display = 'block';
        ccob.add(key,t);
    }
}
function getData(tbmid,mod,t) {
     
    // if data for tab is not it cache the get item
    key = tbmid + '_' + t;
    tbd = '';
   
 if (ccob.hvDat(key)) {
     tbd = ccob.getData(key);
 
     tbmd_set(tbmid,t);
 
            // get content div object
            modObj = ob('cntd' + tbmid);
 
     modObj.innerHTML = tbd;
 } else {
            // get iframe div
            tbfObj = ob('tbf' + tbmid);
            
            // store iframe src url
            tbfUrl = '/mod.adp?_miid=' + mod + '&_tbmid=' + tbmid + '&_mtb=' + t; 
 
            // append current query params, they may be needed by module being output via mod.adp
            tbfQry = document.location.search;
            if(tbfQry) {tbfUrl += '&' + tbfQry.substring(1)}
 
            // append current url and the idx of tab clicked, some modules will use this for a redir
            defTab = "_deftb" + tbmid;
            tbfTmp = location.href; 
 
            // rebuild params without "_deftab{instanceid}"
            if(tbfTmp.indexOf(defTab) > 1) {
                aTmp = new Array();
                aQps = tbfQry.substring(1,tbfQry.length).split('&');
                for (i=0;i < aQps.length;i++) {
                    if (aQps[i].indexOf(defTab) == -1) {
                       aTmp.push(aQps[i]);
                    } 
                }
                tbfTmp = tbfTmp.substring(0,tbfTmp.indexOf('?') + 1) + aTmp.join('&');
            }
            // append the default tab with the idx of the tab clicked
            if(tbfTmp.indexOf('?') == -1) {tbfTmp += '?'} else {tbfTmp += '&'}
            tbfUrl += '&_tbdref=' + encodeURIComponent(tbfTmp + defTab + '=' + (t + 1));
            
            // stuff iframe div then set update src
            tbfHtm = '<iframe class=\"tbf\" id=\"tbdframe\" src=\"\"></iframe>';
            tbfObj.innerHTML = tbfHtm;
            tbfObj.getElementsByTagName('iframe').item(0).src = tbfUrl;
    }
    return false;
}
function fillFromHttp(req,a) {
    // confirm data recieved successfully
 tbd = '';
    if(req) {
        key = a.key;
 tbd = req
        ccob.add(key,tbd)
    } else {
        tbd = '0';
    }
   
    // flip tabs
    tbmd_set(a.mod,a.t);
  
    // fillDiv 
    ob('cntd' + a.mod).innerHTML = tbd;
}
 
function toggleArticleDrawer(obj,id) {
 var pObj = document.getElementById(id);
 if (obj.className == "off") {
  obj.className = "on";
  if(pObj.className.match("wrap")) {
   pObj.className = "artDrawer on wrap";
  } else {
   pObj.className = "artDrawer on";
  }
 }
 else {
  obj.className = "off";
  if(pObj.className.match("wrap")) {
   pObj.className = "artDrawer off wrap";
  } else {
   pObj.className = "artDrawer off";
  }
 }
}
 
function toggleClassName(id,stateOne,stateTwo) {
 var obj = document.getElementById(id);
 if (obj.className == stateOne) {
  obj.className = stateTwo;
 } else {
  obj.className = stateOne;
 }
}
// END For tabbed module v2  

/* dyna walletpop 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 = el[0].className + " hidden";
	slideNum = parseFloat(p);
	elNum = p-1;
	hpgCount();
	el[elNum].className = "content_" + elNum;
	return false;
}

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;
	adsReloadIframe('adsF0');
	mmx_track(slideNum);
	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;
	adsReloadIframe('adsF0');
	mmx_track(slideNum);
	return false;
}

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 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  */
function p_o(o){return document.getElementById(o);}

function empty(){};

var f = document.getElementById('search');

function onKeyUpP()
{
    var p=p_o("search-tab-Real%2dTime+Quote");
    var b;
    if(/*@cc_on!@*/false)b=p['className'];else b=p.getAttribute('class');
    if((b==undefined)||(b=="") )submitHeaderSearch(event);
    else smartbox(document.getElementById('topquery'),'search_suggest_quote','srchLnk','http://o.aolcdn.com/pf_smartbox/SBG/REST','select','2',securityTypes,'3000','100');
}

function onKeyPressP()
{
    var p=p_o("search-tab-Real%2dTime+Quote");
    var b;
    if(/*@cc_on!@*/false)b=p['className'];else b=p.getAttribute('class');
    if ((b==undefined)||(b==""))submitHeaderSearch(event);else empty();
}


function srchSubP() 
{
    var frm=p_o("search");
    var newurl = frm.action + frm.topquery.value.trim().replace( /\+/, " ");
    if(frm.target=='_blank')window.open(newurl, '_blank', '');else window.location=newurl;
    return false;
}

var securityTypes = new Array();
	securityTypes[0]="";
	securityTypes[1]="";
	securityTypes[2]="";
	securityTypes[3]="Preferred Stock";
	securityTypes[4]="Warrant";
	securityTypes[5]="Premium";
	securityTypes[6]="Trust";
	securityTypes[7]="Right";
	securityTypes[8]="Warrant Right";
	securityTypes[9]="Index";
	securityTypes[10]="Future";
	securityTypes[11]="Future Spread";
	securityTypes[12]="Option";
	securityTypes[13]="Equity Option";
	securityTypes[14]="Index Option";
	securityTypes[15]="Future Option";
	securityTypes[16]="Fixed Income";
	securityTypes[17]="Bond";
	securityTypes[18]="Convertible Bond";
	securityTypes[19]="Mortgage Backed";
	securityTypes[20]="Government Bond";
	securityTypes[21]="Corporate Bond";
	securityTypes[22]="US Agency Bond";
	securityTypes[23]="US Treasury Bill";
	securityTypes[24]="US Treasury Coupon";
	securityTypes[25]="Money Market";
	securityTypes[26]="CD";
	securityTypes[27]="Mutual Fund";
	securityTypes[28]="Mutual Fund";
	securityTypes[29]="Money Market Fund";
	securityTypes[30]="Unit Inv. Trust Ph. 1";
	securityTypes[31]="Unit Inv. Trust Ph. 2";
	securityTypes[32]="Currency";
	securityTypes[33]="Forex FRA";
	securityTypes[34]="Forex Deposit";
	securityTypes[35]="Forex Forward";
	securityTypes[36]="Market Indicator";
	securityTypes[37]="Fund";
	securityTypes[38]="ETF";
	securityTypes[39]="Loan";
	securityTypes[40]="";
	securityTypes[41]="Statistic";

var searchBox;
var dropdownBox;
var searchButton;
var highlightClass;
var enabledSetting;
var secType=new Array();
var latestServerQuery="";
var rows;
var smartboxUrl;
var resultsObj;
var sbMinWidth=488;
var defaultDropdownPosLeft=339; // dm header
var defaultDropdownPosTop=100; // dm header
var closeDropdownTimeout=3000;
var closeTimeoutID=0;
var sendReqTimeout=200;
var reqTimeoutID=0;

document.onclick=hideDropdownBox;

function smartbox(inQueryField,inDropdownDivName,inSearchButton,inQueryUrl,inHighlightClass,inEnabledSetting,inSecType,inTimeout,inReqTimeout,inDropdownPosLeft)
{

	searchBox=inQueryField;
	dropdownBox=inDropdownDivName;
	smartboxUrl=inQueryUrl;
	highlightClass=inHighlightClass;
	searchButton=document.getElementById(inSearchButton);
	enabledSetting=inEnabledSetting;
	secType=inSecType;
	closeDropdownTimeout=inTimeout;
	closeTimeoutID=0;

	if((typeof(inReqTimeout)!='undefined'&&inReqTimeout!=null)){sendReqTimeout=inReqTimeout;}
	if((typeof(inDropdownPosLeft)!='undefined'&&inDropdownPosLeft!=null)){defaultDropdownPosLeft=inDropdownPosLeft;}
	if(enabledSetting!=0){startup();}

}

function startup()
{
	searchBox.autocomplete="off";
	searchBox.onkeydown=keyDownHandler;
	reqTimeoutID=window.setTimeout('requestLoop()',sendReqTimeout);
}

function requestLoop()
{
	var keyword=query().toLowerCase();
	if((keyword!=latestServerQuery)&&(keyword!=''))
	{
		var posColon=keyword.indexOf(":");

		if(posColon!=-1){keyword=keyword.substring(0,posColon);}
		loadJSON(keyword.toLowerCase());
		latestServerQuery=keyword.toLowerCase();
	}
	if(keyword.length==0){hideDropdownBox();latestServerQuery=null;}
}

function loadJSON(key)
{

	var url=smartboxUrl+"/?f=json&s="+key+"&c=11&fids=n,sn,en,e,cc,t&service=SmartBoxQuotes&callback=processJSON";
	var headID=document.getElementsByTagName("head")[0];
	var newScript=document.createElement('script');
	newScript.type='text/javascript';
	newScript.src=url;
	headID.appendChild(newScript);
}

function keyDownHandler(evt)
{
	cancelCloseTime();
	if(reqTimeoutID){window.clearTimeout(reqTimeoutID);
	reqTimeoutID=null;
}

var dropdown=document.getElementById(dropdownBox);
var parentEl=get_firstchild(dropdown);

if(!evt&&window.event){evt=window.event;}

var key=evt.keyCode;
var KEYUP=38;
var KEYDOWN=40;
var KEYENTER=13;
var KEYTAB=9;
var KEYBACKSPACE=8;
var KEYDELETE=48;

if(key==KEYBACKSPACE){}else if(key==KEYDELETE){hideDropdownBox();}
if((key!=KEYUP)&&(key!=KEYDOWN)&&(key!=KEYENTER)&&(key!=KEYTAB)){return true;}

var selNum=getSelectedSpanNum(parentEl);
var selSpan=setSelectedSpan(parentEl,selNum);

	if(key==KEYENTER)
	{
		if(selSpan)
		{
			_selectResult(selSpan);
			evt.cancelBubble=true;
			return false;
		}
		else
		{
			hideDropdownBox();
		}
	}
	else if(key==KEYTAB)
	{
		hideDropdownBox();
	}
	else
	{
		if(key==KEYUP)selSpan=setSelectedSpan(parentEl,selNum-1);
		if(key==KEYDOWN)selSpan=setSelectedSpan(parentEl,selNum+1);
		if(selSpan)_highlightResult(selSpan);
	}
}

function closeSmartbox(evt){hideDropdownBox();}

function processJSON(feed){if(enabledSetting==2){if(feed==null){hideDropdownBox();}
else{showDropdownBox();try{resultsObj=eval(feed);htmlFormat(resultsObj);}
catch(e){var msg=(typeof e=="string")?e:((e.message)?e.message:"Unknown Error");hideDropdownBox();}}}}

function htmlFormat(resultsObj)
{

	var rowSmartbox;
	var output=document.getElementById(dropdownBox);
	var keyword;
	while(output.childNodes.length>0){output.removeChild(output.childNodes[0]);}
	var frmSmartbox=document.createElement("iframe");
	frmSmartbox.setAttribute("id","SMARTBOX_IFRAME");
	frmSmartbox.setAttribute("frameBorder","0");
	frmSmartbox.setAttribute("scrolling","no");
	output.appendChild(frmSmartbox);
	var tblSmartbox=document.createElement("table");
	tblSmartbox.setAttribute("id","TBL_SMARTBOX");
	var headSmartbox=document.createElement("thead");
	var topRow=document.createElement("tr");
	var header=document.createElement("td");
	header.setAttribute("colSpan","3");
	header.style.paddingLeft=sbMinWidth+"px";
	topRow.appendChild(header);
	headSmartbox.appendChild(topRow);
	var bodySmartbox=document.createElement("tbody");
	for(var i=0;i<resultsObj.ss.length;i++){if(resultsObj.ss[i].n&&i<10){rowSmartbox=document.createElement("tr");
	rowSmartbox.onmouseover=highlightResult;rowSmartbox.onmouseout=unhighlightResult;
	rowSmartbox.onclick=selectResult;var x2=document.createElement("td");
	x2.className="sym";
	keyword=query().toUpperCase();
	var symbolText=replaceAll(resultsObj.ss[i].s,keyword,"<b>"+keyword+"</b>")
	var countryCode=resultsObj.ss[i].cc;
	if(countryCode!="USA"&&countryCode!="undefined"){if(countryCode=="GBR"){countryCode=":UK";}
	else if(countryCode=="CAN"){countryCode=":CA";}
	else{countryCode="";}
	symbolText=symbolText+countryCode;}
	if(keyword.indexOf(":")!=-1){if(countryCode=="USA"&&countryCode!="undefined"){rowSmartbox.setAttribute("class","hideResult");}}
	x2.innerHTML=symbolText;var x3=document.createElement("td");x3.className="comp";var company=resultsObj.ss[i].n;if(company.length>100){company=company.substring(0,99)+"...";}
	x3.innerHTML=replaceAll(company,keyword,"<b>"+keyword+"</b>");var x4=document.createElement("td");x4.className="exch";var exch=resultsObj.ss[i].xN;var securityNo=resultsObj.ss[i].t;if((securityNo)&&(securityNo!="undefined")&&securityNo!=1&&securityNo!=2&&securityNo!=3){if((secType[securityNo])&&(secType[securityNo]!="undefined")){exch=secType[securityNo]+" - "+exch;}}
	x4.appendChild(document.createTextNode(exch));rowSmartbox.appendChild(x2);rowSmartbox.appendChild(x3);rowSmartbox.appendChild(x4);bodySmartbox.appendChild(rowSmartbox);}}

	var linkViewAll=document.createElement("a");linkViewAll.id="viewAll";linkViewAll.setAttribute("href","http://finance.aol.com/lookup/"+keyword+"/usa?type=USA");
	var txtView=document.createTextNode("View all results for '"+keyword+"'");linkViewAll.appendChild(txtView);
	var footSmartbox=document.createElement("tfoot");
	var bottomRow=document.createElement("tr");
	var footer=document.createElement("td");footer.setAttribute("colSpan","3");footer.appendChild(linkViewAll);bottomRow.appendChild(footer);footSmartbox.appendChild(bottomRow);

	tblSmartbox.appendChild(headSmartbox);
	tblSmartbox.appendChild(bodySmartbox);
	tblSmartbox.appendChild(footSmartbox);
	output.appendChild(tblSmartbox);

	if(dropdownBox=="search_suggest_quote")
	{
		var dropdownPosLeft=parseInt(defaultDropdownPosLeft)+parseInt(document.getElementById("header").offsetLeft);
		var dropdownPosTop=parseInt(defaultDropdownPosTop)+parseInt(document.getElementById("header").offsetTop);
		output.style.left=dropdownPosLeft+"px";
		output.style.top=dropdownPosTop+"px";
	}

	frmSmartbox.setAttribute("width",tblSmartbox.offsetWidth);
	frmSmartbox.setAttribute("height",tblSmartbox.offsetHeight);
	rows=bodySmartbox.getElementsByTagName('TR');
}

function replaceAll(searchText,keyword,replacements)
{
	searchText=searchText.toUpperCase()
	return searchText.replace(keyword.toUpperCase(),replacements.toUpperCase());
}

function query(){return searchBox.value;}

function selectResult(){_selectResult(this);}


function _selectResult(item)
{
	var quoteUrl;
	item.className=highlightClass;
	var selNum=getSelectedSpanNum(document.getElementById("TBL_SMARTBOX"));
	var symbol=resultsObj.ss[selNum].s;
	var exch=(resultsObj.ss[selNum].x).toLowerCase();

	quoteUrl = "http://finance.aol.com/quotes" + "/" + symbol + "/" + exch;
	window.location=quoteUrl;
	hideDropdownBox();
}

function highlightResult(){_highlightResult(this);}

function _highlightResult(item){var symbol=item.firstChild.innerHTML;item.className=highlightClass;}

function unhighlightResult(){_unhighlightResult(this);}

function _unhighlightResult(item){var origCl=item.getAttribute('origCl');item.className=origCl;}

function getSelectedSpanNum(div)
{
	var count=-1;
	var tbodyResults=div.getElementsByTagName("tbody");
	var spans=tbodyResults[0].getElementsByTagName("tr");
	if(spans)
	{
		for(var i=0;i<spans.length;i++)
		{
			count++;
			if(spans[i].className==highlightClass){return count;}
		}
	}
	return-1;
}

function setSelectedSpan(div,spanNum)
{
	var count=-1;
	var thisSpan;
	var tbodyResults=div.getElementsByTagName("tbody");
	var spans=tbodyResults[0].getElementsByTagName("tr");
	if(spans)
	{
		for(var i=0;i<spans.length;i++)
		{
			if(++count==spanNum){_highlightResult(spans[i]);thisSpan=spans[i];}
			else{_unhighlightResult(spans[i]);}
		}
	}
	return thisSpan;
}

function showDropdownBox()
{
	cancelCloseTime();
	if(document.layers){document.layers[dropdownBox].display="block";}
	else{document.getElementById(dropdownBox).style.display="block";}
	var ticker=document.getElementById("flashcontent2");
	if(ticker){ticker.style.zIndex=3;}
}

function hideDropdownBox(){if(document.getElementById(dropdownBox)){if(document.layers)document.layers[dropdownBox].display="none";else document.getElementById(dropdownBox).style.display="none";}
var ticker=document.getElementById("flashcontent2");if(ticker){ticker.style.zIndex=2;}}

function closeTime(){closeTimeoutID=window.setTimeout(hideDropdownBox,closeDropdownTimeout);}

function cancelCloseTime(){if(closeTimeoutID){window.clearTimeout(closeTimeoutID);closeTimeoutID=null;}}

function get_firstchild(n)
{
	x=n.firstChild.nextSibling;
	while(x.nodeType!=1){x=x.nextSibling;}
	return x;
}
//walletpop cott module

function walletpop_cott_next(){
        if(cottIndex + 2 < cottMax){
                document.getElementById("section"+cottIndex).style.display = 'none';
                document.getElementById("section"+(cottIndex+3)).style.display = 'block';
                cottIndex++;
        } else {
          for(i=1;i<=cottMax;i++){              document.getElementById("section"+i).style.display = 'none';
          }
          cottIndex = 1;
          document.getElementById("section1").style.display = 'block';
          document.getElementById("section2").style.display = 'block';
          document.getElementById("section3").style.display = 'block';
        }
}
function walletpop_cott_pre(){

       if(cottIndex > 1){
                cottIndex--;
                document.getElementById("section"+(cottIndex+3)).style.display = 'none';
                document.getElementById("section"+(cottIndex)).style.display = 'block';

        } else {

              for(i=1;i<=cottMax;i++){
                   document.getElementById("section"+i).style.display = 'none';
               }

           cottIndex = cottMax - 2;
          document.getElementById("section"+cottIndex).style.display = 'block';
          document.getElementById("section"+(cottIndex +1)).style.display = 'block';
          document.getElementById("section"+(cottIndex +2)).style.display = 'block';
     }
}
function hoverstate(elemNum){
    document.getElementById("cott_img_" +elemNum).setAttribute("class", "activeSection");
    document.getElementById("cott_img_" +elemNum).setAttribute("className", "activeSection");
}
function hoverOutstate(elemNum){
    document.getElementById("cott_img_" +elemNum).setAttribute("class", "cott_img_box");
    document.getElementById("cott_img_" +elemNum).setAttribute("className", "cott_img_box");
}

