// Global Variables
var isLoaded = 0;
var ccob = new cob();
var divCount = '';
var entInterval;
var activeTab = new Array();
var msgObj = null;
var is_aol = navigator.userAgent.toLowerCase().indexOf("aol") != -1;
var is_mac = navigator.userAgent.indexOf('Mac') != -1;
sb_disable=1;

// Big Bowl Menus
var bb_selected=-1,bb_selected_pm=-1,bb_selected_fm=-1,bb_selected_bm=-1,bb_selected_gn=-1,bb_selected_gnp=-1;
var bb_subindex=new Array(),bb_flyindex=new Array();
var bb_menu_timer,bb_fly_timer,bb_bmenu_timer,bb_gnmenu_timer;
var bb_menu_delay=500,bb_fly_delay=200;
var bb_cgid=-1,bb_ll=-1;
var bb_ie,bbh_m,bbh_gn,bbh_gnp,bbh_bm,bbh_bmp,bbh_mp,bbh_mf,n;
if (typeof(bb_lf) == "undefined") {
var bb_lf = new Array();
}

function bb_makehbar(){
	var s,vC,vM,c=0,p,sub;

	//Setup menu bar
	if(bbh_m=bb_o("bb_m")){
		bbh_mf=bb_o("bb_mf");
		bbh_mp=bb_o("bb_mp");
		bb_ll=bb_md.length;
		s="<ul>";
		for(var i=0;i<bb_ll;i++){
			if(bb_md[i].l==0){
				vM=bb_md[i].v.charAt(0);
				vC=bb_md[i].v.charAt(1);
				if((vC==2||vC==bb_isC)&&(vM==2||vM==bb_isM)){
					sub=0;
					s+="<li id='bb_m"+c+"'";
					if(i+1!=bb_ll&&bb_md[i+1].l==1){
						s+=" class='bb_ma'";
						bb_subindex[c]=i+1;
						sub=1;
					}
					s+="><a href='"+bb_md[i].u+"'";
					if(bb_md[i].n=="Y")s+=" target='_blank'";
					s+=" onMouseOver='bb_hoverbar("+c+","+sub+")' onMouseOut='bb_unhover()'>"+bb_md[i].t+"</a></li>";
					c++;
				}
			}
		}
		s+="</ul>";
		bbh_m.innerHTML=s;
        bb_slc_cpg(bb_sel);   
	}

	//Setup Global Navigation
	if(bbh_gn=bb_o("bb_gn")){
		if(window.bb_ngcg){
			bb_ng.push(bb_ngcg[0]);
			bb_cgid=bb_ng.length-1;
		}
		s="<ul>";
		c=0;
		for(i=0;i<bb_ng.length;i++){
			vM=bb_ng[i].v.charAt(0);
			vC=bb_ng[i].v.charAt(1);
			if((vC==2||vC==bb_isC)&&(vM==2||vM==bb_isM)){
				s+="<li id='bb_gn"+c+"'><a href='"+bb_ng[i].u+"'";
				if(bb_ng[i].n=="Y")s+=" target='_blank'";
				s+=" onMouseOver='bb_hovergnbar("+c+")' onMouseOut='bb_ungnhover("+c+")'>"+bb_ng[i].t;
				if(bb_cgid==i){
					s+="<span id='bb_gna'>&nbsp;&nbsp;</span>";
					bb_cgid=c;
				}
				s+="</a></li>";
				c++;
			}
		}
		s+="</ul>";
		bbh_gn.innerHTML=s;
		
		//Setup branding menu pulldown
		if(bb_cgid!=-1){
			bbh_gnp=bb_o("bb_gnp");
			bb_ie?s="<iframe class='bb_iehack'></iframe><ul>":s="<ul>";
			c=0;
			for(i=0;i<bb_gncg.length;i++){
			vM=bb_gncg[i].v.charAt(0);
			vC=bb_gncg[i].v.charAt(1);
			if((vC==2||vC==bb_isC)&&(vM==2||vM==bb_isM)){
					s+="<li><a href='"+bb_gncg[i].u+"'";
					if(bb_gncg[i].n=="Y")s+=" target='_blank'";
					s+=" onMouseOver='bb_gnhoversub("+c+")' onMouseOut='bb_unhover_gnmenu()'>"+bb_gncg[i].t+"</a></li>";
					c++;
				}
			}
			s+="</ul>";
			bbh_gnp.innerHTML=s;
		}
	}

	//Setup optional Channel Guide menu
	if(bbh_bm=bb_o("bb_bm")){
		bbh_bm.innerHTML="<a href='#' onMouseOver='bb_hover_bmenu()' onMouseOut='bb_unhover_bmenu()'>"
			+bb_cgt+"<span id='bb_bma'>&nbsp;&nbsp;</span></a>";
		bb_ie?s="<iframe class='bb_iehack'></iframe><ul>":s="<ul>";
		c=0;
		for(i=0;i<bb_cg.length;i++){
			vM=bb_cg[i].v.charAt(0);
			vC=bb_cg[i].v.charAt(1);
			if((vC==2||vC==bb_isC)&&(vM==2||vM==bb_isM)){
				s+="<li><a href='"+bb_cg[i].u+"'";
				if(bb_cg[i].n=="Y")s+=" target='_blank'";
		if(bb_cg[i].t=="Celebrities")s+=" onclick=\"s_linkType='o';s_linkName='Entertainment Guide: Celebrities';t=s_account.split(',');s_account2=(t\[0\].indexOf('aolsvc')==-1?t\[0\]:t\[1\]);s_lnk=s_co(this);s_gs(s_account2);\" ";
		if(bb_cg[i].t=="CityGuide")s+=" onclick=\"s_linkType='o';s_linkName='Entertainment Guide: CityGuide';t=s_account.split(',');s_account2=(t\[0\].indexOf('aolsvc')==-1?t\[0\]:t\[1\]);s_lnk=s_co(this);s_gs(s_account2);\" ";
		if(bb_cg[i].t=="Entertainment")s+=" onclick=\"s_linkType='o';s_linkName='Entertainment Guide: Entertainment';t=s_account.split(',');s_account2=(t\[0\].indexOf('aolsvc')==-1?t\[0\]:t\[1\]);s_lnk=s_co(this);s_gs(s_account2);\" ";
		if(bb_cg[i].t=="Games")s+=" onclick=\"s_linkType='o';s_linkName='Entertainment Guide: Games';t=s_account.split(',');s_account2=(t\[0\].indexOf('aolsvc')==-1?t\[0\]:t\[1\]);s_lnk=s_co(this);s_gs(s_account2);\" ";
		if(bb_cg[i].t=="Music")s+=" onclick=\"s_linkType='o';s_linkName='Entertainment Guide: Music';t=s_account.split(',');s_account2=(t\[0\].indexOf('aolsvc')==-1?t\[0\]:t\[1\]);s_lnk=s_co(this);s_gs(s_account2);\" ";
		if(bb_cg[i].t=="Movies")s+=" onclick=\"s_linkType='o';s_linkName='Entertainment Guide: Movies';t=s_account.split(',');s_account2=(t\[0\].indexOf('aolsvc')==-1?t\[0\]:t\[1\]);s_lnk=s_co(this);s_gs(s_account2);\" ";
		if(bb_cg[i].t=="Television")s+=" onclick=\"s_linkType='o';s_linkName='Entertainment Guide: Television';t=s_account.split(',');s_account2=(t\[0\].indexOf('aolsvc')==-1?t\[0\]:t\[1\]);s_lnk=s_co(this);s_gs(s_account2);\" ";
		s+=" onMouseOver='bb_bhoversub("+c+")' onMouseOut='bb_unhover_bmenu()'>"+bb_cg[i].t+"</a></li>";
				c++;
			}
		}
		s+="</ul>";
		bbh_bmp=bb_o("bb_bmp");
		bbh_bmp.innerHTML=s;
	}
	
}

