﻿var gisGecko	= false;

<!--
var gstrAjaxErrMessage="システム混雑により、大変ご迷惑をお掛け致します。<br>実行中の処理は失敗しました。<br>再度、ログインしてからお取り引きください。";

var gblDebug=false;
var gblStartPage = false;
var gintHelpTimeId = -1;

// private
function CalcElementLeftNoAbsolute(obj)
{
	var	intOffset	= 0;

	var pobj = obj.parentElement;
	if (pobj == null) {
		return 0;
	}
	if (obj.style.position == 'absolute')
	{
		return 0;
	}

	if (obj.nodeName == "TABLE" ||
		obj.nodeName == "TD"	||
		obj.nodeName == "SPAN"	||
		obj.nodeName == "DIV") {
		intOffset += parseInt(obj.offsetLeft);
	}
	if (obj.nodeName == "TD")
	{
		intOffset += parseInt(obj.clientLeft);
	}
if (gblDebug==true)
{
var objDebug=document.getElementById("debug");
if (objDebug!=null)
{
objDebug.innerHTML+=obj.nodeName + " id:" +  obj.id + " offsetLeft:" + obj.offsetLeft + " clientLeft:" + obj.clientLeft + "<br>";
objDebug.innerHTML+="intOffset:"+intOffset+"<br>";
}
}

	intOffset += CalcElementLeftNoAbsolute(pobj);

	return intOffset;
}

function CalcElementLeftAbsolute(obj)
{
	var	intOffset	= 0;

	var pobj = obj.parentElement;
	if (pobj == null) {
		return 0;
	}

	if (obj.style.position == 'relative')
	{
		return 0;
	}

	intOffset += parseInt(obj.offsetLeft);
	if (obj.nodeName == "TD")
	{
		intOffset += parseInt(obj.clientLeft);
	}

	intOffset += CalcElementLeftAbsolute(pobj);

	return intOffset;
}

function	CalcObjectLeft(obj)
{
	var	intOffset	= 0;

	if (obj.style.position != 'absolute')
	{
		intOffset = CalcElementLeftNoAbsolute(obj);
	}
	else
	{
		intOffset = CalcElementLeftAbsolute(obj);
	}

	return intOffset;
}

// private
function	CalcObjectTop(obj)
{
	var pobj = obj.offsetParent;
	if (pobj == null) {
		return 0;
	}

	var	intCalcOffset = 0;
	var intThisOffset = 0;

	intThisOffset = parseInt(obj.offsetTop);

	if ((pobj.tagName != "TABLE") && (pobj.tagName != "BODY")) 
	{
		intThisOffset += parseInt(pobj.clientTop); 
	}

	if (pobj.style.position != 'relative')
	{
		// 起点となるポジションに到達しない場合は、親オブジェクトの位置を計算する
		intCalcOffset = CalcObjectTop(pobj);
	}
	else
	{
		// 起点となるポジションが存在した場合は相対化をする
		intCalcOffset = CalcObjectLeft(pobj) * -1;
	}

	return intThisOffset + intCalcOffset;
}

// public
function	GetObjectLeft(obj)
{
	var strRet = "";

	if (obj.currentStyle)
	{
		strRet = obj.currentStyle.left;
	}
	else if (obj.style)
	{
		strRet = obj.style.left;
	}
	else
	{
		strRet = obj.left;
	}

	if (isNaN(strRet))
	{
		try
		{	
			strRet = strRet.replace("px", "");
			if (isNaN(strRet) == false)
			{
				return parseInt(strRet);
			}
		}
		catch (e)
		{
			;
		}
		
		// 数値でない場合
		return CalcObjectLeft(obj);
	}
	else
	{
		return parseInt(strRet);
	}
}

function CalcElementTopNoAbsolute(obj)
{
	var	intOffset	= 0;

	var pobj = obj.parentElement;
	if (pobj == null) {
		return 0;
	}
	if (obj.style.position == 'absolute')
	{
		return 0;
	}

	if (obj.nodeName == "TABLE" ||
		obj.nodeName == "TD" ||
		obj.nodeName == "DIV") {
		intOffset += parseInt(obj.offsetTop);
	}
	if (obj.nodeName == "TD")
	{
		intOffset += parseInt(obj.clientTop);
	}

if (gblDebug==true)
{
var objDebug=document.getElementById("debug");
if (objDebug!=null)
{
objDebug.innerHTML+=obj.nodeName + " id:" +  obj.id + " offsetTop:" + obj.offsetTop + " clientTop:" + obj.clientTop + "<br>";
objDebug.innerHTML+="intOffset:"+intOffset+"<br>";
}
}

	intOffset += CalcElementTopNoAbsolute(pobj);

	return intOffset;
}

function CalcElementTopAbsolute(obj)
{
	var	intOffset	= 0;

	var pobj = obj.parentElement;
	if (pobj == null) {
		return 0;
	}

	if (obj.style.position == 'relative')
	{
		return 0;
	}

	intOffset += parseInt(obj.offsetTop);
	if (obj.nodeName == "TD")
	{
		intOffset += parseInt(obj.clientTop);
	}

	intOffset += CalcElementTopAbsolute(pobj);

	return intOffset;
}

// public
function	CalcObjectTop(obj)
{
	var	intOffset	= 0;

	if (obj.style.position != 'absolute')
	{
		intOffset = CalcElementTopNoAbsolute(obj);
	}
	else
	{
		intOffset = CalcElementTopAbsolute(obj);
	}

	return intOffset;
}

function	GetObjectTop(obj)
{
	var strRet = "";

	if (obj.currentStyle)
	{
		strRet = obj.currentStyle.top;
	}
	else if (obj.style)
	{
		strRet = obj.style.top;
	}
	else
	{
		strRet = obj.top;
	}

	if (isNaN(strRet))
	{
		try
		{	
			strRet = strRet.replace("px", "");
			if (isNaN(strRet) == false)
			{
				return parseInt(strRet);
			}
		}
		catch (e)
		{
			;
		}
	
		// 数値でない場合
		return CalcObjectTop(obj);
	}
	else
	{
		return parseInt(strRet);
	}
}

// public
function	GetObjectWidth(obj)
{
	var strRet = "";

	strRet = obj.width;

	if (isNaN(strRet))
	{
		try
		{	
			strRet = strRet.replace("px", "");
			if (isNaN(strRet) == false)
			{
				return parseInt(strRet);
			}
		}
		catch (e)
		{
			;
		}

		// 数値でない場合
		if (obj.currentStyle)
		{
			strRet = obj.currentStyle.width;
		}
		else if (obj.style)
		{
			strRet = obj.style.width;
		}
	}

	return parseInt(strRet);
}

// public
function	GetObjectHeight(obj)
{
	var strRet = "";

	strRet = obj.height;

	if (isNaN(strRet))
	{
		try
		{	
			strRet = strRet.replace("px", "");
			if (isNaN(strRet) == false)
			{
				return parseInt(strRet);
			}
		}
		catch (e)
		{
			;
		}

		if (obj.currentStyle)
		{
			strRet = obj.currentStyle.height;
		}
		else if (obj.style)
		{
			strRet = obj.style.height;
		}
	}

	return parseInt(strRet);
}

// WebUtilクラス
function	WebUtil()
{
	this.GetObjectLeft		= GetObjectLeft;
	this.GetObjectTop		= GetObjectTop;
	this.GetObjectWidth		= GetObjectWidth;
	this.GetObjectHeight	= GetObjectHeight;
}

var	gZindexManager;
var	gConstObj_Index			= 0;
var	gConstObjName_Index		= 1;
var	gConstZIndex_Index		= 2;

gZindexManager = new ZindexManager();

function	ZindexManager()
{
	this.arrZindex	= new Array();
	this.Clean			= ZManagerClean;
	this.AddWindow		= ZManagerAddWindow;
	this.IsTopWindow	= ZManagerIsTopWindow;
	this.TopWindow		= ZManagerTopWindow;
	this.DeleteWindow	= ZManagerDeleteWindow;
	this.GetMyDataIndex	= ZManagerGetMyDataIndex;
	this.ZIndexRePlacement	= ZManagerZIndexRePlacement;
}

