var PokeDream = {};

/* 
   Menu
*/
PokeDream.Menu = function () {
	var self = this;
	
  self.initialize = function() {
		// store current padding in order to resume later
		self.content_padding = $('intelliTXT').style.paddingRight;
		self.toggler = $('menu_toggler');
    self.toggler.observe('click', self.toggle);
  }
  
  self.toggle = function() {
		var menu = $('menu');
    if (menu.style.display == 'none') {
			menu.show();
			// expand content to completely fill space horizontally
			$('intelliTXT').style.paddingRight = self.content_padding;
			self.toggler.update('x');
			self.toggler.style.color = '#c00';
		} else {
			menu.hide();
			$('intelliTXT').style.paddingRight = '10px';
			self.toggler.update('+');
			self.toggler.style.color = '#0c0';
		}
  }
  
  self.initialize();
}

document.observe('dom:loaded', function() {
  var menu = new PokeDream.Menu();
});

/* old Ajax code */
// XMLHttp constants
var XMLHTTP_UNINITIALIZED = 0;
var XMLHTTP_LOADING = 1;
var XMLHTTP_LOADED = 2;
var XMLHTTP_INTERACTIVE = 3;
var XMLHTTP_COMPLETE = 4;

/* Creates and returns a browser-independent XMLHttpRequest object used for Ajax operations */
function createXMLHttp ( ) {
	if (typeof XMLHttpRequest != 'undefined') {
		return new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// use the most recent version of XMLHttp for MSIE
		var aVersions = ['MSXML2.XMLHttp.5.0', 'MSXML2.XMLHttp.4.0', 'MSXML2.XMLHttp.3.0', 'MSXML2.XMLHttp'];
		for (var i = 0; i < aVersions.length; i++) {
			try {
				var oXmlHttp = new ActiveXObject(aVersions[i]);
				return oXmlHttp;
			} catch (oError) {
				// do nothing
			}
		}
	}
	throw new Error('Ajax failed.');
}

/* Creates an Ajax mock object by connecting to sURL using the sMethod (GET or POST) and displaying results in sLocation. */
function Ajax (sUrl, sLocation, sMethod) {
	var oXMLHttp = createXMLHttp();
	oXMLHttp.open(sMethod, sUrl, true);
	oXMLHttp.onreadystatechange = function () {
		if (oXMLHttp.readyState == XMLHTTP_COMPLETE) {
			if (oXMLHttp.status == 200)
				displayContent(oXMLHttp.responseText, sLocation);
			else
				displayContent('Cannot be displayed.', sLocation);
		} else if (oXMLHttp.readyState == XMLHTTP_LOADING) {
			displayContent('<img src="/layout/loading.gif" alt="Loading..." title="Loading..." />', sLocation);
		}
	}
	oXMLHttp.send(null);
}

/* Displays sContent in the element sDisplayLocation */
function displayContent (sContent, sDisplayLocation) {
	document.getElementById(sDisplayLocation).innerHTML = sContent;
}
