// JavaScript Document
pde={
		// CSS classes
		pdeClass:'pde',
		hideClass:'hide',
		showClass:'show',
		parentClass:'parent',
		currentClass:'current',
		// images added to the parent links
		openImage:'/misc/depot/assets/UT/arrow-down.gif',
		closedImage:'/misc/depot/assets/UT/arrow-side.gif',
		openMessage:'close section',
		closedMessage:'open section',
	// boolean to keep the section with the STRONG open or not.
	keepCurrentOpen:true,
// boolean to make the parent link collapse the section or not 
		linkParent:false,
		init:function(){
			pde.createClone(); 
			if(!document.getElementById || !document.createTextNode){return;}
			// Added back by cheryl
			var uls=document.getElementsByTagName('ul');
			// Added by Pritesh to get rid of the class = "pde" in the ULs - commented out cp
			//var uls = document.getElementById("contain_column1").getElementsByTagName('ul');
			for(var i=0;i<uls.length;i++){
			var inneruls,parentLI;
			// Commented by Pritesh to get rid of the class = "pde" in the ULs
			//added back by cheryl
			if(!pde.cssjs('check',uls[i],pde.pdeClass)){continue;}
				var inneruls=uls[i].getElementsByTagName('ul');
				for(var j=0;j<inneruls.length;j++){
				parentLI=inneruls[j].parentNode;
				/* Get the string text to make it clickable */
				tmp = pde.stripHTML(parentLI.innerHTML);
				/* Delete the text for now and add it later, stored in var tmp */
				parentLI.innerHTML = "<ul>"+inneruls[j].innerHTML+"</ul>";
				//alert(parentLI.innerHTML); 
				if(parentLI.getElementsByTagName('strong')[0]){
				pde.cssjs('add',parentLI,pde.currentClass);
				if(pde.keepCurrentOpen === true){continue;}
				}
				pde.cssjs('add',parentLI,pde.parentClass);
				parentLI.insertBefore(pde.clone.cloneNode(true),parentLI.firstChild);
				pde.cssjs('add',inneruls[j],pde.hideClass);
				pde.addEvent(parentLI.getElementsByTagName('a')[0],'click',pde.showhide,false);
				/* Add the clickable text after trimming whitespaces */
				parentLI.getElementsByTagName('a')[0].innerHTML += pde.trim(tmp);

				parentLI.getElementsByTagName('a')[0].onclick=function(){return false;} // Safari hack
				if(pde.linkParent){
				pde.addEvent(parentLI.getElementsByTagName('a')[1],'click',pde.showhide,false);
				parentLI.getElementsByTagName('a')[1].onclick=function(){return false;} // Safari hack
				}
				//alert(BrowserDetect.browser);
				//alert(parentLI.getElementsByTagName('a')[0].childNodes[1].childNodes[0]);
				var test = parentLI.getElementsByTagName('a')[0].childNodes[1].childNodes[0];
				if(test){
				//alert(parentLI.getElementsByTagName('a')[0].childNodes[1].childNodes[0].nodeName.toLowerCase());
				if(test.nodeName.toLowerCase() == 'a' ){ 
					//alert(parentLI.getElementsByTagName('a')[0].childNodes[1].childNodes.length); 
					var heading_text = parentLI.getElementsByTagName('a')[0].innerHTML.match(/<a[^>]*>[\s\S]+<\/a>/i,""); 
					//alert(heading_text);
					var newheading_text = pde.stripallHTML(heading_text[0]);
					//alert(pde.stripallHTML(heading_text[0]));

					/*var oldt = heading_text ;
					var newt = newheading_text ;
					var strReplaceAll = parentLI.getElementsByTagName('a')[0].innerHTML;
					strReplaceAll = strReplaceAll.replace( oldt, newt )*/
					//alert(parentLI.getElementsByTagName('a')[0].innerHTML+"\n\n"+strReplaceAll);
					//alert(pde.stripallHTML());
					//parentLI.getElementsByTagName('a')[0].innerHTML = strReplaceAll; 
					//alert(parentLI.getElementsByTagName('a')[0].innerHTML);
					//parentLI.getElementsByTagName('a')[0].innerHTML = '';
					//parentLI.getElementsByTagName('a')[0].innerHTML += strReplaceAll;
					//alert(parentLI.getElementsByTagName('a')[0].lastChild.nodeName);
					//alert(parentLI.getElementsByTagName('a')[0].childNodes[1].childNodes[0].tagName);
					//parentLI.getElementsByTagName('a')[0].innerHTML = strReplaceAll;
					parentLI.getElementsByTagName('a')[0].childNodes[1].removeChild(parentLI.getElementsByTagName('a')[0].childNodes[1].childNodes[0]);
					parentLI.getElementsByTagName('a')[0].childNodes[1].textContent = newheading_text;
					//alert(parentLI.getElementsByTagName('a')[0].lastChild.nodeName);
					//alert(parentLI.getElementsByTagName('a')[0].innerHTML+"\n\n"+strReplaceAll);
					}
				}

			}
		}
	},
	showhide:function(e){
			var image,message;
			var elm=pde.getTarget(e);
			var ul=elm.parentNode.getElementsByTagName('ul')[0];
			var img=elm.parentNode.getElementsByTagName('img')[0];
			if(pde.cssjs('check',ul,pde.hideClass)){
				message=pde.openMessage;
				image=pde.openImage;
				pde.cssjs('remove',elm.parentNode.getElementsByTagName('ul')[0],pde.hideClass);
				pde.cssjs('add',elm.parentNode.getElementsByTagName('ul')[0],pde.showClass);
			} else {
				message=pde.closedMessage;
				image=pde.closedImage;
				pde.cssjs('remove',elm.parentNode.getElementsByTagName('ul')[0],pde.showClass);
				pde.cssjs('add',elm.parentNode.getElementsByTagName('ul')[0],pde.hideClass);
			}
			img.setAttribute('src',image);
			img.setAttribute('alt',message);
			img.setAttribute('title',message);
			pde.cancelClick(e);
	},
	createClone:function(){
			pde.clone=document.createElement('a');
			pde.clone.setAttribute('href','#');
			pde.clone.appendChild(document.createElement('img'));
			pde.clone.getElementsByTagName('img')[0].src=pde.closedImage;
			pde.clone.getElementsByTagName('img')[0].alt=pde.closedMessage;
			pde.clone.getElementsByTagName('img')[0].title=pde.closedMessage;
	},
/* helper methods */
 	getTarget:function(e){
		 var target = window.event ? window.event.srcElement : e ? e.target : null;
		 if (!target){return false;}
		 if (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=!pde.cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
		 break;
		 case 'add':
		 	if(!pde.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':
		 	return new RegExp("(^|\s)" + c1 + "(\s|$)").test(o.className)
		 break;
		 }
	 },
 	stripHTML:function(str) {
		 //alert(str);
		 /*str = str.replace(/<(ul|a)[^>]*\/?>.*<\/(?:\1)>/ig,"");*/
		// Strips everything between <UL> and </UL> including the text content
		str = str.replace(/<ul[^>]*>[\s\S]+<\/ul>/ig,""); 
		// Strips other tags to get the text content
		//alert(str.match(/<(h[345])\b[^>]*>[\S\s]*?<\/\1>/gi));
		var test = str.match(/<(h[3456])\b[^>]*>[\S\s]*?<\/\1>/gi);
		if( test != null){
		//alert(str);
		str = test.join("");
		//alert(str);
		}
		else{
		//alert(str);
		str = pde.stripallHTML(str);
		//alert('here');
		}
		//str = str.replace(/(<([^>]+)>)/ig,"");
		//alert(str);
		return str;

	}, 
	stripallHTML:function(str) {
		// Strips all tags to get the text content
		str = str.replace(/(<([^>]+)>)/ig,"");
		return str;

	}, 
	trim:function(str){
		return str.replace(/^\s*|\s*$/g,'');
	}
}
pde.addEvent(window, 'load', pde.init, false);
