﻿<!--

// ==============================================================================================================
// 	亂數
// ==============================================================================================================

	function Rnd()
	{
		var theDate = new Date();

		return Math.floor(Math.random()*1000000000000000000000) + theDate.getTime();
	}

// ==============================================================================================================
// 	取得特定子節點
// ==============================================================================================================

	function ChildNodeTagName(aryElement, objElement, strTagName)
	{
		for (var i=0; i<objElement.childNodes.length; i++)
		{
			if (objElement.childNodes[i] && objElement.childNodes[i].tagName && objElement.childNodes[i].tagName != "")
			{
				if (objElement.childNodes[i].tagName == strTagName)
					aryElement[aryElement.length] = objElement.childNodes[i];
				else
					aryElement = ChildNodeTagName(aryElement, objElement.childNodes[i], strTagName);
			}
		}

		return aryElement;
	}

// ==============================================================================================================
// 	Cookie - 取得、設定、刪除
// ==============================================================================================================

	function getCookie(theName)
	{
		theName += "=";

		var theCookie = document.cookie + ";";
		var s = theCookie.indexOf(theName);

		if (s < 0)
			return "";
		else
			return unescape(theCookie.substring((s + theName.length), theCookie.indexOf(";", s)));
	}

	function setCookie(theName, theValue)
	{
		var theDate = new Date("2020/1/1 18:56:35");

		document.cookie = theName + "=" + escape(theValue) + ";expires=" + theDate.toUTCString();
	}

	function delCookie(theName)
	{
		setCookie(theName, "");

		var theDate = new Date("1970/1/1 00:00:01");

		document.cookie = theName + "=;expires=" + theDate.toUTCString();
	}

// ==============================================================================================================
// 	下載 CSS
// ==============================================================================================================

	function LoadCssLink(strHref)
	{
		var objElement = document.createElement("link");

		objElement.rel = "stylesheet";
		objElement.type = "text/css";
		objElement.href = strHref;

		document.body.appendChild(objElement);
	}

// ==============================================================================================================
// 	下載 JavaScript
// ==============================================================================================================

	function LoadJavaScript(strSrc)
	{
		var objElement = document.createElement("script");

		objElement.language = "javascript";
		objElement.type = "text/javascript";
		objElement.src = strSrc;

		document.body.appendChild(objElement);
	}

	function LoadJavaScriptToString(strSrc)
	{
		return "<scr" + "ipt language='javascript' type='text/javascript' src='" + strSrc + "'></scr" + "ipt>";
	}

