/*
$Id: libcmn.js 12641 2009-08-18 12:50:28Z tayama_hirokazu $
Copyright(C) 1996-2006 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/9") != -1 || ua.indexOf("Opera 9") != -1)
{
	lBrowserType = 2;
	lBrowserVersion = 9;
}
else if( ua.indexOf("Opera/8") != -1 || 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:	// IE
		lWidth = oWin.document.body.clientWidth;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		lWidth = oWin.innerWidth;
		break;

	default:
		break;
	}
	return	lWidth;
}

function CMN_GetWindowHeight( oWin )
{
	var	lHeight = 0;
	switch( lBrowserType )
	{
	case	0:	// IE
		lHeight = oWin.document.body.clientHeight;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		lHeight = oWin.innerHeight;
		break;

	default:
		break;
	}
	return	lHeight;
}

function CMN_SetFocusIn( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	// IE
		oObj.onfocusin	= oFunc;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oObj.onfocus	= oFunc;
		break;
	}
}

function CMN_SetFocusOut( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	// IE
		oObj.onfocusout	= oFunc;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oObj.onblur	= oFunc;
		break;
	}
}

function CMN_SetKeyDown( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	// IE
		oObj.onkeydown	= oFunc;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oObj.onkeypress	= oFunc;
		break;
	}
}

function CMN_SetOnLoad( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	// IE
		oObj.onreadystatechange	= oFunc;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oObj.onload	= oFunc;
		break;
	}
}

function CMN_IsLoadComplete( oObj )
{
	var	bComplete = false;
	switch( lBrowserType )
	{
	case	0:	// IE
		if( oObj.readyState == "complete" )
		{
			bComplete = true;
		}
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		bComplete = oObj.complete;
		break;
	}
	return	bComplete;
}

function CMN_PreventDefault( e )
{
	switch( lBrowserType )
	{
	case	0:	// IE
		e.returnValue = false;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		e.preventDefault();
		break;
	}
}

function CMN_GetEvent( oDoc, e )
{
	var	oEvent = 0;
	switch( lBrowserType )
	{
	case	0:	// IE
		oEvent = oDoc.parentWindow.event;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oEvent	= e;
		break;
	}
	return	oEvent;
}

function CMN_GetMouseButton( oEvent )
{
	var lMouseButton = -1;
	switch( lBrowserType )
	{
	case	0:	// IE
		if( oEvent.button&1 )
		{
			lMouseButton	= 0;
		}
		else if( oEvent.button&2 )
		{
			lMouseButton	= 2;
		}
		else if( oEvent.button&4 )
		{
			lMouseButton	= 1;
		}
		break;

	case	1:	// FireFox
		lMouseButton = oEvent.button;
		break;

	case	3:	// Safari
		lMouseButton = 0;
		break;

	case	2:	// Opera
		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:	// IE
		oObj.onmouseenter	= oFunc;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oObj.onmouseover	= oFunc;
		break;
	}
}

function CMN_SetMouseOut( oObj, oFunc )
{
	switch( lBrowserType )
	{
	case	0:	// IE
		oObj.onmouseleave	= oFunc;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oObj.onmouseout	= oFunc;
		break;
	}
}

function CMN_AddEventListener( oDoc, strEventType, fFunc, bUseCapture )
{
	var bCapture = (bUseCapture===true);
	switch( lBrowserType )
	{
	case	0:	// IE
		oDoc.attachEvent( strEventType, fFunc );
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oDoc.addEventListener( strEventType, fFunc, bCapture );
		break;
	}
}

function CMN_RemoveEventListener( oDoc, strEventType, fFunc, bUseCapture )
{
	var bCapture = (bUseCapture===true);
	switch( lBrowserType )
	{
	case	0:	// IE
		oDoc.detachEvent( strEventType, fFunc );
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oDoc.removeEventListener( strEventType, fFunc, bCapture );
		break;
	}
}

function CMN_GetWheelDelta( oEvent )
{
	var nDelta = 0;
	switch( lBrowserType )
	{
	case	0:	// IE
		nDelta = oEvent.wheelDelta;
		break;

	case	1:	// FireFox
		nDelta = -oEvent.detail;
		break;

	case	2:	// Opera
	case	3:	// Safari
		break;
	}
	return	nDelta;
}

function CMN_GetEventName( strEventName )
{
	var strName = "";
	switch( lBrowserType )
	{
	case	0:	// IE
		strName = "on" + strEventName;	
		break;

	case	1:	// FireFox
		if( strEventName == "mousewheel" )
		{
			strName = "DOMMouseScroll";
		}
		else
		{
			strName = strEventName;
		}
		break;

	case	2:	// Opera
	case	3:	// Safari
		strName = strEventName;
		break;
	}
	return	strName;
}

function CMN_CreateXMLHttpRequest()
{
	var oXMLHttp = null;
	switch( lBrowserType )
	{
	case	0:	// IE
		oXMLHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oXMLHttp = new XMLHttpRequest();
		break;
	}
	return	oXMLHttp;
}

function CMN_GetXMLDocument( oDoc )
{
	var oXMLDoc = null;
	switch( lBrowserType )
	{
	case	0:	// IE
		oXMLDoc = oDoc.XMLDocument;
		break;

	case	1:	// FireFox
	case	2:	// Opera
	case	3:	// Safari
		oXMLDoc = oDoc;
		break;
	}
	return	oXMLDoc;
}

function CMN_SetOnChange( oTarget, oHandler )
{
	if( lBrowserType == 0 )
	{
		oTarget.onpropertychange	= oHandler;
	}
	else
	{
		oTarget.onchange		= oHandler;
	}
}

function CMN_IsIgnoreEvent( oEvent )
{
	if( lBrowserType != 0 )
	{
		return	false; 
	}
	if( oEvent.propertyName != "onpropertychange" )
	{
		return	false;
	}
	return	true;
}

function CMN_EnumObjectProperty( o )
{
	var s = 0;
	for( i in o )
	{
		s += i + "/" + o[i] + "\n";
	}
	return	s;	
}

function CMN_ReadyImageSize( oObj )
{
	var	bReady = false;
	switch( lBrowserType )
	{
	case	0:	// IE
	case	2:	// Opera
		bReady = oObj.complete;
		break;

	case	1:	// FireFox
		bReady = oObj.naturalWidth != 0;
		break;

	case	3:	// Safari
		bReady = oObj.width;
		break;
	}
	return	bReady;
}

function CMN_SetOpacity( oObj, nOpacity )
{
	switch( lBrowserType )
	{
	case	0:	// IE
		oObj.filters.item("DXImageTransform.Microsoft.Alpha").Opacity = nOpacity;
		break;

	case	1:	// FireFox
		oObj.style.MozOpacity = nOpacity/100;
		break;

	case	2:	// Opera
		oObj.style.opacity = nOpacity/100;	
		break;

	case	3:	// Safari
		oObj.style.Opacity = nOpacity/100;	
		break;
	}
}

