
/*
	TopStories v.1.0
	
	Written by Design Technologist
		- Seth Van Booven [svanbooven@sacbee.com]
	
	Copyright © The Sacramento Bee
	Created by the New Media Department
	Created: April 16, 2006 (sv)  /  Last update: 04/16/06 (sv)
	
	****************************************************
		IF YOU DON'T KNOW WHAT YOU ARE DOING
		THEN YOU DON'T BELONG HERE.
		.........................CLOSE IMMEDIATELY!
	****************************************************
------------------------------------------------------------*/

var topStories = {
	load : function(o) {
		var obj = document.getElementById(o);
		if (!obj) return;
		var ref = obj.getElementsByTagName('a');
		for (var j = 0; j < ref.length; j++) {
			var r = ref[j];
			if (document.addEventListener) {
				r.addEventListener("mouseover", topStories.control, false);
			} else if (document.attachEvent) {
				r.attachEvent("onmouseover", topStories.control);
			} else {
				r.onmouseover = topStories.control;
			}
		}
	},
	control : function(e) {
		var o = (document.addEventListener) ? this : event.srcElement;
		topStories.expand(o);
	},
	expand : function(curobj) {
		var elm = document.getElementById('tstories');
		if (!elm) return;
		elm.style.left = (topStories.move(curobj, 'left')) + 'px';
		elm.style.top = (topStories.move(curobj, 'top')) + 'px';
		elm.style.display = 'block';
		elm.innerHTML = '<p>'  + curobj.parentNode.parentNode.innerHTML + '</p>';
	},
	collapse : function(o) {
		topStories.hide(o);
		o.innerHTML = '';
	},
	move : function(o, t) {
		var p = (t == 'left') ? o.offsetLeft : o.offsetTop;
		var elm = o.offsetParent;
		while (elm != null) {
			p = (t == 'left') ? p + elm.offsetLeft : p + elm.offsetTop;
			elm = elm.offsetParent;
		}
		return p;
	},
	expose : function(p, o) {
		var oldo = '';
		var newo = o;
		if (newo.indexOf('_week') > -1) {
			oldo = newo.substring(0, newo.lastIndexOf('_'));
		} else {
			oldo = newo + '_week';
		}
		topStories.show(newo);
		topStories.hide(oldo);
		var par = p.parentNode;
		for (var i = 0; i < par.childNodes.length; i++) {
			if (par.childNodes[i].className) {
				par.childNodes[i].className = '';
			}
		}
		p.className = 'on';
	},
	show : function(o) {
		var obj = document.getElementById(o);
		if (!obj) return;
		obj.style.display = 'block';
	},
	hide : function(o) {
		var obj = document.getElementById(o);
		if (!obj) return;
		obj.style.display = 'none';
	},
	create : function() {
		var div = document.createElement('div');
		div.id = 'tstories';
		div.style.position = 'absolute';
		div.onmouseout = function() {
			topStories.collapse(this.id);
		}
		document.getElementsByTagName('body')[0].appendChild(div);
	}
};
