/*
	DOMtab Version 3.1415927
	Updated March the First 2006
	written by Christian Heilmann
	check blog for updates: http://www.wait-till-i.com	
	free to use, not free to resell
*/
domtab={
	tabClass:'domtab', // class to trigger tabbing
	listClass:'domtabs', // class of the menus
	activeClass:'active', // class of current link
	contentElements:'div', // elements to loop through

	init:function(){
		var temp;
		if(!document.getElementById || !document.createTextNode){return;}
		var tempelm=document.getElementsByTagName('div');		
		for(var i=0;i<tempelm.length;i++){
			if(!domtab.cssjs('check',tempelm[i],domtab.tabClass)){continue;}
			domtab.initTabMenu(tempelm[i]);
		}
		
	},
	initTabMenu:function(menu){
		var id;
		var lists=menu.getElementsByTagName('ul');
      var thismenu = new Array();
		for(var i=0;i<lists.length;i++){
			if(domtab.cssjs('check',lists[i],domtab.listClass)){
				thismenu.push(lists[i]);
				
			}
		}
		if(thismenu.length==0){return;}
      menu.currentSection = 0;
      menu.currentId="";
      menu.currentLink1 = "";
      menu.currentLink2 = "";
      for(var j=0;j<thismenu.length;j++)
      {
   		var links=thismenu[j].getElementsByTagName('a');

   		for(i=0;i<links.length;i++){
   			if(!/#/.test(links[i].getAttribute('href').toString())){continue;}
   			id=links[i].href.match(/#(\w.+)/)[1];
            if(i==0)
            {
               domtab.cssjs('add',links[i],domtab.activeClass);
               
               
               if(j==0)
               {
                 menu.currentId=id;
   			     menu.currentSection = 0; 
                 menu.currentLink1 = links[0];
               }
               else if(j==1)
               {
                  menu.currentLink2 = links[0];
               }
               
            }
   			if(document.getElementById(id)){
   				domtab.addEvent(links[i],'click',domtab.showTab,false);
   				links[i].onclick=function(){return false;} // safari hack
   				if(j==0)
               {
                  domtab.changeTab(document.getElementById(id),0);
               }
   			}
   		}
   		 if(menu.currentId != "")
   		 {
   			 domtab.changeTab(document.getElementById(menu.currentId),1);
   		 }
 
       } 
 	},
	changeTab:function(elm,state){
        if(!elm) return;
		do{
			elm=elm.parentNode;
		} while(elm.nodeName.toLowerCase()!=domtab.contentElements)
			
		elm.style.display=state==0?'none':'block';
	},
	hrefClick:function(el,id)
	{
	   do{
            el=el.parentNode;
        } while(el.className.toLowerCase()!=domtab.tabClass)  
        
       topLi = el.getElementsByTagName("ul")[0].getElementsByTagName("li");
       for(i=0;i<topLi.length;i++)
       {
           a = topLi[i].getElementsByTagName("a")[0];
           if(a&&a.href.split("#")[1]==id)
           {
           
             domtab._showTab(a);
             return false;
           }
       }
       return false;
	},
	showTab:function(e){
      
	  var o=domtab.getTarget(e);
      domtab._showTab(o);
	  domtab.cancelClick(e);
	},
	_showTab:function(href)
    {
      parentLi = href.parentNode;
      
      parentUl = parentLi.parentNode;
      
      lis = parentUl.getElementsByTagName("li");
      currentSelection = "";
      for(var k=0;k<lis.length;k++)
      {
         if(lis[k]==parentLi)
         {
            currentSelection = k;
            break;
         }
      }
      menu2 = href.parentNode.parentNode.parentNode.parentNode.parentNode;
      menu2.currentSelection = currentSelection;
      
      if(menu2.currentLink1){
            domtab.changeTab(document.getElementById(menu2.currentId),0);
            domtab.cssjs('remove',menu2.currentLink1,domtab.activeClass);
         i = menu2.currentLink1.parentNode.getElementsByTagName("i")[0];
            if(i)
            {
                i.parentNode.removeChild(i);
            }
         if(menu2.currentLink2)
         {
            domtab.cssjs('remove',menu2.currentLink2,domtab.activeClass);
            i = menu2.currentLink2.parentNode.getElementsByTagName("i")[0];
               if(i)
               {
                i.parentNode.removeChild(i);
            }
         }
        }
        var id=href.href.match(/#(\w.+)/)[1];
        menu2.currentId=id;
      
      o1 = menu2.getElementsByTagName("ul")[0].getElementsByTagName("li")[currentSelection].getElementsByTagName("a")[0];
       menu2.currentLink1 = o1;
       domtab.cssjs('add',o1,domtab.activeClass);
       o1.parentNode.appendChild(document.createElement('i'));
      if(menu2.getElementsByTagName("ul")[1])
      {
         o2 = menu2.getElementsByTagName("ul")[1].getElementsByTagName("li")[currentSelection].getElementsByTagName("a")[0];
         menu2.currentLink2 = o2;
         domtab.cssjs('add',o2,domtab.activeClass);
         o2.parentNode.appendChild(document.createElement('i'));
        }
        domtab.changeTab(document.getElementById(id),1);
        //document.getElementById(id).focus();
        
        
     
    },
    
/* helper methods */
	getTarget:function(e){
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target){return false;}
		while (target.nodeName.toLowerCase() != 'a')
		{
			target = target.parentNode;
		}
		return target;
	},
	cancelClick:function(e){
		if (window.event){
			window.event.cancelBubble = true;
			window.event.returnValue = false;
			return;
		}
		if (e){
			e.stopPropagation();
			e.preventDefault();
		}
	},
	addEvent: function(elm, evType, fn, useCapture){
		if (elm.addEventListener) 
		{
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}
	},
	cssjs:function(a,o,c1,c2){
		switch (a){
			case 'swap':
				o.className=!domtab.cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
			break;
			case 'add':
				if(!domtab.cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
			break;
			case 'remove':
				var rep=o.className.match(' '+c1)?' '+c1:c1;
				o.className=o.className.replace(rep,'');
			break;
			case 'check':
				var found=false;
				var temparray=o.className.split(' ');
				for(var i=0;i<temparray.length;i++){
					if(temparray[i]==c1){found=true;}
				}
				return found;
			break;
		}
	}
}
domtab.addEvent(window, 'load', domtab.init, false);
	
