function addEvent(obj, evType, fn, useCapture)
{
  if(obj.addEventListener){
    obj.addEventListener(evType, fn, useCapture);
    return true;
  }
  else if(obj.attachEvent) {
    var r=obj.attachEvent("on"+evType, fn);
    return r;
  }
  else{
    alert("Handler could not be attached");
  }
}

function getElementsByClass(element, classname)
{
  var messages=new Array();
  var inc=0;
  var alltags=document.all? document.all : document.getElementsByTagName(element);
  for(i=0; i<alltags.length; i++){
    if(alltags[i].className==classname)
      messages[inc++]=alltags[i];
  }
  return messages;
}

function moveElement(elementId, hangerParentId, hangerId)
{
  if(!document.getElementById)
    return false;
  var element=document.getElementById(elementId);
  var hanger=document.getElementById(hangerId);
  var hangerParent=document.getElementById(hangerParentId);
  if(hangerParent){
    hangerParent.insertBefore(element, hanger);
  }
  else{
    hanger.appendChild(element);
  }
}

function moveRelatedLinkCategory(categoryId, hangerParentId, hangerId)
{
	if(!document.getElementById)
	  return false; 
	
	if(document.getElementById(categoryId))
	{
	  moveElement(categoryId, hangerParentId, hangerId); 
	  var relatedLinkDivs=getElementsByClass("div", "rlCategory"); 
	  var shouldHide=true; 
	  for(i=0; i<relatedLinkDivs.length; i++)
	  {
		if(relatedLinkDivs[i].id != categoryId)
		shouldHide=false;
	  }
	  if(shouldHide){
		var parentN=document.getElementById("relatedLinks");
		parentN.parentNode.removeChild(parentN);
	  }
	}
}

function hideanswers()
{
	var links=document.getElementsByTagName("div"); 
	for(var i=0; i < links.length; i++){
		if(links[i].className.match("lAnswer")){
			links[i].style.display='none';
		}
	}
}

function linkclicked(e)
{
	if(window.event){
		var whichlink=window.event.srcElement;
	}
	else{
		var whichlink=e.target;
	}
	
	while(whichlink.nodeName.toLowerCase()!= 'a' && whichlink.nodeName.toLowerCase()!= 'body')
	  whichlink=whichlink.parentNode;
	  
	var findanswer=whichlink.parentNode.getElementsByTagName("div"); 
	for(var i=0; i < findanswer.length; i++){
		if(findanswer[i].className.match("lAnswer")){
			if(findanswer[i].style.display.match("none")){
				findanswer[i].style.display='block';
			}
			else{
				findanswer[i].style.display='none';
			}
		}
	}
	if(window.event){
		window.event.cancelBubble=true;
		window.event.returnValue=false;
	}
	if(e && e.stopPropagation && e.preventDefault){
      e.stopPropagation(); e.preventDefault();
	}
}
	
function linkclicklistener(e){
	var links=document.getElementsByTagName("a"); 
	for(var i=0; i < links.length; i++){
		if(links[i].className.match("lQuestion")){
			addEvent(links[i], 'click', linkclicked, false);
		}
	}
}
	
window.onload=function(){
	linkclicklistener(); 
}