function	ZManagerClean()
{
	for (i = this.arrZindex.length - 1; i >= 0 ; i--)
	{
		var arrZData = this.arrZindex[i];
	
		try
		{
			arrZData[gConstObj_Index].IsAlive();
		}
		catch (e)
		{
			// 解放されたウインドウを削除する
			this.arrZindex.splice(i, 1);
			;
		}
	}
}

function	ZManagerAddWindow(
	obj,
	strMyName,
	intInitialIndex)
{
	var i;
	var intMaxIndex = 200;

	this.Clean();

	if (intInitialIndex == -1)
	{
		// 一番最大のZ-INDEXを取得する
		for (i = 0; i < this.arrZindex.length; i++) {
			var arrZData = this.arrZindex[i];
			if (arrZData[gConstZIndex_Index] > intMaxIndex && arrZData[gConstZIndex_Index] < 300 && arrZData[gConstObj_Index] != obj)
			{
				intMaxIndex = arrZData[gConstZIndex_Index];
			}
		}
		intMaxIndex += 5;
	}
	else
	{
		intMaxIndex = intInitialIndex;
	}

	// 登録対象が存在しないか判断する
	var inIndex = this.GetMyDataIndex(obj);
	if (inIndex != -1)
	{
		this.arrZindex[inIndex][gConstZIndex_Index] = intMaxIndex;
	}
	else
	{
		var arrCurrentData = new Array(obj, strMyName, intMaxIndex);

		this.arrZindex.push(arrCurrentData);
	}

	return(intMaxIndex);
}

function	ZManagerIsTopWindow(
	strMyObj)
{
	var intMaxIndex = -1;
	var	strMaxObj;

	// 自分自身が最上位か判断する
	for (i = 0; i < this.arrZindex.length; i++) {
		var arrZData = this.arrZindex[i];
		if (arrZData[gConstZIndex_Index] > intMaxIndex)
		{
			strMaxObj	= arrZData[gConstObj_Index];
			intMaxIndex = arrZData[gConstZIndex_Index];
		}
	}

	if (strMaxObj != strMyObj)
	{
		return(false);
	}

	return(true);
}

function	ZManagerTopWindow(
	strMyObj)
{
	var intMaxIndex = -1;
	var	strMaxObj;

	this.Clean();

	// 一番最大のZ-INDEXを取得する
	for (i = 0; i < this.arrZindex.length; i++) {
		var arrZData = this.arrZindex[i];
		if (arrZData[gConstZIndex_Index] > intMaxIndex)
		{
			strMaxObj	= arrZData[gConstObj_Index];
			intMaxIndex = arrZData[gConstZIndex_Index];
		}
	}

	if (strMaxObj != strMyObj)
	{
		intMaxIndex += 5;
		var inIndex = this.GetMyDataIndex(strMyObj);
		if (inIndex != -1)
		{
			this.arrZindex[inIndex][gConstZIndex_Index] = intMaxIndex;
		}
	}

	// 全ダイアログのz-indexを変更する
	this.ZIndexRePlacement();

	return;
}

function	ZManagerGetMyDataIndex(
	strMyObj)
{
	var	intRet = -1;

	for (i = 0; i < this.arrZindex.length; i++) {
		var arrZData = this.arrZindex[i];
		if (arrZData[gConstObj_Index] == strMyObj)
		{
			intRet = i;
			break;
		}
	}

	return intRet;
}

function	ZManagerDeleteWindow(
	strMyObj)
{
	var inIndex = this.GetMyDataIndex(strMyObj);

	if (inIndex != -1)
	{
		this.arrZindex.splice(inIndex, 1);
	}

	return;
}

function	ZManagerZIndexRePlacement()
{
	var intMaxIndex = 200;

	this.arrZindex.sort(ZManagerZIndexCompere);

	for (i = 0; i < this.arrZindex.length; i++) {
		var arrZData = this.arrZindex[i];

		if (arrZData[gConstZIndex_Index] < 300)
		{
			arrZData[gConstZIndex_Index] = intMaxIndex;
			intMaxIndex += 5;
		}
	}

	for (i = 0; i < this.arrZindex.length; i++) {
		var arrZData = this.arrZindex[i];

		arrZData[gConstObj_Index].ReZIndex(arrZData[gConstZIndex_Index]);
	}
}

function	ZManagerZIndexCompere(
	objA,
	objB)
{
	if (objA[gConstZIndex_Index] < objB[gConstZIndex_Index])
	{
		return(-1);
	}
	else if (objA[gConstZIndex_Index] > objB[gConstZIndex_Index])
	{
		return(1);
	}

	return(0);
}

function	SetUaType()
{
	var strUa;
	
	strUa = navigator.userAgent.toLowerCase();
	
	if (strUa.indexOf('gecko') != -1 && strUa.indexOf('safari') == -1)
	{
		gisGecko = true;
	}
	
	return;
}

SetUaType();

function	IsPropDefined(
	obj,
	strProp)
{
	if (obj == null)
	{
		return(false);
	}
	
	if (typeof obj[strProp] != "undefined")
	{
		return(true);
	}	
	
	return(false);
}

function	IsDialogShow()
{
	var strDialogVars;
	
	strDialogVars = frameElement.id.split("_");
	var strCmd = "g" + strDialogVars[0] + ".IsShow()";
	
	return(eval(strCmd));
}

function	IsBlogImage(
	obj)
{
	var blRet = false;

	if (obj.tagName == "IMG")
	{
		var intIndex = obj.src.indexOf("Get_BlogImg.aspx");
		if (intIndex != -1)
		{
			blRet = true;
		}
	}
	
	return(blRet);
}

function	DialogTransparent()
{
	var i;
	var intStartIdx;
	var intEndIdx;
	var objIframes;
	var strVersion;
	var strNo;
	
	return;
	
	strVersion = window.navigator.appVersion;
	intStartIdx = strVersion.indexOf("MSIE");
	if (intStartIdx == -1)
	{
		return;
	}
	intEndIdx = strVersion.indexOf(";", intStartIdx);
	if (intEndIdx == -1)
	{
		return;
	}
	strNo = strVersion.substring(intStartIdx + 4, intEndIdx);
	if (parseFloat(strNo) < 7.0)
	{
		return;
	}
	
	objIframes = document.getElementsByTagName("iframe");
	for (i = 0;i < objIframes.length; i++)
	{
		objIframes(i).allowTransparency = true;
	}
}
		
function	GetQueryString(
	strUrl,
	strKey)
{
	var strRet;
	var intIndex;
	
	strRet = "";
	intIndex = strUrl.indexOf(strKey);
	if (intIndex != -1)
	{
		strRet = strUrl.substring(intIndex + strKey.length);
		intIndex = strRet.indexOf("&");
		if (intIndex != -1)
		{
			strRet = strRet.substring(0, intIndex);
		}
	}
	
	return strRet;
}

function	AttachImgEvent()
{
	var i;
	var j;
	var blSts;
	var objDocMains = document.getElementsByName("docmain");
	for (i = 0;i < objDocMains.length;i++)
	{
		var objImgs = objDocMains(i).getElementsByTagName("IMG");
		for (j = 0;j < objImgs.length;j++)
		{
			blSts = IsBlogImage(objImgs(j));
			if (blSts == true)
			{
				objImgs(j).attachEvent('onclick', function (event) { ShowImageDialog(event.srcElement); });
				objImgs(j).attachEvent('oncontextmenu', function (event) { return false; });
				objImgs(j).style.cursor = "pointer";
			}
		}
	}
}

