/* popup functions */

function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}

/* hover functions */

function showpopup(e) {

	e = e || window.event;

	showHover();
	current.stop();
	current = dojo.lfx.html.fadeIn("oa-hover", 750).play();
	current.play();
}

function mouseouthidepopup(e) {
	
	e = e || window.event;

	var target = getTarget(e);
	var related = getRelated(e);

	while (target.id != 'oa-hover' && target.nodeName != 'BODY') {
		//alert('target - '+target.id);
		target = target.parentNode
	}

	if (target.id != 'oa-hover') {
		//alert('mouseout target denied');
		return;
	}

	while (related.id != 'oa-hover' && related.id != 'oa' && related.nodeName != 'BODY') {
		//alert('related - '+related.id);
		related = related.parentNode;
	}
	
	if (related.id == 'oa-hover' || related.id == 'oa') {
		//alert('mouseout related denied');
		return;
	}
	
	//alert('mouseout');

	current.stop();
	current = dojo.lfx.html.fadeOut("oa-hover", 750, 0, hideHover).play();
	current.play();
}

function hoverhidepopup(e) {

	e = e || window.event;

	var target = getTarget(e);
	var related = getRelated(e);

	while (related.id != 'oa-hover' && related.nodeName != 'BODY') {
		related = related.parentNode;
	}
	
	if (related.id == 'oa-hover') {
		return;
	}

	current.stop();
	current = dojo.lfx.html.fadeOut("oa-hover", 750, 0, hideHover).play();
	current.play();
}

function hideHover() {
	hoverDiv = document.getElementById('oa-hover');
	hoverDiv.style.display = 'none';
}

function showHover() {
	hoverDiv = document.getElementById('oa-hover');
	hoverDiv.style.display = 'block';
}

/* scroller functions */

function scrollingDetector(inflect) {
	//alert("inflect: " + inflect);
	var scrollLoc = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
	//alert("scrollTop: " + scrollLoc);
	if (scrollLoc > inflect) {
		document.getElementById('sectionNav').style.display = 'block';
		document.getElementById('sectionNavTop').style.display = 'none';
		
		var sn = document.getElementById('sectionNav');
		var snPos = findPosY(sn);
		var snTop = replace(sn.style.top,'px','');
		if (sn.offsetTop > 20) {
			snDiff = snPos - snTop;
			sn.style.top = (scrollLoc - snDiff + 20) + 'px';
		}
		
	} else {
		document.getElementById('sectionNav').style.display = 'none';
		document.getElementById('sectionNavTop').style.display = 'block';
	}
}

function showScroll() {
	var scrollLoc = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
	alert('scrolltop: ' + scrollLoc);
}

/* init */

var current;

function init() {
	if (articleType == 'ra') {
		snt = document.getElementById('sectionNavTop');
		if (snt) {
			var inflect = findPosY(snt);
			// set up scroll detector
			setInterval('scrollingDetector(' + inflect + ')', 100);
			//alert('inflect ' + inflect);
		}	
	}
	
	var trigger = document.getElementById('oa');
	trigger.onmouseover = showpopup;
	trigger.onmouseout = hoverhidepopup;

	var hover = document.getElementById('oa-hover');
	hover.onmouseout = mouseouthidepopup;

	current = dojo.lfx.html.fadeOut("oa-hover", 750, 0, hideHover);
	dojo.lang.setTimeout(current, current.play, 1000);

	externalLinks();
}

dojo.addOnLoad(init);


