var eventHandlerObject = function ()

{
	this.add = function (object, type, method, capture)
	{
		if (object.addEventListener)
		{
			object.addEventListener(type, method, capture);
    	return true;
		}
		else if (object.attachEvent)
		{
			return object.attachEvent("on" + type, method);
		}
		else
		{
			alert("ERROR: events::add() could not attach event.");
			return false;
		}
	},
	
	this.remove = function (object, type, method, capture)
	{
		if (object.removeEventListener)
		{
			object.removeEventListener(type, method, capture);
			return true;
		} 
		else if (object.detachEvent)
		{
			return object.detachEvent("on" + type, method);
		} 
		else 
		{
			alert("ERROR: events::remove() could not remove event.");
			return false;
		}
	}
}

var eventHandler = new eventHandlerObject();
eventHandler.add(window, "load", function(e)
{
 var m = document.getElementById("desktop");
 m.focus();
});

eventHandler.add(window, "load", function(e)
{
});

eventHandler.add(document, "click", function(e)
{
	// ctrl, shift or alt pressed?
	if(e.ctrlKey || e.shiftKey || e.altKey) 
	{
		return true;
	}
	
	// left mous button clicked?
	if((e.which && e.which  != 1)
		 	||
		 (e.button && e.button != 0)) 
	{
		return true;
	}
		
	var target = e.target || e.srcElement;
	
	while(target && !/^a$/i.test(target.nodeName))
	{
		target = target.parentNode;
	}
	
	if(!target || !target.getAttribute('rel'))
	{
		return true;
	}
	
	var r = target.getAttribute('rel');
	var h = target.getAttribute('href');
	   
	switch(r)
	{
		case 'imagezoom':
		{
			window.open(h, '', 'width=252, height=252');
			break; 
		}		
		case 'external':
		{
			window.open(h);
			break; 
		}
		default :
		{
			return true;
		}
	}
	
	try { e.preventDefault(); } catch(e){}
	return false;
});