function	ShowImageDialog(obj)
{
	var objWin = parent.document.getElementById("cdgImgView");
	var datNow = new Date();				
	
	var strImageID = GetQueryString(obj.src, "ImageId=");
	var strEntryID = GetQueryString(obj.src, "EntryID=");
	
	objWin.src = "Blog_ImgView.aspx?ImageId=" + strImageID + "&EntryID=" + strEntryID + "&show=" + datNow.getSeconds() * 1000 + datNow.getMilliseconds();
}

function	ReloadBasePage()
{
	if (top.location.pathname.indexOf("Blog_Base.aspx") == -1)
	{
		top.location.href = BLOG_BASE_URL + this.location.search;
		
		return(true);
	}

	return(false);
}


function	RDWFontSizeToPx(
	strSize)
{
	var strRet = "12px";
	var i;

	for (i = 0; i < garrFontSizeMatrix.length; i++)
	{
		if (garrFontSizeMatrix[i] == strSize)
		{
			strRet = garrFontPixelMatrix[i];
			break;
		}
	}
	
	return(strRet);
}

function	RDWFontPxToSize(
	strPx)
{
	var strRet = "3";
	var i;

	for (i = 0; i < garrFontPixelMatrix.length; i++)
	{
		if (garrFontPixelMatrix[i] == strPx)
		{
			strRet = garrFontSizeMatrix[i];
			break;
		}
	}
	
	return(strRet);
}

var CUSTOM_BUTTON_TYPE_BUTTON				= 0;
var CUSTOM_BUTTON_TYPE_SELECT_BUTTON		= 1;
var CUSTOM_BUTTON_TYPE_COLOR_BUTTON			= 2;
var CUSTOM_BUTTON_TYPE_SELECT_LIST			= 3;


var	gobjPalette = null;

function	CustomToolButtonShowPalette(objThis, blShow)
{
	if (gobjPalette != null)
	{
		gobjPalette.objColorPalette.style.display = "none";
		gobjPalette.m_blSelected = false;
		gobjPalette = null;
	}
	
	if (objThis == null)
	{
		return;
	}
	if (blShow == true)
	{
		objThis.objColorPalette.style.display = "block";
		gobjPalette = objThis;
	}
	else
	{
		objThis.objColorPalette.style.display = "none";
	}
}

function	CustomToolButton(
	strMyName,
	strCallbackClick,
	intButtonType,
	blSelected,
	strForeColor,
	strBackColor,
	blPaletteAlwaysOpen,
	blEnabled,
	blUpPalette)
{
	this.m_strName						= strMyName;
	this.m_strCallbackClick				= strCallbackClick;
	this.m_intButtonType				= intButtonType;
	this.m_blSelected					= blSelected;
	this.m_strForeColor					= strForeColor;
	this.m_strBackColor					= strBackColor;
	this.m_blPaletteAlwaysOpen			= blPaletteAlwaysOpen;
	this.m_blEnabled					= blEnabled;
	this.m_bInClick						= false;
	this.m_blUpPalette					= blUpPalette;

	this.Selected						= CustomToolButtonSelected;
	this.Disabled						= CustomToolButtonDisabled;
	this.IsDisabled						= CustomToolButtonIsDisabled;
	this.InClick						= CustomToolButtonInClick;

	this.objImg				= document.getElementById(this.m_strName);
	this.objColorPalette	= document.getElementById(this.m_strName + "CP");
	this.objSelectListTbl	= document.getElementById(this.m_strName + "SL");
	
	if (this.objImg != null)
	{
		this.m_strSrc					= this.objImg.src;
		this.objImg.disabled			= false;
	}
	else
	{
		this.m_strSrc = "";
	}

	if (intButtonType == CUSTOM_BUTTON_TYPE_SELECT_LIST)
	{
		if (this.m_strForeColor == "none")
		{
			if (gisGecko == false)
			{
				this.m_strForeColor = this.objSelectListTbl.currentStyle.color;
			}
			else
			{
				this.m_strForeColor = this.objSelectListTbl.style.color;
			}
		}
		if (this.m_strBackColor == "none")
		{
			if (gisGecko == false)
			{
				this.m_strBackColor = this.objSelectListTbl.currentStyle.backgroundColor;
			}
			else
			{
				this.m_strBackColor = this.objSelectListTbl.style.backgroundColor;
			}
		}
	}
	
	if (this.m_blPaletteAlwaysOpen == true)
	{
		this.m_blSelected = true;
		CustomToolButtonClick(this, null);
	}
}

function	CustomToolButtonCreateUrl(
	strUrl,
	strAction)
{
	// 拡張子の位置を取得する
	var intSuffix;
	var strUrl1;
	var strSuffix;
	var intAction;
	var strUrl2;
	var strUrl3;
	
	intSuffix	= strUrl.lastIndexOf(".");
	strSuffix	= strUrl.substring(intSuffix);
	strUrl1		= strUrl.substring(0, intSuffix);
	intAction	= strUrl1.lastIndexOf("_");
	strUrl2		= strUrl1.substring(0, intAction + 1);
	strUrl3		= strUrl2 + strAction + strSuffix;
	
	return(strUrl3);
}

function	CustomToolButtonMouseOver(objThis, obj)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}
	
	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON &&
		objThis.m_blSelected == true)
	{
		// 選択中はボタンを変更しない
		return;
	}
	
	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_BUTTON ||
		objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON ||
		objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_COLOR_BUTTON	||
		objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_LIST)
	{
		obj.src = CustomToolButtonCreateUrl(objThis.m_strSrc, "ov");
	}
}

function	CustomToolButtonCPMouseOver(objThis, obj)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_COLOR_BUTTON)
	{
		obj.style.borderWidth = '1px';
	}
}

function	CustomToolButtonSLMouseOver(objThis, obj)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_LIST)
	{
		obj.style.backgroundColor	= 'Highlight';
		obj.style.color				= 'white';
	}
}

function	CustomToolButtonMouseOut(objThis, obj)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON &&
		objThis.m_blSelected == true)
	{
		// 選択中はボタンを変更しない
		return;
	}

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_BUTTON ||
		objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON ||
		objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_COLOR_BUTTON	||
		objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_LIST)
	{
		obj.src = CustomToolButtonCreateUrl(objThis.m_strSrc, "ou");
	}
}

function	CustomToolButtonCPMouseOut(objThis, obj)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_COLOR_BUTTON)
	{
		obj.style.borderWidth = '0px';
	}
}

function	CustomToolButtonSLMouseOut(objThis, obj)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_LIST)
	{
		obj.style.backgroundColor	= objThis.m_strBackColor
		obj.style.color				= objThis.m_strForeColor;
	}
}

function	CustomToolButtonMouseDown(objThis, obj)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}
	
	objThis.m_bInClick = true;

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_BUTTON ||
		objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON)
	{
		obj.src = CustomToolButtonCreateUrl(objThis.m_strSrc, "do");
	}
}

function	CustomToolButtonMouseUp(objThis, obj)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}

	objThis.m_bInClick = false;

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON ||
		objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_COLOR_BUTTON	||
		objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_LIST)
	{
		if (objThis.m_blSelected == false)
		{
			objThis.m_blSelected = true;
		}
		else
		{
			objThis.m_blSelected = false;
		}
	}

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON &&
		objThis.m_blSelected == true)
	{
		// 選択中はボタンを変更しない
		return;
	}

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_BUTTON ||
		objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON)
	{
		obj.src = CustomToolButtonCreateUrl(objThis.m_strSrc, "ou");
	}
}

