var mDontUnload = false;
var mAlreadyUnloading = false;

function mLoadThis() {
	/* ###### GLOBAL LOADER ###### */

	return 1;

	/* ############################# */
}

function mUnloadThis() {
	/* ###### GLOBAL UNLOADER ###### */

	mFadeOut('mfadeimg',1000);
	return 1;

	/* ############################# */
}

/* ######################################################## */
/* ################ DON'T TOUCH CODE BELOW ################ */
/* ######################################################## */

function mClicked() {
	mDontUnload = false;
	mT = '';
	mT += this.target;
	if (! (((mT == '_self') || (mT == '_top')) || ((mT == '_parent') || (mT == '')))) { mDontUnload = true; }
	mH = this.href;
	mH = mH.toLowerCase();
	mH = mH.substring(0,10);
	if (mH == 'javascript') { mDontUnload = true; }
}

/* ########## FADING ########## */

function mChangeOpacity(mElement, mOpacity) {
	var mObject = document.getElementById(mElement).style;
	mObject.opacity = (mOpacity / 100);
	mObject.filter = 'alpha(opacity=' + mOpacity + ')';
	if (mOpacity <= 1) {
		mObject.display = 'none';
	} else if (mOpacity >= 99) {
		mObject.display = 'block';
	}
}

function mFadeOut(mElement, mDuration) {
	var mStart = 0;
	var mEnd = 100;
	var mSpeed = Math.round(mDuration / 100);
	var mTimer = 0;

	for(i = mStart; i <= mEnd; i++) {
		setTimeout("mChangeOpacity('" + mElement + "'," + i + ")",(mTimer * mSpeed));
		mTimer++;
	}
}

function mFadeIn(mElement, mDuration) {
	var mStart = 100;
	var mEnd = 0;
	var mSpeed = Math.round(mDuration / 100);
	var mTimer = 0;

	for(i = mStart; i >= mEnd; i--) {
		setTimeout("mChangeOpacity('" + mElement + "'," + i + ")",(mTimer * mSpeed));
		mTimer++;
	}
}

/* ########## LOADING ########## */

function mLoading() {
	/* ##### register links ##### */
	var mlinks = document.getElementsByTagName('a');
	for (var i=0; i < mlinks.length; i++) { mlinks[i].onclick = mClicked; }
	/* ##### global loader ##### */
	mLoadThis();
}

function mUnloading() {
	/* ##### do not double unload ##### */
	if ((mAlreadyUnloading) || (mDontUnload )) { return; }
	mAlreadyUnloading = true;
	/* ##### global unloader ##### */
	mUnloadThis();
}

window.onload = mLoading;
window.onbeforeunload = mUnloading;
window.onunload = mUnloading;
