// script (c) and written by aleto 
// http://aleto.ch

// This work is licensed under the Creative Commons Attribution License. To  view a
// copy of this license, visit http://creativecommons.org/licenses/by/1.0/  or send
// a letter to Creative Commons, 559 Nathan Abbott Way, Stanford,  California 94305,
// USA.

// rev 13/09/2004

function setTarget(e){
   if(e) return e.target;
   if(event) return event.srcElement;
}
var ns='http://www.w3.org/1999/xhtml';
var parentEle='';
window.onload=function (e) {
if( document.getElementById && document.getElementsByTagName &&
   ((e && e.target) || (event && typeof event.srcElement=='object')) ){
      var comments;
      if( comments=document.getElementById('comments') ) {
         var isXHTML=/html\:/.test(document.getElementsByTagName('body')[0].nodeName);
         function createNewEle(ele){
            if(isXHTML) { return document.createElementNS('http://www.w3.org/1999/xhtml', ele); }
            else { return document.createElement(ele); };
         };			 
         var liArr=comments.getElementsByTagName('li'), liEle, i=0, workEle;
		 parentEle=comments.parentNode.nodeName;
         for(i=0; liEle=liArr[i]; i++ ) if( liEle.parentNode==comments ) {
         (workEle=liEle.insertBefore(createNewEle('dfn'),liEle.firstChild)).appendChild(document.createTextNode('reset'));
         workEle.className='reset';
         (workEle=liEle.insertBefore(createNewEle('dfn'),liEle.firstChild)).appendChild(document.createTextNode('show comment in his context'));
         workEle.className='show';
         };         
         comments.onclick=function (e) {
            function markComments (fromEle, childType, withName, withGoTo) { 
               var childArr, k=0, childEle;
               if( childArr=fromEle.getElementsByTagName(childType) ) {
                  for(k=0; childEle=childArr[k]; k++) {
                     if(childEle.getElementsByTagName('a')[0] && /cmmnt/.test(childEle.getElementsByTagName('a')[0].href) ) {
                        var listArrNo=childEle.getElementsByTagName('a')[0].href.replace(/^.*cmmnt(.*)$/,'$1');
                        listArr[listArrNo-1].className=withName;
						if(withGoTo) goTo='#'+document.getElementById('cmmnt'+listArrNo).parentNode.id;
                     }
                  }
               }
            };
            var ele=setTarget(e), i=0, za=1;
            var liArr=this.getElementsByTagName('li'), listArr=[], liEle, i=0, num, childArr, childLi, classN=false, goTo=false, indent=false;
            for(i=0; liEle=liArr[i]; i++ ) if( liEle.parentNode==this ) listArr.push(liEle);
			// scroll to part for scroll to links
			if(/a/i.test(ele.nodeName) && /cmmnt[0-9]/.test(ele.href) ) {
				location.href=location.pathname+'#'+document.getElementById(ele.href.replace(/^[^#]*#(cmmnt[0-9]*)$/,'$1')).parentNode.id;
				return false;
			};
			// scroll to part
            if(/a/i.test(ele.nodeName) && /commentform/.test(ele.href) ) {
               ele=ele.parentNode;
               i=0;
               while(listArr[i]!=ele) i++;            
               document.getElementById('nucleus_cf_body').focus();
               document.getElementById('nucleus_cf_body').value+='['+(i+1)+'] ';             
            } else {
				if(!/a/i.test(ele.nodeName)){
				   if(/dfn/i.test(ele.nodeName)) { 
					  indent=true;
					  classN=ele.className;
				   }
				   while( ele.parentNode.parentNode && ele.parentNode.parentNode.nodeName!=parentEle ) ele=ele.parentNode; 
				   if(!indent) classN=ele.className;
				   if(/li/i.test(ele.nodeName) ) {
					  for(i=0; liEle=listArr[i]; i++) liEle.className='';
					  if(indent) {
						 if(classN=='show'){ele.parentNode.className='indent'} else {ele.parentNode.className='';}
					  };
					  if(classN=='show' || !classN ) {                        
						 markComments(ele, 'span', 'parent',true);
						 ele.className='current';
						 if(!goTo) {
							i=0;
							while(listArr[i]!=ele) i++;
							goTo='#'+document.getElementById('cmmnt'+(i+1)).parentNode.id;
						 };
						 if(ele.getElementsByTagName('ol')[0]) markComments(ele.getElementsByTagName('ol')[0], 'li', 'child');
						 for(i=0; liEle=listArr[i]; i++) if(!/current|parent|child/.test(liEle.className)) liEle.className='notPart';
						 if(goTo && indent ) location.href=location.pathname+goTo;
					  };
					  if(classN=='reset') {
						 i=0;
						 while(listArr[i]!=ele) i++;
						 goTo='#'+document.getElementById('cmmnt'+(i+1)).parentNode.id;
						 location.href=location.pathname+goTo;
					  }
				   }
				}
			}
            return true;
         }
      }
   }
}