
function _V1_StandardEventStopPropagation () {this.cancelBubble = true;}
function _V1_StandardEventPreventDefault () {this.returnValue = false;}
function V1_StandardEvent (event)
{
	if (!event.stopPropagation) event.stopPropagation =_V1_StandardEventStopPropagation;
	if (!event.preventDefault) event.preventDefault = _V1_StandardEventPreventDefault;
	if (!event.target && event.srcElement)
	{
		event.target = event.srcElement;
		//if (event.type == 'onmouseout') event.relatedTarget = event.toElement;
		//else if (event.type == 'onmouseover') event.relatedTarget = event.fromElement
	}
	return event;
}

function V1_HookEvent (target, eventname, handler)
{
	if ( target.addEventListener ) 
	{ 
		target.addEventListener(eventname, handler, false);
		return;
	} 

	var oneventname = "on" + eventname;
	
	if ( target.attachEvent ) 
	{ 
		if ( target.detachEvent ) target.detachEvent(oneventname, handler);
		target.attachEvent(oneventname, handler);
		return;
	} 
	
	target[oneventname] = _V1_LegacyHookEvent(target[oneventname], handler);
}

function V1_UnhookEvent (target, eventname, handler)
{
	if ( target.removeEventListener ) 
	{ 
		target.removeEventListener(eventname, handler, false);
		return;
	} 

	var oneventname = "on" + eventname;

	if ( target.detachEvent ) 
	{ 
		target.detachEvent(oneventname, handler);
		return;
	} 
	
	target[oneventname] = _V1_LegacyUnhookEvent(target[oneventname], handler);
}

function V1_FireEvent (target, eventname)
{
	if (target.dispatchEvent)
	{
		var e;
		if (document.createEvent)
			e = document.createEvent("HTMLEvents");
		if (e && e.initEvent)
			e.initEvent(eventname, true, true);
		else
		{
			e = new Object();
			e.type = eventname;
			e.bubble = true;
			e.cancelable = true;
		}
		return target.dispatchEvent(e);
	}
	
	var oneventname = "on" + eventname;
	
	if (target.fireEvent)
		return target.fireEvent(oneventname);

	if (target[oneventname])
		return target[oneventname]();
		
	return true;
}

function _V1_LegacyHookEvent (currenthandler, newhandler)
{
	if (!newhandler)
		return currenthandler;
		
	if (currenthandler && currenthandler._handlers)
	{
		currenthandler._handlers[newhandler] = newhandler;
		return currenthandler;
	}
	
	var multihandler = function(e) 
	{
		if (!e) e = window.event; 
		var handlers = arguments.callee._handlers;
		for (var h in handlers) handlers[h](e);
	};
	multihandler._handlers = new Object();
	
	if (currenthandler)
		multihandler._handlers[currenthandler] = currenthandler;
	multihandler._handlers[newhandler] = newhandler;
		
	return multihandler;
}

function _V1_LegacyUnhookEvent (currenthandler, handlertoremove)
{
	if (!handlertoremove)
		return currenthandler;
		
	if (currenthandler && currenthandler._handlers)
	{
		delete currenthandler._handlers[handlertoremove];
		return currenthandler;
	}
	
	if (currenthandler == handlertoremove)
		return null;
		
	return currenthandler;
}

function _V1_GenericInitialize ()
{
	if (navigator)
	{
		var userAgent = navigator.userAgent.toLowerCase();
		if (userAgent.indexOf("opera") != -1)
		{
			document.body.className += " opera";
		}
		else if (userAgent.indexOf("msie") != -1)
		{
			document.body.className += " msie";
		}
		else if (userAgent.indexOf("firefox") != -1)
		{
			document.body.className += " mozilla";
		}
		else if (userAgent.indexOf("mozilla/5.0") != -1)
		{
			document.body.className += " mozilla";
		}
	}

	if (!document.getElementById && document.all)
		document.getElementById = function(id) {return document.all[id]}
		
	V1_GenericIncluded = true;
}

_V1_GenericInitialize();
var V1_GenericIncluded;