function	CustomToolButtonClick(objThis, obj)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}

	objThis.m_bInClick = false;

	if (objThis.m_strCallbackClick != "")
	{
		if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_BUTTON ||
			objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON)
		{
			var blClick = true;
			if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON)
			{
				blClick = objThis.m_blSelected;
			}
			
			var	strFunction = objThis.m_strCallbackClick + "(" + blClick + ")";
			eval(strFunction);
		}
		
		if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_COLOR_BUTTON	||
			objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_LIST)
		{
			if (objThis.m_blSelected == true)
			{
				var intLeft;
				var intTop;
				var intHeight;
				
				if (obj != null)
				{
					objThis.objColorPalette.style.left	= "-1000px";
					objThis.objColorPalette.style.top	= "-1000px";
					CustomToolButtonShowPalette(objThis, true);

					var util = new WebUtil();
					var intLeft	= util.GetObjectLeft(obj);
					var intTop	= util.GetObjectTop(obj);
					var intHeight	= util.GetObjectHeight(obj);
					var intPaletteWidth = parseInt(objThis.objColorPalette.offsetWidth);
					var intPaletteHeight = parseInt(objThis.objColorPalette.offsetHeight);

					if (intLeft + intPaletteWidth > parseInt(document.body.clientWidth))
					{
						intLeft = parseInt(document.body.clientWidth) - intPaletteWidth;
					}
					objThis.objColorPalette.style.left	= intLeft + "px";
					if (objThis.m_blUpPalette == false)
					{
						objThis.objColorPalette.style.top	= (intTop + intHeight) + "px";
					}
					else
					{
						objThis.objColorPalette.style.top	= (intTop - intPaletteHeight) + "px";
					}
				}
				else
				{
					objThis.objColorPalette.style.position	= "static";
					CustomToolButtonShowPalette(objThis, true);
				}
			}
			else
			{
				CustomToolButtonShowPalette(objThis, false);
			}

			if (gisGecko == false)
			{
				if (window.event != null)
				{
					window.event.cancelBubble=true;
				}
			}
		}		
	}
}

function	CustomToolButtonCPClick(objThis, obj, strClearColor)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}

	objThis.m_bInClick = false;

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_COLOR_BUTTON)
	{
		var	strFunction;
		if (strClearColor == null)
		{
			strFunction = objThis.m_strCallbackClick + "('" + obj.style.backgroundColor + "')";
		}
		else
		{
			strFunction = objThis.m_strCallbackClick + "('" + strClearColor + "')";
		}
		eval(strFunction);
	}
	
	if (objThis.m_blPaletteAlwaysOpen == true)
	{
		return;
	}

	objThis.m_blSelected = false;

	CustomToolButtonShowPalette(objThis, false);

	if (gisGecko == false)
	{
		window.event.cancelBubble=true;
	}
}

function	CustomToolButtonSLClick(objThis, obj)
{
	if (objThis.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}

	objThis.m_bInClick = false;

	if (objThis.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_LIST)
	{
		var	strFunction = objThis.m_strCallbackClick + "('" + obj.value + "')";
		eval(strFunction);
	}

	if (objThis.m_blPaletteAlwaysOpen == true)
	{
		return;
	}

	objThis.m_blSelected = false;

	CustomToolButtonShowPalette(objThis, false);

	if (gisGecko == false)
	{
		window.event.cancelBubble=true;
	}
}

function	CustomToolButtonSelected(
	blSelected,
	blClick)
{
	if (this.m_blEnabled == false)
	{
		// 使用不可はボタンを変更しない
		return;
	}

	if (this.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_BUTTON)
	{
		if (blSelected == false)
		{
			this.objImg.src = CustomToolButtonCreateUrl(this.m_strSrc, "ou");
		}
		else
		{
			this.objImg.src = CustomToolButtonCreateUrl(this.m_strSrc, "do");
		}
	}
	
	if (this.m_intButtonType == CUSTOM_BUTTON_TYPE_BUTTON ||
		this.m_intButtonType == CUSTOM_BUTTON_TYPE_COLOR_BUTTON ||
		this.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_LIST)
	{
		this.objImg.src = CustomToolButtonCreateUrl(this.m_strSrc, "ou");
	}

	this.m_blSelected = blSelected;
	if (blClick == true)
	{
		CustomToolButtonClick(this, this.objImg);
	}
}

function	CustomToolButtonDisabled(blDisabled)
{
	if (blDisabled == true)
	{
		this.m_blEnabled = false;
		this.m_bInClick = false;		
		this.objImg.src = CustomToolButtonCreateUrl(this.m_strSrc, "di");

		if (this.m_intButtonType == CUSTOM_BUTTON_TYPE_COLOR_BUTTON	||
			this.m_intButtonType == CUSTOM_BUTTON_TYPE_SELECT_LIST)
		{
			CustomToolButtonShowPalette(this, false);
		}
	}
	else
	{
		this.m_blEnabled = true;
		this.Selected(this.m_blSelected, false);
	}
}

function	CustomToolButtonIsDisabled()
{
	if (this.m_blEnabled == true)
	{
		return(false);
	}
	else
	{
		return(true);
	}
}

function	CustomToolButtonInClick()
{
	return(this.m_bInClick);
}


function CustomFDialog(
	strVerName,
	strMyName,
	strShow,
	intZIndex,
	blDisplayCenter,
	blVisibleTitle,
	strCallBackShow,
	strCallBackHide,
	intWidth,
	intHeight,
	blContentsPadding,
	strImgMinimumUrl,
	strImgMaxmumUrl,
	blFirstAnimation,
	strCallBackInBoxPosition)
{
	this.m_blMouseDown = false;

	this.m_strName	= strMyName;
	this.m_blDisplayCenter	= blDisplayCenter;
	this.m_blVisibleTitle	= blVisibleTitle;
	this.m_blMin			= false;

	this.m_intMouseDownLeft = 0;
	this.m_intMouseDownTop	= 0;
	this.m_strCallBackShow	= strCallBackShow;
	this.m_strCallBackHide	= strCallBackHide;
	this.m_strImgMinimumUrl	= strImgMinimumUrl;
	this.m_strImgMaxmumUrl	= strImgMaxmumUrl;

	this.m_intOpenX			= 0;
	this.m_intOpenY			= 0;
	this.m_intOpenWidth		= 0;
	this.m_intOpenHeight	= 0;
	this.m_blFirstAnimation	= blFirstAnimation;
	this.m_strCallBackInBoxPosition	= strCallBackInBoxPosition;

	this.SetTitle		= CustomFDialogSetTitle;
	this.Show			= CustomFDialogShow;
	this.IsShow			= CustomFDialogIsShow;
	this.SetPosition	= CustomFDialogSetPosition;
	this.ReZIndex		= CustomFDialogReZIndex;
	this.AnimationShow	= CustomFDialogAnimationShow;
	this.NewAnimationShow	= CustomFDialogNewAnimationShow;
	this.AnimationShowName	= strVerName + ".AnimationShow";
	this.NewAnimationShowName	= strVerName + ".NewAnimationShow";
	this.IsAlive 		= CustomFDialogIsAlive;
	this.SetSize		= CustomFDialogSetSize;
	this.Minimun		= CustomFDialogMinimun;
	this.Maxmun			= CustomFDialogMaxmun;
	this.AnimationMinMax		= CustomFDialogAnimationMinMax;
	this.AnimationMinMaxName	= strVerName + ".AnimationMinMax";

	// グリッド等でオブジェクトが多くなるとgetElementByIdに負荷がかかる
	// その為、ドラッグに必要なオブジェクトはキャッシュする
	this.objDialog			= document.getElementById(this.m_strName);
	this.objDialogMove		= document.getElementById(this.m_strName + "Move");
	this.objDialogContents	= document.getElementById(this.m_strName + "Contents");
	this.objDialogModal		= document.getElementById(this.m_strName + "Modal");
	this.objDialogMinMaxButton	= document.getElementById(this.m_strName + "MinMaxButton");
	this.objPx = document.getElementById(this.m_strName + "px");
	this.objPy = document.getElementById(this.m_strName + "py");
	this.objPz = document.getElementById(this.m_strName + "pz");
	this.objFrame = document.getElementById(this.m_strName + "Frame");
	this.intInitialZindex	= intZIndex;

	frameElement.width	= intWidth;
	frameElement.height	= intHeight;

	var	intTitleHeight = 0;
	if (this.m_blVisibleTitle == true)
	{
		intTitleHeight = 23;
	}
	this.m_intTitleHeight	= intTitleHeight;
	var objMain = document.getElementById(this.m_strName + "ContentsBG");
	if (objMain != null && frameElement != null)
	{
		objMain.style.height	= frameElement.height - intTitleHeight;
		objMain.style.width		= "100%";
		objMain.style.position	= "absolute";
		objMain.style.top		= intTitleHeight + "px";
		objMain.style.left		= "0px";
		objMain.style.zIndex	= 0;
	}

	var objMain = document.getElementById("divMain");
	if (objMain != null && frameElement != null)
	{
		objMain.style.height	= frameElement.height - intTitleHeight;
		objMain.style.width		= "100%";
		objMain.style.overflow	= "hidden";
		if (blContentsPadding == true)
		{
			objMain.style.padding	= "3px";
		}
		objMain.style.position	= "absolute";
		objMain.style.top		= intTitleHeight + "px";
		objMain.style.left		= "0px";
		objMain.style.zIndex	= 1;
	}

	if (IsPropDefined(frameElement.style, "Px") == true && frameElement.style.Px != "")
	{
		this.objPx.value = parseInt(frameElement.style.Px);
	}
	if (IsPropDefined(frameElement.style, "Py") == true && frameElement.style.Py != "")
	{
		this.objPy.value = parseInt(frameElement.style.Py);
	}

	if (strShow != "none")
	{
		this.Show(true, true);
	}
	else
	{
		this.Show(false, false);
	}
}

