/*
$Id: libcmn.js,v 1.12 2005/10/13 02:34:52  Exp $
Copyright(C) 1996-2005 INCREMENT P CORP.
*/


var	lBrowserType = -1;
var	lBrowserVersion = -1;
var	ua = navigator.userAgent;
if( ua.indexOf("Firefox/") != -1 )
{
	lBrowserType = 1;
}
else if( ua.indexOf("Opera/8") != -1)
{
	lBrowserType = 2;
	lBrowserVersion = 8;
}
else if( ua.indexOf("Opera") != -1)
{
	lBrowserType = 2;
	lBrowserVersion = 7; 
}
else if( ua.indexOf("MSIE") != -1)
{
	lBrowserType = 0;
}
else if( ua.indexOf("Gecko/") != -1)
{
	lBrowserType = 1;
}
else if( ua.indexOf("Safari/") != -1)
{
	lBrowserType = 3;
}
else
{
	alert( ua );
}

function CMN_GetWindowWidth( oWin )
{
	var	lWidth = 0;

	switch( lBrowserType )
	{
	case	0:	
		lWidth = oWin.document.body.clientWidth;
		break;

	case	1:	
	case	2:	
	case	3:	
		lWidth = oWin.innerWidth;
		break;

	default:
		break;
	}
	return	lWidth;
}

function CMN_GetWindowHeight( oWin )
{
	var	lHeight = 0;
	switch( lBrowserType )
	{
	case	0:	
		lHeight = oWin.document.body.clientHeight;
		break;

	case	1:	
	case	2:	
	case	3:	
		lHeight = oWin.innerHeight;
		break;

	default:
		break;
	}
	return	lHeight;
}

function CMN_SetFocusIn( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	
		oObj.onfocusin	= oFunc;
		break;

	case	1:	
	case	2:	
	case	3:	
		oObj.onfocus	= oFunc;
		break;
	}
}

function CMN_SetFocusOut( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	
		oObj.onfocusout	= oFunc;
		break;

	case	1:	
	case	2:	
	case	3:	
		oObj.onblur	= oFunc;
		break;
	}
}

function CMN_SetKeyDown( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	
		oObj.onkeydown	= oFunc;
		break;

	case	1:	
	case	2:	
	case	3:	
		oObj.onkeypress	= oFunc;
		break;
	}
}

function CMN_SetOnLoad( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	
		oObj.onreadystatechange	= oFunc;
		break;

	case	1:	
	case	2:	
	case	3:	
		oObj.onload	= oFunc;
		break;
	}
}

function CMN_IsLoadComplete( oObj )
{
	var	bComplete = false;
	switch( lBrowserType )
	{
	case	0:	
		if( oObj.readyState == "complete" )
		{
			bComplete = true;
		}
		break;

	case	1:	
	case	2:	
	case	3:	
		bComplete = oObj.complete;
		break;
	}
	return	bComplete;
}

function CMN_PreventDefault( e )
{
	switch( lBrowserType )
	{
	case	0:	
		e.returnValue = false;
		break;

	case	1:	
	case	2:	
	case	3:	
		e.preventDefault();
		break;
	}
}

function CMN_GetEvent( oDoc, e )
{
	var	oEvent = 0;
	switch( lBrowserType )
	{
	case	0:	
		oEvent = oDoc.parentWindow.event;
		break;

	case	1:	
	case	2:	
	case	3:	
		oEvent	= e;
		break;
	}
	return	oEvent;
}

function CMN_GetMouseButton( oEvent )
{
	var lMouseButton = -1;
	switch( lBrowserType )
	{
	case	0:	
		if( oEvent.button&1 )
		{
			lMouseButton	= 0;
		}
		else if( oEvent.button&2 )
		{
			lMouseButton	= 2;
		}
		else if( oEvent.button&4 )
		{
			lMouseButton	= 1;
		}
		break;

	case	1:	
		lMouseButton = oEvent.button;
		break;

	case	3:	
		lMouseButton = 0;
		break;

	case	2:	
		if ( lBrowserVersion == 8)
		{
			lMouseButton = oEvent.button;
		}
		else
		{
			if ( oEvent.button == 1 )
			{
				 lMouseButton	 = 0;
			}
			else if ( oEvent.button == 2 )
			{
				 lMouseButton	 = 2;
			}
			else if ( oEvent.button == 3 )
			{
				 lMouseButton	 = 1;
			}
		}
		break;

	default:
		break;
	}
	return	lMouseButton;
}

function CMN_SetText( oObj, strText )
{
	switch( lBrowserType )
	{
	case	0:	
	case	2:	
		oObj.innerText		= strText;
		break;

	case	1:	
		oObj.textContent	= strText;
		break;
	}
}

function CMN_SetMouseOver( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	
		oObj.onmouseenter	= oFunc;
		break;

	case	1:	
	case	2:	
	case	3:	
		oObj.onmouseover	= oFunc;
		break;
	}
}

function CMN_SetMouseOut( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	
		oObj.onmouseleave	= oFunc;
		break;

	case	1:	
	case	2:	
	case	3:	
		oObj.onmouseout	= oFunc;
		break;
	}
}

function CMN_AddEventListener( oDoc, strEventType, fFunc, bUseCapture )
{
	var bCapture = (bUseCapture===true);
	switch( lBrowserType )
	{
	case	0:	
		oDoc.attachEvent( strEventType, fFunc );
		break;

	case	1:	
	case	2:	
	case	3:	
		oDoc.addEventListener( strEventType, fFunc, bCapture );
		break;
	}
}

function CMN_RemoveEventListener( oDoc, strEventType, fFunc, bUseCapture )
{
	var bCapture = (bUseCapture===true);
	switch( lBrowserType )
	{
	case	0:	
		oDoc.detachEvent( strEventType, fFunc );
		break;

	case	1:	
	case	2:	
	case	3:	
		oDoc.removeEventListener( strEventType, fFunc, bCapture );
		break;
	}
}

function CMN_GetWheelDelta( oEvent )
{
	var nDelta = 0;
	switch( lBrowserType )
	{
	case	0:	
		nDelta = oEvent.wheelDelta;
		break;

	case	1:	
		nDelta = -oEvent.detail;
		break;

	case	2:	
	case	3:	
		nDelta = oEvent.wheelDelta;
		break;
	}
	return	nDelta;
}

function CMN_GetEventName( strEventName )
{
	var strName = "";
	switch( lBrowserType )
	{
	case	0:	
		strName = "on" + strEventName;	
		break;

	case	1:	
		if( strEventName == "mousewheel" )
		{
			strName = "DOMMouseScroll";
		}
		else
		{
			strName = strEventName;
		}
		break;

	case	2:	
	case	3:	
		strName = strEventName;
		break;
	}
	return	strName;
}

