var Monteagle = new Object();
var object;

Monteagle.Stocks = {
	
	ImportXML : function(file, func, obj) {
		object = obj;
		new Ajax.Request(file, { method : 'get', onComplete : func });
	},
	
	Build : function(req) {
		var date;
		var obj = object.split(',');
		for (o = 0; o < obj.length; o++) {
			if ($(obj[o])) {
				var table = Builder.node('table', {cellspacing : 0});
				var tbody = Builder.node('tbody');
				var thead = Builder.node('thead', [
					Builder.node('tr', [
						Builder.node('th', ' '),
						Builder.node('th', {className : 'left'}, (obj[o]=='monteagle') ? 'Name (I Shares)' : 'Name'),
						Builder.node('th', {className : 'right'}, 'Last'),
						Builder.node('th', {className : 'right'}, 'Change')
					])
				]);
				
				table.appendChild(thead);
				
				var stocks = req.responseXML.getElementsByTagName('quote');
				for (var i = 0; i < stocks.length; i++) {
					if (stocks[i].getAttribute('category') == obj[o]) {
						date = stocks[i].getElementsByTagName('date')[0].childNodes[0].nodeValue;
						var change = stocks[i].getElementsByTagName('change')[0].childNodes[0].nodeValue;
						var img = 'blank.gif';
						if (change.indexOf('-') != -1) {
							img = 'down.gif';
						}
						else if (change.indexOf('+') != -1) {
							img = 'up.gif';
						}
						
						var tr = Builder.node('tr', {className : (i % 2 != 0) ? 'alt' : ''}, [
							Builder.node('td', [
								Builder.node('img', {src : 'images/' + img})
							]),
							Builder.node('td', {className : 'left'}, stocks[i].getElementsByTagName('name')[0].childNodes[0].nodeValue),
							Builder.node('td', {className : 'right'}, Monteagle.Stocks.FormatNumber(stocks[i].getElementsByTagName('lastPrice')[0].childNodes[0].nodeValue)),
							Builder.node('td', {className : 'right'}, change)
						]);
						
						tbody.appendChild(tr);
					}
				}
				
				table.appendChild(tbody);
				
				var tfoot;
				
				if (obj[o] == 'monteagle') {
					tfoot = Builder.node('tfoot', [
						Builder.node('tr', [
							Builder.node('td', {colSpan : 4}, [
								Builder.node('div', 'As of ' + date),
								Builder.node('div', 'Quotes are prior day Net Asset Values')
							])
						])
					]);
				}
				else {
					tfoot = Builder.node('tfoot', [
						Builder.node('tr', [
							Builder.node('td', {colSpan : 4}, [
								Builder.node('div', 'As of ' + date),
								Builder.node('div', 'Quotes delayed at least 20 minutes')
							])
						])
					]);
				}
				
				table.appendChild(tfoot);
				
				$(obj[o]).appendChild(table);
				// alert($(obj[o]).innerHTML);
			}
		}
	},
	
	FormatNumber : function(str) {
		str += '';
		
		var x = str.split('.');
		var x1 = x[0];
		var x2 = (x.length > 1) ? '.' + x[1] : '';
		var rgx = /(\d+)(\d{3})/;
		while (rgx.test(x1)) {
			x1 = x1.replace(rgx, '$1' + ',' + '$2');
		}
		
		return (x1 + x2);
	}
	
};

Monteagle.Stocks.ImportXML('quotes.php', Monteagle.Stocks.Build, 'monteagle,market');

// W3C Compatable New Window (replaces target="_blank")
function targetBlank(url) {
   blankWin = window.open(url,'_blank','menubar=yes,toolbar=yes,location=yes,directories=yes,fullscreen=no,titlebar=yes,hotkeys=yes,status=yes,scrollbars=yes,resizable=yes');
}

// Applies a class name of current to the active menu item
function formatNavigation() {
	if ($('content')) {
		if ($A($('content').classNames()).length > 0) {
			$('nav' + $A($('content').classNames())[0].split('-')[1]).addClassName('current');
		}
	}
}

Event.onDOMReady(function() {
	formatNavigation();
});