function	CustomFDialogReZIndex(
	intZindex)
{
	this.objPz.value = intZindex

	if (this.objDialogModal != null)
	{
		frameElement.style.zIndex			= intZindex + 1;
		this.objDialogModal.style.zIndex	= intZindex;
	}
	else
	{
		frameElement.style.zIndex			= intZindex;
	}
}

function	CustomFDialogMouseDown(
	obj)
{
	var	intClientX;
	var intClientY;

	obj.m_blMouseDown = true;

	if (gisGecko == false)
	{
		intClientX	= parseInt(window.event.clientX);
		intClientY	= parseInt(window.event.clientY);
	}
	else
	{
		intClientX	= parseInt(arguments.callee.caller.arguments[0].clientX);
		intClientY	= parseInt(arguments.callee.caller.arguments[0].clientY);
	}
	
	obj.m_intMouseDownLeft	= intClientX;
	obj.m_intMouseDownTop	= intClientY;

	if (gisGecko == false)
	{
		obj.objDialogMove.setCapture(true);
	}
	else
	{
		frameElement.contentWindow.parent.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
	}

	frameElement.contentWindow.parent.gZindexManager.TopWindow(obj);
}

function	CustomFDialogMouseUp(
	obj)
{
	obj.m_blMouseDown = false;

	if (gisGecko == false)
	{
		obj.objDialogMove.releaseCapture(true);
	}
	else
	{
		frameElement.contentWindow.parent.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
	}
}

function	CustomFDialogMouseMove(
	obj)
{
	var	intClientX;
	var intClientY;
	var intLeft;
	var intTop;

	if (gisGecko == false)
	{
		intClientX	= parseInt(window.event.clientX);
		intClientY	= parseInt(window.event.clientY);
		intLeft		= parseInt(frameElement.currentStyle.left);
		intTop		= parseInt(frameElement.currentStyle.top);
	}
	else
	{
		intClientX	= parseInt(arguments.callee.caller.arguments[0].clientX);
		intClientY	= parseInt(arguments.callee.caller.arguments[0].clientY);
		intLeft		= parseInt(frameElement.style.left);
		intTop		= parseInt(frameElement.style.top);
	}
	
	if (obj.m_blMouseDown == true)
	{
		obj.SetPosition(
			intClientX - obj.m_intMouseDownLeft + intLeft,
			intClientY - obj.m_intMouseDownTop + intTop);
	}
}

function	CustomFDialogTopWindow(
	obj)
{
	var intZindex = frameElement.contentWindow.parent.gZindexManager.AddWindow(obj, obj.m_strName, obj.intInitialZindex);
	obj.ReZIndex(intZindex);
}

function	CustomFDialogClose(
	obj)
{
	try
	{
		document.body.focus();
	}
	catch (e)
	{
		;
	}

	obj.Show(false, true);
}

function	CustomFDialogMinMax(
	obj)
{
	try
	{
		document.body.focus();
	}
	catch (e)
	{
		;
	}

	if (obj.m_blMin == true)
	{
		obj.Maxmun();
	}
	else
	{
		obj.Minimun();
	}
}

function	CustomFDialogSetTitle(
	strTitle)
{
	objDialogMove	= document.getElementById(this.m_strName + "Move");
	objDialogMove.innerHTML = strTitle;

	objPtitle = document.getElementById(this.m_strName + "ptitle");
	objPtitle.value = escape(strTitle);
}

function	CustomFDialogShow(
	blShow,
	blAnimation)
{
	var	strShow;
	var intDialogWidth	= parseInt(frameElement.width) + 2;
	var intDialogHeight	= parseInt(frameElement.height) + 2;
	var intClientWidth;
	var intClientHeight;

	if (blShow == true)
	{
		strShow = "inline";
		var intZindex = frameElement.contentWindow.parent.gZindexManager.AddWindow(this, this.m_strName, this.intInitialZindex);
		this.ReZIndex(intZindex);

		if (this.m_blDisplayCenter)
		{
			// 中央に表示する為の座標を再計算する
			if (gisGecko == false)
			{
				intClientWidth	= frameElement.document.body.clientWidth;
				intClientHeight	= frameElement.document.body.clientHeight;
			}
			else
			{
				intClientWidth	= frameElement.contentWindow.parent.document.body.clientWidth;
				intClientHeight	= frameElement.contentWindow.parent.document.body.clientHeight;
			}
			this.SetPosition(
				(intClientWidth - parseInt(frameElement.width)) / 2,
				(intClientHeight - parseInt(frameElement.height)) / 2);
		}
		else
		{
			// ウインドウ内に収まるようにサイズを設定する
			this.SetPosition(parseInt(this.objPx.value), parseInt(this.objPy.value));
		}

		this.m_blMin = false;
		if (this.objDialogMinMaxButton != null)
		{
			this.objDialogMinMaxButton.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.m_strImgMinimumUrl + '")';
		}
	}
	else
	{
		if (this.m_strCallBackHide != null)
		{
			var bSts = this.m_strCallBackHide();
			if (bSts == false)
			{
				return;
			}
		}

		strShow = "none";
		frameElement.contentWindow.parent.gZindexManager.DeleteWindow(this);
	}
	if (this.intInitialZindex != 300)
	{
		this.intInitialZindex = -1;
	}

	if (this.objDialogModal != null)
	{
		frameElement.display		= strShow;
//		this.objDialogContents.style.display	= strShow;
	}

	if (blAnimation == false || (blAnimation == true && blShow == true && this.IsShow() == true) || (blShow == false && this.m_blMin == true) || this.m_blFirstAnimation == false)
	{
		// アニメーションをしないか、ダイアログが表示済みの場合
		this.m_blFirstAnimation = true;
		var strMaxRect = "rect(0px," + intDialogWidth + "px," + intDialogHeight + "px,0px)";
		frameElement.style.clip	= strMaxRect;

		frameElement.style.display	= strShow;
//		this.objDialogContents.style.display	= strShow;
	}
	else
	{
		if (blShow == true)
		{
			frameElement.style.clip	= "rect(0px,0px,0px,0px)";
			frameElement.style.display	= strShow;
//			this.objDialogContents.style.display	= strShow;
		}

		var strFunction;
		if (this.m_strCallBackInBoxPosition != null)
		{
			strFunction = this.NewAnimationShowName + "(0," + blShow + ")";
		}
		else
		{
			strFunction = this.AnimationShowName + "(0," + blShow + ")";
		}
		setTimeout(strFunction, 10);
	}

	objPs = document.getElementById(this.m_strName + "ps");
	objPs.value = strShow;

	if (blAnimation == false && blShow == true)
	{
		if (this.m_strCallBackShow != null)
		{
			// 表示のコールバックはフォーカスの設定がある為、画面の表示後に行われる
			this.m_strCallBackShow();
		}
	}
}

