////////////////////////////////////////
// ALL RIGHTS RESERVED COMTRON d.o.o. //
// COPY OR REDISTRIBUTION OF THIS     //
// CONTENT IS NOT ALLOWED.            //
//									  //
// MULTYPLE EVENTS					  //
// Dejan Božič                        //
////////////////////////////////////////

function Page_Events(classRef)
{
	// ATTRIBUTES
	this.arrMouseMove	= new Array();
	this.arrLoad		= new Array();
	this.arrResize		= new Array();
	this.arrScroll		= new Array();
	this.arrMouseUp		= new Array();
	this.arrMouseDown	= new Array();
	
	// METHODS
	this.MouseMove = MouseMove;
	function MouseMove(e)
	{
		var arrTmp = eval(classRef + ".arrMouseMove");
		for (i in arrTmp)
			eval(arrTmp[i]);
	}
	
	this.MouseUp = MouseUp;
	function MouseUp()
	{
		var arrTmp = eval(classRef + ".arrMouseUp");
		for (i in arrTmp)
			eval(arrTmp[i]);
	}
	
	this.MouseDown = MouseDown;
	function MouseDown()
	{	
		var arrTmp = eval(classRef + ".arrMouseDown");
		for (i in arrTmp)
			eval(arrTmp[i]);
	}
	
	this.Load = Load;
	function Load()
	{
		var arrTmp = eval(classRef + ".arrLoad");
		for (i in arrTmp)
			eval(arrTmp[i]);
	}
	
	this.Resize = Resize;
	function Resize()
	{
		var arrTmp = eval(classRef + ".arrResize");
		for (i in arrTmp)
			eval(arrTmp[i]);
	}
	this.Scroll = Scroll;
	function Scroll()
	{
		var arrTmp = eval(classRef + ".arrScroll");
		for (i in arrTmp)
			eval(arrTmp[i]);
			
	}
	
	
	this.UpdateEvents = UpdateEvents;
	function UpdateEvents()
	{
		// EVENTS TRIGGER: GO TO '/INCLUDE/FOOTER.ASP'
		// EVENTS TRIGGER: GO TO '/INCLUDE/EMPTYFOOTER.ASP'
	}
	
	
	this.Register = Register
	function Register(eventid, functionid)
	{
		switch (eventid)
		{
		case "onload":
			this.arrLoad.push(functionid);
			break;
		case "onmousemove":
			this.arrMouseMove.push(functionid);
			break;
		case "onmouseup":
			this.arrMouseUp.push(functionid);
			break;
		case "onmousedown":
			this.arrMouseDown.push(functionid);
			break;
		case "onscroll":
			this.arrScroll.push(functionid);
			break;
		case "onresize":
			this.arrResize.push(functionid);
			break;
		}

		this.UpdateEvents();
	}
	
	this.UnRegister = UnRegister
	function UnRegister(eventid, functionid)
	{
		switch (eventid)
		{
		case "onload":
			for(i in this.arrLoad)
				if ('' + this.arrLoad[i] == functionid)
				{
					this.arrLoad.splice(i,1);
					break;
				}
			break;
		case "onmousemove":
			for(i in this.arrMouseMove)
				if ('' + this.arrMouseMove[i] == functionid)
				{
					this.arrMouseMove.splice(i,1);
					break;
				}
			break;
		case "onmouseup":
			for(i in this.arrMouseUp)
				if ('' + this.arrMouseUp[i] == functionid)
				{
					this.arrMouseUp.splice(i,1);
					break;
				}
			break;
		case "onmousedown":
			for(i in this.arrMouseDown)
				if ('' + this.arrMouseDown[i] == functionid)
				{
					this.arrMouseDown.splice(i,1);
					break;
				}
			break;
		case "onscroll":
			for(i in this.arrScroll)
				if ('' + this.arrScroll[i] == functionid)
				{
					this.arrScroll.splice(i,1);
					break;
				}
			break;
		case "onresize":
			for(i in this.arrResize)
				if ('' + this.arrResize[i] == functionid)
				{
					this.arrResize.splice(i,1);
					break;
				}
			break;
		}
	}
	
	this.ElementRegister = ElementRegister;
	function ElementRegister(obj, type, fn) 
	{
		try
		{
			if (obj.attachEvent)
			{
				type = type.replace("on", "");
				obj['e'+type+fn] = fn;
				obj[type+fn] = function(){obj['e' + type + fn]( window.event );}
				obj.attachEvent( 'on'+type, obj[type+fn] );
			} 
			else if	(obj.addEventListener(type, fn, false))
			{
				;
			}
			else
			{
				obj[type] = fn;
			}
		}
		catch(ex) {}
    }
    
    this.ElementUnregister = ElementUnregister;
	function ElementUnregister( obj, type, fn ) 
	{
		if ( obj.detachEvent ) 
		{
			obj.detachEvent( 'on'+type, obj[type+fn] );
			obj[type+fn] = null;
		} 
		else if (obj.removeEventListener(type, fn, false))
			;
		else
			obj[type] = "";
	}
}