function getElementsByClassName(cn){  var arr = new Array();   var els = document.getElementsByTagName("*");  var exp= new RegExp("^(.* )?"+cn+"( .*)?$", "g");  for (var i = 0; i < els.length; i++ ){    if (exp.test(els[i].className)){      arr.push(els[i]);    }  }  return arr;}
var closing = false;
function OpenItem(sender)
{
	if(closing == false)
	{
		sender.onclick = '';
		var selector = document.getElementById('selector');
		var liSmallItems = getElementsByClassName('OpenedItem');
		for (var i=0; liSmallItems[i]; i++) 
		{ 
			var li = liSmallItems[i];
			li.className = RemoveClassName(li, 'OpenedItem');
			var aNode = RemoveTextNode(li.firstChild);
			aNode.style.display = 'block';
			li.onclick = function() {OpenItem(li)};
		}
		
		sender.className = AddClassName(sender, 'OpenedItem');
		var openLink = RemoveTextNode(sender.firstChild)
		openLink.style.display = 'none';
		return false;
	}
	else
	{
		closing = false;
	}
}
function CloseItem(sender)
{
	var selector = document.getElementById('selector');
	var liSmallItems = getElementsByClassName('OpenedItem');
	for (var i=0; liSmallItems[i]; i++) 
	{ 
		var li = liSmallItems[i];
		li.className = RemoveClassName(li, 'OpenedItem');
		li.onclick = function() {OpenItem(li)};
		closing = true;
		var aNode = RemoveTextNode(li.firstChild);		
		aNode.style.display = 'block';
	}	
	return false;
	
}
function RemoveClassName(sender, className)
{
	var returnClass = '';
	var arrListSender = sender.className.split(' ');
	for ( var j = 0; j < arrListSender.length; j++ )
	{
		if ( arrListSender[j] != className)
		{
			returnClass += ' ' + arrListSender[j];
		}
	}
	return returnClass;
}
function AddClassName(sender, className)
{
	var returnClass = '';
	var arrListSender = sender.className.split(' ');
	var exist = false;
	for ( var j = 0; j < arrListSender.length; j++ )
	{
		if ( arrListSender[j] == className)
		{
			exist = true;
		}
	}
	if(exist)
	{
		return sender.className;
	}
	else
	{
		return sender.className + ' ' + className;
	}	
}

function RemoveTextNode(startBrother)
{
  endBrother=startBrother;
  if(endBrother!=null)
  {  
      while(endBrother.nodeType!=1)
      {     
        endBrother = endBrother.nextSibling;
      }
  }
  return endBrother;
}