// ==============================================================================================================
// 	內容分頁
// ==============================================================================================================

	function ComponentPage(oFunction, thsElement, RecordCount, PageSize, PageIndex)
	{
		var PageCount = Math.ceil(RecordCount / PageSize);
		var i = PageIndex;
		var objElement = document.createElement("DIV");

		thsElement.appendChild(objElement);

		objElement.align = "center";
		objElement.className = "fontPage";

		if ((i + 4) > PageCount)
			i = PageCount - 4;

		if (i <= 4)
			i = 1;
		else
			i -= 4;

		var PageEnd = i + 9;
		var chdElement = document.createElement("SPAN");

		chdElement.innerHTML = "共 " + RecordCount + " 筆";
		chdElement.style.paddingRight = "15px";

		objElement.appendChild(chdElement);

		if (PageIndex <= 1)
		{
			chdElement = document.createElement("SPAN");

			chdElement.innerHTML = "&lt;&lt;";
			chdElement.style.paddingRight = "5px";

			objElement.appendChild(chdElement);

			chdElement = document.createElement("SPAN");

			chdElement.innerHTML = "&lt;";
			chdElement.style.paddingRight = "5px";

			objElement.appendChild(chdElement);
		}
		else
		{
			chdElement = document.createElement("A");

			chdElement.name = "1";
			chdElement.href = "#";
			chdElement.innerHTML = "&lt;&lt;";
			chdElement.style.paddingRight = "5px";

			chdElement.onclick = function () 	{

				oFunction(thsElement, RecordCount, PageSize, Number(this.name));

				return false;
			}

			objElement.appendChild(chdElement);

			chdElement = document.createElement("A");

			chdElement.name = PageIndex - 1;
			chdElement.href = "#" + chdElement.name;
			chdElement.innerHTML = "&lt;";
			chdElement.style.paddingRight = "5px";

			chdElement.onclick = function () 	{

				oFunction(thsElement, RecordCount, PageSize, Number(this.name));

				return false;
			}

			objElement.appendChild(chdElement);
		}

		if (RecordCount > 0)
		{
			if (i > 1)
			{
				chdElement = document.createElement("SUB");

				chdElement.innerHTML = "…";
				chdElement.style.paddingLeft = "2px";
				chdElement.style.paddingRight = "2px";

				objElement.appendChild(chdElement);
			}

			for (; i<PageEnd && i<=PageCount; i++)
			{
				if (i == PageIndex)
				{
					chdElement = document.createElement("B");

					chdElement.innerHTML = i;
					chdElement.style.paddingLeft = "2px";
					chdElement.style.paddingRight = "2px";

					objElement.appendChild(chdElement);
				}
				else
				{
					chdElement = document.createElement("A");

					chdElement.name = i;
					chdElement.href = "#" + chdElement.name;
					chdElement.innerHTML = i;
					chdElement.style.paddingLeft = "2px";
					chdElement.style.paddingRight = "2px";

					chdElement.onclick = function () 	{

						oFunction(thsElement, RecordCount, PageSize, Number(this.name));

						return false;
					}

					objElement.appendChild(chdElement);
				}
			}

			if (i <= PageCount)
			{
				chdElement = document.createElement("SUB");

				chdElement.innerHTML = "…";
				chdElement.style.paddingLeft = "2px";
				chdElement.style.paddingRight = "2px";

				objElement.appendChild(chdElement);
			}
		}
		else
		{
			chdElement = document.createElement("SPAN");

			chdElement.innerHTML = 1;
			chdElement.style.paddingLeft = "2px";
			chdElement.style.paddingRight = "2px";

			objElement.appendChild(chdElement);
		}

		if (PageIndex >= PageCount)
		{
			chdElement = document.createElement("SPAN");

			chdElement.innerHTML = "&gt;";
			chdElement.style.paddingLeft = "5px";

			objElement.appendChild(chdElement);

			chdElement = document.createElement("SPAN");

			chdElement.innerHTML = "&gt;&gt;";
			chdElement.style.paddingLeft = "5px";

			objElement.appendChild(chdElement);
		}
		else
		{
			chdElement = document.createElement("A");

			chdElement.name = PageIndex + 1;
			chdElement.href = "#" + chdElement.name;
			chdElement.innerHTML = "&gt;";
			chdElement.style.paddingLeft = "5px";

			chdElement.onclick = function () 	{

				oFunction(thsElement, RecordCount, PageSize, Number(this.name));

				return false;
			}

			objElement.appendChild(chdElement);

			chdElement = document.createElement("A");

			chdElement.name = PageCount;
			chdElement.href = "#" + chdElement.name;
			chdElement.innerHTML = "&gt;&gt;";
			chdElement.style.paddingLeft = "5px";

			chdElement.onclick = function () 	{

				oFunction(thsElement, RecordCount, PageSize, Number(this.name));

				return false;
			}

			objElement.appendChild(chdElement);
		}

		chdElement = document.createElement("SPAN");

		chdElement.innerHTML = PageIndex + " / " + PageCount + " 頁";
		chdElement.style.paddingLeft = "15px";

		objElement.appendChild(chdElement);
	}