////Manage menu bar////

function bb_hoverbar(i,sub){
	clearTimeout(bb_menu_timer);
	n=bb_l(bbh_m);
	var s="";
	if(bb_selected!=-1){
		if(n[bb_selected].className.indexOf("active")>-1){
			if(n[bb_selected].className.indexOf("bb_ma")>-1) s="bb_ma ";
			 n[bb_selected].className=s+((bb_selected == bb_sel)? 'bb_sel':'inactive');
		}
	}
	s="";
	if(n[i].className.indexOf("bb_ma")>-1) s="bb_maa ";
	n[i].className=s+'active';
	bb_selected=i;
	sub?bb_makesub(i):bb_hidesub();
}

function bb_unhover(){
	bb_menu_timer=setTimeout("bb_hidesub()",bb_menu_delay);
}

function bb_makesub(i){
	bb_hidefly();
	bb_selected_pm=-1;
	var c=0,x=bb_subindex[i],s,vC,vM,fly;
	bb_ie?s="<iframe class='bb_iehack'></iframe><ul>":s="<ul>";
	while (x<bb_ll){
	
		if(bb_md[x].l!=2){ //If item is in flyout then skip
			vM=bb_md[x].v.charAt(0);
			vC=bb_md[x].v.charAt(1);
			if((vC==2||vC==bb_isC)&&(vM==2||vM==bb_isM)){
				fly=0;
				if(x+1!=bb_ll&&bb_md[x+1].l==2)fly=1;
				s+="<li><a href='"+bb_md[x].u+"'";
				if(bb_md[x].n=="Y")s+=" target='_blank'";
				s+=" onMouseOver='bb_hoversub("+c+","+fly+")' onMouseOut='bb_unhover()'>";
				if(fly){
					s+="<span id='bb_mpa'>&#9658</span>";
					bb_flyindex[c]=x+1;
				}
				s+=bb_md[x].t+"</a></li>";
				c++;
			}
		}
		x++;
		if(x==bb_ll||bb_md[x].l==0)break;
	}
	s+="</ul>";

	bbh_mp.innerHTML=s;
	bbh_mp.style.top=bb_bottom(bbh_m)+"px";
	bbh_mp.style.left=bb_left(bb_o("bb_m"+i))+"px";
	bbh_mp.style.display="block";
}

