var WonLoad = new function ()
{
	this.onLoad = new Array();
		
	this.add = function(func, url)
	{
		var load = new Array();
		load[0] = func;
		load[1] = url;
		
		this.onLoad[this.onLoad.length] = load;

		delete load;
	}
	
	this.run = function(href)
	{
		for(i = 0; i < this.onLoad.length; i++)
		{
			var URLQuery = "";
			
			try
			{
				var delimiter = 'action';
				var name = delimiter.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
				var regexS = "[\\?&]"+name+"=([^&#]*)";
				var regex = new RegExp( regexS );
				var results = regex.exec( href );
				if( results != null ) {
					URLQuery = results[1];
				}

				var delimiter = 'id';
				var name = delimiter.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
				var regexS = "[\\?&]"+name+"=([^&#]*)";
				var regex = new RegExp( regexS );
				var results = regex.exec( href );
				if( results != null ) {
					URLQuery += "&id=" + results[1];
				}
			}
			catch (E) { }

			try
			{
				if (URLQuery.length == 0 && href.length > 0)
				{
					var toremove = location.href;
					var re = new RegExp(toremove, 'gi');

					URLQuery = href.replace(re, '');
					if (URLQuery.substring(0, 1) != "/")
					{
						URLQuery = "/" + URLQuery;
					}
				}
			}
			catch (E) { }

			if(this.onLoad[i][1] == "" || this.onLoad[i][1] == URLQuery)
			{
				eval(this.onLoad[i][0]);
			}

			delete URLQuery;
		}
	}
}

window.onload = function ()
{
	if (ajaxd == 1)
		modifyForAJAX();
	WonLoad.run();
}

function modifyForAJAX()
{
	var anchors = document.getElementsByTagName("a");
	
	for(var i = 0; i < anchors.length; i++)
	{
		if(anchors[i].rel == "content")
		{
			anchors[i].onclick = function () {
				return ajaxLink(this.getAttribute('href'));
			}
		}
	}

	delete anchors;
}

var _href;
function ajaxLink(href)
{
	var content = document.getElementById('content');

	_href = href;

	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	if (rewrited) {
		ajaxObjects[ajaxIndex].requestFile = href + '1';
	} else {
		ajaxObjects[ajaxIndex].requestFile = href + '&ajax=1';
	}
	ajaxObjects[ajaxIndex].onLoading = function()
	{
		content.innerHTML = '<div class="loading" align="center"><img src="includes/loading.gif" alt="Loading" /></div>';
	};
	ajaxObjects[ajaxIndex].onCompletion = function() 
	{
		var resp = ajaxObjects[ajaxIndex].response;
		
		content.innerHTML = unescape(resp);

		if (document.getElementById('location') != null)
		{
			var toremove = location.href;
			var re = new RegExp(toremove, 'gi');

			var _href = href.replace(re, '');

			var SubajaxIndex = ajaxObjects.length;
			ajaxObjects[SubajaxIndex] = new sack();
			ajaxObjects[SubajaxIndex].async = true;
			if (rewrited) {
				ajaxObjects[SubajaxIndex].requestFile = '/location/' + convert(_href) + '/1/';
			} else {
				ajaxObjects[SubajaxIndex].requestFile = '?action=location&href=' + convert(_href) + '&ajax=1';
			}
			ajaxObjects[SubajaxIndex].onCompletion = function() 
			{
				var resp = ajaxObjects[SubajaxIndex].response;
				document.getElementById('location').innerHTML = unescape(resp);
				document.title = unescape(resp).substring(unescape(resp).indexOf('rel="content">') + 14, unescape(resp).indexOf('</a>'));
				delete resp;

				modifyForAJAX();
			};
			ajaxObjects[SubajaxIndex].runAJAX();

		}

		if (document.getElementById('submenu'))
		{
			var SubSubajaxIndex = ajaxObjects.length;
			ajaxObjects[SubSubajaxIndex] = new sack();
			ajaxObjects[SubSubajaxIndex].async = true;
			if (rewrited) {
				ajaxObjects[SubSubajaxIndex].requestFile = '/submenu/' + convert(_href) + '/1/';
			} else {
				ajaxObjects[SubSubajaxIndex].requestFile = '?action=submenu&href=' + convert(_href) + '&ajax=1';
			}
			ajaxObjects[SubSubajaxIndex].onCompletion = function() 
			{
				var resp = ajaxObjects[SubSubajaxIndex].response;
				document.getElementById('submenu').innerHTML = unescape(resp);
				delete resp;

				modifyForAJAX();
			};
			ajaxObjects[SubSubajaxIndex].runAJAX();
		}

		modifyForAJAX();

		WonLoad.run(href);

		delete resp, content, SubajaxIndex;
	};
	ajaxObjects[ajaxIndex].runAJAX();

	delete ajaxIndex;
	
	return false;
}

function convert(string)
{
	var result = "";

	for (var i = 0; i < string.length; i++)
	{
		var tmp = string.charCodeAt(i);
		tmp = tmp + i;
		var num1 = parseInt(tmp/100);
		var num2 = parseInt(tmp%100);
		var num2 = parseInt(num2/10);
		var num3 = parseInt(tmp%10);
		result = result + num1;
		result = result + num2;
		result = result + num3;
	}

	return result;
}

/*
if(navigator.appName == "Netscape")
{
	document.onkeypress = function (evt)
	{
		try
		{
			var r = '';
			if (document.getElementById)
			{
				r += evt.ctrlKey ? 'Ctrl-' : '';
				r += evt.charCode;
				if (evt.keyCode =="116" || r == "Ctrl-114")
				{
					evt.preventDefault();
					evt.stopPropagation();
					window.setTimeout(currentURI, 10);
					return false;
				}
			}
		}
		catch (E) { }
	}
}
else
{
	document.onkeydown = function()
	{
		try
		{
			if(window.event && window.event.keyCode == 116)
			{
				window.event.keyCode = 505;
			}

			if(window.event && window.event.ctrlKey || window.event.keyCode == 114)
			{
				window.event.keyCode = 505;
				return false;
			}

			if(window.event && window.event.keyCode == 505)
			{
				window.setTimeout(currentURI, 10);
				return false;
			}
		}
		catch (E) { }
	}
}
*/