/* =Global JS Information
----------------------------------------------------------------------------------------------------
Contains: 
    =Button Hover
    =Show/Hide Custom Select Box Menu
    =Table Scripts
----------------------------------------------------------------------------------------------------*/
//=Button Hover
function swapImg(imgID,onState,offState){
    var obj = document.getElementById(imgID);
    obj.onmouseover = function(){this.className = onState}
    obj.onmouseout = function(){this.className = offState}
}

//=Show/Hide Custom Select Box Menu
function showHide(id) {
    var obj = document.getElementById(id);
    if(obj.style.display == 'block')
        obj.style.display = 'none';
    else
        obj.style.display = 'block';
}

 //=An easy way to deal w/ getting elms.
function $(element) {
  return(document.getElementById(element));
}

//=Missing string functionality
String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/,"");
}

/*----- Table Scripts -----*/
function addClassName(el,className) {
    removeClassName(el,className);
    el.className = (el.className + " " + className).trim();
}

function removeClassName(el,className) {
    el.className = el.className.replace(className,"").trim();
}

var Event = {
    add: function(obj,type,fn) {
        if (obj.attachEvent) {
            obj['e'+type+fn] = fn;
            obj[type+fn] = function() { obj['e'+type+fn](window.event); }
            obj.attachEvent('on'+type,obj[type+fn]);
        } else
        obj.addEventListener(type,fn,false);
    },
    remove: function(obj,type,fn) {
        if (obj.detachEvent) {
            obj.detachEvent('on'+type,obj[type+fn]);
            obj[type+fn] = null;
        } else
        obj.removeEventListener(type,fn,false);
    }
}

var stripeTable = {
    bgcolor: '',
    classname: '',
   
   
    stripe: function(el){
     var tbl = el;
      if (!tbl) return;
      
      var rows = tbl.getElementsByTagName('tr');
      var parity = false;
      for(var i=1;i<rows.length;i++){
        if( rows[i].className!="subRow" && rows[i].className!="totals"){
          if(parity){
            for (var c=0,len=rows[i].cells.length; c < len; c++){
              rows[i].cells[c].style.backgroundColor  = "#e5f2fb";
            }              
          }
        }
        parity = !parity;
      }
    },
    
    stripeWithDblHdr: function(el){
      var tbl = el;
      if (!tbl) return;
      var rows = tbl.getElementsByTagName('tr');
      var parity = false;
      var b=0;
      for(var i=2;i<rows.length;i++){
         if (rows[i].className=="bold"){
            if (parity){
              for (var c=0,len=rows[i].cells.length; c < len; c++){
                rows[i].cells[c].style.backgroundColor  = "#e5f2fb";
              }
            }
         i++;
         }
         try {
           while(rows[i].className!="bold") {
             if(parity){
               for (var c=0,len=rows[i].cells.length; c < len; c++){
                 rows[i].cells[c].style.backgroundColor  = "#e5f2fb";
               }              
             }
             i++;          
           } 
           i--;
           parity = !parity;
         }
         catch(Error)
         {
            return;
         }
      }
    },
    
    stripewithSubHdr: function(el){
      var tbl = el;
      if (!tbl) return;
      var rows = tbl.getElementsByTagName('tr');
      var parity = false;
      var b=0;
      for(var i=1;i<rows.length;i++){
         if (rows[i].className=="subHeader"){
           i++;
         }
         try {
           while(rows[i].className!="subHeader") {
             if(parity){
               for (var c=0,len=rows[i].cells.length; c < len; c++){
                 rows[i].cells[c].style.backgroundColor  = "#e5f2fb";
               }              
             }
             parity = !parity;
             i++;          
           } 
           i--;
         }
         catch(Error)
         {
            return;
         }
         parity=false;
      }
    }
}


// Hide/Show Sub-Rows
function hidesubrows(elm){
    var row = elm;
    var btnImg = elm.getElementsByTagName('img')[0];
    while(row.tagName.toLowerCase() != "tr" ){row=row.parentNode;}
    var bkgClr =row.cells[0].style.backgroundColor;
    var thisRow = row.nextSibling;
    while(thisRow.nodeType == 3){thisRow=thisRow.nextSibling;}   
    while(thisRow != null && thisRow.className == 'subRow'){    //Even' || thisRow.className == 'subRowOdd'){
        btnImg.src = 'http://fa.smithbarney.com/images/locator-images/global/iconMinusRed.png';
        if(thisRow.style.display == 'none' || thisRow.style.display == ''){
            for (var c=0,len=thisRow.cells.length; c < len; c++){
              thisRow.cells[c].style.backgroundColor  = bkgClr;
            }
            try{thisRow.style.display = 'table-row';} 
            catch(e){thisRow.style.display = 'block';}
        }else{
            btnImg.src = 'http://fa.smithbarney.com/images/locator-images/global/iconPlusRed.png';
            thisRow.style.display = 'none'
        }
        thisRow = thisRow.nextSibling;
        while(thisRow.nodeType == 3){thisRow=thisRow.nextSibling;} 
    }
}

