/* utility functions */

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function getElementsByClassName(clsName)
{
	var arr = new Array();
	var elems = document.getElementsByTagName("*");
	for ( var cls, i = 0; ( elem = elems[i] ); i++ )
	{
		if ( elem.className == clsName )
		{
			arr[arr.length] = elem;
		}
	}
	return arr;
}

function getTarget(e) {
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	return targ;
}

function getRelated(e) {
	if (e.relatedTarget) relTarg = e.relatedTarget;
	else if (e.toElement) relTarg = e.toElement;
	return relTarg;
}

function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

function navInit() {
	var navContainer = dojo.byId("nav");

	for (var i=0; i<navContainer.childNodes.length; i++) {
		if (navContainer.childNodes[i].nodeName == "LI") {
			var navLi = navContainer.childNodes[i];
			navLi.onmouseover = function() {
				this.className = this.className.concat(" over");
			}

			navLi.onmouseout = function() {
				this.className = this.className.replace(/\sover/, "");
				this.className = this.className.replace(/over/, "");
			}
		}
	}
}

function update_checkboxes (name, status) {
	var cb_group = document.getElementsByName(name);

	for(var i = 0, n = cb_group.length; i < n; ++i) {
		if('checkbox' == cb_group[i].type) {
			cb_group[i].disabled = status;
			cb_group[i].checked = false;
		}
	}
}

function advancedBrowseInit () {
	if (document.AdvancedBrowse != undefined) {
		document.AdvancedBrowse.reset();

		document.AdvancedBrowse.date_past.disabled = 1;
		document.AdvancedBrowse.online_month_start.disabled = 1;
		document.AdvancedBrowse.online_year_start.disabled = 1;
		document.AdvancedBrowse.online_month_end.disabled = 1;
		document.AdvancedBrowse.online_year_end.disabled = 1

		update_checkboxes('phase', 1);
		update_checkboxes('type_id', 1);
		update_checkboxes('subj_id', 1);
	}
}

// load global functions

dojo.addOnLoad(navInit);
dojo.addOnLoad(advancedBrowseInit);

