// Fully accessible collapsible orderedls. JavaScript code
// copyright 2007, Boutell.Com, Inc.
//
// See http://www.boutell.com/newfaq/ for more information.
//
// Permission granted to use, republish, sell and otherwise
// benefit from this code as you see fit, provided you keep
// this notice intact. You may remove comments below this line.
//
// END OF NOTICE

var orderedlItems = new Array();

function orderedlInit(){
var elements = orderedlGetTopLevelLists();
for (var i = 0; (i < elements.length); i++){
orderedlInitOutline(elements[i]);
}		
}

function orderedlInitOutline(orderedl){
var kids = orderedl.childNodes;
for (var i = 0; (i < kids.length); i++){
var kid = kids[i];
if (kid.nodeName == "LI"){
orderedlInitItem(kid);
}
}
}

function orderedlInitItem(item){
var kids = item.childNodes;
var hasKids = false;
var orderedls = new Array();
for (var i = 0; (i < kids.length); i++){
var kid = kids[i];	
if (kid.nodeName == "UL"){
kid.style.display = "none";
orderedlInitOutline(kid);
hasKids = true;
orderedls[orderedls.length] = kid;
}
}
if (hasKids){
item.style.cursor = "pointer";
var len = orderedlItems.length;
orderedlItems[len] = item;
var span = document.createElement("span");
span.innerHTML = "<a href='#' " + 
"onClick='orderedlItemClickByOffset(" + len + 
"); return false' " + 
"class='olink'>" + 
"<img class='oimg' alt='+' src='http://www.ipostad.com/img/oopen.png'></a>";
item.insertBefore(span, kids[0]);
item.onclick = orderedlItemClick;
}
}

function orderedlGetTarget(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 orderedlItemClickByOffset(id){
orderedlItemClickBody(orderedlItems[id]);
}

function orderedlItemClick(evt){
target = orderedlGetTarget(evt);
orderedlItemClickBody(target);
}

function orderedlItemClickBody(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 = orderedlGetImg(target);
if (closed){
img.src = "http://www.ipostad.com/img/oclose.png";
img.alt = "-";
} else {
img.src = "http://www.ipostad.com/img/oopen.png";
img.alt = "+";
}
}

function orderedlGetImg(target){
return orderedlGetDescendantWithClassName(target, "oimg");
}

function orderedlGetDescendantWithClassName(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 = orderedlGetDescendantWithClassName(
elements[i], cn);	
if (result){
return result;
}
}
return null;
}

function orderedlGetTopLevelLists(){
var cn = "orderedl";
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;
}