function hideShowCells(row,style){
    for(var n=0;n<row.cells.length;n++){
        row.cells[n].style.display = style; 
    }
}

function setExpColl(){
  var cmdButtons = document.getElementsByTagName('a');
  for(var x=0;x<cmdButtons.length;x++){
    if(cmdButtons[x].className=="showHide"){
      cmdButtons[x].onclick=function(){hidesubrows(this);};
    }
  }
}

function changebkgrnd(arg)
{
  var cell = arg;
  var newImage = "url('http://fa.smithbarney.com/images/locator-images/global/tableGradientHover.png' )";
  cell.style.backgroundImage = newImage;
}

function switchback(arg)
{
  var cell = arg;
  var oldImage = "url('http://fa.smithbarney.com/images/locator-images/global/tableGradient.png' )";
  cell.style.backgroundImage = oldImage;
}

/* ---- Dynaic Tabs Functionality ---- */

dynTab.switchTab = function(tabindex, TabIdx)
{ 
   dynTab.ar_tabs[tabindex].dynTab.switchTab(TabIdx); 
}

dynTab.prototype.switchTab = function(tabindex)
{ 
   var Tab; 
  if(this.tabindex == tabindex){
    return false; 
  }
//  if(this.tabindex == tabindex){
//    return tabindex; 
//  }
  for(idx in this.arTab){ 

    Tab = this.arTab[idx]; 
    if(idx == tabindex)
    { 
      Tab[0].className = "activetab"; 
      Tab[1].style.display = "block"; 
      Tab[0].blur(); 
    }
    else
    { 
      Tab[0].className = "inactivetab"; 
      Tab[1].style.display = "none"; 
    } 
  } 
    this.tabindex = tabindex; 
    
} 
dynTab.prototype.newTab = function(id, current){ 

    var dynTabElem, idx = 0, el = '', tbElm = '', windwElms = ''; 
    dynTabElem = document.getElementById(id); 
    if(dynTabElem == null) return;
    dynTab.ar_tabs[dynTab.cnt] = dynTabElem; 
    this.tabElm = dynTabElem; 
    this.tabElm.dynTab = this; 
    this.tabCnt = 0; 
    /*if(tabCnt >0)
    {
       //do somthing
    }*/
    this.arTab = new Array(); 
    tbElm = dynTabElem.firstChild; 
    while(tbElm.className != "tabBtns" )tbElm = tbElm.nextSibling; 
    el = tbElm.firstChild; 
    do{ 
     if(el.tagName == "A"){ 
      el.href = "javascript:dynTab.switchTab(" + dynTab.cnt + "," + idx + ");"; 
     this.arTab[idx] = new Array(el, 0); 
     this.tabCnt = idx++; 
    } 
    }while (el = el.nextSibling); 

    windwElms = dynTabElem.firstChild; 
    while (windwElms.className != "tabBg")windwElms = windwElms.nextSibling; 
    
    el = windwElms.firstChild; 
    
    idx = 0; 
    
    do{ 
        if(el.className == "tabContent"){ 
            this.arTab[idx][1] = el; 
            idx++; 
        } 
    }while (el = el.nextSibling); 
    this.switchTab(current); 

    dynTab.cnt++; 
} 

function dynTab(id, current){ 
    if(typeof(dynTab.cnt) == "undefined"){ 
        dynTab.init();
    } 
    current = (typeof(current) == "undefined") ? 0 : current; 
    this.newTab(id, current); 
} 

dynTab.init = function(){ 
    dynTab.cnt = 0; 
    dynTab.ar_tabs = new Array();
} 
function initDynTabs(){ 
    t1 = new dynTab('tabs', 1); 
    t2 = new dynTab('myTab2');
}

/* ---- The following sets the current Navigation Tab ---*/

function setActiveNav(strNavName){

  var activeTab = 0;
   
  switch (strNavName){

    case "navtab1":
        activeTab=0;
      break;
    
    case "navtab2":
        activeTab=1;
      break;
    
    case "navtab3":
        activeTab=2;    
      break;
    
    case "navtab4":
        activeTab=3;    
      break;
    
    case "navtab5":
        activeTab=4;    
      break;
    
    case "navtab6":
        activeTab=5;    
      break;
      
  }

    var navList = $('mainNav');
    var itms = navList.getElementsByTagName('li');
    var newImg = "url('http://fa.smithbarney.com/images/locator-images/global/bgNavRight.png' ) 100% 100% no-repeat";
    for(var n = 0; n < itms.length; n++){
      if( n==activeTab) {
        //itms[n].style.backgroundImage = newImg; 
        //itms[n].style.color = "#000";
        //itms[n].style.fontWeight="Bold";
        itms[n].className = "active first";
        //var spn = itms[n].getElementsByTagName('span');
        //itms[3].childNodes[0].childNodes[0].className = "first";
        
      }
    }

}