// ==============================================================================================================
// 	區塊反白效果
// ==============================================================================================================

	function openModalLabel(thsElement, chdElement)
	{
		var objElement = document.createElement("DIV");

		objElement.style.position = "absolute";

		if (chdElement)
			thsElement.insertBefore(objElement, chdElement);
		else
			thsElement.appendChild(objElement);

		this.Show = function () 	{

			var iWidth = thsElement.offsetWidth;
			var iHeight = thsElement.offsetHeight;

			objElement.innerHTML = "<iframe marginwidth='0' marginheight='0' height='" + iHeight + "' width='" + iWidth + "' scrolling='no' border='0' frameborder='0' style='position: absolute; top: 0px; left: 0px; background-color: #000; filter: alpha(opacity=60); opacity: 0.6 !important;'></iframe><div style='position: absolute; top: 0px; left: 0px; height: " + iHeight + "px; width: " + iWidth + "px; background-color: #000; filter: alpha(opacity=60); opacity: 0.6 !important;'></div><img src='../../images/bar.gif' style='position: absolute; top: " + ((iHeight - 19) / 2) + "px; left: " + ((iWidth - 200) / 2) + "px;'>";

			objElement.style.display = "";
		}

		this.Hide = function () 		{

			objElement.innerHTML = "";

			objElement.style.display = "none";
		}

		this.Hide();
	}

	function showModalLabel(thsElement)
	{
		var objElement = document.createElement("DIV");

		objElement.style.position = "absolute";

		thsElement.appendChild(objElement);

		var iWidth = thsElement.offsetWidth;
		var iHeight = thsElement.offsetHeight;

		objElement.innerHTML = "<iframe marginwidth='0' marginheight='0' height='" + iHeight + "' width='" + iWidth + "' scrolling='no' border='0' frameborder='0' style='position: absolute; top: 0px; left: 0px; background-color: #000; filter: alpha(opacity=60); opacity: 0.6 !important;'></iframe><div style='position: absolute; top: 0px; left: 0px; height: " + iHeight + "px; width: " + iWidth + "px; background-color: #000; filter: alpha(opacity=60); opacity: 0.6 !important;'></div><img src='../../images/bar.gif' style='position: absolute; top: " + ((iHeight - 19) / 2) + "px; left: " + ((iWidth - 200) / 2) + "px;'>";

		objElement.style.display = "";

		this.Remove = function () 		{

			thsElement.removeChild(objElement);
		}
	}

