//
// OnLoad handler class
//
window.onload = function() { OnLoadHandler.loadEvents(); }
OnLoadHandler = {

	eventContainer : [],
	eventOrder : 0,
	cancelAllEvents : false,

	addEvent : function( f )
	{
		this.eventContainer[this.eventOrder++] = f;
		return;
	},
	loadEvents : function()
	{
		if( ! this.cancelAllEvents )
		{
			for( var x = 0; x < this.eventContainer.length; x++ )
			{
				this.eventContainer[x]();
			}
		}

		return;
	}
}
var appendButtonClickEvent = function()
{
	var buttons = document.body.getElementsByTagName("input");
	for( var x = 0; x < buttons.length; x++ )
	{
		if( buttons[x].getAttribute("type") == "submit" && buttons[x].getAttribute("lock") != "true" )
		{
			buttons[x].onclick = function()
			{
				this.style.visibility = "hidden";
				return;
			}
		}
		switch( buttons[x].getAttribute("type") )
		{
			case "reset" : case "button" : case "submit" :
				buttons[x].onmouseover = function()
				{
					this.className = this.className + "Hover";
					return;
				}
				buttons[x].onmouseout = function()
				{
					this.className = this.className.replace("Hover", "");
					return;
				}
				break;
		}
	}

	return;
}
var addBlurToAnkers = function()
{
	var ankers = document.body.getElementsByTagName("a");
	for( var x = 0; x < ankers.length; x++ )
	{
		ankers[x].onclick = function() { this.blur() }
	}

	return;
}
var addOnKeyUpToFormText = function()
{
	var oText = document.body.getElementsByTagName("input");
	for( var x = 0; x < oText.length; x++ )
	{
		if( oText[x].type == "text" )
		{
			if( oText[x].onkeyup == null )
			{
				oText[x].onkeyup = function()
				{
					if( ! isNaN( this.value.replace(",","") ) )
					{
						this.style.color = ( parseInt( this.value, 10 ) < 0 ) ? "#FF0000" : "#000000";
					}
					else
					{
						this.style.color = "#000000";
					}
				}
				if( ! isNaN( oText[x].value ) )
				{
					oText[x].style.color = ( parseInt( oText[x].value, 10 ) < 0 ) ? "#FF0000" : "#000000";
				}
				else
				{
					oText[x].style.color = "#000000";
				}
			}
		}
	}

	return;
}
OnLoadHandler.addEvent( addOnKeyUpToFormText );
OnLoadHandler.addEvent( addBlurToAnkers );
OnLoadHandler.addEvent( appendButtonClickEvent );

//
// Base functions
//
function getEventPosition( evt )
{
	var pos = new Object();
	pos.x = 0;
	pos.y = 0;

	if( ! evt )
	{
		var evt = window.event;
	}

	if( typeof( evt.pageX ) == "number" )
	{
		pos.x = evt.pageX;
		pos.y = evt.pageY;
	}
	else
	{
		pos.x = evt.clientX;
		pos.y = evt.clientY;
		if( ! top.opera )
		{
			if( ( ! window.document.compatMode) || (window.document.compatMode == 'BackCompat') )
			{
				pos.x += window.document.body.scrollLeft;
				pos.y += window.document.body.scrollTop;
			}
			else
			{
				pos.x += window.document.documentElement.scrollLeft;
				pos.y += window.document.documentElement.scrollTop;
			}
		}
	}

	return pos;
}
function in_array( aArray, aValue )
{
	var bReturnValue = false;
	for( var x = 0; x < aArray.length; x++ )
	{
		if( aArray[x] == aValue )
		{
			bReturnValue = true;
		}
	}

	return bReturnValue;
}
function SetCookie( name, value, expires, path, domain )
{
	document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : "; expires=" + expires.toGMTString()) + ((path == null)    ? "" : "; path=" + path) + ((domain == null)  ? "" : "; domain=" + domain);

	return;
}
function GetCookie( name )
{
	var cname = name + "=";
	var dc = document.cookie;
	if (dc.length > 0)
	{
		begin = dc.indexOf(cname);
		if (begin != -1)
		{
			begin += cname.length;
			end = dc.indexOf(";", begin);
			if (end == -1)
				end = dc.length;

			return unescape(dc.substring(begin, end));
		}
	}
	return;
}
function DelCookie( name, path, domain )
{
	if( getCookie(name) )
  		document.cookie = name + "=" + ((path == null) ? "" : "; path=" + path) + ((domain == null) ? "" : "; domain=" + domain) + "; expires=Thu, 01-Jan-70 00:00:01 GMT";

	return;
}
function ParseInt( variable )
{
	return parseInt(variable, 10);
}
/* Made by Mathias Bynens <http://mathiasbynens.be/> */
function NumberFormat(a, b, c, d) {
 a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
 e = a + '';
 f = e.split('.');
 if (!f[0]) {
  f[0] = '0';
 }
 if (!f[1]) {
  f[1] = '';
 }
 if (f[1].length < b) {
  g = f[1];
  for (i=f[1].length + 1; i <= b; i++) {
   g += '0';
  }
  f[1] = g;
 }
 if(d != '' && f[0].length > 3) {
  h = f[0];
  f[0] = '';
  for(j = 3; j < h.length; j+=3) {
   i = h.slice(h.length - j, h.length - j + 3);
   f[0] = d + i +  f[0] + '';
  }
  j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
  f[0] = j + f[0];
 }
 c = (b <= 0) ? '' : c;
 return f[0] + c + f[1];
}
