var tls= new Object();
tls.filterIndexByCategory = function(lnk,cat,mode,defaultStr){
    // remove 'current' class from any nav items
    var nav = document.getElementById('sectionNav');
    var itms = nav.getElementsByTagName('a');
    for(var i = 0; i < itms.length; i++){
        itms[i].className = '';
    }
    // add 'current class to current nav item
    lnk.className = 'current';
    // set title
    var defaultTitleStr = 'All Products and Services';
    if (defaultStr != "") {
    	defaultTitleStr = defaultStr;
    }    	
    document.getElementById('idxTitle').innerHTML = (cat.toLowerCase() == 'all') ? defaultTitleStr : lnk.innerHTML;
    
    if(mode == 'alpha'){
    // show/hide products based on 'category' class
    var rws = document.getElementById('indexWrap').getElementsByTagName('tr');
    if(cat.toLowerCase() == 'all'){
        for(var i = 0; i < rws.length; i++){
            if((rws[i].className.indexOf('thead')==-1) && (rws[i].id != 'spacer')){
                rws[i].style.display = '';
            }
        }
    } else {
        for(var i = 0; i < rws.length; i++){
            if(rws[i].className.indexOf(cat)==-1 && (rws[i].className.indexOf('thead')==-1) && (rws[i].id != 'spacer')) {
                rws[i].style.display = 'none';
            } else {
                rws[i].style.display = '';
            }
            
        }
    }
    }
    
    if(mode == 'cat'){
    // show/hide products based on 'category' class
    if(cat.toLowerCase() == 'all'){
        var categoryBoxes = document.getElementsByClassName('boxCategoryInner');
        for (var i = 0; i < categoryBoxes.length; i++){
            Element.cleanWhitespace(categoryBoxes[i]);
            var o = categoryBoxes[i].firstChild;
            categoryBoxes[i].firstChild.className = 'arrowDown';
            categoryBoxes[i].firstChild.nextSibling.className = "show";
            categoryBoxes[i].style.display = 'block';
            
            // here's where we hide the family level
             var familyBoxes = categoryBoxes[i].getElementsByTagName('div');
             for(var j = 0; j < familyBoxes.length; j++){
             Element.cleanWhitespace(familyBoxes[j]);
                 if(familyBoxes[j].id.indexOf('family') == 0){
                     familyBoxes[j].className = 'hide';
                     document.getElementById('LNK'+familyBoxes[j].id).className = 'arrow';
                 }
             }
            }

			//Show bundles
		   if(document.getElementById("category" + categoryBoxes.length))
		   {
			   var category = document.getElementById("category" + categoryBoxes.length);
			   category.className = "show";
			   var  bundles = document.getElementById("bundles2008");
			   bundles.className = "show";
			}

   } else {
    var categoryBoxes = document.getElementsByClassName('boxCategoryInner');
        for (var i = 0; i < categoryBoxes.length; i++){
            Element.cleanWhitespace(categoryBoxes[i]);
            var o = categoryBoxes[i].firstChild;
            if(o.innerHTML + '' != lnk.innerHTML + ''){
                categoryBoxes[i].firstChild.nextSibling.className = "hide";
                categoryBoxes[i].firstChild.className = 'arrow';
                categoryBoxes[i].style.display = 'none';
                // here's where we hide the family level
             var familyBoxes = categoryBoxes[i].getElementsByTagName('div');
             for(var j = 0; j < familyBoxes.length; j++){
                 Element.cleanWhitespace(familyBoxes[j]);
                 if(familyBoxes[j].id.indexOf('family') == 0){
                     familyBoxes[j].className = 'hide';
                    document.getElementById('LNK'+familyBoxes[j].id).className = 'arrow';
                 }
             }
            } else {
                categoryBoxes[i].firstChild.nextSibling.className = "show";
                categoryBoxes[i].firstChild.className = 'arrowDown';
                categoryBoxes[i].style.display = 'block';
                // here's where we hide the family level
             var familyBoxes = categoryBoxes[i].getElementsByTagName('div');
             for(var j = 0; j < familyBoxes.length; j++){
             Element.cleanWhitespace(familyBoxes[j]);
                 if(familyBoxes[j].id.indexOf('family') == 0){
                     familyBoxes[j].className = 'hide';
                     document.getElementById('LNK'+familyBoxes[j].id).className = 'arrow';
                 }
             }
            }
            
            }   
   }
     
    }
};

tls.expandcollapse = function(categoryid,lnk) {
   // check if it's already open
   if(document.getElementById(categoryid)){
   //show the one that was clicked     
   var category = document.getElementById(categoryid);
   if(category.className != "show"){
     category.className = "show";
     //change the class on the link
     lnk.className = "arrowDown";
   } else {
      category.className = "hide";
      //change the class on any links that are "open"
      //alert(openOnes[i].previousSibling);
      lnk.className = "arrow";
   } 
   }
}

tls.expandbundles = function(categoryid,lnk) {
   // check if it's already open
   if(document.getElementById(categoryid)){
   //show the one that was clicked     
   var category = document.getElementById(categoryid);
   if(category.className != "show"){
     category.className = "show";
     //change the class on the link
     //lnk.className = "arrowDown";
   } else {
      category.className = "hide";
      //change the class on any links that are "open"
      //alert(openOnes[i].previousSibling);
      //lnk.className = "arrow";
   } 
   }
}

tls.initEC = function (){
   var categoryBoxes = document.getElementsByClassName('boxCategoryInner');
   for (var i = 0; i < categoryBoxes.length; i++){
     Element.cleanWhitespace(categoryBoxes[i]);
     var o = categoryBoxes[i].firstChild;
     categoryBoxes[i].firstChild.nextSibling.className = "hide";
     o.idx = i+1;
     o.onclick = function(){
		if ( i == categoryBoxes.length - 1 )
		{
			tls.expandbundles('category'+this.idx,this);
		}
		else
		{
			tls.expandcollapse('category'+this.idx,this);
		}     
       return false;
     }
   }
  
 }