function	CustomFDialogIsShow()
{
	if (frameElement.style.display == "none" || frameElement.style.display == "")
	{
		return(false);
	}
	return(true);
}

function	CustomFDialogAnimationShow(
	intCnt,
	blShow)
{
	var	intWindowOpenCnt = 4;
	var intDialogWidth	= parseInt(frameElement.width) + 2;
	var intDialogHeight	= parseInt(frameElement.height) + 2;

	var intVx = intDialogWidth / intWindowOpenCnt;
	var intVy = intDialogHeight / intWindowOpenCnt;

	if (blShow == true)
	{
		if (intCnt == intWindowOpenCnt - 1)
		{
			var strMaxRect = "rect(0px," + intDialogWidth + "px," + intDialogHeight + "px,0px)";
			frameElement.style.clip	= strMaxRect;
			
			if (this.m_strCallBackShow != null)
			{
				// 表示のコールバックはフォーカスの設定がある為、画面の表示後に行われる
				this.m_strCallBackShow();
			}
		}
		else
		{
			var intStartX	= parseInt((intVx / 2) * (intWindowOpenCnt - (intCnt + 1)));
			var intEndX		= parseInt(intStartX + intVx * (intCnt + 1));
			var intStartY	= parseInt((intVy / 2) * (intWindowOpenCnt - (intCnt + 1)));
			var intEndY		= parseInt(intStartY + intVy * (intCnt + 1));

			var	strWinRect = "rect(" + intStartY + "px," + intEndX + "px," + intEndY + "px," + intStartX + "px)";
			frameElement.style.clip			= strWinRect;

			var strFunction = this.AnimationShowName + "(" + (intCnt + 1) + "," + blShow + ")";
			setTimeout(strFunction, 20);
		}
		frameElement.style.display			= "inline";
//		this.objDialogContents.style.display		= "inline";
	}
	else
	{
		if (intCnt == intWindowOpenCnt - 1)
		{
//			this.objDialogContents.style.display	= "none";

			frameElement.style.clip	= "rect(0px,0px,0px,0px)";			
			
			frameElement.style.display	= "none";
		}
		else
		{
			var intStartX	= parseInt((intVx / 2) * (intCnt + 1));
			var intEndX		= parseInt(intDialogWidth -  intStartX);
			var intStartY	= parseInt((intVy / 2) * (intCnt + 1));
			var intEndY		= parseInt(intDialogHeight - intStartY);

			var	strWinRect = "rect(" + intStartY + "px," + intEndX + "px," + intEndY + "px," + intStartX + "px)";

			frameElement.style.clip			= strWinRect;
			var strFunction = this.AnimationShowName + "(" + (intCnt + 1) + "," + blShow + ")";
			setTimeout(strFunction, 20);
		}
	}
}

function	CustomFDialogNewAnimationShow(
	intCnt,
	blShow)
{
	var intDialogWidth	= parseInt(frameElement.width) + 2;
	var intDialogHeight	= parseInt(frameElement.height) + 2;


	if (this.m_strCallBackInBoxPosition != null)
	{
		this.m_strCallBackInBoxPosition(this);
	}

	var dblDistance = Math.sqrt(Math.pow((this.m_intOpenX	 - parseInt(this.objPx.value)), 2) + Math.pow((this.m_intOpenY - parseInt(this.objPy.value)), 2))
	var intWindowOpenCnt = parseInt(dblDistance / 80) + 2;
	var iTime = (20 * 10) / intWindowOpenCnt;

	var intDialogCenterX	= parseInt(this.objPx.value) + (intDialogWidth / 2);
	var intDialogCenterY	= parseInt(this.objPy.value) + (intDialogHeight / 2);
	var intOpenCenterX		= this.m_intOpenX + (this.m_intOpenWidth / 2);
	var intOpenCenterY		= this.m_intOpenY + (this.m_intOpenHeight / 2);
	var intCenterVx			= (intOpenCenterX - intDialogCenterX) / (intWindowOpenCnt - 1);
	var intCenterVy			= (intOpenCenterY - intDialogCenterY) / (intWindowOpenCnt - 1);
	var intDialogWidthVx	= ((intDialogWidth - this.m_intOpenWidth) / (intWindowOpenCnt - 1)) / 2;
	var intDialogHeightVy	= ((intDialogHeight - this.m_intOpenHeight) / (intWindowOpenCnt - 1)) / 2;

	var intI;
	if (blShow == true)
	{
		intI = (intWindowOpenCnt - intCnt - 1);
	}
	else
	{
		intI = intCnt;
	}

	var intStartX	= intDialogWidthVx * intI;
	var intEndX		= intDialogWidth - intStartX;
	var intStartY	= intDialogHeightVy * intI;
	var intEndY		= intDialogHeight - intStartY;
	var	strWinRect	= "rect(" + intStartY + "px," + intEndX + "px," + intEndY + "px," + intStartX + "px)";

	var intCurrntX = intDialogCenterX + intCenterVx * intI - (intDialogWidth / 2);
	var intCurrntY = intDialogCenterY + intCenterVy * intI -  (intDialogHeight / 2);

	if (blShow == true)
	{
		if (intCnt == intWindowOpenCnt)
		{
			var strMaxRect = "rect(0px," + intDialogWidth + "px," + intDialogHeight + "px,0px)";

			frameElement.style.clip		= strMaxRect;
			this.objFrame.style.display	= "none";
			
			if (this.m_strCallBackShow != null)
			{
				// 表示のコールバックはフォーカスの設定がある為、画面の表示後に行われる
				this.m_strCallBackShow();
			}
		}
		else
		{
			frameElement.style.clip		= strWinRect;
			frameElement.style.left		= intCurrntX + "px";
			frameElement.style.top		= intCurrntY + "px";

			this.objFrame.style.left	= (intStartX - 1) + "px";
			this.objFrame.style.top		= (intStartY - 1) + "px";

			var intFrameWidth = (intEndX - intStartX);
			if (intFrameWidth < 1)
			{
				intFrameWidth = 1;
			}
			var intFrameHeight = (intEndY - intStartY);
			if (intFrameHeight < 1)
			{
				intFrameHeight = 1;
			}
			this.objFrame.style.width	= intFrameWidth + "px";
			this.objFrame.style.height	= intFrameHeight + "px";
			this.objFrame.style.display	= "block";

			var strFunction = this.NewAnimationShowName + "(" + (intCnt + 1) + "," + blShow + ")";
			setTimeout(strFunction, iTime);
		}
		frameElement.style.display			= "inline";
	}
	else
	{

		if (intCnt == intWindowOpenCnt)
		{
			frameElement.style.clip		= "rect(0px,0px,0px,0px)";			

			frameElement.style.display	= "none";
			this.objFrame.style.display	= "none";
		}
		else
		{
			frameElement.style.clip		= strWinRect;
			frameElement.style.left		= intCurrntX + "px";
			frameElement.style.top		= intCurrntY + "px";

			this.objFrame.style.left	= (intStartX - 1) + "px";
			this.objFrame.style.top	= (intStartY - 1) + "px";

			var intFrameWidth = (intEndX - intStartX);
			if (intFrameWidth < 1)
			{
				intFrameWidth = 1;
			}
			var intFrameHeight = (intEndY - intStartY);
			if (intFrameHeight < 1)
			{
				intFrameHeight = 1;
			}
			this.objFrame.style.width	= intFrameWidth + "px";
			this.objFrame.style.height	= intFrameHeight + "px";

			this.objFrame.style.display	= "block";

			var strFunction = this.NewAnimationShowName + "(" + (intCnt + 1) + "," + blShow + ")";
			setTimeout(strFunction, iTime);
		}
	}
}

