// JavaScript Document

function elementAddClass(ctrl, className)
{
 var regex = new RegExp("\s?"+className+"\s?");

 if(regex.test(ctrl.className))
 return;

 ctrl.className += " "+className;
}

function elementRemoveClass(ctrl, className)
{
 var regex = new RegExp("\s?"+className+"\s?");
 ctrl.className = ctrl.className.replace(regex, " ");
}

function elementContainsClass(ctrl, className)
{
 var regex = new RegExp("\s?"+className+"\s?");
 return (ctrl.className.search(regex) != -1)
}

function setElementText(ctrl, text)
{
 if(ctrl.firstChild == null)
 ctrl.appendChild(document.createTextNode(text));
 else
 ctrl.firstChild.nodeValue = text;
}

function elementAddEventListener(element, eventName, callback)
{
 if(element.addEventListener)
 element.addEventListener(eventName, callback, false);
 else if(element.attachEvent)
 element.attachEvent("on"+eventName, callback);
}

function toggleLocation(iLoc)
{
	var LineCtrl = document.getElementById('line'+iLoc);
	var extendedCtrl = document.getElementById('extended'+iLoc);
	
	var isOpen = isLineOpen(LineCtrl);
	
	if(isOpen)
	{
		elementRemoveClass(LineCtrl, "boggle");
		elementRemoveClass(extendedCtrl, "open");
	}
	else
	{
		elementAddClass(LineCtrl, "boggle");
		elementAddClass(extendedCtrl, "open");
	}
	
	// Remove focus from the anchor tag
	anchors = document.getElementById("line"+iLoc).getElementsByTagName("a");
	for(var i = 0 ; i < anchors.length ; i++)
		anchors[i].blur();
}

function isLineOpen(LineCtrl)
{
	return LineCtrl.className.match(/\s?boggle\s?/);
}