var outlineItems=new Array();function outlineInit()
{var elements=outlineGetTopLevelLists();for(var i=0;(i<elements.length);i++){outlineInitOutline(elements[i]);}}
function outlineInitOutline(outline)
{var kids=outline.childNodes;for(var i=0;(i<kids.length);i++){var kid=kids[i];if(kid.nodeName=="LI"){outlineInitItem(kid);}}}
function outlineInitItem(item)
{var kids=item.childNodes;var hasKids=false;var outlines=new Array();for(var i=0;(i<kids.length);i++){var kid=kids[i];if(kid.nodeName=="UL"){kid.style.display="none";outlineInitOutline(kid);hasKids=true;outlines[outlines.length]=kid;}}
if(hasKids){item.style.cursor="pointer";var len=outlineItems.length;outlineItems[len]=item;var span=document.createElement("span");span.innerHTML="<a href='#' "+"onClick='outlineItemClickByOffset("+len+"); return false' "+"class='olink'>"+"<img class='oimg' alt='Open' src='images/oopen.png'></a>";item.insertBefore(span,kids[0]);item.onclick=outlineItemClick;}}
function outlineGetTarget(evt)
{var target;if(!evt){evt=window.event;}
evt.cancelBubble=true;if(evt.stopPropagation){evt.stopPropagation();}
var target=evt.target;if(!target){target=evt.srcElement;}
return target;}
function outlineItemClickByOffset(id)
{outlineItemClickBody(outlineItems[id]);}
function outlineItemClick(evt)
{target=outlineGetTarget(evt);outlineItemClickBody(target);}
function outlineItemClickBody(target)
{var closed=true;var kids=target.childNodes;var hasKids=false;for(var i=0;(i<kids.length);i++){var kid=kids[i];if(kid.nodeName=="UL"){if(kid.style.display=="none"){kid.style.display="block";}else{kid.style.display="none";closed=false;}
hasKids=true;}}
if(!hasKids){return;}
var img=outlineGetImg(target);if(closed){img.src="images/oclose.png";img.alt="Close";}else{img.src="images/oopen.png";img.alt="Open";}}
function outlineGetImg(target)
{return outlineGetDescendantWithClassName(target,"oimg");}
function outlineGetDescendantWithClassName(parent,cn)
{var elements=parent.childNodes;var length=elements.length;var i;var regexp=new RegExp("(^| )"+cn+"( |$)");for(i=0;(i<length);i++){if(regexp.test(elements[i].className)){return elements[i];}
var result=outlineGetDescendantWithClassName(elements[i],cn);if(result){return result;}}
return null;}
function outlineGetTopLevelLists()
{var cn="outline";var elements=document.getElementsByTagName("ul");var length=elements.length;var i;var regexp=new RegExp("(^| )"+cn+"( |$)");var results=new Array();for(i=0;(i<length);i++){if(regexp.test(elements[i].className)){results.push(elements[i]);}}
return results;}