function bb_hoversub(i,fly){
	clearTimeout(bb_menu_timer);
	n=bb_l(bbh_mp);
	if(bb_selected_pm!=-1)n[bb_selected_pm].className='inactive';
	bb_selected_pm=i;
	fly?bb_fly_timer=setTimeout("bb_makefly(bb_selected_pm)",bb_fly_delay):bb_hidefly();
	n[i].className='active';
}

function bb_hidesub(){
	bbh_mp.style.display="none";
	bb_hidefly();
}

////Manage Flyout menus////

function bb_makefly(i){
	var x=bb_flyindex[i],c=0,vC,vM,s;
	bb_ie?s="<iframe class='bb_iehack'></iframe><ul>":s="<ul>";
	while(x<bb_ll){
		vM=bb_md[x].v.charAt(0);
		vC=bb_md[x].v.charAt(1);
		if((vC==2||vC==bb_isC)&&(vM==2||vM==bb_isM)){
			s+="<li><a href='"+bb_md[x].u+"'";
			if(bb_md[x].n=="Y")s+=" target='_blank'";
			s+=" onMouseOver='bb_hoverfly("+c+")' onMouseOut='bb_unhover()'>"+bb_md[x].t+"</a></li>";
			c++;
		}
		x++;
		if(x==bb_ll||bb_md[x].l!=2)break;
	}
	s+="</ul>";
	bbh_mf.innerHTML=s;
	//If flyout won't fit then go left
	var ow=bbh_mp.offsetWidth;
	bb_left(bbh_mp)+ow+ow>728?bbh_mf.style.left=bb_left(bbh_mp)-ow+"px":bbh_mf.style.left=bb_left(bbh_mp)+ow+"px";
	bbh_mf.style.top=bb_l(bbh_mp)[i].offsetTop+bb_bottom(bbh_m)-1+"px";
	bbh_mf.style.display="block";
}

function bb_hoverfly(i){
	clearTimeout(bb_menu_timer);
	n=bb_l(bbh_mf);
	if(bb_selected_fm!=-1)n[bb_selected_fm].className="inactive";
	n[i].className='active';
	bb_selected_fm=i;
}

function bb_hidefly(){
	clearTimeout(bb_fly_timer);
	bbh_mf.style.display="none";
}

////Helper Functions////

function bb_bottom(o){
	var y=o.offsetHeight;
    while(o.offsetParent){
        y+=o.offsetTop;
        o=o.offsetParent;
    }
    y+=o.offsetTop;
    return y;
}

function bb_left(o){
	var x=0;
	while(o.offsetParent){
		x+=o.offsetLeft;
		o=o.offsetParent;
	}
//	x+=o.offsetLeft;	
	return x;
}

function bb_o(o){return document.getElementById(o);}

function bb_l(o){return o.getElementsByTagName("li");}

function bb_slc_cpg(idx) {
  n=bb_l(bbh_m);
  s="";
  if(idx>-1) {
    if(n[idx].className.indexOf("bb_ma")>-1) s="bb_ma ";
    n[idx].className=s+'bb_sel';    
  }
}
// End Big Bowl Menus

// For tabbed module v2
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

