var pointer = new Array();
var eventPool=new Object();


function poolEvent(eventFunction,obj,objTargetPath)
{
	this.eventFunction=eventFunction;
	this.objTargetPath=objTargetPath;
	this.obj=obj;
}

var uniCount=0;

function getUniName()
{
	uniCount++;
	return "un"+uniCount+"_";
}

function executeEvent(e,objTargetPath)
{

var x,type,ret,ret2=true;
	if(document.all)e=eval(objTargetPath+'event');
	type="on"+e.type;
	for(x=0;x<eventPool[type].length;x++)
	{
		if(eventPool[type][x].objTargetPath==objTargetPath)
		{
			
			if((typeof eventPool[type][x].eventFunction)=="string")
			{
				ret=eval(eventPool[type][x].eventFunction+"(e)");
			}
			else
			{
				ret=eventPool[type][x].eventFunction(e);
			}
			if(ret!=true && ret!=false)ret=true
			else if(!ret && ret2)ret2=false;
		
		}
	}
	return ret2;
}

function setEvent(eventName,eventFunction,objSourcePath,objTargetPath)
{
	
	var obj;
	var netEvent;
	eventName=eventName.toLowerCase()
	if(!objTargetPath)objTargetPath="";
	switch(eventName)
	{
		case "onreadystatechange":
			obj=eval(objTargetPath+'document');
		break;
		case "onscroll":
			obj=eval((objTargetPath)?objTargetPath.substr(0,objTargetPath.length-1):'window');
		break;
		case "onload":
			if(document.layers)netEvent=Event.LOAD;
			obj=eval((objTargetPath)?objTargetPath.substr(0,objTargetPath.length-1):'window');
		break;
		case "onresize":
			
			if(document.layers)netEvent=Event.RESIZE;
			obj=eval((objTargetPath)?objTargetPath.substr(0,objTargetPath.length-1):'window');
		break;
		case "onblur":
			if(document.layers)netEvent=Event.BLUR;
			obj=eval((objTargetPath)?objTargetPath.substr(0,objTargetPath.length-1):'window');
		break;
		case "onfocus":
			if(document.layers)netEvent=Event.FOCUS;
			obj=eval((objTargetPath)?objTargetPath.substr(0,objTargetPath.length-1):'window');
		break;
	}
	
	if(!eventPool[eventName])
	{
		eventPool[eventName]=new Array();
	}
	eventPool[eventName][eventPool[eventName].length]= new poolEvent(eventFunction,obj,objTargetPath);
	obj[eventName.toLowerCase()]=new Function('e',objSourcePath+'executeEvent(e,"'+objTargetPath+'")');
}

function setPointer(obj)
{
	pointer[pointer.length]=obj;
	return pointer.length-1;
}

function getPointer(nr)
{
	return pointer[nr];
}
