function isIE(){
	if(document.all)
		return true;
}

function isWs(node)
{
  // Use ECMA-262 Edition 3 String and RegExp features
  return !(/[^\t\n\r ]/.test(node.data));
}

function isIgnorable(node)
{
  return ( node.nodeType == 8) || // A comment node
         ( (node.nodeType == 3) && isWs(node) ); // a text node, all ws
}

function previousNode(node)
{
	var sib = node;
  while ((sib = sib.previousSibling)) {
    if (!isIgnorable(node)) return sib;
  }
  return null;
}

function nextNode(node)
{
	var sib = node;
  while ((sib = sib.nextSibling)) {
    if (!isIgnorable(sib)) return sib;
  }
  return null;
}

function lastChildNode(node)
{
  var res = node.lastChild;
  while (res) {
    if (!isIgnorable(sib)) return res;
    res = res.previousSibling;
  }
  return null;
}

function firstChildNode(node)
{
  var res = node.firstChild;
  while (res) {
    if (!isIgnorable(res)) return res;
    res = res.nextSibling;
  }
  return null;
}

function getElementsByClassName(targetClass){
	var elements = document.getElementsByTagName('*');
	var classMembers = [];
	for(var i=0; i<elements.length; i++){
		if(elements[i].className){
			if(elements[i].className.indexOf(targetClass) != -1)
				classMembers.push(elements[i]);
		}
	}
	return classMembers;
}

function init(){
	setup_collapsibles();
}       

function setup_collapsibles(){
	var collapsibles = getElementsByClassName('collapsible');
	for(var i=0; i<collapsibles.length; i++){
/*		firstChildNode(collapsibles[i]).addEventListener('click', toggleCollapse, false);*/
		firstChildNode(collapsibles[i]).onclick = function(e){ toggleCollapse(e) };
	}
}
function toggleCollapse(e){
	var collapsible = e ? e.target.parentNode : window.event.srcElement.parentNode;
	if(collapsible.className.indexOf('expanded') == -1){
		collapsible.className += " expanded";
	} else {
		collapsible.className = collapsible.className.replace(/ expanded/,'');
	}
}
function select_all(name){
	var elements = document.getElementsByName(name);
	for(var i=0; i<elements.length; i++){
		elements[i].checked = true;
	}
}
function unselect_all(name){
	var elements = document.getElementsByName(name);
	for(var i=0; i<elements.length; i++){
		elements[i].checked = false;
	}
}