function	CustomFDialogSetPosition(
	intX,
	intY)
{
	var intClientWidth;
	var intClientHeight;
	var intDialogWidth	= parseInt(frameElement.width);
	var intDialogHeight	= parseInt(frameElement.height);

	if (gisGecko == false)
	{
		intClientWidth	= frameElement.document.body.clientWidth;
		intClientHeight	= frameElement.document.body.clientHeight;
	}
	else
	{
		intClientWidth	= frameElement.contentWindow.parent.document.body.clientWidth;
		intClientHeight	= frameElement.contentWindow.parent.document.body.clientHeight;
	}

	if (this.m_blVisibleTitle == false)
	{
		if (intX > intClientWidth - intDialogWidth - 5)
		{
			intX = intClientWidth - intDialogWidth - 5;
		}
		if (intX < 5)
		{
			intX = 5;
		}

		if (intY > intClientHeight - intDialogHeight - 5)
		{
			intY = intClientHeight - intDialogHeight - 5;
		}
		if (intY < 5)
		{
			intY = 5;
		}
	}
	else
	{
		if (intX > intClientWidth - 20)
		{
			intX = intClientWidth - 20;
		}
		if (intX < -1 * intDialogWidth + 20)
		{
			intX = -1 * intDialogWidth + 20;
		}

		if (intY > intClientHeight - 20)
		{
			intY = intClientHeight - 20;
		}
		if (intY < 0)
		{
			intY = 0;
		}
	}

	frameElement.style.left	= intX + "px";
	frameElement.style.top	= intY + "px";
	frameElement.style.Px	= intX + "px";
	frameElement.style.Py	= intY + "px";

	this.objPx.value = intX;
	this.objPy.value = intY;
}

function	CustomFDialogIsAlive()
{
}

function	CustomFDialogSetSize(
	intWidth,
	intHeight)
{
	frameElement.width	= intWidth;
	frameElement.height	= intHeight;
	
	if (this.IsShow() == true)
	{
		var intDialogWidth	= parseInt(frameElement.width) + 2;
		var intDialogHeight	= parseInt(frameElement.height) + 2;

		var strMaxRect = "rect(0px," + intDialogWidth + "px," + intDialogHeight + "px,0px)";
		frameElement.style.clip	= strMaxRect;
	}
}


function	CustomFDialogMinimun()
{
	var strFunction = this.AnimationMinMaxName + "(0,true)";
	setTimeout(strFunction, 5);
}

function	CustomFDialogMaxmun()
{
	var strFunction = this.AnimationMinMaxName + "(0,false)";
	setTimeout(strFunction, 5);
}


function	CustomFDialogAnimationMinMax(
	intCnt,
	blMin)
{
	var	intWindowOpenCnt = 4;
	var intDialogWidth	= parseInt(frameElement.width) + 2;
	var intDialogHeight	= parseInt(frameElement.height) + 2;

	var intVx = intDialogWidth / intWindowOpenCnt;
	var intVy = (intDialogHeight - this.m_intTitleHeight) / intWindowOpenCnt;

	if (blMin == false)
	{
		if (intCnt == intWindowOpenCnt - 1)
		{
			frameElement.style.clip	= "rect(0px," + intDialogWidth + "px," + intDialogHeight + "px,0px)";
			this.m_blMin = false;

			this.objDialogMinMaxButton.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.m_strImgMinimumUrl + '")';
		}
		else
		{
			var intEndY		= parseInt(intDialogHeight - intVy * (intWindowOpenCnt - intCnt - 1));

			var	strWinRect = "rect(0px," + intDialogWidth + "px," + intEndY + "px,0px)";
			frameElement.style.clip			= strWinRect;

			var strFunction = this.AnimationMinMaxName + "(" + (intCnt + 1) + "," + blMin + ")";
			setTimeout(strFunction, 20);
		}
	}
	else
	{
		if (intCnt == intWindowOpenCnt - 1)
		{
			frameElement.style.clip	= "rect(0px," + intDialogWidth + "px," + this.m_intTitleHeight + "px,0px)";
			this.m_blMin = true;

			this.objDialogMinMaxButton.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.m_strImgMaxmumUrl + '")';
		}
		else
		{
			var intEndY		= parseInt(intDialogHeight - intVy * (intCnt + 1));

			var	strWinRect = "rect(0px," + intDialogWidth + "px," + intEndY + "px,0px)";
			frameElement.style.clip			= strWinRect;

			var strFunction = this.AnimationMinMaxName + "(" + (intCnt + 1) + "," + blMin + ")";
			setTimeout(strFunction, 20);
		}
	}
}


function CustomSlider(
	strMyName,
	intVirtualRange,
	intSliderBoundaryWidth,
	strCallBackSliderTextLeft,
	strCallBackSliderStart,
	strCallBackSliderStop,
	intInitVirtualLX)
{
	this.m_blMouseDown	= false;

	this.m_intVirtualRange				= intVirtualRange;
	this.m_strName						= strMyName;
	this.m_strTdM						= strMyName + "TdM";
	this.m_strImgL						= strMyName + "ImgL";
	this.m_strImgFg						= strMyName + "ImgFg";
	this.m_strImgBg						= strMyName + "ImgBg";
	this.m_strImgSlider					= strMyName + "ImgSlider";
	this.m_strSpnMsg					= strMyName + "SpnMsg";
	this.m_strImpX						= strMyName + "psX";
	this.m_strCallBackSliderText		= strCallBackSliderTextLeft;
	this.m_strCallBackSliderStart		= strCallBackSliderStart;
	this.m_strCallBackSliderStop		= strCallBackSliderStop;

	var obj;

	obj = document.getElementById(this.m_strName);
	obj.m_Instance	= this;
	obj.GetValue		= CustomSliderGetValue;
	obj.SetValue		= CustomSliderSetValue;
	obj.GetValueRange	= CustomSliderGetValueRange;


	var util = new WebUtil();

	// スライダーバーが稼動する左端の画面座標（ピクセル値）
	// intPixelLeftにはrelative指定のオブジェクトからの相対位置を格納する
	var intPixelLeft	= util.GetObjectWidth(document.getElementById(this.m_strImgL));
	// スライダーバーの幅（ピクセル値）
	var intSliderPixelWidth	= util.GetObjectWidth(document.getElementById(this.m_strImgSlider));
	// スライダが稼動するビットマップの幅（ピクセル値）
	var intPixelRange	= util.GetObjectWidth(document.getElementById(this.m_strImgBg))
	this.m_intBgPixelRange	= intPixelRange;

	// フォアグランド画像の高さ（ピクセル値）
	this.m_intFGPixelHeight 	= util.GetObjectHeight(document.getElementById(this.m_strImgFg));
	// スライダが稼動する全体量の取得
	this.m_intPixelRange	= util.GetObjectWidth(document.getElementById(this.m_strImgBg)) - (intSliderPixelWidth - intSliderBoundaryWidth) + 1;

	var intVirtualX;

	// スライダーバー左の座標設定
	obj = document.getElementById(this.m_strImgSlider);
	if (intInitVirtualLX == -1)
	{
		intVirtualX = 0;
	}
	else
	{
		intVirtualX = intInitVirtualLX;
	}
	InitSliderBar(
		obj,
		intVirtualX, 0,
		intPixelLeft, 0,
		intPixelRange,
		intSliderPixelWidth,
		intSliderBoundaryWidth,
		1,
		document.getElementById(this.m_strImpX));

	// 前景の座標設定
	obj = document.getElementById(this.m_strImgFg);
	obj.style.left	= intPixelLeft;
	obj.style.top	= 0;

	// スライダーバー左のメッセージの座標設定
	if (this.m_strCallBackSliderText != null)
	{
		obj = document.getElementById(this.m_strSpnMsg);
		obj.style.top	= util.GetObjectHeight(document.getElementById(this.m_strImgSlider)) + 3;
	}

	if (this.m_strCallBackSliderText != null)
	{
		obj = document.getElementById(this.m_strImgSlider);
		CustomSliderTextDraw(this, obj);
	}

	// 前面の背景の表示範囲を変更する
	CustomSliderFgImageDraw(
		this,
		document.getElementById(this.m_strImgSlider));
}

