/*
----------------------------------------------------------------------------------
common functions
----------------------------------------------------------------------------------
*/
addLoadEvent(navSub); 
addLoadEvent(navSubFirst); 

/* moveElement by Jeremy Keith */ 
function moveElement(elem, final_x, final_y, interval) {
  if (!document.getElementById) return false;
  if (elem.movement) {
    clearTimeout(elem.movement);
  }
  if (!elem.style.left) {
    elem.style.left = "0px";
  }
  if (!elem.style.top) {
    elem.style.top = "0px";
  }
  var xpos = parseInt(elem.style.left);
  var ypos = parseInt(elem.style.top);
  if (xpos == final_x && ypos == final_y) {
    return true;
  }
  if (xpos < final_x) {
    var dist = Math.ceil((final_x - xpos)/5);
    xpos = xpos + dist;
  }
  if (xpos > final_x) {
    var dist = Math.ceil((xpos - final_x)/5);
    xpos = xpos - dist;
  }
  if (ypos < final_y) {
    var dist = Math.ceil((final_y - ypos)/5);
    ypos = ypos + dist;
  }
  if (ypos > final_y) {
    var dist = Math.ceil((ypos - final_y)/5);
    ypos = ypos - dist;
  }
  elem.style.left = xpos + "px";
  elem.style.top = ypos + "px";
  //var repeat = "moveElement(elem,"+final_x+","+final_y+","+interval+")";
  //elem.movement = setTimeout(repeat,interval);
  
  elem.movement = setInterval((
		function(a, b, c, d, e) { 
			return function() { 
				moveElement(a, b, c, d, e) 
			}
		}
	)(elem, final_x, final_y, interval), interval);
  
  return true;
}


/* by Dustin Diaz */
function getElementsByClass(searchClass,node,tag) 
{
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

/* by ethanak */
function remClass(el,x)
{
	if (!el.className) return;
	if (!arguments.callee.r) arguments.callee.r=new Array();
	var r;
	if (!(r=arguments.callee.r[x])) r=arguments.callee.r[x]=
		new RegExp('\\b'+x+'\\b\\s*|\\s*'+x+'\\b','g');
	var c=el.className.replace(r,'');
	if (c != el.className) el.className=c;
}

function addClass(el,x)
{
	if (!el.className) {
		el.className=x;
		return;
	}
	if (!arguments.callee.r) arguments.callee.r=new Array();
	var r;
	if (!(r=arguments.callee.r[x])) r=arguments.callee.r[x]=
		new RegExp('\\b'+x+'\\b');
	if (!r.test(el.className)) el.className+=' '+x;
}

function mouseBlur() 
{
 var anchors = document.getElementsByTagName('a');
 for (var i = 0; i < anchors.length; i++) {
 	anchors[i].onmousedown = function() {
 		this.className += ' mouse-active';
 	}
 }
}

function navOpenClose(command, element, parent)  {
	
	var lis = parent.getElementsByTagName('li');
	for (var i = 0; i < lis.length; i++) {
		if (lis[i].className.indexOf('open') != -1) {
			remClass(lis[i], 'open');
		}
	}
	switch (command) {
		case 'rem':
			remClass(element, 'open');
			break;
		case 'add':
			addClass(element, 'open');
			break;
		
	}
}

function navSub() {
	var ul = document.getElementById('navSubBox');
	if (ul) {
		ul = ul.getElementsByTagName('ul')[0];
		var hs = ul.getElementsByTagName('h5');
		for (var i = 0; i < hs.length; i++) {
			if (hs[i].className.indexOf('expand') != -1) {
				hs[i].onclick = function() {
					var li = this.parentNode;
					if (li.className.indexOf('open') != -1) {
						navOpenClose('rem', li, li.parentNode);
						} 
					else {
						navOpenClose('add', li, li.parentNode);
						}
				}
			}
		}
	}
}
function navSubFirst() {
	var ul = document.getElementById('navSubBox');
	if (ul) {
		ul = ul.getElementsByTagName('ul')[0];
		var hs = ul.getElementsByTagName('h6');
		for (var i = 0; i < hs.length; i++) {
			if (hs[i].className.indexOf('expand') != -1) {
				hs[i].onclick = function() {
					var li = this.parentNode;
					if (li.className.indexOf('open') != -1) {
						navOpenClose('rem', li, li.parentNode);
						} 
					else {
						navOpenClose('add', li, li.parentNode);
						}
				}
			}
		}
	}
}