/* ----- Slide Show ------ */

var slideshow = {
  
  init: function(){
    var divElms=document.getElementsByTagName("div");
    var slides=new Array();

    for(var x=0,len=divElms.length;x<len;x++){
      if(divElms[x].className != 'slideControls' && divElms[x].className.search('slide')!= -1){
        slides.push(divElms[x]);
      }
    } 

    var btns = document.getElementsByTagName("a");
    
    for(var x=0,len=btns.length;x<len;x++){
      if(btns[x].className.search('previousOff')!= -1){
        Event.add(btns[x],'click',function() { slideshow.showPrevious(this, slides);return false; });
      }
      if(btns[x].className.search('next')!= -1){
        Event.add(btns[x],'click',function() { slideshow.showNext(this, slides);return false; });
      }
    } 
    
  },
    
  showPrevious: function(btn, slides){
    if(slides){ 
      elms=document.getElementsByTagName('a');
      for(var x=0,len=elms.length;x<len;x++){
        if(elms[x].className.search('nextOff')!= -1){
            removeClassName(elms[x],"nextOff");
            addClassName(elms[x],"next");
        }
      } 
      for(var x=0,len=slides.length;x<len;x++){
        if(slides[x].className.search('hide')== -1){
          if(x<=0){
            removeClassName(btn,"previous");
            addClassName(btn,"previousOff");
            return;
          }
          addClassName(slides[x],"hide");
          removeClassName(slides[x-1], "hide");
          break;
        } 
      }
    }    
  },

  showNext: function(btn, slides){
    if(slides){ 
      elms=document.getElementsByTagName('a');
      for(var x=0,len=elms.length;x<len;x++){
        if(elms[x].className.search('previousOff')!= -1){
            removeClassName(elms[x],"previousOff");
            addClassName(elms[x],"previous");
        }
      } 
      for(var x=0,len=slides.length;x<len;x++){
        if(slides[x].className.search('hide')== -1){
          if(x>=slides.length-1){
            removeClassName(btn,"next");
            addClassName(btn,"nextOff");              
            return;
          }       
          addClassName(slides[x],"hide");
          removeClassName(slides[x+1], "hide");
          break;
        } 
      }
    } 
  }
}

/*
function getElementsByClassName(node,className) {
  if (node.getElementsByClassName){
        return getElementsByClassName(node.className);
  }else{
    var objs = document.getElementsByTagName(node.tagName)
    var elms = new Array();
    for(x=0,len=objs.length;x<len;x++){
      if(objs[x].className!=classname){
        elms.push(objs[x]);
      }
    }
    return elms;
  }
}
*/


/* ---- End Slide Show ------ */


//  Initialize Document Parameters
//  -----------------------------------------------------
    window.onload = function init(){
//     Tables
//     --------------------------------------------------
       setExpColl();
       var tbls = document.getElementsByTagName('table');
       for(n=0;n<tbls.length;n++)
       { 
         // Striping for Standard Tables
         if(tbls[n].className.search('stripe')!= -1){
           stripeTable.stripe(tbls[n]);
         }
         // Striping for Tables with Double Header
         if(tbls[n].className.search('stripdblhdr')!= -1){
           stripeTable.stripeWithDblHdr(tbls[n]);
         }
         // Striping for Tables with Sub Headers
         if(tbls[n].className.search('stripsubhdr')!= -1){
           stripeTable.stripewithSubHdr(tbls[n]);
         }
       }
    
//     Tabs
//     --------------------------------------------------    
       initDynTabs();
//     Additional Initialization (specified js file)
//     --------------------------------------------------       
       try { 
         InitializeDoc(); 
       }catch(Error){
         return;  
       }


    }



/* 
// Alternate style Slide Show Code
var divElms=document.getElementsByTagName("div");
var slides = new Array();
for(var x=0,len=divElms.length;x<len;x++){
  if(divElms[x].className != 'slideControls' && divElms[x].className.search('slide')!= -1){
    slides.push(divElms[x]);
  }
} 

var btns = document.getElementsByTagName("a");
for(var x=0,len=btns.length;x<len;x++){
  if(btns[x].className.search('previousOff')!= -1){
    btns[x].onclick = function(){showPrevious();}
  }
  if(btns[x].className.search('next')!= -1){
    btns[x].onclick = function(){showNext();}
  }
} 
function showNext(){
  if(slides){ 
    for(var x=0,len=slides.length;x<len;x++){
      if(slides[x].className.search('hide')== -1){
        if(x>=slides.length-1)return;        
        addClassName(slides[x],"hide");
        removeClassName(slides[x+1], "hide");
        break;
      } 
    }
  } 
}
function showPrevious(){
  if(slides){ 
    for(var x=0,len=slides.length;x<len;x++){
      if(slides[x].className.search('hide')== -1){
        if(x<=0)return;
        addClassName(slides[x],"hide");
        removeClassName(slides[x-1], "hide");
        break;
      } 
    }
  }   
}
*/

