//PRELOAD SPINNER IMAGE
headStartSpin = new Image(); 
headStartSpin.src = "i/spin_news.gif";

//NEWS AJAX
var news = {
	myConn: false, 
	body: false,
	target1: false,
	target2: false,
	loader: false,
	init: function(target1id, target2id) {
		//TEST FOR METHODS AND ELEMENTS
		if(!document.getElementById ||
		!document.getElementsByTagName ||
		!document.getElementById(target1id) ||
		!document.getElementById(target2id)) return;
	
		//SET AND TEST XHCONN, QUIT IF IT DOESN'T WORK
		news.myConn = new XHConn();
		if(!news.myConn) return;

		//GET THE BODY AND TARGETS
		news.body = document.getElementsByTagName('body')[0];
		news.target1 = document.getElementById(target1id);
		news.target2 = document.getElementById(target2id);
	},
	
	//AJAX CALL
	getContent: function(reqId) {
		//START THE LOADER
		news.buildLoader();
		
		//DO AFTER CALL IS COMPLETE
		var fnWhenDone = function(oXML) {
			
			xml = oXML.responseXML;
			
			var xmlId = news.getNodeValue(xml, 'id');
			var xmlTitle = news.getNodeValue(xml, 'title');
			var xmlDate = news.getNodeValue(xml, 'date');
			var xmlContent = news.getNodeValue(xml, 'content');
			
			// pause for smooth transition
			var paused = function() {
				news.target1.innerHTML = "<h1><span>Date</span></h1>" +
										 xmlDate;
				news.target2.innerHTML = "<h1><span>News</span></h1>" +
										 "<h2>" + xmlTitle + "</h2>" +
										 xmlContent +
										 "<div id=\"permalink\">&rsaquo; <a href=\"news.php?id=" + xmlId + "\">Permalink</a></div>";
			}
			
			setTimeout(paused, 550);
		}; 
    	
		//USE XHCONN'S CONNECT METHOD
		news.myConn.connect('news.php', 'POST', 'reqId=' + reqId, fnWhenDone);
	},
	
	//BUILD THE LOADER
	buildLoader: function() { //
		news.loader = news.target1.innerHTML = "<h1><span>Date</span></h1>" +
											   "<img src=\"i/spin_news.gif\" width=\"29\" height=\"29\" alt=\"Loading\" />";
	},
	
	//NODE VALUE RETRIEVER
	getNodeValue: function(tree, el) {
		return tree.getElementsByTagName(el)[0].firstChild.nodeValue;
	},
	
	//THE ADD EVENT FUNCTION
	addEvent: function(obj, type, fn) {
		if (obj.addEventListener) obj.addEventListener(type, fn, false);
		else if (obj.attachEvent) {
			obj["e"+type+fn] = fn;
			obj[type+fn] = function() {
				obj["e"+type+fn](window.event);
			};
			obj.attachEvent("on"+type, obj[type+fn]);
		}
	}
};

//news AJAX, RUN INIT ON PAGE LOAD
news.addEvent(window, 'load',
	function(){ news.init('column_1', 'column_2'); }
);