// ==============================================================================================================

	function PageCompiler()
	{
		var thsClass = this;

		this.aryArgument = new Array();
		this.aryArgument["elements"] = new Array();
		this.aryArgument["function"] = new Array();
		this.aryArgument["htmlspan"] = new Array();

// ==============================================================================================================
// 	元件滑鼠拖曳
// ==============================================================================================================

		this.Unit = function (pxUnit) 	{

			return ( isNaN(pxUnit) ? pxUnit : (pxUnit + "px") );
		}

		this.DocumentElement = function () 	{

			var minY = 0;
			var minX = 0;
			var objElement = document.createElement("DIV");

			objElement.style.clear = "both";

			document.body.appendChild(objElement);

			var pxHeight = objElement.offsetTop;

			document.body.removeChild(objElement);

			minY = (screen.height > pxHeight) ? Math.max(minY, pxHeight) : minY;
			minY = (screen.height > document.documentElement.clientHeight) ? Math.max(minY, document.documentElement.clientHeight) : minY;
			minY = (screen.height > document.body.clientHeight) ? Math.max(minY, document.body.clientHeight) : minY;
			minY = (screen.height > document.body.scrollHeight) ? Math.max(minY, document.body.scrollHeight) : minY;
			minY = (screen.height > document.body.offsetHeight) ? Math.max(minY, document.body.offsetHeight) : minY;
			minX = (screen.width > document.documentElement.clientWidth) ? Math.max(minX, document.documentElement.clientWidth) : minX;
			minX = (screen.width > document.body.clientWidth) ? Math.max(minX, document.body.clientWidth) : minX;
			minX = (screen.width > document.body.scrollWidth) ? Math.max(minX, document.body.scrollWidth) : minX;
			minX = (screen.width > document.body.offsetWidth) ? Math.max(minX, document.body.offsetWidth) : minX;

			var maxY = Math.max(minY, screen.height);

			maxY = Math.max(maxY, pxHeight);
			maxY = Math.max(maxY, document.documentElement.clientHeight);
			maxY = Math.max(maxY, document.body.clientHeight);
			maxY = Math.max(maxY, document.body.scrollHeight);
			maxY = Math.max(maxY, document.body.offsetHeight);
			maxY += document.body.offsetTop + document.body.offsetTop;

			return { "minHeight": minY, "minWidth": minX, "maxHeight": maxY };
		}

		var b2bElement = new Array();
		var posElement = new Array();

		this.ParentNodeTagName = function (objElement, ElementTagName)	{

			ElementTagName = ElementTagName.toUpperCase();

			do
			{
				objElement = objElement.parentNode;
			}
			while (objElement.tagName != ElementTagName)

			return objElement;
		}

		this.positionXY = function (e) 	{

			var x, y;

			if (document.all)
			{
				x = event.x;
				y = event.y;
			}
			else
			{
				x = e.pageX;
				y = e.pageY;
			}

			return { X : x, Y : y};
		}

		this.positionX = function (objElement)	{

			var p = objElement.offsetLeft;

			while (objElement=objElement.offsetParent)
				p += objElement.offsetLeft;

			return p;
		}

		this.positionY = function (objElement)	{

			var p = objElement.offsetTop;

			while (objElement=objElement.offsetParent)
				p += objElement.offsetTop;

			return p;
		}

		this.Move = function (objElement) 	{ }

		this.DataItem = function (objElement, pntElement) 	{

			var n = posElement.length;

			for (var i=0; i<n; i++)
			{
				if (posElement[i][0] == objElement)
					return false;
			}

			posElement[n] = new Array();
			posElement[n][0] = pntElement;
		}

		this.AddNew = function (objForm, aryXml) 	{

			objForm.action = "../../Master/Layout/LayoutSave.aspx";

			var strForm = "";

			for (var j in aryXml)
				strForm += "<textarea name=\"" + j + "\">" + aryXml[j] + "</textarea>";

			return strForm;
		}

		this.Reset = function () 		{

			this.AddNew = function (objForm, aryXml) 	{

				objForm.action = "../../Master/Layout/LayoutCustom.aspx";

				var strForm = "<textarea name=\"Layout\">";

				for (var j in aryXml)
					strForm += aryXml[j];

				strForm += "</textarea>";

				return strForm;
			}

			this.Update();

			return false;
		}

		this.Update = function () 	{

			var thElement, strAttribute, strHeaders, strId, strXML, strheaders;
			var divElement = this.aryArgument["htmlspan"];
			var objForm = document.createElement("FORM");
			var aryXml = new Array();
			var tdElement = new Array();

			for (var j in divElement)
			{
				if ((thElement = divElement[j][1]) && (!tdElement[thElement.headers]))
					tdElement[thElement.headers] = thElement;
			}

			for (var j in tdElement)
			{
				thElement = tdElement[j];

				for (var k=0; k<thElement.childNodes.length; k++)
				{
					if (thElement.childNodes[k] && thElement.childNodes[k].tagName && thElement.childNodes[k].tagName == "DIV" && (strId = thElement.childNodes[k].getAttribute("id")) && thElement.childNodes[k] == divElement[strId][0])
					{
						strXML = "<div title=\"" + divElement[strId][0].title + "\" id=\"" + strId + "\"";

						strAttribute = divElement[strId][0].getAttribute("datetime");

						if (strAttribute && strAttribute != "" & (!isNaN(strAttribute)))
							strXML += " datetime=\"" + strAttribute + "\"";

						if (divElement[strId][4].style.display != "")
							strXML += " hide=\"1\"";

						strXML += "></div>";

						if (aryXml[j])
							aryXml[j] += strXML;
						else
							aryXml[j] = strXML;

					}
				}
			}

			document.body.appendChild(objForm);

			objForm.style.display = "none";
			objForm.method = "POST";
			objForm.innerHTML = thsClass.AddNew(objForm, aryXml);
			objForm.submit();

			return false;
		}

		this.DataBind = function (isMenu) 	{

			var objElement, olElement, ulElement, liElement, strHTML, strHide;
			var divElement = this.aryArgument["htmlspan"];

			for (var i in divElement)
			{
				strHide = divElement[i][0].getAttribute("hide");

				if (strHide && strHide == "1")
					divElement[i][4].style.display = "none";

				objElement = divElement[i][3];

				strHTML = objElement.innerHTML;

				objElement.innerHTML = "";

				ulElement = document.createElement("UL");

				ulElement.className = "noUL";

				objElement.appendChild(ulElement);

				liElement = document.createElement("LI");

				liElement.className = "FloatRight";

				ulElement.appendChild(liElement);

				objElement = document.createElement("A");

				objElement.name = i;
				objElement.href = "#" + i;

				if (divElement[i][4].style.display == "")
					objElement.className = "btnmin";
				else
					objElement.className = "btnmax";

				objElement.onclick = function () 	{

					var liElement = divElement[this.name][4];

					if (liElement.style.display == "")
					{
						liElement.style.display = "none";
						this.className = "btnmax";
					}
					else
					{
						liElement.style.display = "";
						this.className = "btnmin";
					}

					return false;
				}

				liElement.appendChild(objElement);

				olElement = document.createElement("LI");

				if (isMenu)
				{
/*
					objElement = document.createElement("A");

					objElement.href = "#";
					objElement.title = "儲存版型";
					objElement.className = "btnsave";

					objElement.onclick = function () 	{

						return thsClass.Update();
					}

					liElement.appendChild(objElement);
*/
					objElement = document.createElement("A");

					objElement.name = i;
					objElement.href = "#" + i;
					objElement.title = "標題";
					objElement.className = "btnedit";

					objElement.onclick = function () 	{

						var tdElement = divElement[this.name][3];
						var txtElement = document.createElement("FORM");
						var oPrompt = new openModalDialog(txtElement, "請輸入標題：", "", "", 480, 30);

						txtElement.style.textAlign = "center";
						txtElement.style.margin = 0;
						txtElement.style.padding = 0;
						txtElement.name = this.name;
						txtElement.onsubmit = function () 	{

							var strTitle = this.Title.value;

							if (strTitle == "")
							{
								alert("請輸入標題！");

								this.Title.focus();

								return false;
							}

							strTitle = HtmlEncode(strTitle);
							tdElement.innerHTML = strTitle;
							divElement[this.name][0].title = strTitle;

							oPrompt.RemoveBlock();

							return false;
						}

						txtElement.innerHTML = "<input type=\"text\" name=\"Title\" size=\"50\" value=\"" + tdElement.innerHTML + "\" maxlength=\"30\" /><input type=\"submit\" value=\"確定\" />";

						var btnElement = document.createElement("INPUT");

						btnElement.value = "取消";
						btnElement.type = "button";
						btnElement.onclick = function () 	{

							oPrompt.RemoveBlock();
						}

						txtElement.appendChild(btnElement);

						return false;
					}

					liElement.appendChild(objElement);

					objElement = document.createElement("A");

					objElement.name = i;
					objElement.href = "#" + i;
					objElement.title = "關閉";
					objElement.className = "btnclose";

					objElement.onclick = function () 	{

						var tdElement = divElement[this.name][3];

						if (confirm(tdElement.innerHTML + " 刪除 ?"))
						{
							var trElement = divElement[this.name][1];

							tdElement = divElement[this.name][0];
							trElement.removeChild(tdElement);
						}

						return false;
					}

					liElement.appendChild(objElement);

					olElement.style.cursor = "move";

					olElement.onmousedown = function () 	{

						thsClass.Move(this);
					}
				}

				olElement.innerHTML = strHTML;

				ulElement.appendChild(olElement);

				divElement[i][3] = olElement;
			}

			this.Move = function (thsElement) 	{

				var aryElement = new Array();
				var pntElement = document.body.getElementsByTagName("embed");

				for (var i=0; i<pntElement.length; i++)
				{
					aryElement[i] = new Array(pntElement[i], pntElement[i].style.visibility);
					pntElement[i].style.visibility = "hidden";
				}

				var tbElement = document.createElement("DIV");

				tbElement.style.position = "absolute";
				tbElement.style.top = 0;
				tbElement.style.left = document.body.offsetLeft + "px";
				tbElement.style.width = "100%";
				tbElement.innerHTML = "<iframe marginwidth=\"0\" marginheight=\"0\" height=\"100%\" width=\"100%\" scrolling=\"no\" border=\"0\" frameborder=\"0\" class=\"filtertransparent0\"></iframe>";

				var trElement = document.createElement("DIV");

				trElement.className = "filtertransparent0";
				trElement.style.top = 0;
				trElement.style.left = -document.body.offsetLeft + "px";
				trElement.style.width = (document.body.offsetLeft + document.body.offsetLeft) + "px";
				trElement.style.position = "absolute";

				tbElement.appendChild(trElement);

				pntElement = document.createElement("DIV");

				pntElement.className = "filtertransparent0";
				pntElement.style.top = 0;
				pntElement.style.left = document.body.offsetLeft + "px";
				pntElement.style.width = "100%";
				pntElement.style.position = "absolute";

				tbElement.appendChild(pntElement);

				document.body.appendChild(tbElement);  				// 物件移到document下，ie拖曳時不會有反白

				var oDocument = this.DocumentElement();

				trElement.style.height = oDocument.maxHeight + "px";
				tbElement.style.height = oDocument.maxHeight + "px";
				pntElement.style.height = oDocument.maxHeight + "px";

				var e, j;

				if (thsElement.onmousedown.arguments.length > 0)
					e = thsElement.onmousedown.arguments[0];
				else
					e = false;

				thsElement = thsClass.ParentNodeTagName(thsElement, "DIV");

				var oHeight = thsElement.offsetHeight;
				var posXY = this.positionXY(e);
				var px = this.positionX(thsElement);
				var py = this.positionY(thsElement);
				var ox = px - posXY.X;
				var oy = py - posXY.Y;
				var dotElement = document.createElement("DIV");
				var chdElement = thsElement.parentNode;

				chdElement.height = chdElement.offsetHeight;

				thsElement.style.width = thsElement.offsetWidth + "px";
				thsElement.style.position = "absolute";

				for (var i=0; i<posElement.length; i++)
				{
					j = 0;

					dotElement = posElement[i][0];

					posElement[i][1] = thsClass.positionX(dotElement);				// 寬度: 左方點
					posElement[i][2] = posElement[i][1] + dotElement.offsetWidth;			// 寬度: 右方點
					posElement[i][3] = new Array();

					for (var k=0; k<dotElement.childNodes.length; k++)
					{
						if (dotElement.childNodes[k] && dotElement.childNodes[k].tagName && dotElement.childNodes[k].tagName == "DIV" && dotElement.childNodes[k] != thsElement)
						{
							posElement[i][3][j] = new Array();
							posElement[i][3][j][0] = dotElement.childNodes[k];		// 物件
							posElement[i][3][j][1] = thsClass.positionY(dotElement.childNodes[k]) + (dotElement.childNodes[k].offsetHeight / 2) + 5;	// 物件的中心點 ( 計算: 因為 margin: 10 所以 +5 )

							j += 1;
						}
					}
				}

				dotElement = document.createElement("DIV");

				dotElement.headers = chdElement.headers;
				dotElement.style.height = oHeight + "px";
				dotElement.style.marginBottom = "10px";

				oHeight -= 4;

				chdElement.insertBefore(dotElement, thsElement);

				chdElement.height = "";

				thsElement.style.left = px + "px";
				thsElement.style.top  = py + "px";

				document.onmousemove = function (e) {

					tbElement.style.display = "";

					dotElement.style.height = oHeight + "px";
					dotElement.style.border = "dashed 2px #666666";

					thsElement.focus();
					thsElement.className = "filtertransparent50";

					var posXY = thsClass.positionXY(e);
					var x = ox + posXY.X;
					var y = oy + posXY.Y;

					thsElement.style.left = x + "px";
					thsElement.style.top  = y + "px";

					x += thsElement.offsetWidth / 2;

					for (var i=0; i<posElement.length; i++)
					{
						if (posElement[i][0].headers == dotElement.headers)
						{
							if (x >= posElement[i][1] && x <= posElement[i][2])
							{
								for (j=0; j<posElement[i][3].length; j++)
								{
									if (y < posElement[i][3][j][1])
									{
										posElement[i][3][j][0].parentNode.insertBefore(dotElement, posElement[i][3][j][0]);

										return true;
									}
								}

								posElement[i][0].appendChild(dotElement);

								break;
							}
						}
					}
				}

				document.onmouseup = function ()	{

					document.onmouseup = null;
					document.onmousemove = null;
					document.body.removeChild(tbElement);

					thsElement.className = "";
					thsElement.style.position = "";
					thsElement.style.width = "";
					thsElement.style.display = "none";
					thsElement.style.display = "";

					if (dotElement && dotElement.parentNode)
					{
						dotElement.parentNode.insertBefore(thsElement, dotElement);
						dotElement.parentNode.removeChild(dotElement);
					}

					for (var i=0; i<aryElement.length; i++)
						aryElement[i][0].style.visibility = aryElement[i][1];
				}
			}
		}

		this.mouseXY = function (e) 	{

			var x, y;

			if (document.all)
			{
				x = event.x;
				y = event.y;
			}
			else
			{
				x = e.pageX;
				y = e.pageY;
			}

			return { "X" : x, "Y" : y};
		}

// ==============================================================================================================
// 	元件功能選單
// ==============================================================================================================

		this.HtmlComponent = function (thsElement)	{

			var strNodeId = thsElement.getAttribute("id");

			if (strNodeId && (typeof(strNodeId) != "null"))
			{
				strNodeId = strNodeId.toLowerCase();

				thsElement.style.marginBottom = "10px";

				var divElement, objElement, tbElement, trElement;
				var pntElement = thsElement.parentNode;

				pntElement.align = "left";
				pntElement.vAlign = "top";

				if ( (!isNaN(pntElement.width)) && Number(pntElement.width) > 0 )
				{
				}
				else
				{
					thsElement.style.display = "none";

					var oWidth = pntElement.offsetWidth;

					pntElement.width = oWidth;

					thsElement.style.display = "";
				}

				if (thsElement.hasChildNodes() && (tbElement = thsElement.firstChild) && tbElement.tagName == "TABLE" && tbElement.hasChildNodes() && tbElement.firstChild.tagName == "TBODY" && tbElement.firstChild.hasChildNodes() && (trElement = tbElement.firstChild.firstChild) && trElement.tagName == "TR" && trElement.hasChildNodes() && (tdElement = trElement.firstChild) && tdElement.tagName == "TD" && tdElement.hasChildNodes() && (divElement = tdElement.firstChild) && divElement.tagName == "DIV")
				{
				//	trElement = tbElement.firstChild.firstChild;
				//	tdElement = trElement.firstChild;
				//	divElement = tdElement.firstChild;

					if (strNodeId.indexOf("btob") >= 0)
						b2bElement[strNodeId] = divElement.getElementsByTagName("IFRAME")[0];
				}
				else
				{
					tbElement = document.createElement("TABLE");

					thsElement.appendChild(tbElement);

					trElement = tbElement.insertRow(-1);
					tdElement = trElement.insertCell(-1);

					divElement = document.createElement("DIV");

					tdElement.appendChild(divElement);
				}

				divElement.className = "font10";

				tdElement.style.backgroundColor = "#FFFFFF";

				tbElement.className = "btnmenu";
				tbElement.cellSpacing = 2;
				tbElement.cellPadding = 3;

				objElement = tbElement.insertRow(-1);

				trElement.parentNode.insertBefore(objElement, trElement);

				tdElement = objElement.insertCell(-1);

				tdElement.className = "tools";
				tdElement.innerHTML = thsElement.title;

				this.aryArgument["htmlspan"][strNodeId] = new Array(thsElement, pntElement, tbElement, tdElement, divElement);

				oPageCompiler.DataItem(thsElement, pntElement);

				return divElement;
			}

			return document.createElement("DIV");
		}

// ==============================================================================================================

		this.aryJavaScript = new Array();
		this.encAgent = "";
		this.decAgent = "";
		this.formName = "";
		this.Now = new Date();

// ==============================================================================================================

		this.AutoIFrame = function (strBtob, pxHeight) 	{

			var objElement = b2bElement[strBtob];

			if (objElement)
				objElement.height = pxHeight;
		}

		this.OnMenu = function (objElement, strDisplay, strClassName) 	{

			var thsElement = objElement.parentNode;

			for (var i=0; i<thsElement.childNodes.length; i++)
			{
				if (thsElement.childNodes[i] && thsElement.childNodes[i].tagName)
				{
					switch (thsElement.childNodes[i].tagName)
					{
						case "TABLE":

							thsElement.childNodes[i].style.display = strDisplay;

							break;

						case "DIV":

							thsElement.childNodes[i].className = strClassName;

							break;
					}
				}
			}
		}

		this.Search = function (thsForm) 	{

			if (thsForm.Word.alt == "")
			{
				alert("請輸入關鍵字");

				thsForm.Word.focus();

				return false;
			}

			return true;
		}

		this.FormSubmit = function () { return false; }

		this.DelRefer = function ( strUrl ) {

			if (strUrl != "" && confirm("刪除"))
				location.href = strUrl + "&refer=" + encodeURIComponent(location.pathname + location.search);

			return false;
		}

		this.Begin = function (isMenu, strElementId, strDate, strAgent) 	{

			window.onload = function () 	{

				thsClass.DataBind(isMenu);
			}

			this.Now = new Date(strDate);
			this.decAgent = strAgent;
			this.formName = strDate.replace(/[ :\/]+/g, "");

			try
			{
				this.encAgent = encodeURIComponent(encodeURIComponent(strAgent));
			}
			catch (e)
			{
			}

			var objElement = new Array();

			objElement = ChildNodeTagName(objElement, document.body, "DIV");

			if (objElement.length > 0)
			{
				var strNodeId, strParentId;
				var pntElement = new Array();

				for (var i=0; i<objElement.length; i++)
					pntElement = ChildNodeTagName(pntElement, objElement[i], "DIV");

				for (var i=0; i<pntElement.length; i++)
				{
					strParentId = pntElement[i].parentNode.getAttribute("id");

					if (!(strParentId && strParentId != "" && strParentId != strElementId))
					{
						strNodeId = pntElement[i].getAttribute("id");

						if (strNodeId && strNodeId != "")
						{
							strNodeId = strNodeId.toLowerCase();

							this.aryArgument["elements"][strNodeId] = new Array(pntElement[i]);

							if (strNodeId != "header")
								this.HtmlComponent(pntElement[i]);
						}
					}
				}
			}

		//	document.writeln("<link rel=\"Stylesheet\" type=\"text/css\" href=\"/Space/My/" + this.decAgent + "/background.css?" + Math.floor(Math.random()*1000000000000000000000) + "\" />");

			for (var i=0; i<this.aryJavaScript.length; i++)
				document.writeln("<scr" + "ipt language=\"javascript\" type=\"text/javascript\" src=\"" + this.aryJavaScript[i] + "\"></scr" + "ipt>")
		}
	}

// ==============================================================================================================

	var oPageCompiler = new PageCompiler();
//-->