if (dojo) {
	dojo.provide("marcusrex");

/* DOJO LIBRARIES */

	dojo.require("dojo.event");
	dojo.require("dojo.io");
	dojo.require("dojo.lang.common");
	dojo.require("dojo.html.*");
	dojo.require("dojo.widget.*");
	dojo.require("dojo.dom");

/* NAMESPACE REGISTRATION */

	dojo.registerModulePath("marcusrex", "../marcusrex");

	dojo.registerNamespace("marcusrex", "marcusrex.widget", function(name) { 
		return "marcusrex.widget." + dojo.string.capitalize(name);
	});	
}

/* STARTER FUNCTIONS */

function buildMainScreen(startPageOverride) {
	dojo.require("marcusrex.MenuCfg");

	dojo.require("marcusrex.widget.RexWidget");	
	dojo.require("marcusrex.widget.MainScreen");	

	mainScreenBuilder = new marcusrex.MainScreen({
		menu           : menuConfig.mainMenu,
		startOverride  : startPageOverride,
		sponsorPage    : "sponsors.php"
	});
	
	return mainScreenBuilder.htmlWidget;
}

/* REMAINING FUNCTIONS */

function replaceAll(source, pattern, replacement) {	
	while (source.indexOf(pattern) != -1) {
		source = source.replace(pattern, replacement);
	}
	
	return source;
}

function openInMain(url, title) {
	if (document.MainScreen) {
		document.MainScreen.toggleSubMenu(false, null);
	
		document.MainScreen.showUrl({
			pageUrl     : url,
			pageTitle   : title,
			textAlign   : {
				h: "left",
				v: "top"
			},
			registerPage: true
		});		
	}
}

function openNewWindow(url, title) {
	dojo.require("marcusrex.WinMaker");

	document.winMaker = new marcusrex.WinMaker({						
		pageUrl    : url,
		pageTitle  : title,
		itemType   : "page",
		windowName : "newWindow",
		width      : "max",
		height     : "max",
		minWidth   : 640,
		minHeight  : 480,
		canScroll  : true,
		canResize  : true,
		toolBar    : true
	});
}

function openPopup(url, title, winWidth, winHeight) {
	dojo.require("marcusrex.WinMaker");

	document.winMaker = new marcusrex.WinMaker({						
		pageUrl    : url,
		pageTitle  : title,
		itemType   : "page",
		windowName : "popupWindow",
		width      : winWidth,
		height     : winHeight,
		minWidth   : winWidth,
		minHeight  : winHeight,
		canScroll  : false,
		canResize  : false,
		toolBar    : false
	});
}

function submitForm(formID, url, title) {
	mainForm = null;

	if (document.getElementById) mainForm = document.getElementById(formID);
	else if (document.getElementsByName) mainForm = document.getElementsByName(formID);
	else mainForm = eval("document." + formID + ";");

	if (document.MainScreen && mainForm) {
		document.MainScreen.submitForm({
			formNode    : mainForm,
			pageUrl     : url,
			pageTitle   : title,
			formMethod  : "POST",			
			textAlign   : {
				h: "left",
				v: "top"
			},
			registerPage: true
		});
	}
}

function verifyMail(inputID) {
	inputElem = null;

	if (document.getElementById) inputElem = document.getElementById(inputID);
	else if (document.getElementsByName) inputElem = document.getElementsByName(inputID);
	else inputElem = eval("document." + inputID + ";");
	
	dojo.require("marcusrex.WinMaker");

	document.winMaker = new marcusrex.WinMaker({						
		pageUrl    : "verifymail.php?email=" + inputElem.value,
		pageTitle  : "Controle email-adres",
		itemType   : "page",
		windowName : "verifyMailWindow",
		width      : 360,
		height     : 240,
		minWidth   : 360,
		minHeight  : 240,
		canScroll  : false,
		canResize  : false,
		toolBar    : false
	});
}

function noline(obj) {
	if (obj.blur) obj.blur();
}