function	InitSliderBar(
	obj,
	intVirtualX,
	intVirtualY,
	intPixelLeft,
	intPixelTop,
	intPixelRange,
	intPixelWidth,
	intBoundaryWidth,
	intCurrentPoint,
	objHiddenVirtualX)
{
	obj.m_intPixelLeft			= intPixelLeft;
	obj.m_intPixelTop			= intPixelTop;
	obj.m_intPixelWidth			= intPixelWidth;
	obj.m_intBoundaryWidth		= intBoundaryWidth;

	// スライダーの稼動範囲
	obj.m_intOperationRangeL	= 0;
	obj.m_intOperationRangeR	= intPixelRange - intPixelWidth;

	obj.m_intCurrentPoint		= intCurrentPoint;
	obj.objHiddenVirtualX		= objHiddenVirtualX;

	// マウスボタンダウンの位置（相対座標）
	obj.m_intMouseDownLeft		= 0;

	obj.SetVirtualPosition		= CustomSliderSetVirtualPosition;
	obj.GetVirtualPositionX		= CustomSliderGetVirtualPositionX;
	obj.GetPixelPositionX		= CustomSliderGetPixelPositionX;

	obj.SetVirtualPosition(intVirtualX, intVirtualY);
}


function	CustomSliderSetVirtualPosition(
	intVirtualX,
	intVirtualY)
{
	this.m_intVirtualX		= intVirtualX;
	this.m_intVirtualY		= intVirtualY;

	this.objHiddenVirtualX.value	= intVirtualX;

	this.style.left = this.m_intVirtualX + this.m_intPixelLeft;
	this.style.top	= this.m_intVirtualY + this.m_intPixelTop;
}

function	CustomSliderGetVirtualPositionX()
{
	var util = new WebUtil();

	var intPixelX = util.GetObjectLeft(this);

	return intPixelX - this.m_intPixelLeft;
}

function	CustomSliderGetPixelPositionX()
{
	var util = new WebUtil();

	var intPixelX = util.GetObjectLeft(this);

	return intPixelX;
}

function	CustomSliderMouseDown(
	obj)
{
	obj.m_blMouseDown = true;

	var objMoveBar;

	objMoveBar = document.getElementById(obj.m_strImgSlider);

	objMoveBar.setCapture(true);

	objMoveBar.m_intMouseDownLeft = parseInt(window.event.clientX) - objMoveBar.GetPixelPositionX();

	if (obj.m_strCallBackSliderStart != null)
	{
		// Ajaxのコールバックを呼び出す
		var objTable = document.getElementById(obj.m_strName);
		obj.m_strCallBackSliderStart(objTable);
	}
}

function	CustomSliderMouseUp(
	obj)
{
	obj.m_blMouseDown = false;

	var objMoveBar;

	objMoveBar = document.getElementById(obj.m_strImgSlider);
	objMoveBar.releaseCapture(true);

	if (obj.m_strCallBackSliderStop != null)
	{
		// Ajaxのコールバックを呼び出す
		var objTable = document.getElementById(obj.m_strName);
		obj.m_strCallBackSliderStop(objTable);
	}
}

function	CustomSliderMouseMove(
	obj)
{
	if (obj.m_blMouseDown == true)
	{
		var objMoveBar;

		var objBarL = document.getElementById(obj.m_strImgSlider);

		var util = new WebUtil();
		var intVirtualL = objBarL.GetVirtualPositionX();

		objMoveBar = objBarL;

		// 画面の外にはみ出さないことのチェック
		var intVirtualX = parseInt(window.event.clientX) - objMoveBar.m_intPixelLeft - objMoveBar.m_intMouseDownLeft;
		if (intVirtualX < objMoveBar.m_intOperationRangeL)
		{
			intVirtualX = objMoveBar.m_intOperationRangeL;
		}
		if (intVirtualX > objMoveBar.m_intOperationRangeR)
		{
			intVirtualX = objMoveBar.m_intOperationRangeR;
		}

		// スライダーを移動する
		objMoveBar.SetVirtualPosition(intVirtualX, 0);

		// スライダーバー下のメッセージを移動する
		CustomSliderTextDraw(obj, objMoveBar);

		// 前面の背景の表示範囲を変更する
		CustomSliderFgImageDraw(obj, objBarL);
	}
}

function	CustomSliderFgImageDraw(
	obj,
	objBarL)
{
	var objFg = document.getElementById(obj.m_strImgFg);

	var intVirtualL = objBarL.GetVirtualPositionX();

	intVirtualL += (parseInt(objBarL.width) / 2);
	intVirtualR = obj.m_intBgPixelRange;
	objFg.style.clip = "rect(0px, " + intVirtualR + "px, " + obj.m_intFGPixelHeight + "px, " + intVirtualL + "px)";
}

function	CustomSliderTextDraw(
	obj,
	objMoveBar)
{

	if (obj.m_strCallBackSliderText != null)
	{
		var objSpn = document.getElementById(obj.m_strSpnMsg);
	}
	else
	{
		return;
	}

	var util = new WebUtil();

	var intVirtualX = objMoveBar.GetVirtualPositionX();

	var	intVirtualPointX;

	intVirtualPointX = intVirtualX;
	objMoveBar.m_intCurrentPoint = Math.floor((obj.m_intVirtualRange - 1) / (obj.m_intPixelRange - 1) * intVirtualPointX);

	if (objMoveBar.m_intCurrentPoint <= objMoveBar.m_intOperationRangeL || intVirtualPointX <= 0)
	{
		objMoveBar.m_intCurrentPoint = 0;
	}
	if (objMoveBar.m_intCurrentPoint >= obj.m_intVirtualRange || intVirtualPointX >= obj.m_intPixelRange - 1)
	{
		objMoveBar.m_intCurrentPoint = obj.m_intVirtualRange - 1;
	}

	var strMsg = "";
	strMsg = obj.m_strCallBackSliderText(0, objMoveBar.m_intCurrentPoint, obj.m_intVirtualRange);

	objSpn.innerHTML = strMsg;
	var intWidth = util.GetObjectWidth(objSpn);

	var util = new WebUtil();

	var intX = intVirtualX + objMoveBar.m_intPixelLeft + (objMoveBar.m_intPixelWidth - objMoveBar.m_intBoundaryWidth) / 2 - (intWidth / 2) - 1;

	objSpn.style.left = intX;
}

function	CustomSliderGetValue()
{
	var obj = this.m_Instance;

	var objBar = document.getElementById(obj.m_strImgSlider);

	return objBar.m_intCurrentPoint;
}

function	CustomSliderSetValue(
	intCurrentPoint)
{
	var intVirtualX;

	var obj = this.m_Instance;
	var objMoveBar	= document.getElementById(obj.m_strImgSlider);

	objMoveBar.m_intCurrentPoint = intCurrentPoint;
	intVirtualX = objMoveBar.m_intCurrentPoint * ( (obj.m_intPixelRange - 1) / (obj.m_intVirtualRange - 1));
	if (intVirtualX <= 0)
	{
		intVirtualX = 0;
		objMoveBar.m_intCurrentPoint = 0;
	}
	if (intVirtualX >= obj.m_intPixelRange - 1)
	{
		intVirtualX = obj.m_intPixelRange - 1;
		objMoveBar.m_intCurrentPoint = obj.m_intVirtualRange - 1;
	}
	
	// スライダーを移動する
	objMoveBar.SetVirtualPosition(intVirtualX, 0);

	// スライダーバー下のメッセージを移動する
	CustomSliderTextDraw(obj, objMoveBar);

	// 前面の背景の表示範囲を変更する
	CustomSliderFgImageDraw(obj, objMoveBar);
}

function	CustomSliderGetValueRange()
{
	var obj = this.m_Instance;

	return obj.m_intVirtualRange;
}

