Index: /drbl_ui/flow_chart/clonezilla_mode.files/data.xml
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/data.xml	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/data.xml	(revision 21)
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisioDocument>
+	<DocumentProperties>
+		<Title></Title>
+		<HyperlinkBase href=""></HyperlinkBase>
+	</DocumentProperties>
+	<Pages>
+		<Page ID="0" Name="頁-1" NameU="Page-1">
+			<Layer IX="0">
+				<Name>流程圖</Name>
+				<NameUniv>Flowchart</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Layer IX="1">
+				<Name>連接器</Name>
+				<NameUniv>Connector</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Shapes>
+				<Shape ID="1" UniqueID="{9E30117F-31FE-41CA-AA6E-4D7879C9AFAE}" Name="終端子" NameU="Terminator" Master="0">
+					<Text>start</Text>
+					<XForm>
+						<PinX Unit="MM">4.133858267716535</PinX>
+						<PinY Unit="MM">8.818897637795274</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="2" UniqueID="{B3371775-DB37-48FE-AF43-416B76CCB1F2}" Name="決策" NameU="Decision" Master="2">
+					<Text>clonezilla_mode_0</Text>
+					<XForm>
+						<PinX Unit="MM">4.133858267716535</PinX>
+						<PinY Unit="MM">7.870136044723992</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="3" UniqueID="{3802F8A0-7DCE-460E-A5D1-532AD9AF6920}" Name="程序" NameU="Process" Master="3">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">4.133858267716535</PinX>
+						<PinY Unit="MM">4.031553367558639</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="4" UniqueID="{6B356AF9-1E68-4C93-A4FB-CEFCF755652C}" Name="動態連接器" NameU="Dynamic connector" Master="4">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">4.133858267716535</PinX>
+						<PinY Unit="MM">7.035461723149396</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="5" UniqueID="{AF0175A0-CF7E-4917-950E-C0E5F61CEA1E}" Name="決策.5" NameU="Decision.5" Master="2">
+					<Text>clonezilla_mode_1</Text>
+					<XForm>
+						<PinX Unit="MM">4.133858267716535</PinX>
+						<PinY Unit="MM">6.200787401574803</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="6" UniqueID="{D7206102-6228-4390-8BE4-81C461552C65}" Name="動態連接器.6" NameU="Dynamic connector.6" Master="4">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">4.133858267716535</PinX>
+						<PinY Unit="MM">5.116170384566720</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="7" UniqueID="{762885D6-97E6-4C89-8C53-5EE9037EB8C2}" Name="動態連接器.7" NameU="Dynamic connector.7" Master="4">
+					<XForm>
+						<PinX Unit="MM">4.133858267716535</PinX>
+						<PinY Unit="MM">8.425196850393700</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="8" UniqueID="{D6262FAB-CD3C-48F9-91C7-F21DC0F5F1C4}" Name="動態連接器.8" NameU="Dynamic connector.8" Master="4">
+					<XForm>
+						<PinX Unit="MM">3.612204724409449</PinX>
+						<PinY Unit="MM">5.950844706141316</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="9" UniqueID="{8303FC15-5F40-4906-8BAB-1CF81BF0443D}" Name="動態連接器.12" NameU="Dynamic connector.12" Master="4">
+					<XForm>
+						<PinX Unit="MM">4.625984251968504</PinX>
+						<PinY Unit="MM">5.116170384566721</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="10" UniqueID="{523493D4-FCBE-4C2E-B27C-61D61D0814DD}" Name="終端子.41" NameU="Terminator.41" Master="0">
+					<Text>end</Text>
+					<XForm>
+						<PinX Unit="MM">4.133858267716535</PinX>
+						<PinY Unit="MM">2.913385826771654</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="11" UniqueID="{980F3BE4-3759-4894-803C-4E6ED27756E0}" Name="動態連接器.11" NameU="Dynamic connector.11" Master="4">
+					<XForm>
+						<PinX Unit="MM">4.133858267716535</PinX>
+						<PinY Unit="MM">3.391789588031080</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+			</Shapes>
+		</Page>
+	</Pages>
+</VisioDocument>
Index: /drbl_ui/flow_chart/clonezilla_mode.files/filelist.xml
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/filelist.xml	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/filelist.xml	(revision 21)
@@ -0,0 +1,32 @@
+<xml xmlns:o="urn:schemas-microsoft-com:office:office">
+ <o:File HRef="arrow.gif"/>
+ <o:File HRef="minimize.gif"/>
+ <o:File HRef="maximize.gif"/>
+ <o:File HRef="go.gif"/>
+ <o:File HRef="fullpage.gif"/>
+ <o:File HRef="plus.gif"/>
+ <o:File HRef="minus.gif"/>
+ <o:File HRef="panminus.gif"/>
+ <o:File HRef="panplus.gif"/>
+ <o:File HRef="tick-foc.gif"/>
+ <o:File HRef="tick-off.gif"/>
+ <o:File HRef="tick-on.gif"/>
+ <o:File HRef="toc.gif"/>
+ <o:File HRef="toc2.gif"/>
+ <o:File HRef="data.xml"/>
+ <o:File HRef="frameset.js"/>
+ <o:File HRef="keys.js"/>
+ <o:File HRef="visio.css"/>
+ <o:File HRef="vml_1.emz"/>
+ <o:File HRef="gif_1.gif"/>
+ <o:File HRef="vml_1.js"/>
+ <o:File HRef="vml_1.htm"/>
+ <o:File HRef="gif_1.js"/>
+ <o:File HRef="gif_1.htm"/>
+ <o:File HRef="zoom.htm"/>
+ <o:File HRef="find.js"/>
+ <o:File HRef="widgets.htm"/>
+ <o:File HRef="toolbar.htm"/>
+ <o:MainFile HRef="../clonezilla_mode.htm"/>
+ <o:File HRef="filelist.xml"/>
+</xml>
Index: /drbl_ui/flow_chart/clonezilla_mode.files/find.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/find.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/find.js	(revision 21)
@@ -0,0 +1,499 @@
+
+var strShapeName	= "圖形名稱";
+var strShapeText	= "圖形文字";
+var strProps		= "圖形資料";
+var strResults		= "搜尋結果關於:";
+
+var strShape	= "圖形名稱:";
+var strNoCustomPropertiesToDisplayText = "CTRL+按一下繪圖中的圖形以檢視詳細資料。";
+
+var FindShapeXML = parent.FindShapeXML;
+var Unquote = parent.Unquote;
+var put_Location = parent.put_Location;
+
+
+var strChkBox		= "Chkbox";
+var strPropChkBox	= "PropChkbox";
+
+function doExpando(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = up.src;
+	}else{
+		xxx.style.display = "none"
+		yyy.src = down.src;
+	}
+}
+
+function doExp(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = "minus.gif";
+	}else{
+		xxx.style.display = "none"
+		yyy.src = "plus.gif";
+	}
+}
+
+
+function FindOnClick()
+{
+	var count, indexOfString;
+	
+	var fieldsToSearchArray = new Array();
+	if (parent.xmlData != null && document.theForm[strProps + strChkBox].checked)
+	{
+		for( count=0; count < document.theForm.length; count++ )
+		{
+			indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+			if( -1 != indexOfString && document.theForm[count].checked )
+			{
+				fieldsToSearchArray[ fieldsToSearchArray.length ] = document.theForm[count].name.slice(0, indexOfString);
+			}
+		}
+	}
+
+	var searchTokensArray = CreateSearchTokens (document.theForm.findString.value);
+
+	if (searchTokensArray.length > 0)
+	{
+		var findArray = Find(searchTokensArray, fieldsToSearchArray);
+		var ArrayLength = findArray.length;
+		var strResultsHTML = "找不到相符項目。";
+		var lastPageID = null;
+		var shapeID;
+		
+		
+		if(ArrayLength > 0)
+		{
+			strResultsHTML = strResults + ' <b>'+ parent.HTMLEscape(document.theForm.findString.value) +'</b>';
+			for ( count = 0; count < ArrayLength; count++)
+			{
+			
+				if( lastPageID != findArray[count].PageID )
+				{
+					lastPageID = findArray[count].PageID;
+				}
+
+				shapeID = findArray[count].ShapeID;
+				strResultsHTML += '<p class="results"><a href="javascript:populateSearchResultDetails(\'results_'+ lastPageID +'_'+ shapeID +'\', '+ lastPageID +','+ shapeID +'); TogglePlus(results_' + lastPageID + '_' + shapeID + ',\'img_' + lastPageID + '_' + shapeID + '\', hideResults)"><img src="plus.gif" alt="顯示/隱藏圖形詳細資料" width="13" height="9" border="0" id="img_'+ lastPageID +'_'+ shapeID +'"></a>\n'
+				strResultsHTML += '<a  class="blu1" href="JavaScript:FindQuerySelect(';
+
+				strResultsHTML += findArray[count].PageID + ",";
+				strResultsHTML += findArray[count].ShapeID + ",";
+				strResultsHTML += findArray[count].PinX + ",";
+				strResultsHTML += findArray[count].PinY;
+
+				strResultsHTML += ')">'+ findArray[count].Title +'</a></p>\n'
+
+				strResultsHTML += '</div>\n';
+				strResultsHTML += '<div class="indent" id="results_'+ lastPageID +'_'+ shapeID +'" style="display:none;width:100%;"></div>\n'
+			}
+
+		}
+		var divAdvSrch = document.all("hideAdvSrch");
+		var imgAS0 = document.all("as0");
+		
+		var tmpObj = document.all("hideResults");
+		if( tmpObj != null )
+		{
+			tmpObj.innerHTML = strResultsHTML;
+			tmpObj.open = "true";
+			tmpObj.style.display = "block";
+		}
+	}
+}
+
+function CreateSearchTokens (strUserString)
+{
+	var searchTokensArray = new Array();
+
+	var strToken = "";
+	var chCurChar;
+
+	for (var count = 0; count < strUserString.length; count++)
+	{
+		chCurChar = strUserString.charAt(count);
+		if (chCurChar == '"')
+		{
+			var nNextQuote = strUserString.indexOf('"', count + 1);
+			if (nNextQuote >= 0)
+			{
+				strToken = strUserString.slice(count + 1, nNextQuote);
+				searchTokensArray[searchTokensArray.length] = strToken;
+				strToken = "";
+				count = nNextQuote;
+			}
+		}
+		else if (chCurChar == ' ')
+		{
+			if (strToken.length > 0)
+			{
+				searchTokensArray[searchTokensArray.length] = strToken;
+			}
+
+			strToken = "";
+		}
+		else
+		{
+			strToken += chCurChar;
+		}
+	}
+
+	if (strToken.length > 0)
+	{
+		searchTokensArray[searchTokensArray.length] = strToken;
+	}
+
+	return searchTokensArray;
+}
+
+function populateSearchResultDetails( divID, pageID, shapeID )
+{
+	var tmpShape = FindShapeXML (pageID, shapeID);
+	var strOutput = CreatePropTable( tmpShape );
+	
+	var tmpObj = document.all(divID);
+	if( tmpObj != null )
+	{
+		tmpObj.innerHTML = strOutput;
+	}
+}
+
+function makeAdvancedFindCheckboxes(div)
+{
+	if (parent.xmlData)
+	{
+		var strOutput = "";
+
+		strOutput += "<INPUT type='checkbox' name='" + strShapeName + strChkBox + "' id='" + strShapeName + strChkBox + "' checked><label for='" + strShapeName + strChkBox + "'>" + strShapeName + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strShapeText + strChkBox + "' id='" + strShapeText + strChkBox + "' checked><label for='" + strShapeText + strChkBox + "'>" + strShapeText + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strProps + strChkBox + "' id='" + strProps + strChkBox + "' onclick='AdvSearchCustomPropCheck ()'checked ><label for='" + strProps + strChkBox + "'>" + strProps +"</label><br>\n";
+		strOutput += "<div id='divCPBoxes' style='margin-left:1em;'>";
+		
+		var objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label");
+		var filter = "";
+		var boolFirstPass = true;
+		var tmpPropName;
+		while( objNodes.length > 0)
+		{
+			tmpPropName = objNodes.item( 0 ).text;
+			var escapedPropName = parent.EscapeString(tmpPropName);
+			if( true == boolFirstPass )
+			{
+				filter = ". != '" + escapedPropName + "'";
+				boolFirstPass = false;
+			}
+			else
+			{
+				filter += " and . != '" + escapedPropName + "'";
+			}
+
+			tmpPropName = parent.HTMLEscape (tmpPropName);
+			strOutput += "<INPUT type='checkbox' name='" + tmpPropName + strPropChkBox + "' id='"+ tmpPropName + strPropChkBox + "' checked><label for='"+ tmpPropName + strPropChkBox + "'>" + tmpPropName +"</label><br>\n";
+
+			objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label["+ filter + "]");
+		}
+		strOutput += "</div>"
+		div.innerHTML = strOutput;
+	}
+}
+
+function AdvSearchCustomPropCheck ()
+{
+	for( count=0; count < document.theForm.length; count++ )
+	{
+		indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+		if( -1 != indexOfString )
+		{
+			document.theForm[count].disabled = !document.theForm[strProps + strChkBox].checked;
+		}
+	}
+}
+
+
+function CResultItem(title, pageID, shapeID, pinX, pinY)
+{
+	 this["Title"] = title;
+	 this["PageID"] = pageID;
+	 this["ShapeID"] = shapeID;
+	 this["PinX"] = pinX;
+	 this["PinY"] = pinY;
+}
+
+function FindParentPage(nodeObject)
+{
+	if(nodeObject == null)
+	{
+		return null;
+	}
+	if(nodeObject.baseName == "Page")
+		return nodeObject;
+	else
+		return FindParentPage(nodeObject.parentNode);
+}
+
+function QueryStringForMatch(shapeNode, regTextForFind, filterString)
+{
+	if (filterString.length > 0)
+	{
+		var nodesToCheck = shapeNode.selectNodes(filterString);
+
+		var nodeCount = nodesToCheck.length;
+		var stringToParse;
+		for(var ncount = 0; ncount < nodeCount; ncount++)
+		{
+			stringToParse = nodesToCheck.item(ncount).text;
+			stringToParse = stringToParse.toLowerCase ();
+			if(stringToParse.indexOf(regTextForFind) > -1)
+			{
+				return true;
+			}
+		}
+	}
+}
+
+function GetShapeTitle(shapeNode)
+{
+	var objTempName = null;
+	var objTempTextElement = shapeNode.selectSingleNode("./Text");
+	if(objTempTextElement != null)
+	{
+		var objTextNode = objTempTextElement.selectSingleNode("textnode()");
+		if (objTextNode != null)
+		{
+			return parent.HTMLEscape (objTextNode.text);
+		}
+	}
+
+	objTempName = shapeNode.selectSingleNode("./@Name");
+	if(objTempName != null)
+	{
+		return parent.HTMLEscape (objTempName.text);
+	}
+
+	return "";
+}
+
+function GetPageTitle(pageID)
+{
+	var pagesObj = parent.xmlData.selectSingleNode("VisioDocument/Pages");
+	if(!pagesObj)
+	{
+		return "";
+	}
+
+	var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+	var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+	if(!pageObj)
+	{
+		return "";
+	}
+
+	var pageNameNode = pageObj.selectSingleNode("@Name");
+	if(!pageNameNode)
+	{
+		return "";
+	}
+	return pageNameNode.text;
+}
+
+function Find(searchTokensArray, propsToSearchArray)
+{
+	var bXMLNotValid = false;
+	var findArray = new Array();
+	var findIndex = 0;
+
+	if (parent.xmlData != null && searchTokensArray.length > 0)
+	{
+		var fieldsToSearchArray = new Array();
+		var filterString = "";
+		if( null != propsToSearchArray &&
+			propsToSearchArray.length > 0 )
+		{
+			var propFilterString = "";
+			for( var count=0; count< propsToSearchArray.length; count++ )
+			{
+				if( count == 0 )
+				{
+					propFilterString = "[. = '" + parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+				else
+				{
+					propFilterString += " or . = '"+ parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+			}
+			propFilterString += "]";
+
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Prop[Label"+ propFilterString +"]/Value";
+		}
+
+		if (document.theForm[strShapeText + strChkBox].checked)
+		{
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Text";
+		}
+
+		if (fieldsToSearchArray.length > 0)
+		{
+			filterString = "(.//(";
+
+			for (var fieldCount = 0; fieldCount < fieldsToSearchArray.length; fieldCount++)
+			{
+				if (fieldCount != 0)
+				{
+					filterString += " | ";
+				}
+
+				filterString += fieldsToSearchArray[fieldCount];
+			}
+
+			filterString += ")/textnode())";
+		}
+
+		var objShapeNodes;
+
+		if (document.theForm[strShapeName + strChkBox].checked)
+		{
+			if (filterString.length > 0)
+			{
+				filterString += " | ";
+			}
+			filterString += "(@Name)";
+
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape");
+		}
+		else
+		{
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape[(Prop/Value | Prop/Label | Text)]");
+		}
+
+		var shapeCount = objShapeNodes.length;
+		var objTempData = new CResultItem("A Label","PageID","ShapeID","PinX","PinY");
+		var objTempShape = null;
+
+		for (count = 0; count < shapeCount; count++)
+		{		
+			objTempShape = objShapeNodes.item(count);
+
+			var objParentPageNode = FindParentPage(objTempShape);
+			if (objParentPageNode == null)
+			{
+				continue;
+			}
+
+			var objPageIDNode = objParentPageNode.selectSingleNode("@ID/textnode()");
+			if(objPageIDNode == null)
+			{
+				continue;
+			}
+			var pageID = objPageIDNode.text;
+
+			var pageIndex = parent.PageIndexFromID (pageID);
+			if (pageIndex < 0)
+			{
+				continue;
+			}
+
+			var objLayerMember = objTempShape.selectSingleNode("LayerMem/LayerMember");
+			if (objLayerMember != null && objLayerMember.text.length > 0)
+			{
+				var layerArray = objLayerMember.text.split (';');
+				var visibleLayer = false;
+				for (var layerCount = 0; (layerCount < layerArray.length) && !visibleLayer; layerCount++)
+				{
+					var objLayerVisible = objParentPageNode.selectSingleNode("Layer[@IX=" + layerArray[layerCount] + "]/Visible");
+					if (objLayerVisible != null)
+					{
+						 visibleLayer = (objLayerVisible.text != 0);
+					}
+				}
+				
+				if (!visibleLayer)
+				{
+					continue;
+				}
+			}
+
+			for (var tokenCount = 0; tokenCount < searchTokensArray.length; tokenCount++)
+			{
+				var textToFind = searchTokensArray[tokenCount];
+				textToFind = textToFind.toLowerCase ();
+
+				if (QueryStringForMatch(objTempShape, textToFind, filterString))
+				{
+					objTempData.Title = GetShapeTitle(objTempShape);
+					objTempData.PageID = pageID;
+
+					objShapeIDNode = objTempShape.selectSingleNode("@ID/textnode()");
+					if(objShapeIDNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.ShapeID = objShapeIDNode.text;
+					objPinXNode = objTempShape.selectSingleNode("XForm/PinX/textnode()");
+					if(objPinXNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinX = objPinXNode.text;
+					objPinYNode = objTempShape.selectSingleNode("XForm/PinY/textnode()");
+					if(objPinYNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinY = objPinYNode.text;
+
+					findArray[findIndex] = new CResultItem(objTempData.Title, objTempData.PageID, objTempData.ShapeID, objTempData.PinX, objTempData.PinY);
+					findIndex++;
+					break;
+				}
+			}
+		}
+		if(bXMLNotValid)
+		{
+			findArray.length = 0;
+		}
+	}
+
+	return findArray;
+}
+
+function FindQuerySelect(pageID, shapeID, pinX, pinY)
+{
+	if ((!widgets.GoTo && parent.g_FileList.length > 1) || (widgets.GoTo && parent.g_FileList[document.all("Select1").value].PageID != pageID))
+	{
+		parent.g_callBackFunctionArray[parent.g_callBackFunctionArray.length] = function () { parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY); };
+		parent.GoToPageByID(pageID);
+	}
+	else 
+	{
+		if (parent.viewMgr != null)
+		{
+			parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY);
+		}
+	}
+}
+
+function TreeSelect(pageID, shapeID)
+{
+	var shapeNode = FindShapeXML (pageID, shapeID);
+	if (shapeNode != null)
+	{
+		var pinXNode = shapeNode.selectSingleNode("XForm/PinX/textnode()");
+		var pinYNode = shapeNode.selectSingleNode("XForm/PinY/textnode()");
+
+		if (pinXNode != null && pinYNode != null)
+		{
+			FindQuerySelect (pageID, shapeID, pinXNode.text, pinYNode.text);
+		}
+	}
+}
+
+
+var g_RowStyleList = parent.g_RowStyleList;
+var FillPropPane = parent.FillPropPane;
+var CreatePropTable = parent.CreatePropTable;
+
Index: /drbl_ui/flow_chart/clonezilla_mode.files/frameset.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/frameset.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/frameset.js	(revision 21)
@@ -0,0 +1,653 @@
+
+var MSIE = false;
+var ver = 0;
+var indexOfMSIE = navigator.userAgent.indexOf("MSIE"); 
+if(indexOfMSIE != -1)
+{
+	MSIE = true;
+	ver = parseFloat(navigator.userAgent.substring(indexOfMSIE + 5, navigator.userAgent.indexOf(";", indexOfMSIE)));
+}
+
+var isMac = (navigator.appVersion.indexOf("Macintosh") >= 0);
+var isUpLevel = (MSIE && ver >= 5 && !isMac);
+
+var xmlData = XMLData("clonezilla_mode.files/data.xml");
+
+var g_RowStyleList = new  Array(
+ "propViewerEvenRow",
+ "propViewerOddRow"
+);
+
+
+var strShape	= "圖形名稱:";
+
+
+
+function XMLData(file)
+{
+	var temp = null;
+	if(isUpLevel)
+	{
+		temp = CreateObject("Microsoft.XMLDOM");
+		if (temp == null)
+		{
+			temp = CreateObject("MSXML2.DOMDocument");
+		}
+
+		if (temp != null)
+		{
+			temp.async = false;
+		
+			temp.load(file);
+			if (temp.parseError.errorCode != 0)
+			{
+				temp = null;
+			}
+		}
+	}
+
+	return temp;
+}
+
+function CreateObject (strObj)
+{
+	var obj = null;
+	eval ("try { obj = new ActiveXObject(strObj); } catch (e) {}");
+	return obj;
+}
+
+function doVersion()
+{
+	if(isUpLevel)
+	{
+		frmToolbar.divDownLevel.innerHTML = "";
+		frmToolbar.divUpLevel.innerHTML = frmWidgets.divData.innerHTML;
+	}
+}	
+	
+	
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData != null)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(pageObj == null)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function OnShapeKey(pageID, shapeID)
+{
+	var e = window.frmDrawing.event;
+	
+	if(e.keyCode == 13 && e.ctrlKey)		//ctrl + enter
+	{
+		UpdateProps (pageID, shapeID);
+	}
+	else if (e.keyCode == 13)
+	{
+		OnShapeClick (pageID, shapeID);
+	}
+}
+
+function OnShapeClick (pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var e = frmDrawing.window.event;
+		var elem = e.srcElement;
+
+		if (e != null && e.ctrlKey && frmToolbar.widgets && frmToolbar.widgets.Details)
+		{
+			UpdateProps (pageID, shapeID);
+		}
+		else
+		{
+			var shapeNode = FindShapeXML (pageID, shapeID);
+			var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+			if (hlObj != null)
+			{
+				if (hlObj.DoFunction.length > 0)
+				{
+					eval (hlObj.DoFunction);
+				}
+				else if (hlObj.Hyperlink.length > 0)
+				{
+					if (hlObj.NewWindow)
+					{
+						window.open (hlObj.Hyperlink);
+					}
+					else
+					{
+						top.location.href = hlObj.Hyperlink.substr (0, 510);
+					}
+				}
+				else if (elem != null)
+				{
+					var href = elem.origHref;
+					if (href == null)
+					{
+						href = elem.href;
+					}
+
+					var target = elem.origTarget;
+					if (target == null)
+					{
+						target = elem.target;
+					}
+
+					if (href && href.length > 0)
+					{
+						href = HTMLEscape (href);
+						if (target && target == "_blank")
+						{
+							window.open (href);
+						}
+						else
+						{
+							top.location.href = href.substr (0, 510);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return (!isUpLevel);
+}
+
+function UpdateProps(pageID, shapeID)
+{
+	var shape = FindShapeXML (pageID, shapeID);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function UpdatePropsByShapeName(pageName, shapeName)
+{
+	var shape = FindShapeXMLByName (pageName, shapeName);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function FillPropPane (shapeNode, outputDivObj )
+{
+	if (shapeNode != null && outputDivObj != null)
+	{
+		if(outputDivObj.style.display == "none")
+		{
+			frmToolbar.ToggleWidget(outputDivObj);
+		}
+	
+		var strCPHTML = "";
+		
+		var shapeNameAttr = shapeNode.attributes.getNamedItem ("Name");
+		if (shapeNameAttr)
+		{
+			strCPHTML += "<span class='p2' style='padding-left:2px;'>" + strShape + " " + HTMLEscape(shapeNameAttr.text) + "</span>";
+		}
+
+		var strTableHTML = CreatePropTable (shapeNode);
+		if(strTableHTML.indexOf("<table") == -1)
+		{
+			strTableHTML = "<p class='p2' style='margin-left:1em;margin-top:0em;'>" + strTableHTML + "</p>";
+		}
+
+		if (strTableHTML.length > 0)
+		{
+			strCPHTML += strTableHTML;
+		}
+		else
+		{
+			strCPHTML = strNoCustomPropertiesToDisplayText;
+		}
+		
+		outputDivObj.innerHTML = strCPHTML;
+		outputDivObj.minHeight = 75;
+	}
+}
+
+function CreatePropTable (shapeNode)
+{
+	var strCPHTML = "";
+	var strStartTable = "<table class='propViewerTABLE' borderColor='#999999' cellPadding='2' width='95%' border='1' summary='此表格包含圖形詳細資料'>";
+		strStartTable += "<THEAD class='propViewerTHEAD'><TH>標籤</TH><TH>值</TH></THEAD>";
+	var strEndTable = "</TABLE>";
+
+	if (shapeNode != null)
+	{
+		var propColl = shapeNode.selectNodes ("Prop");
+
+		var propCount = propColl.length;
+		for (var count = 0; count < propCount; count++)
+		{
+			strCPHTML += "<TR class='" + g_RowStyleList[count % 2] + "'>";
+			
+			var strLabelText = "";
+			oPropLabel = propColl.item(count).selectSingleNode("Label/textnode()");
+			if (oPropLabel != null)
+			{
+				strLabelText = HTMLEscape (oPropLabel.text);
+			}
+			else
+			{
+				oPropName = propColl.item(count).attributes.getNamedItem ("Name");
+				if (oPropName)
+				{
+					strLabelText = HTMLEscape (oPropName.text);
+				}
+			}
+
+			if (strLabelText.length > 0)
+			{
+				strCPHTML += "<TD class='propViewerTD'>" + strLabelText + "</TD>";
+				strCPHTML += "<TD class='propViewerTD'>"
+
+				var strValueText = "&nbsp;";
+				oPropValue = propColl.item(count).selectSingleNode("Value/textnode()");
+				if (oPropValue)
+				{
+					strValueText = HTMLEscape (oPropValue.text);
+				}
+
+				strCPHTML += strValueText + "</TD></TR>";
+			}
+		}
+
+		if(strCPHTML != "")
+		{
+			strCPHTML = strStartTable + strCPHTML + strEndTable;
+		}
+		else
+		{
+			strCPHTML = "沒有可使用的詳細資料。";
+		}
+	}
+
+	return strCPHTML;
+}
+
+function keyHandler()
+{
+	var e = frmDrawing.window.event;
+	if(e.keyCode == 13) //enter
+	{
+		e.srcElement.click();
+	}
+}
+
+function GoToPage(index)
+{
+	if (viewMgr)
+	{
+		viewMgr.loadPage (index);
+	}
+	else
+	{
+		DefPageLoad (index);
+	}
+}
+
+function GoToPageByID(pageID)
+{
+	var pageIndex = PageIndexFromID (pageID);
+	if (pageIndex >= 0)
+	{
+		GoToPage (pageIndex);
+	}
+}
+
+function PageIndexFromID (pageID)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageID == g_FileList[count].PageID)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromName (strPageName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strPageNameLower = strPageName;
+		strPageNameLower = strPageNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListPageName = g_FileList[count].PageName;
+			strFileListPageName = HTMLUnescape (strFileListPageName);
+			strFileListPageName = strFileListPageName.toLowerCase ();
+			if (strPageNameLower == strFileListPageName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromFileName (strFileName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strFileNameLower = strFileName;
+		strFileNameLower = strFileNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListFileName = g_FileList[count].PriImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+
+			strFileListFileName = g_FileList[count].SecImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromVisioPageIndex (pageIndex)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageIndex == g_FileList[count].PageIndex)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function FindShapeXMLByName (pageName, shapeName)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@Name $ieq$ "' + EscapeString (pageName) + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@Name $ieq$ "' + EscapeString (shapeName) + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function Unquote (str)
+{
+	var nStartIndex = 0;
+	var nEndIndex = str.length;
+
+	if (str.charAt (0) == '"')
+	{
+		nStartIndex = 1;
+	}
+
+	if (str.charAt (nEndIndex - 1) == '"')
+	{
+		nEndIndex -= 1;
+	}
+
+	return str.substring (nStartIndex, nEndIndex);
+}
+
+function ConvertXorYCoordinate(PosValue, OldMin, OldMax, NewMin, NewMax, MapBackwards)
+{
+	var OldMid = (OldMax - OldMin) / 2;
+	var NewMid = (NewMax - NewMin) / 2;
+	var ConvertResult = 1 * PosValue;
+	ConvertResult = ConvertResult - (OldMin + OldMid);
+	ConvertResult = ConvertResult / OldMid;
+	if(MapBackwards != 0)
+	{
+		ConvertResult = 0 - ConvertResult;
+	}
+	ConvertResult = ConvertResult * NewMid;
+	ConvertResult = ConvertResult + (NewMin + NewMid);
+	return ConvertResult;
+}
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.display = "";
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+		divObject.style.display = "none";
+	}
+	return divObject;
+}
+
+function EscapeString (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "\\\\";
+		}
+		else if (curChar == "\"")
+		{
+			strResult += "\\\"";
+		}
+		else if (curChar == "\'")
+		{
+			strResult += "\\\'";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLEscape (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "&#92;";
+		}
+		else if (curChar == '\"')
+		{
+			strResult += "&#34;";
+		}
+		else if (curChar == '\'')
+		{
+			strResult += "&#39;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#60;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#62;";
+		}
+		else if (curChar == '&')
+		{
+			strResult += "&#38;";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLUnescape (str)
+{
+	var strResult = "";
+	var strEscapePattern = "&#xx;";
+
+	for (var i = 0 ; i < str.length - strEscapePattern.length + 1; i++)
+	{
+		if (str.charAt(i) == '&' && 
+			str.charAt(i + 1) == '#' &&
+			str.charAt(i + 4) == ';')
+		{
+			var charCode = str.charAt(i + 2);
+			charCode += str.charAt(i + 3);
+
+			if (charCode == "34")
+			{
+				strResult += '"';
+			}
+			else if (charCode == "39")
+			{
+				strResult += '\'';
+			}
+			else if (charCode == "60")
+			{
+				strResult += '<';
+			}
+			else if (charCode == "62")
+			{
+				strResult += '>';
+			}
+			else if (charCode == "92")
+			{
+				strResult += '\\';
+			}
+			else if (charCode == "38")
+			{
+				strResult += '&';
+			}
+			
+			i = i + strEscapePattern.length - 1;
+		}
+		else
+		{
+			strResult += str.charAt(i);
+		}
+	}
+
+	strResult += str.substring (i, str.length);
+
+	return strResult;
+}
+
Index: /drbl_ui/flow_chart/clonezilla_mode.files/gif_1.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/gif_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/gif_1.htm	(revision 21)
@@ -0,0 +1,134 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>
+clonezilla_mode
+</title>
+<script type="text/javascript" language="javascript">
+function UpdateTooltip(){};
+function OnShapeClick(){};
+</script>
+
+<script src="gif_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+	}
+</script>
+
+
+
+<script type="text/jscript" language="jscript">
+
+var pageID = 0;
+
+var isUpLevel = parent.isUpLevel;
+var OnShapeClick = null;
+if (!parent.isMac)
+{
+	OnShapeClick = parent.OnShapeClick;
+}
+
+var OnShapeKey = parent.OnShapeKey;
+var UpdateTooltip = parent.UpdateTooltip;
+var clickMenu = parent.clickMenu;
+var toggleMenuDiv = parent.toggleMenuDiv;
+var toggleMenuLink = parent.toggleMenuLink;
+var GoToPage = parent.GoToPage;
+
+
+if (parent.isUpLevel)
+{
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			var fileEntry = parent.g_FileList[parent.g_CurPageIndex];
+			var fileToLoad = fileToLoad = fileEntry.PriImage;
+			if (fileEntry.SecImage.length > 0)
+			{
+				fileToLoad = fileEntry.SecImage;
+			}
+
+			location.replace(fileToLoad);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+
+	var viewMgr = new parent.CViewMgr();
+	parent.viewMgr = viewMgr;
+
+	viewMgr.SupportsDetails = true;
+	viewMgr.SupportsSearch = true;
+
+	viewMgr.put_Location = ViewMgrSetRasterLocation;
+	viewMgr.visBBoxLeft = 2.852664;
+	viewMgr.visBBoxRight = 5.415052;
+	viewMgr.visBBoxBottom = 2.777804;
+	viewMgr.visBBoxTop = 8.954480;
+	viewMgr.highlightDiv = null;
+}
+
+function load ()
+{
+	if(isUpLevel)
+	{
+		arrowdiv.innerHTML = '<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>';
+
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.CurPageUpdate (pageIndex);
+	}
+}
+
+function unload()
+{
+	if(isUpLevel)
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+}
+
+window.onload = load;
+window.onunload = unload;
+document.onclick = clickMenu;
+
+</script>
+</head>
+
+<body class="pageView" bgcolor="#FFFFFF">
+
+<div id=arrowdiv style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+<DIV id=RasterDiv>
+
+
+<center>
+  <IMG id="ConvertedImage" SRC="gif_1.gif" ALT="頁-1" name=RasterImage BORDER="0" USEMAP="#visImageMap">
+</center>
+
+<MAP NAME="visImageMap">
+  <AREA shape="POLYGON" tabindex="1" ALT="end" origTitle="end" TITLE="end"  target="_top" COORDS="96,593,150,593,150,593,151,593,151,593,152,593,153,593,153,592,154,592,154,592,155,592,155,592,156,591,156,591,157,591,157,591,157,590,158,590,158,590,159,589,159,589,159,589,160,588,160,588,160,587,161,587,161,586,161,586,162,585,162,585,162,584,162,584,162,583,162,583,163,582,163,582,163,581,163,581,163,580,163,580,163,579,163,579,163,578,163,578,162,577,162,577,162,576,162,576,162,575,162,575,161,574,161,574,161,573,160,573,160,572,160,572,159,571,159,571,159,571,158,570,158,570,157,570,157,569,157,569,156,569,156,568,155,568,155,568,154,568,154,568,153,568,153,567,152,567,151,567,151,567,150,567,150,567,96,567,96,567,95,567,95,567,94,567,93,567,93,568,92,568,92,568,91,568,91,568,90,568,90,569,89,569,89,569,89,570,88,570,88,570,87,571,87,571,87,571,86,572,86,572,86,573,85,573,85,574,85,574,84,575,84,575,84,576,84,576,84,577,84,577,83,578,83,578,83,579,83,579,83,580,83,580,83,581,83,581,83,582,83,582,84,583,84,583,84,584,84,584,84,585,84,585,85,586,85,586,85,587,86,587,86,588,86,588,87,589,87,589,87,589,88,590,88,590,89,590,89,591,89,591,90,591,90,591,91,592,91,592,92,592,92,592,93,592,93,593,94,593,95,593,95,593,96,593,96,593" onmouseover="UpdateTooltip(this,0,10)" onfocus="UpdateTooltip(this,0,10)" onclick="return OnShapeClick(0,10);" onkeyup="OnShapeKey(0,10);">
+  <AREA shape="POLYGON" tabindex="1" ALT="clonezilla_mode_1" origTitle="clonezilla_mode_1" TITLE="clonezilla_mode_1"  target="_top" COORDS="154,250,146,250,123,236,100,250,87,250,87,257,76,264,123,293,170,264,159,257,159,250,154,250" onmouseover="UpdateTooltip(this,0,5)" onfocus="UpdateTooltip(this,0,5)" onclick="return OnShapeClick(0,5);" onkeyup="OnShapeKey(0,5);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="76,501,170,501,170,444,76,444,76,501" onmouseover="UpdateTooltip(this,0,3)" onfocus="UpdateTooltip(this,0,3)" onclick="return OnShapeClick(0,3);" onkeyup="OnShapeKey(0,3);">
+  <AREA shape="POLYGON" tabindex="1" ALT="clonezilla_mode_0" origTitle="clonezilla_mode_0" TITLE="clonezilla_mode_0"  target="_top" COORDS="161,96,123,76,85,96,85,96,85,96,70,104,123,132,176,104,161,96,161,96,161,96" onmouseover="UpdateTooltip(this,0,2)" onfocus="UpdateTooltip(this,0,2)" onclick="return OnShapeClick(0,2);" onkeyup="OnShapeKey(0,2);">
+  <AREA shape="POLYGON" tabindex="1" ALT="start" origTitle="start" TITLE="start"  target="_top" COORDS="96,26,150,26,150,26,151,26,151,26,152,26,153,26,153,25,154,25,154,25,155,25,155,25,156,25,156,24,157,24,157,24,157,23,158,23,158,23,159,22,159,22,159,22,160,21,160,21,160,20,161,20,161,19,161,19,162,18,162,18,162,17,162,17,162,16,162,16,163,15,163,15,163,14,163,14,163,13,163,13,163,12,163,12,163,11,163,11,162,10,162,10,162,9,162,9,162,8,162,8,161,7,161,7,161,6,160,6,160,5,160,5,159,4,159,4,159,4,158,3,158,3,157,3,157,2,157,2,156,2,156,2,155,1,155,1,154,1,154,1,153,1,153,0,152,0,151,0,151,0,150,0,150,0,96,0,96,0,95,0,95,0,94,0,93,0,93,1,92,1,92,1,91,1,91,1,90,2,90,2,89,2,89,2,89,3,88,3,88,3,87,4,87,4,87,4,86,5,86,5,86,6,85,6,85,7,85,7,84,8,84,8,84,9,84,9,84,10,84,10,83,11,83,11,83,12,83,12,83,13,83,13,83,14,83,14,83,15,83,15,84,16,84,16,84,17,84,17,84,18,84,18,85,19,85,19,85,20,86,20,86,21,86,21,87,22,87,22,87,22,88,23,88,23,89,23,89,24,89,24,90,24,90,25,91,25,91,25,92,25,92,25,93,25,93,26,94,26,95,26,95,26,96,26,96,26" onmouseover="UpdateTooltip(this,0,1)" onfocus="UpdateTooltip(this,0,1)" onclick="return OnShapeClick(0,1);" onkeyup="OnShapeKey(0,1);">
+</MAP>
+
+
+
+</DIV>
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_mode.files/gif_1.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/gif_1.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/gif_1.js	(revision 21)
@@ -0,0 +1,64 @@
+function ViewMgrSetRasterLocation(pageID, shapeID, pinX, pinY)
+{
+	clickMenu ();
+
+	var rasterImage = document.images("RasterImage");
+
+	var imageLeft = 0;
+	var imageRight = imageLeft + rasterImage.offsetWidth;
+	var imageTop = 0;
+	var imageBottom = imageTop + rasterImage.offsetHeight;
+	
+	var xLong = parent.ConvertXorYCoordinate(pinX, viewMgr.visBBoxLeft, viewMgr.visBBoxRight, imageLeft, imageRight, 0);
+	var yLong = parent.ConvertXorYCoordinate(pinY, viewMgr.visBBoxBottom, viewMgr.visBBoxTop, imageTop, imageBottom, 1);
+	
+	var pixelWidth = document.body.scrollWidth;
+	var pixelHeight = document.body.scrollHeight;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+	var halfClientWidth = clientWidth;
+	var halfClientHeight = clientHeight;
+
+	xLong = xLong + rasterImage.offsetLeft;
+	yLong = yLong + rasterImage.offsetTop;
+	var xScrollAmount = 0;
+	var yScrollAmount = 0;
+
+	var xPrevScrollAmount = document.body.scrollLeft;
+	var yPrevScrollAmount = document.body.scrollTop;
+
+	var arrowHalfWidth = arrowdiv.clientWidth / 2;
+	var arrowHeight = arrowdiv.clientHeight;
+
+	if ((xLong - arrowHalfWidth) < xPrevScrollAmount)
+	{
+		// X off left of screen.
+		document.body.scrollLeft = xLong - arrowHalfWidth;
+	}
+	else if ((xLong + arrowHalfWidth) > (clientWidth + xPrevScrollAmount))
+	{
+		// X off right of screen. 
+		document.body.scrollLeft = xLong - clientWidth + xPrevScrollAmount + arrowHalfWidth;
+	}
+
+	if (yLong < yPrevScrollAmount)
+	{
+		// Y off top of screen.
+		document.body.scrollTop = yLong;
+	}
+	else if ((yLong + arrowHeight) > (clientHeight + yPrevScrollAmount))
+	{
+		// Y off bottom of screen. 
+		document.body.scrollTop = yLong - clientHeight + yPrevScrollAmount + arrowHeight;
+	}
+
+	arrowdiv.style.posLeft = xLong - arrowHalfWidth;
+	arrowdiv.style.posTop = yLong;
+	arrowdiv.style.visibility = "visible";
+
+	setTimeout( "parent.hideObject(arrowdiv)", 0 );
+	setTimeout( "parent.showObject(arrowdiv)", 1 );
+	setTimeout( "parent.hideObject(arrowdiv)", 2000 );
+}
+
Index: /drbl_ui/flow_chart/clonezilla_mode.files/keys.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/keys.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/keys.js	(revision 21)
@@ -0,0 +1,14 @@
+
+function keyHandler()
+{
+	var e = window.event;
+	var tag = e.srcElement.tagName;
+	var override = !(tag == "A" || tag == "INPUT" || tag == "SELECT" || tag == "FORM" || tag == "SUBMIT");
+	
+	if(override && e.keyCode == 13) //13 is <enter> key
+	{
+		e.srcElement.click();
+	}
+}
+
+document.onkeypress = keyHandler;
Index: /drbl_ui/flow_chart/clonezilla_mode.files/toolbar.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/toolbar.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/toolbar.htm	(revision 21)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<title></title>
+<style type="text/css">
+body
+{
+	font-family: Verdana, Sans-Serif;
+	font-size: small;
+}
+
+.toc
+{
+	font-size: medium;
+}
+</style>
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace("widgets.htm");
+	}
+</script>
+</head>
+
+
+<body leftmargin="0" topmargin="0" class="nav" dir=ltr>
+	<table id="tabToc" width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#999999" height="20">
+	<tr>
+	<td>&nbsp;</td>
+	</tr>
+	</table>
+
+<h1 class="toc">clonezilla_mode</h1>
+	<ul>
+		<li><a href="gif_1.htm" target="frmDrawing">頁-1</a></li>
+
+	</ul>
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_mode.files/visio.css
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/visio.css	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/visio.css	(revision 21)
@@ -0,0 +1,263 @@
+﻿td {vertical-align: top;}
+
+.fillcolor
+{	vertical-align: top;
+	padding: 0pt;
+	background-color:#5C85EF;
+	filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#5C85EF', EndColorStr='#90B6FF');
+}
+
+A.blu1
+{
+	color: #3366CC;
+	text-decoration: none;
+	font-size: 95%;
+}
+
+A.blu1:visited
+{
+	color: #3366CC;
+	text-decoration: none
+}
+
+A.blu1:hover
+{
+	text-decoration: underline
+}
+
+.visrptTitle
+{
+	color:Black;
+	font-style:normal;
+}
+
+.visrptSummryLabel
+{
+	color:black;
+	font-weight:bold;
+}
+
+.visrptGrandTotalRow
+{	
+	color:Black;
+	font-weight:bold;
+}
+
+.visrptHeader
+{
+	color:White;
+	font-style:normal;
+	background-color:#5C85EF;
+}
+
+.visrptRowItem
+{
+	background-color:#DDDDDD;
+}
+
+.a1
+{	color: #ffffff;
+	text-decoration:none;
+}
+
+.p1
+{	font-family: PMingLiu, verdana, san-serif;
+	font-size: 60%;
+	COLOR: #ffffff;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: .8em;
+}
+
+.p2
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: 1.3em;
+}
+
+.label
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: bold;
+	font-size: 70%;
+	COLOR: #FFFFFF;
+	Margin: .2em,0pt,2pt,2pt;
+	line-height: 1em;
+	text-decoration:none;
+}
+
+.gobutton
+{
+	padding: 0pt, 2pt, 0pt, 0pt;
+	vertical-align: bottom;
+}
+
+.formText
+{
+	font-size: 70%;
+	width: 99%;
+	margin: 0;
+	padding: 0;
+}
+
+.holderTable
+{
+	padding-left:1px;
+	padding-right:1px;
+}
+
+.detsPara
+{
+	margin:2pt;
+	font-size:60%;
+}
+
+.navTocColor
+{
+	background-color:#999999;
+}
+
+.indent
+{
+	margin-left:15px;
+	margin-right:15px;
+	padding-top:0px;
+	margin-top:0px;
+}
+
+.results
+{	
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,10pt;
+	text-indent: -10pt;
+	line-height: 1.1em;
+}
+
+.propViewer 
+{
+	background-Color:white;
+	color: black;
+	font-family: PMingLiu, verdana, san-serif;
+	font-style: italic;
+	font-weight: bold;
+	font-size: 70%;
+	text-align: center;
+}
+
+.propViewerTABLE 
+{
+	margin: 2pt;
+	border-collapse:collapse;
+	border:solid 1px #999999;	
+}
+
+.propViewerTHEAD 
+{
+	border: 2px;
+	font-size: 60%;
+}
+
+.propViewerTD 
+{
+	font-family: PMingLiu, Verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #000000;
+	Margin: 0pt;
+	line-height: 1.1em;
+}
+
+.propViewerEvenRow 
+{
+	background-Color: #E7E7E7;
+}
+
+.propViewerOddRow 
+{
+	background-Color: #FFFFFF; 
+}
+
+BODY
+{
+	font-family: PMingLiu, Verdana, Sans-Serif;
+	font-size: medium;
+}
+
+DIV
+{
+	margin:0;
+	padding:0;
+}
+
+FORM
+{
+	margin:0;
+}
+
+.hiderScroll
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+	overflow:auto;
+}
+
+.hider
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+}
+
+.nav
+{
+	width: 100%;
+	height: 100%;
+	overflow: auto;	
+}
+
+.menuItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-color:white;
+	color:black;
+	cursor:hand;
+}
+
+.highlightItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-Color:highlight; 
+	color:white;
+	cursor:hand;
+}
+
+.hlMenu 
+{
+	border:black 2px outset; 
+	display:none; 
+	z-index:10; 
+	position:absolute; 
+	background-Color:white;
+}
+
+.innerhlMenu 
+{
+	padding-left:2pt;
+	padding-right:2pt;
+	background-Color:white;
+}
+
+.svgmessage
+{     FONT-FAMILY: PMingLiu, verdana, san-serif;
+      FONT-WEIGHT: normal;
+      font-size: 80%;
+      COLOR: #333333;
+      Margin: 1em;
+      line-height: 1.1em;
+}
Index: /drbl_ui/flow_chart/clonezilla_mode.files/vml_1.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/vml_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/vml_1.htm	(revision 21)
@@ -0,0 +1,183 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" 
+ xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>clonezilla_mode</title>
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script src="vml_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+
+	var pageID = 0;
+	var viewMgr = null;
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+	function getPNZ()
+	{
+		var rawHTML = VMLDiv.innerHTML;
+		var strReturn = ""
+		
+		strReturn = rawHTML.slice( rawHTML.indexOf( '<v:group' ), rawHTML.indexOf( "</v:shape>" ) );
+		strReturn += "</v:shape></v:group>\n";
+				
+		return strReturn;
+	}
+	
+	function load()
+	{
+		viewMgr = new parent.CViewMgr("ConvertedImage", "arrowDiv");
+
+		viewMgr.put_Location = ViewMgrSetVMLLocation;
+
+
+		viewMgr.visBBoxLeft = 2.852664;
+		viewMgr.visBBoxRight = 5.415052;
+		viewMgr.visBBoxBottom = 2.777804;
+		viewMgr.visBBoxTop = 8.954480;
+
+		viewMgr.Zoom = VMLZoomChange;
+		viewMgr.setView= VMLSetView;
+
+		viewMgr.SupportsDetails = true;
+		viewMgr.SupportsSearch = true;
+
+		parent.viewMgr = viewMgr;
+
+		fit();
+	}
+
+	function unload()
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+
+	function fit()
+	{
+		if(parent.frmToolbar)
+		{
+			if (parent.g_WidgetsLoaded)
+			{
+				var zoom100 = parent.frmToolbar.document.all('a100');
+				if (zoom100)
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					zoom100.click();
+				}
+				else
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					viewMgr.Zoom(100);
+				}
+			}
+			else
+			{
+				window.setTimeout("fit()", 500);
+			}
+		}	
+		else
+		{
+			parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+			viewMgr.Zoom(100);
+		}
+	}
+
+	function PostZoomProcessing (newZoomLevel)
+	{
+		parent.viewMgr.PostZoomProcessing = null;
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.viewMgr.getPNZ = getPNZ;
+		parent.CurPageUpdate (pageIndex);
+	}
+
+
+	
+	var isUpLevel = parent.isUpLevel;
+	var OnShapeClick = parent.OnShapeClick;
+	var OnShapeKey = parent.OnShapeKey;
+	var UpdateTooltip = parent.UpdateTooltip;
+	var clickMenu = parent.clickMenu;
+	var toggleMenuDiv = parent.toggleMenuDiv;
+	var toggleMenuLink = parent.toggleMenuLink;
+	var GoToPage = parent.GoToPage;
+
+	window.onload = load;
+	window.onunload = unload;
+	document.onclick = clickMenu;
+
+
+
+
+</script>
+
+</head>
+
+<body style="MARGIN:10px" onresize="VMLOnResize();" onscroll="VMLOnScroll();">
+
+<div id="arrowdiv" style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+
+
+
+<div id="VMLDiv" >
+
+
+<v:group  id="ConvertedImage" style="width:1.659396in;height:4.000000in;position:absolute;visibility=hidden;" coordSize="830,2000" coordOrigin="-1000,-1000" >
+
+<v:shapetype 
+  id="VISSHAPE"
+  target="_parent"
+  coordsize="830,2000"
+  coordorigin="-1000,-1000"
+  stroked="f"
+  strokecolor="red"
+  filled="t"
+>
+<v:fill opacity="0.0"/>
+</v:shapetype>
+
+
+<v:shape style="top:-1000.0;left:-1000.0;width:829.7;height:2000.0;position:absolute" coordSize="830,2000" coordOrigin="-1000,-1000" >
+<v:imagedata src="vml_1.emz"/>
+</v:shape>
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="start" origTitle="start"  style="top:-1000;left:-1000;width:830;height:2000;position:absolute" path=" m -675,-908 l -496,-908 l -494,-908 l -492,-908 l -490,-908 l -488,-909 l -487,-909 l -485,-909 l -483,-910 l -481,-911 l -480,-911 l -478,-912 l -477,-913 l -475,-913 l -473,-914 l -472,-915 l -470,-916 l -469,-917 l -468,-919 l -466,-920 l -465,-921 l -464,-922 l -463,-924 l -461,-925 l -460,-927 l -459,-928 l -458,-930 l -458,-931 l -457,-933 l -456,-935 l -455,-936 l -455,-938 l -454,-940 l -454,-941 l -453,-943 l -453,-945 l -453,-947 l -453,-949 l -453,-950 l -453,-952 l -453,-954 l -453,-956 l -453,-958 l -453,-959 l -454,-961 l -454,-963 l -455,-965 l -455,-966 l -456,-968 l -457,-970 l -458,-971 l -458,-973 l -459,-974 l -460,-976 l -461,-977 l -463,-979 l -464,-980 l -465,-981 l -466,-983 l -468,-984 l -469,-985 l -470,-986 l -472,-987 l -473,-988 l -475,-989 l -477,-990 l -478,-991 l -480,-991 l -481,-992 l -483,-993 l -485,-993 l -487,-993 l -488,-994 l -490,-994 l -492,-994 l -494,-994 l -496,-994 l -675,-994 l -677,-994 l -678,-994 l -680,-994 l -682,-994 l -684,-993 l -685,-993 l -687,-993 l -689,-992 l -690,-991 l -692,-991 l -694,-990 l -695,-989 l -697,-988 l -698,-987 l -700,-986 l -701,-985 l -703,-984 l -704,-983 l -705,-981 l -707,-980 l -708,-979 l -709,-977 l -710,-976 l -711,-974 l -712,-973 l -713,-971 l -713,-970 l -714,-968 l -715,-966 l -715,-965 l -716,-963 l -716,-961 l -717,-959 l -717,-958 l -717,-956 l -717,-954 l -718,-952 l -718,-950 l -717,-949 l -717,-947 l -717,-945 l -717,-943 l -716,-941 l -716,-940 l -715,-938 l -715,-936 l -714,-935 l -713,-933 l -713,-931 l -712,-930 l -711,-928 l -710,-927 l -709,-925 l -708,-924 l -707,-922 l -705,-921 l -704,-920 l -703,-919 l -701,-917 l -700,-916 l -698,-915 l -697,-914 l -695,-913 l -694,-913 l -692,-912 l -690,-911 l -689,-911 l -687,-910 l -685,-909 l -684,-909 l -682,-909 l -680,-908 l -678,-908 l -677,-908 l -675,-908xe" onmouseover="UpdateTooltip(this,0,1)" onclick="OnShapeClick(0,1)" onfocus="UpdateTooltip(this,0,1);" onkeyup="OnShapeKey(0,1)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="clonezilla_mode_0" origTitle="clonezilla_mode_0"  style="top:-1000;left:-1000;width:830;height:2000;position:absolute" path=" m -459,-672 l -585,-741 l -712,-672 l -712,-672 l -712,-672 l -761,-646 l -585,-550 l -409,-646 l -458,-672 l -458,-672 l -459,-672xe" onmouseover="UpdateTooltip(this,0,2)" onclick="OnShapeClick(0,2)" onfocus="UpdateTooltip(this,0,2);" onkeyup="OnShapeKey(0,2)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:830;height:2000;position:absolute" path=" m -743,686 l -428,686 l -428,496 l -743,496 l -743,686xe" onmouseover="UpdateTooltip(this,0,3)" onclick="OnShapeClick(0,3)" onfocus="UpdateTooltip(this,0,3);" onkeyup="OnShapeKey(0,3)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="clonezilla_mode_1" origTitle="clonezilla_mode_1"  style="top:-1000;left:-1000;width:830;height:2000;position:absolute" path=" m -483,-156 l -508,-156 l -585,-203 l -663,-156 l -704,-156 l -704,-131 l -743,-108 l -585,-13 l -428,-108 l -466,-131 l -466,-156 l -483,-156xe" onmouseover="UpdateTooltip(this,0,5)" onclick="OnShapeClick(0,5)" onfocus="UpdateTooltip(this,0,5);" onkeyup="OnShapeKey(0,5)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="end" origTitle="end"  style="top:-1000;left:-1000;width:830;height:2000;position:absolute" path=" m -675,994 l -496,994 l -494,994 l -492,994 l -490,994 l -488,994 l -487,993 l -485,993 l -483,993 l -481,992 l -480,991 l -478,991 l -477,990 l -475,989 l -473,988 l -472,987 l -470,986 l -469,985 l -468,984 l -466,983 l -465,981 l -464,980 l -463,979 l -461,977 l -460,976 l -459,974 l -458,973 l -458,971 l -457,970 l -456,968 l -455,966 l -455,965 l -454,963 l -454,961 l -453,959 l -453,958 l -453,956 l -453,954 l -453,952 l -453,950 l -453,949 l -453,947 l -453,945 l -453,943 l -454,941 l -454,940 l -455,938 l -455,936 l -456,935 l -457,933 l -458,931 l -458,930 l -459,928 l -460,927 l -461,925 l -463,924 l -464,922 l -465,921 l -466,920 l -468,919 l -469,917 l -470,916 l -472,915 l -473,914 l -475,913 l -477,913 l -478,912 l -480,911 l -481,911 l -483,910 l -485,909 l -487,909 l -488,909 l -490,908 l -492,908 l -494,908 l -496,908 l -675,908 l -677,908 l -678,908 l -680,908 l -682,909 l -684,909 l -685,909 l -687,910 l -689,911 l -690,911 l -692,912 l -694,913 l -695,913 l -697,914 l -698,915 l -700,916 l -701,917 l -703,919 l -704,920 l -705,921 l -707,922 l -708,924 l -709,925 l -710,927 l -711,928 l -712,930 l -713,931 l -713,933 l -714,935 l -715,936 l -715,938 l -716,940 l -716,941 l -717,943 l -717,945 l -717,947 l -717,949 l -718,950 l -718,952 l -717,954 l -717,956 l -717,958 l -717,959 l -716,961 l -716,963 l -715,965 l -715,966 l -714,968 l -713,970 l -713,971 l -712,973 l -711,974 l -710,976 l -709,977 l -708,979 l -707,980 l -705,981 l -704,983 l -703,984 l -701,985 l -700,986 l -698,987 l -697,988 l -695,989 l -694,990 l -692,991 l -690,991 l -689,992 l -687,993 l -685,993 l -684,993 l -682,994 l -680,994 l -678,994 l -677,994 l -675,994xe" onmouseover="UpdateTooltip(this,0,10)" onclick="OnShapeClick(0,10)" onfocus="UpdateTooltip(this,0,10);" onkeyup="OnShapeKey(0,10)"/> 
+
+</v:group>
+
+
+
+</div>
+
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_mode.files/vml_1.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/vml_1.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/vml_1.js	(revision 21)
@@ -0,0 +1,221 @@
+
+function ViewMgrSetVMLLocation(pageID, shapeID, pinX, pinY)
+{
+	doc = parent.frmDrawing.document;
+	if (this.highlightDiv != null)
+	{
+		clickMenu ();
+
+		var VMLImage = this.s;
+
+		var imageLeft = 0;
+		var imageRight = imageLeft + VMLImage.pixelWidth;
+		var imageTop = 0;
+		var imageBottom = imageTop + VMLImage.pixelHeight;
+
+		var xLong = parent.ConvertXorYCoordinate(pinX, this.visBBoxLeft, this.visBBoxRight, imageLeft, imageRight, 0);
+		var yLong = parent.ConvertXorYCoordinate(pinY, this.visBBoxBottom, this.visBBoxTop, imageTop, imageBottom, 1);
+
+		xLong += doc.all['ConvertedImage'].style.posLeft;
+		yLong += doc.all['ConvertedImage'].style.posTop;
+
+		var arrowHalfWidth = viewMgr.highlightDiv.clientWidth / 2;
+		var arrowHeight = viewMgr.highlightDiv.clientHeight;
+
+		var boolNeedToScroll = false;
+
+		if( !( (xLong - arrowHalfWidth) > doc.body.scrollLeft && (xLong + arrowHalfWidth) < (doc.body.scrollLeft + doc.body.clientWidth) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( !( (yLong - arrowHeight) > doc.body.scrollTop && (yLong + arrowHeight) < (doc.body.scrollTop + doc.body.clientHeight) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( boolNeedToScroll == true )
+		{
+			window.scrollTo( xLong - doc.body.clientWidth / 2, yLong - doc.body.clientHeight / 2);
+		}
+		
+		this.highlightDiv.style.posLeft = xLong - arrowHalfWidth;
+		this.highlightDiv.style.posTop = yLong;
+		this.highlightDiv.style.visibility = "visible";
+
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 0 );
+		setTimeout( "parent.showObject(viewMgr.highlightDiv)", 1 );
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 2500 );
+	}
+}
+
+function VMLZoomChange(size)
+{
+	if(size)
+	{
+		if(size == "up")
+		{
+			size = zoomLast + 50;
+		}
+		else if(size == "down")
+		{
+			size = zoomLast - 50;
+		}
+		
+		size = parseInt(size);
+		if(typeof(size) != "number")
+			size = 100;
+	}
+	else
+	{
+		size = 100;
+	}
+
+	clickMenu ();
+
+	viewMgr.zoomLast = size;
+
+	var zoomFactor = size/100;
+
+	var width = this.s.pixelWidth;
+	var height = this.s.pixelHeight;
+
+	var margin = parseInt(document.body.style.margin) * 2;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+
+	var newScrollLeft = document.body.scrollLeft;
+	var newScrollTop = document.body.scrollTop;
+
+	var winwidth = clientWidth - margin;
+	var winheight = clientHeight - margin;
+
+	var widthRatio = winwidth / width;
+	var heightRatio = winheight / height;
+
+	if (widthRatio < heightRatio)
+	{
+		width = zoomFactor * winwidth;
+		height = width / this.origWH;
+	}
+	else
+	{
+		height = zoomFactor * winheight;
+		width = height * this.origWH;
+	}
+
+	this.s.pixelWidth = Math.max(width,1);
+	this.s.pixelHeight = Math.max(height,1);
+
+	this.sizeLast = size;
+
+	var centerX = (zoomFactor / viewMgr.zoomFactor) * (newScrollLeft + (clientWidth / 2) - this.s.posLeft);
+	var centerY = (zoomFactor / viewMgr.zoomFactor) * (newScrollTop + (clientHeight / 2) - this.s.posTop);
+
+	viewMgr.zoomFactor = zoomFactor;
+
+	if (width <= clientWidth)
+	{
+		this.s.posLeft = Math.max( 0, (clientWidth / 2) - (width / 2));
+	}
+	else
+	{
+		var left = centerX - (clientWidth / 2);
+		if ( left >= 0 )
+		{
+			this.s.posLeft = 0;
+			newScrollLeft = left;
+		}
+		else
+		{
+			this.s.posLeft = -left;
+			newScrollLeft = 0;
+		}
+	}
+
+	if (height <= clientHeight)
+	{
+		this.s.posTop = Math.max( 0, (clientHeight / 2) - (height / 2));
+	}
+	else
+	{
+		var top = centerY - (clientHeight / 2);
+		if ( top >= 0 )
+		{
+			this.s.posTop = 0;
+			newScrollTop = top;
+		}
+		else
+		{
+			this.s.posTop = -top;
+			newScrollTop = 0;
+		}
+	}
+
+	window.scrollTo(newScrollLeft, newScrollTop);
+
+	this.s.visibility = "visible";
+
+	var newXOffsetPercent = document.body.scrollLeft / this.s.pixelWidth;
+	var newYOffsetPercent = document.body.scrollTop / this.s.pixelHeight;
+	var newWidthPercent = document.body.clientWidth / this.s.pixelWidth;
+	var newHeightPercent = document.body.clientHeight / this.s.pixelHeight;
+
+	if (viewMgr.viewChanged)
+	{
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, newWidthPercent, newHeightPercent);
+	}
+
+	if (viewMgr.PostZoomProcessing)
+	{
+		viewMgr.PostZoomProcessing(size);
+	}
+}
+
+function VMLSetView (xOffsetPercent, yOffsetPercent)
+{
+	var leftPixelOffset = xOffsetPercent * this.s.pixelWidth;
+	var topPixelOffset = yOffsetPercent * this.s.pixelHeight;
+
+	window.scrollTo (leftPixelOffset - this.s.posLeft, topPixelOffset - this.s.posTop);
+
+	if (viewMgr.PostSetViewProcessing)
+	{
+		viewMgr.PostSetViewProcessing();
+	}
+}
+
+function VMLOnResize ()
+{
+	if (viewMgr.zoomLast == 100)
+	{
+		viewMgr.Zoom(100);
+	}
+
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newWidthPercent = document.body.clientWidth / image.style.pixelWidth;
+		var newHeightPercent = document.body.clientHeight / image.style.pixelHeight;
+
+		viewMgr.viewChanged (null, null, newWidthPercent, newHeightPercent);
+	}
+}
+
+function VMLOnScroll ()
+{
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newXOffsetPercent = document.body.scrollLeft / image.style.pixelWidth;
+		var newYOffsetPercent = document.body.scrollTop / image.style.pixelHeight;
+
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, null, null);
+	}
+}
+
+
+
Index: /drbl_ui/flow_chart/clonezilla_mode.files/widgets.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/widgets.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/widgets.htm	(revision 21)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>clonezilla_mode</title>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link href="visio.css" rel="stylesheet">
+<script src="keys.js" type="text/jscript" language="jscript"></script>
+<script src="find.js" type="text/jscript" language="jscript"></script>
+<script type="text/jscript" language="jscript">
+	
+	var imgMin = new Image();
+	imgMin.src = "minimize.gif";
+	
+	var imgMax = new Image();
+	imgMax.src = "maximize.gif";
+
+	var fileList = parent.g_FileList;
+	
+	function Widgets()
+	{
+		this.GoTo = null;
+		this.Search = null;
+		this.Details = null;
+		this.PNZ = null;
+
+		this.divCount = 0;
+		
+		this.OpenText = "全部摺疊";
+		this.OpenAlt = "全部摺疊";
+		this.ClosedText = "全部展開";
+		this.ClosedAlt = "全部展開";
+
+		this.Display = "";
+		this.Img = imgMin;
+		this.Text = this.OpenText;
+		this.Alt = this.OpenAlt;
+		
+		this.ToggleAll = ToggleAll;
+		this.ToggleWidget = ToggleWidget;
+		this.Add = Add;
+	}		
+
+	function Add(div, name)
+	{
+		tmpStr = "this." + name + " = new Widget(div);"
+		eval(tmpStr);
+		var thisWidget = eval("this." + name);
+	}
+
+	function Widget(div)
+	{
+		return div;
+	}	
+
+	function ToggleAll()
+	{
+		var OpenCloseFunc = Widget;
+
+		if(this.Display == "")
+		{
+			this.Display = "none";
+			this.Img = imgMax;
+			this.Text = this.ClosedText;
+			this.Alt = this.ClosedAlt;
+			expparent00.title = this.ClosedAlt;
+			OpenCloseFunc = CloseWidget;
+		}
+		else
+		{
+			this.Display = "";
+			this.Img = imgMin;
+			this.Text = this.OpenText;
+			this.Alt = this.OpenAlt;
+			expparent00.title = this.OpenAlt;
+			OpenCloseFunc = OpenWidget;
+		}
+		exp00.src = this.Img.src;	
+		textExp.innerText = this.Text;
+		exp00.alt = this.Alt;
+	
+		if(this.GoTo)
+		{
+			OpenCloseFunc(this.GoTo)
+		}
+		if(this.Search)
+		{
+			OpenCloseFunc(this.Search)
+		}
+		if(this.Details)
+		{
+			OpenCloseFunc(this.Details)
+		}
+		if(this.PNZ)
+		{
+			OpenCloseFunc(this.PNZ)
+		}
+	}
+
+	function ToggleNav()
+	{
+		if(divCollapsedNav.style.display == "none")
+		{
+			divCollapsedNav.style.display = "";
+			divOpenNav.style.display = "none";
+			parent.frmstOuter.cols = "20,*"
+			parent.document.all ('frmToolbar').noResize = true;
+		}
+		else
+		{
+			divOpenNav.style.display = "";
+			divCollapsedNav.style.display = "none";
+			parent.frmstOuter.cols = "237,*"
+			parent.document.all ('frmToolbar').noResize = false;
+		}
+	}
+	
+	function ToggleWidget(div)
+	{
+		if(div.style.display == "none")
+		{
+			OpenWidget(div);
+		}
+		else
+		{
+			CloseWidget(div);
+		}
+	}
+
+	function OpenWidget(div)
+	{
+		document.all(div.img).src = imgMin.src;
+		div.style.display = "";
+		document.all(div.img).alt = div.openAlt;
+		document.all(div.img + "1").title = div.openAlt;
+		document.all(div.img + "2").title = div.openAlt;
+	}
+
+	function CloseWidget(div)
+	{
+		document.all(div.img).src = imgMax.src;
+		div.style.display = "none";
+		document.all(div.img).alt = div.closedAlt;
+		document.all(div.img + "1").title = div.closedAlt;
+		document.all(div.img + "2").title = div.closedAlt;
+	}
+
+	function load()
+	{
+		parent.g_WidgetsLoaded = true;
+
+		if (parent.g_LoadingWidgets)
+		{
+			parent.g_LoadingWidgets = false;
+			parent.location.reload();
+		}
+	}
+
+	function unload()
+	{
+		parent.g_LoadingWidgets = true;
+	}
+	
+		
+	var widgets = new Widgets();
+
+</script>
+
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divOpenNav" class="nav">
+
+	<table id="tabToc" width="100%" class="navTocColor" style="margin-bottom:1px;" cellspacing="0" cellpadding="0" border="0" height="20" dir=ltr>
+	<tr>
+	<td width="2"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" id="linkNavOpen"><img src="toc.gif" alt="摺疊巡覽框架" width="22" height="17" border="0"></a></td>
+	<td><p class="p1"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" class="a1">隱藏</a></p></td>
+	<td align="right"><p class="p1"><a href="javascript:widgets.ToggleAll()" id="textExp" class="a1">全部摺疊</a></p></td>
+	<td width="2">
+		<div style="padding:2pt,1.5pt,0pt,0pt"><a href="javascript:widgets.ToggleAll()" title="全部摺疊" id="expparent00"><img id="exp00" alt="全部摺疊" src="minimize.gif" width="15" height="15" border="0"></a></div>
+	</td>
+	</tr>
+	</table>
+	
+	
+
+	
+	<div id="divPNZ" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp41" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><p class="label">全景和縮放</p></a></td>
+				<td width="15"><a id="exp42" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><img id="exp4" alt="摺疊全景和縮放" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hidePNZ" style="text-align:right;" img="exp4" class="hiderScroll" openAlt="摺疊全景和縮放" closedAlt="展開全景和縮放">
+				<table width="220" border="0" cellpadding="0" cellspacing="0">
+				<tr>
+				<td align="center" valign="middle">
+					<iframe title="全景和縮放視窗" longdesc="全景和縮放視窗" id="ifrmPNZ" src="zoom.htm" width="170" height="170" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="border: #cccccc 1px solid;"></iframe>
+				</td>
+					
+				<td>
+					<table id="tabScale" width="17" cellspacing="0" cellpadding="0" border="0">
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放頁面至 100%"><img src="fullpage.gif" alt="縮放頁面至 100%" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(1);" title="拉近"><img src="panplus.gif" alt="拉近" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(500);" title="縮放成 500%"><img id="t500" src="tick-off.gif" alt="縮放成 500%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(450);" title="縮放成 450%"><img id="t450" src="tick-off.gif" alt="縮放成 450%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(400);" title="縮放成 400%"><img id="t400" src="tick-off.gif" alt="縮放成 400%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(350);" title="縮放成 350%"><img id="t350" src="tick-off.gif" alt="縮放成 350%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(300);" title="縮放成 300%"><img id="t300" src="tick-off.gif" alt="縮放成 300%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(250);" title="縮放成 250%"><img id="t250" src="tick-off.gif" alt="縮放成 250%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(200);" title="縮放成 200%"><img id="t200" src="tick-off.gif" alt="縮放成 200%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(150);" title="縮放成 150%"><img id="t150" src="tick-off.gif" alt="縮放成 150%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放成 100%" id="a100"><img id="t100" src="tick-on.gif" alt="縮放成 100%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(50);" title="縮放成 50%"><img id="t50" src="tick-off.gif" alt="縮放成 50%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(10);" title="縮放成 10%"><img id="t10" src="tick-off.gif" alt="縮放成 10%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(-1);" title="拉遠"><img src="panminus.gif" alt="拉遠" border="0"></a></td></tr>
+					</table>
+				</td>
+				</tr>
+				</table>
+			</div>			
+		</td></tr>
+		</table>
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hidePNZ, "PNZ");
+
+			var zoomLevels = new Array(10, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500);
+
+			var tickOff = new Image();
+			tickOff.src = "tick-off.gif";
+			
+			var tickFoc = new Image();
+			tickFoc.src = "tick-foc.gif";
+			
+			var tickOn = new Image();
+			tickOn.src = "tick-on.gif";
+
+			function tickFocus()
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickFoc.src;
+				}
+			}			
+			
+			function tickBlur(percentZoom)
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickOff.src;
+				}
+			}
+
+			function tickSelect(percentZoom)
+			{
+				if (parent.viewMgr &&
+					parent.viewMgr.Zoom)
+				{
+					changeTick(percentZoom);
+					parent.viewMgr.Zoom(percentZoom);					
+				}
+
+				if(frames.item(0).zoomRectDiv)
+				{
+					frames.item(0).g_width = parseInt(frames.item(0).zoomRectDiv.style.pixelWidth) 
+					frames.item(0).g_height = parseInt(frames.item(0).zoomRectDiv.style.pixelHeight)
+					frames.item(0).g_newLeft = parseInt(frames.item(0).zoomRectDiv.style.left)
+					frames.item(0).g_newTop = parseInt(frames.item(0).zoomRectDiv.style.top)
+				}
+			}
+
+			function changeTick(percentZoom)
+			{
+				img = elemScale.all("t" + percentZoom);
+									
+				img.src = tickOn.src;
+				
+				if(elemScale.tickSelected && elemScale.tickSelected != img)
+				{
+					elemScale.tickSelected.src = tickOff.src;
+				}
+				elemScale.tickSelected = img;
+			}
+			
+			function ZoomUpDown(increment)
+			{
+				if (elemScale.tickSelected)
+				{
+					var curZoomLevel = elemScale.tickSelected.id.substring (1);
+					var newZoomLevelIndex = IndexFromLevel (curZoomLevel * 1.0);
+					if (newZoomLevelIndex >= 0)
+					{
+						var img = elemScale.all("t" + zoomLevels[newZoomLevelIndex + increment]);
+						if (img)
+						{
+							tickSelect(img.id.substring(1));
+						}
+					}
+				}
+				else
+				{
+					tickSelect (100);
+				}
+			}
+
+			function IndexFromLevel (zoomLevel)
+			{
+				for (var count = 0; count < zoomLevels.length; count++)
+				{
+					if (zoomLevels[count] == zoomLevel)
+					{
+						return count;
+					}
+				}
+
+				return -1;
+			}
+			
+			elemScale = document.all("tabScale");
+			if(elemScale)
+			{
+				elemScale.onmouseover = tickFocus;
+				elemScale.onmouseout = tickBlur;
+			}
+		</script>
+	</div>
+
+	
+	<div id="divDetails" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp21" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><p class="label">詳細資料</p></a></td>
+				<td width="15"><a id="exp22" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><img id="exp2" alt="摺疊詳細資料" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hideDetails" class="hiderScroll" img="exp2" openAlt="摺疊詳細資料" closedAlt="展開詳細資料">
+				<P class="p2" class="detsPara">CTRL+按一下繪圖中的圖形以檢視詳細資料。</P>
+			</div>
+		</td></tr>
+		</table>		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideDetails, "Details");
+			widgets.divCount++;
+		
+		</script>
+	</div>
+
+	
+	<div id="divSearch" class="holder">
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor" dir=ltr>
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp11" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><p class="label">搜尋頁</p></a></td>
+				<td width="15"><a id="exp12" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><img src="minimize.gif" id="exp1" alt="摺疊搜尋頁面" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+
+		</td></tr>
+		<tr><td>	
+
+			<div id="hideSearch" img="exp1" class="hiderScroll" openAlt="摺疊搜尋頁面" closedAlt="展開搜尋頁面">
+								<form name=theForm onsubmit="FindOnClick(); return false;" ID="Form1">
+									<table width="100%" cellspacing="0" cellpadding="3" border="0">
+									<tr>
+									<td width="100%">
+										<input class="formText" type="text" name="findString" maxlength="255" size="26" title="輸入要搜尋的文字。按 Enter 開始搜尋。">
+									</td>
+									<td width="18" class="gobutton">
+										<input type="image" src="go.gif" alt="開始搜尋" width="18" height="18" ID="GoButton" NAME="GoButton">
+									</td>
+									</tr>
+									<tr>
+									<td colspan="2" class="p2">
+										<a href="javascript:{};" tabindex="0" onclick="TogglePlus(hideAdvSrch,as0);" class="blu1"><img src="plus.gif" alt="顯示/隱藏進階搜尋選項" border="0" id="as0">進階</a>
+											<div id="hideAdvSrch" class="hiderScroll" style="display:none;">
+												<b>搜尋依據:</b>
+												<div id="divS"></div>
+											</div>
+										<hr width="100%" size="1" color="#cccccc">
+										<div id="hideResults" class="hiderScroll" style="display:none;"></div>
+									</td>
+									</tr>
+									</table>
+								</form>
+			</div>					
+
+		</td></tr>
+		</table>
+		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideSearch, "Search");
+			widgets.divCount += 2;
+			
+			makeAdvancedFindCheckboxes(divS);
+			
+			
+			var imgPlus = new Image();
+			imgPlus.src = "plus.gif";
+	
+			var imgMinus = new Image();
+			imgMinus.src = "minus.gif";
+			
+			function TogglePlus(div, img, container)
+			{
+				if(typeof(img) == "string")	
+					img = document.all(img)
+				if(typeof(div) == "string")
+					div = document.all(div)
+					
+				widget = widgets.Search;
+				if(div && img)
+				{
+					if(div.style.display == "none")
+					{
+						div.style.display = "";
+						img.src = imgMinus.src;
+						div.open = "true";
+					}
+					else
+					{
+						div.style.display = "none";
+						img.src = imgPlus.src;
+						
+						div.open = "false";
+					}
+				}
+			}
+		
+		</script>
+	</div>
+
+
+</div>
+
+<div id="divCollapsedNav" class="navTocColor" style="display:none;width:100%;height:100%;">
+	<a href="javascript:ToggleNav();" title="展開巡覽框架" id="linkNavClosed"><img src="toc2.gif" alt="展開巡覽框架" border="0"></a>
+</div>	
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_mode.files/zoom.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.files/zoom.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.files/zoom.htm	(revision 21)
@@ -0,0 +1,990 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script type="text/jscript" language="jscript">
+
+var BUFFER = 1;
+
+function zoomObject()
+{
+	this.PZImgRatio			= null;
+	
+	this.zoomWinHeight		= null;
+	this.zoomWinWidth		= null;
+	this.zoomWinTop			= null;
+	this.zoomWinLeft		= null;
+	
+	this.scaleFactor		= null;
+	
+	this.updateContent		= zObj_updateContent;
+	this.doOnBodyResize		= zObj_doOnBodyResize;
+	this.clipZoomRect		= zObj_clipZoomRect;
+}
+
+var g_thumbHeight = window.clientHeight;
+var g_thumbWidth = window.clientWidth;
+zoomObj = new zoomObject();
+
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+	}
+	return divObject;
+}
+
+function zObj_updateContent( win_width, win_height, VMLDiv_left, VMLDiv_top, VMLDiv_width, VMLDiv_height )
+{
+	this.mainWinWidth		= win_width;
+	this.mainWinHeight		= win_height;
+
+	this.mainImgRatio = VMLDiv_height / VMLDiv_width;
+	this.doOnBodyResize();
+}
+
+function zObj_doOnBodyResize()
+{
+	return;
+}
+
+function zObj_clipZoomRect( objectToClip )
+{
+	if( objectToClip == null )
+	{
+		objectToClip = zoomRectObj;
+	}
+	
+	var clipTop		= ( objectToClip.style.posTop < (g_thumbTop) )	? (g_thumbTop - objectToClip.style.posTop)	: 0;
+	var clipLeft	= ( objectToClip.style.posLeft < (g_thumbLeft) )	? (g_thumbLeft - objectToClip.style.posLeft)	: 0;
+	var clipBottom	= ( (objectToClip.style.posHeight - clipTop) > (g_thumbTop + g_thumbHeight + 2 * BUFFER) ) ? (g_thumbHeight + clipTop + BUFFER) : objectToClip.style.posHeight;
+	var clipRight	= 0;
+	if( (this.zoomWinWidth - clipLeft) > (g_thumbLeft + g_thumbWidth) )
+	{
+		if( clipLeft == 0 )
+		{
+			clipRight = g_thumbWidth - objectToClip.style.posLeft + 2 * BUFFER;
+		}
+		else
+		{
+			clipRight = (g_thumbWidth + clipLeft + BUFFER);
+		}
+	}
+	else
+	{
+		clipRight = objectToClip.style.posWidth;
+	}
+	clipTo( objectToClip, clipTop, clipRight, clipBottom, clipLeft);
+}
+
+function findContent()
+{
+	zoomRectDiv.style.display = "none";
+	newZoomWindowDiv.style.display = "none";
+
+	if (parent.parent.frmDrawing && parent.parent.viewMgr)
+	{
+		var viewMgr = parent.parent.viewMgr;
+
+		var getPNZ = parent.parent.viewMgr.getPNZ;
+		if (getPNZ)
+		{
+			var tmp = parent.parent.frmDrawing;
+
+			divThumb = document.all("divThumbnail");
+
+			if (divThumb.innerHTML.length == 0)
+			{
+				divThumb.innerHTML = getPNZ();
+			}
+			else
+			{
+				var pnzInfo = getPNZ();
+				var idIndex = pnzInfo.indexOf("ConvertedImage");
+				if (idIndex >= 0)
+				{
+					var test = pnzInfo;
+					pnzInfo = test.substring (0, idIndex);
+					pnzInfo += "Temp";
+					pnzInfo += test.substring (idIndex, test.length);
+
+					divTempThumbnail.innerHTML = pnzInfo;
+
+					var vmlGroup = divThumbnail.childNodes(0);
+					var vmlTempGroup = divTempThumbnail.childNodes(0);
+					CopyVMLAttrs(vmlGroup, vmlTempGroup);
+					
+					var vmlShape = vmlGroup.childNodes(1);
+					var vmlTempShape = vmlTempGroup.childNodes(1);
+					CopyVMLAttrs(vmlShape, vmlTempShape);
+
+					CopyVMLAttrs(vmlGroup.childNodes(0), vmlTempGroup.childNodes(0));
+					
+					var vmlImageData = vmlShape.childNodes(0);
+					var vmlTempImageData = vmlTempShape.childNodes(0);
+					CopyVMLImageData(vmlImageData, vmlTempImageData);
+				}
+			}
+
+			zoomRectObj = document.all("zoomRectDiv");
+			showObject( zoomRectObj );
+
+			PNZimg = document.all("ConvertedImage");
+			if (PNZimg)
+			{
+				PNZimg.style.left = 0;
+				PNZimg.style.top = 0;
+
+				if (PNZimg.style.pixelWidth > PNZimg.style.pixelHeight)
+				{
+					var oldWidth = PNZimg.style.pixelWidth;
+					PNZimg.style.width = document.body.clientWidth;
+					PNZimg.style.height = (document.body.clientWidth / oldWidth) * PNZimg.style.pixelHeight;
+
+					divThumb.style.top = (document.body.clientHeight - parseInt(PNZimg.style.height)) / 2;
+					divThumb.style.left = 0;
+				}
+				else
+				{
+					var oldHeight = PNZimg.style.pixelHeight;
+					PNZimg.style.height = document.body.clientHeight;
+					PNZimg.style.width = (document.body.clientHeight / oldHeight) * PNZimg.style.pixelWidth;
+
+					divThumb.style.left = (document.body.clientWidth - parseInt(PNZimg.style.width)) / 2;
+					divThumb.style.top = 0;
+				}
+
+				PNZimg.style.visibility = "visible";
+
+				var strOutput = divThumb.innerHTML;
+				if (strOutput.length > 0)
+				{
+					var tmp2 = document.all['ConvertedImage'];
+					zoomObj.updateContent( tmp.document.body.clientWidth, tmp.document.body.clientHeight, parseInt(tmp2.style.left), parseInt(tmp2.style.top), parseInt(tmp2.clientWidth), parseInt(tmp2.clientHeight) );
+
+					viewMgr.viewChanged = PageViewChanged;
+				}
+			}
+		}
+	}
+}
+
+function CopyVMLAttrs(vmlObjDst, vmlObjSrc)
+{
+	if (vmlObjDst != null && vmlObjSrc != null)
+	{
+		vmlObjDst.style.cssText = vmlObjSrc.style.cssText;
+	}
+}
+
+function CopyVMLImageData(vmlImageDataDst, vmlImageDataSrc)
+{
+	if (vmlImageDataDst != null && vmlImageDataSrc != null)
+	{
+		vmlImageDataDst.src = vmlImageDataSrc.src;
+	}
+}
+
+function setZoomRectCursor()
+{
+	var x = getMouseXcoord() - zoomObj.zoomWinLeft;
+	var y = getMouseYcoord() - zoomObj.zoomWinTop;
+
+	var rbw = 5;
+
+	var newCursor	= "";
+	if( y > (zoomObj.zoomWinHeight - rbw) )
+		newCursor = "s"
+	else if( y < rbw )
+		newCursor = "n";
+		
+	if( x < rbw )
+		newCursor += "w";
+	else if( x > (zoomObj.zoomWinWidth - rbw) )
+		newCursor += "e";
+
+	if( newCursor != "" )
+		zoomRectObj.style.cursor = newCursor + "-resize";
+	else
+		zoomRectObj.style.cursor = "move";
+}
+
+function startZoomRectDrag()
+{
+	var currentCursor = zoomRectObj.style.cursor;
+
+	if( currentCursor.indexOf( '-' ) != -1 )
+	{
+		g_resizeDirection = currentCursor.split( '-' )[0];
+		startDrag( 'zoomRectDiv', doResizeZoomRectDrag, stopResizeZoomRectDrag );
+	}
+	else
+	{
+		startDrag( 'zoomRectDiv', doZoomRectDrag, stopZoomRectDrag );
+	}
+}
+
+function doZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var rectLeft = parseInt(dragObj.divObject.style.left);
+	var rectTop = parseInt(dragObj.divObject.style.top);
+	var rectWidth = parseInt(dragObj.divObject.style.width);
+	var rectHeight = parseInt(dragObj.divObject.style.height);
+
+	var xOffset = 0;
+	var yOffset = 0;
+
+	var xPercent = 0;
+	var yPercent = 0;
+
+	var pnzImgLeft = parseInt(divThumbnail.style.left);
+	var pnzImgTop = parseInt(divThumbnail.style.top);
+	var pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+	var pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+		
+	xOffset = x + dragObj.xOffset - pnzImgLeft;
+	xPercent = xOffset / pnzImgWidth;
+
+	yOffset = y + dragObj.yOffset - pnzImgTop;
+	yPercent = yOffset / pnzImgHeight;
+
+	if (xOffset < 0)
+	{
+		xPercent = 0;
+		xOffset = pnzImgLeft - BUFFER;
+	}
+	else if (xOffset + rectWidth > pnzImgWidth)
+	{
+		xPercent = 1;
+		xOffset = pnzImgLeft + pnzImgWidth - rectWidth + BUFFER;
+	}
+	else
+	{
+		xOffset = x + dragObj.xOffset;
+	}
+
+	if (yOffset < 0)
+	{
+		yPercent = 0;
+		yOffset = pnzImgTop - BUFFER;
+	}
+	else if (yOffset + rectHeight > pnzImgHeight)
+	{
+		yPercent = 1;
+		yOffset = pnzImgTop + pnzImgHeight - rectHeight + BUFFER;
+	}
+	else
+	{
+		yOffset = y + dragObj.yOffset;
+	}
+
+	if (parent.parent.viewMgr.setView)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	setZWinSize (null, null, xOffset, yOffset);
+}
+
+function stopZoomRectDrag(dragObj, x, y)
+{
+	var el = window.event.srcElement;
+	g_newLeft = parseInt(el.style.left);
+	g_newTop = parseInt(el.style.top);
+}
+
+function setZWinSize( newWidth, newHeight, newLeft, newTop )
+{
+	if( newWidth != null && newWidth >= 0 ) 
+	{
+		zoomObj.zoomWinWidth = newWidth;
+		zoomRectObj.style.width = newWidth;
+	}
+
+	if( newHeight != null && newHeight >= 0 ) 
+	{
+		zoomObj.zoomWinHeight = newHeight;
+		zoomRectObj.style.height = newHeight;
+	}
+
+	if( newLeft != null && newLeft >= 0 )
+	{
+		zoomObj.zoomWinLeft = newLeft;
+		zoomRectObj.style.left = newLeft;
+	}
+
+	if( newTop != null && newTop >= 0 )
+	{
+		zoomObj.zoomWinTop = newTop;
+		zoomRectObj.style.top= newTop;
+	}
+}
+
+function doResizeZoomRectDrag(dragObj, x, y)
+{
+	var newWidth	= null;
+	var newHeight	= null;
+	var newLeft		= null;
+	var newTop		= null;
+		
+	var tmp = parent.parent.frmDrawing;
+	if (tmp)
+	{
+		zoomObj.mainWinWidth		= tmp.document.body.clientWidth;
+		zoomObj.mainWinHeight		= tmp.document.body.clientHeight;
+	}
+
+	var widthHeightRatio = zoomObj.mainWinWidth / zoomObj.mainWinHeight;
+	
+	var minimumSize = 10;
+	if( g_resizeDirection == 'e' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'w' )
+	{
+		newWidth	= zoomObj.zoomWinWidth + zoomObj.zoomWinLeft - x;
+		if( newWidth > minimumSize )
+		{
+			newHeight	= newWidth / widthHeightRatio;
+			newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+			newLeft		= x;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+
+	if( g_resizeDirection == 'se' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 's' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'sw' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+	
+	if( g_resizeDirection == 'n' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'ne' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'nw' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+}
+
+function stopResizeZoomRectDrag(dragObj, x, y)
+{
+	PNZimg = document.all("ConvertedImage");
+
+	var xWidthPercent = parseInt(zoomRectDiv.style.width) / PNZimg.style.pixelWidth;
+	var yHeightPercent = parseInt(zoomRectDiv.style.height) / PNZimg.style.pixelHeight;
+
+	var newZoomLevel = GetZoomLevel (xWidthPercent, yHeightPercent);
+
+	if (parent.parent.viewMgr.Zoom)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostZoomProcessing = PostZoomProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.Zoom (newZoomLevel);
+	}
+
+	g_width = parseInt(zoomRectDiv.style.pixelWidth);
+	g_height = parseInt(zoomRectDiv.style.pixelHeight);
+	g_newLeft = parseInt(zoomRectDiv.style.left);
+	g_newTop = parseInt(zoomRectDiv.style.top);
+}
+
+function GetZoomLevel (xWidthPercent, yHeightPercent)
+{
+	var newZoomLevel;
+	if (xWidthPercent < yHeightPercent)
+	{
+		newZoomLevel = 100 / xWidthPercent;
+	}
+	else
+	{
+		newZoomLevel = 100 / yHeightPercent;
+	}
+
+	return newZoomLevel;
+}
+
+function PostZoomProcessing (newZoomLevel)
+{
+	var xOffset = parseInt(zoomRectDiv.style.left) - parseInt(divThumbnail.style.left);
+	var yOffset = parseInt(zoomRectDiv.style.top) - parseInt(divThumbnail.style.top);
+
+	var xPercent = xOffset / PNZimg.style.pixelWidth;
+	var yPercent = yOffset / PNZimg.style.pixelHeight;
+
+	var viewMgr = parent.parent.viewMgr;
+	viewMgr.ChangingView = true;
+
+	if (viewMgr.setView)
+	{
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	SetCorrectTick (newZoomLevel);
+
+	viewMgr.PostZoomProcessing = null;
+}
+
+function SetCorrectTick (newZoomLevel)
+{
+	var zoomLevels = parent.zoomLevels;
+	if (newZoomLevel <= zoomLevels[0])
+	{
+		parent.changeTick(zoomLevels[0]);
+	}
+	else if (newZoomLevel >= zoomLevels[zoomLevels.length - 1])
+	{
+		parent.changeTick(zoomLevels[zoomLevels.length - 1]);
+	}
+	else
+	{
+		for (var count = 0; count < zoomLevels.length - 1; count++)
+		{
+			var deltaDown = newZoomLevel - zoomLevels[count];
+			var deltaUp = newZoomLevel - zoomLevels[count + 1];
+			if (deltaDown >= 0 && deltaUp <= 0)
+			{
+				if (Math.abs(deltaDown) < Math.abs(deltaUp))
+				{
+					parent.changeTick(zoomLevels[count]);
+					break;
+				}
+				else
+				{
+					parent.changeTick(zoomLevels[count + 1]);
+					break;
+				}
+			}
+		}
+	}
+}
+
+function PostSetViewProcessing ()
+{
+	parent.parent.viewMgr.ChangingView = false;
+	parent.parent.viewMgr.PostSetViewProcessing = null;
+}
+
+function startNewZoomRectDrag()
+{
+	var x = getMouseXcoord();
+	var y = getMouseYcoord();
+	zoomObj.newZWinStartX = x;
+	zoomObj.newZWinStartY = y;
+	
+	g_newZWinObjRef = document.all("newZoomWindowDiv");
+	g_newZWinObjRef.style.display = "";
+
+	startDrag( 'zoomRectDiv', doNewZoomRectDrag, stopNewZoomRectDrag );
+}
+
+function doNewZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var width	= Math.abs( zoomObj.newZWinStartX - x );
+	var height	= Math.abs( zoomObj.newZWinStartY - y );
+
+	var aspectRatio = parent.parent.viewMgr.docDrawing.body.clientWidth / parent.parent.viewMgr.docDrawing.body.clientHeight;
+
+	if( width < (aspectRatio * height))
+	{
+		width = (aspectRatio) * height;
+	}
+	else
+	{
+		height = width / (aspectRatio);
+	}
+
+	width = Math.min (width, parseInt(PNZimg.style.pixelWidth));
+	height = Math.min (height, parseInt(PNZimg.style.pixelHeight));
+
+	var left = (x > zoomObj.newZWinStartX) ? zoomObj.newZWinStartX : zoomObj.newZWinStartX - width;
+	var top  = (y > zoomObj.newZWinStartY) ? zoomObj.newZWinStartY : zoomObj.newZWinStartY - height;
+
+	newZoomWindowDiv.style.top = top;
+	newZoomWindowDiv.style.left = left;
+	newZoomWindowDiv.style.height = height;
+	newZoomWindowDiv.style.width = width;
+	newZoomWindowDiv.style.visibility = "visible";
+
+	zoomObj.zoomWinLeft		= left;
+	zoomObj.zoomWinWidth	= width;
+	zoomObj.zoomWinTop		= top;
+	zoomObj.zoomWinHeight	= height;
+}
+
+function stopNewZoomRectDrag(dragObj, x, y)
+{
+	newZoomWindowDiv.style.visibility = "hidden";
+
+	if (parseInt (newZoomWindowDiv.style.width) > 10 && 
+		parseInt (newZoomWindowDiv.style.height) > 10)
+	{
+		zoomRectDiv.style.top = newZoomWindowDiv.style.top;
+		zoomRectDiv.style.left = newZoomWindowDiv.style.left;
+		zoomRectDiv.style.height = newZoomWindowDiv.style.height;
+		zoomRectDiv.style.width = newZoomWindowDiv.style.width;
+
+		stopResizeZoomRectDrag(dragObj,x,y);
+		zoomRectDiv.style.display = "inline";
+		zoomRectDiv.style.visibility = "visible";
+	}
+	else
+	{
+		zoomObj.zoomWinLeft		= parseInt(zoomRectDiv.style.left);
+		zoomObj.zoomWinWidth	= parseInt(zoomRectDiv.style.width);
+		zoomObj.zoomWinTop		= parseInt(zoomRectDiv.style.top);
+		zoomObj.zoomWinHeight	= parseInt(zoomRectDiv.style.height);
+	}
+
+	newZoomWindowDiv.style.height = "0px";
+	newZoomWindowDiv.style.width = "0px";
+
+	newZoomWindowDiv.style.display = "none";
+}
+
+var g_lastX = 0;
+var g_lastY = 0;
+
+document.onmousedown = mouseDown;
+document.onmousemove = mouseMove;
+document.onmouseup = mouseUp;
+document.onmouseout = mouseOut;
+
+function mouseDown()
+{
+	return true;
+}
+
+function mouseMove()
+{
+	var x = event.clientX + document.body.scrollLeft;
+	var y = event.clientY + document.body.scrollTop;
+
+	g_lastX = x;
+	g_lastY = y;
+	
+	doDrag( x, y );
+	return true;
+}
+
+function mouseUp() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+	
+	stopDrag(null,x,y);
+	return true;
+}
+
+function mouseOut() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+
+	if( x < 0 ) x = -1;
+	if( x >= document.body.clientWidth ) x = -1;
+		
+	if( y < 0 ) y = -1;
+	if( y >= document.body.clientHeight ) y = -1;
+
+	if( x == -1 || y == -1 )
+	{
+		x = -1;
+		y = -1;
+	}
+	
+
+	if( x == -1 )
+		stopDrag( null, x, y );
+	return true;
+}
+
+function getMouseXcoord()
+{
+	return event.x + document.body.scrollLeft;
+}
+
+function getMouseYcoord()
+{
+	return event.y + document.body.scrollTop;
+}
+
+var g_width		= -1;
+var g_height	= -1;
+var g_newLeft	= -1;	
+var g_newTop	= -1;
+		
+var g_pnzImgWidth = -1;
+var g_pnzImgHeight = -1;
+var g_pnzImgLeft = -1;
+var g_pnzImgTop = -1;
+
+function keydown()
+{
+	var key = window.event.keyCode;
+	var el = window.event.srcElement;
+
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{
+		if(g_width == -1)
+			g_width		= parseInt(el.style.pixelWidth);
+			
+		if(g_height == -1)
+			g_height		= parseInt(el.style.pixelHeight);
+			
+		if(g_newLeft == -1)
+			g_newLeft		= parseInt(el.style.left);	
+		
+		if(g_newTop == -1)
+			g_newTop		= parseInt(el.style.top);
+		
+		if(g_pnzImgWidth == -1)
+			g_pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+			
+		if(g_pnzImgHeight == -1)
+			g_pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+			
+		if(g_pnzImgLeft == -1)
+			g_pnzImgLeft = parseInt(divThumbnail.style.left);
+			
+		if(g_pnzImgTop == -1)
+			g_pnzImgTop = parseInt(divThumbnail.style.top);
+	
+
+		if(key == 37)	
+		{
+			g_newLeft -= 1;
+			if(g_newLeft < g_pnzImgLeft)
+			{
+				g_newLeft = g_pnzImgLeft;
+			}	
+		}
+		else if(key == 38)	
+		{
+			g_newTop -= 1;
+			if(g_newTop < g_pnzImgTop)
+			{
+				g_newTop = g_pnzImgTop;
+			}	
+		}
+		else if(key == 39)	
+		{
+			g_newLeft += 1;
+			if(g_newLeft + g_width > g_pnzImgLeft + g_pnzImgWidth)
+			{
+				g_newLeft = g_pnzImgLeft + g_pnzImgWidth - g_width;		
+			}
+		}
+		
+		else if(key == 40)	
+		{
+			g_newTop += 1;
+			if(g_newTop + g_height > g_pnzImgTop + g_pnzImgHeight)
+			{
+				g_newTop = g_pnzImgTop + g_pnzImgHeight - g_height;		
+			}
+		}
+		
+		setZoomRectCursor();
+
+		var xOffset = g_newLeft - g_pnzImgLeft;
+		var yOffset = g_newTop - g_pnzImgTop;
+		
+		var xPercent = xPercent = xOffset / g_pnzImgWidth;
+		var yPercent = yPercent = yOffset / g_pnzImgHeight;
+
+		if (xOffset < 0)
+		{
+			xPercent = 0;
+			xOffset = g_pnzImgLeft;
+		}
+		else if (xOffset + g_width > g_pnzImgWidth)
+		{
+			xPercent = 1;
+			xOffset = g_pnzImgLeft + g_pnzImgWidth - g_width;
+		}
+
+		if (yOffset < 0)
+		{
+			yPercent = 0;
+			yOffset = g_pnzImgTop;
+		}
+		else if (yOffset + g_height > g_pnzImgHeight)
+		{
+			yPercent = 1;
+			yOffset = g_pnzImgTop + g_pnzImgHeight - g_height;
+		}
+
+		if (parent.parent.viewMgr.setView)
+		{
+			var viewMgr = parent.parent.viewMgr;
+			viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+			viewMgr.ChangingView = true;
+			viewMgr.setView (xPercent, yPercent);
+		}	
+		setZWinSize (null, null, g_newLeft, g_newTop);
+	}
+}
+
+function keyup()
+{
+	var key = window.event.keyCode;
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{		
+		el = window.event.srcElement;
+	}
+}
+
+function dragObject( divID, divObject, xOffset, yOffset, dragFunctionPointer, dragStopFunctionPointer )
+{
+	this.divID			= divID;
+	this.divObject		= divObject;
+	this.xOffset		= xOffset;
+	this.yOffset		= yOffset;
+	this.dragFPtr		= dragFunctionPointer;
+	this.dragStopFPtr	= dragStopFunctionPointer;
+}
+
+var dragList = new Array();
+
+
+function startDrag( divID, dragFunctionPtr, dragStopFunctionPointer, xOffset, yOffset ) 
+{
+	var divObject = document.all(divID);
+	if( divObject != null ) 
+	{
+		document.selection.empty();
+		
+		if( xOffset == null )
+		{
+			xOffset = parseInt(divObject.style.left) - g_lastX;
+		}
+		
+		if( yOffset == null )
+		{
+			yOffset = parseInt(divObject.style.top)  - g_lastY;
+		}
+
+		dragList[ dragList.length ] = new dragObject( divID, divObject, xOffset, yOffset, dragFunctionPtr, dragStopFunctionPointer );
+		return true;
+	} 
+	else 
+	{
+		return false;
+	}
+}
+
+function doDrag( x, y ) 
+{
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].dragFPtr != null )
+			dragList[i].dragFPtr( dragList[i], x, y );
+	}
+	if( dragList.length )
+	{
+		document.selection.empty();
+	}
+}
+
+function stopDrag( divID, x, y ) 
+{ 
+	var tmpDragObject;
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].divID == divID || divID == null ) 
+		{
+			tmpDragObject = dragList[i];
+			
+			dragList[i] = dragList[ dragList.length - 1 ];
+			dragList.length = dragList.length - 1;
+			
+			if( tmpDragObject.dragStopFPtr != null )
+			{
+				tmpDragObject.dragStopFPtr( tmpDragObject, x, y );
+			}
+			
+		}
+	}
+}
+
+function PageViewChanged(newLeftPercent, newTopPercent, newWidthPercent, newHeightPercent)
+{
+	if (dragList.length == 0 && !parent.parent.viewMgr.ChangingView)
+	{
+		var newLeft		= null;
+		var newTop		= null;
+		var newWidth	= null;
+		var newHeight	= null;
+
+		var PNZimg = document.all("ConvertedImage");
+
+		if (newLeftPercent != null)
+		{
+			newLeft = (newLeftPercent * PNZimg.style.pixelWidth) + parseInt(divThumbnail.style.left);
+		}
+		
+		if (newTopPercent != null)
+		{
+			newTop = (newTopPercent * PNZimg.style.pixelHeight) + parseInt(divThumbnail.style.top);
+		}
+		
+		if (newWidthPercent != null)
+		{
+			newWidth = newWidthPercent * PNZimg.style.pixelWidth;
+		}
+		
+		if (newHeightPercent != null)
+		{
+			newHeight = newHeightPercent * PNZimg.style.pixelHeight;
+		}
+
+		setZWinSize (newWidth, newHeight, newLeft, newTop);
+
+		if (newLeftPercent <= 0 && newTopPercent <= 0 && newWidthPercent >= 1 && newHeightPercent >= 1)
+		{
+			zoomRectDiv.style.display = "none";
+			zoomRectDiv.style.visibility = "hidden";
+		}
+		else
+		{
+			zoomRectDiv.style.display = "inline";
+			zoomRectDiv.style.visibility = "visible";
+		}
+
+		if (newWidthPercent != null && newHeightPercent != null)
+		{
+			var newZoomLevel = GetZoomLevel (newWidthPercent, newHeightPercent);
+			SetCorrectTick (newZoomLevel);
+		}
+	}
+}
+
+function load()
+{
+	parent.parent.g_ZoomLoaded = true;
+
+	if (parent.parent.g_LoadingWidgets)
+	{
+		parent.parent.g_LoadingWidgets = false;
+		parent.parent.location.reload();
+	}
+}
+
+function unload()
+{
+	if (parent.parent.viewMgr)
+	{
+		parent.parent.viewMgr.viewChanged = null;
+	}
+
+	parent.parent.g_LoadingWidgets = true;
+}
+
+
+</script>
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divPZWindow" style="width: 100%; height: 100%;" >
+	<div id="divThumbnail" style="position: absolute; " onmousedown="startNewZoomRectDrag();"></div>
+</div>
+<div id="divTempThumbnail" style="position: absolute; visibility:hidden; display:none;" ></div>
+
+<div id="zoomRectDiv" tabindex="1" title="可見的區域。使用滑鼠或方向鍵來移動。" onkeydown="keydown()" onkeyup="keyup()" style="display:none;position: absolute; border: solid red thin; z-index: 3;" onmousedown="startZoomRectDrag();" onmouseover="setZoomRectCursor();" onmousemove="setZoomRectCursor();"></div>
+<div id="newZoomWindowDiv" style="position: absolute; border: solid blue thin; z-index: 4; visibility: hidden;"></div>
+
+</body>
+</html>
+
+
+
+
+
+
Index: /drbl_ui/flow_chart/clonezilla_mode.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_mode.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_mode.htm	(revision 21)
@@ -0,0 +1,718 @@
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+		<meta name="標題" content=""/>
+		<meta name="主旨" content=""/>
+		<meta name="類別" content=""/>
+		<meta name="關鍵字" content=""/>
+		<meta name="描述" content=""/>
+		<meta name="作者" content=" "/>
+		<meta name="主管" content=""/>
+		<meta name="公司" content=""/>
+
+		<title>clonezilla_mode</title>
+		<script src="clonezilla_mode.files/frameset.js" type="text/jscript" language="jscript"></script>
+		<script type="text/jscript" language="jscript" >
+
+function FileEntry (pageIndex, pageID, pageName, priImage, secImage) 
+{
+	this.PageIndex = pageIndex;
+	this.PageID	  = pageID;
+	this.PageName = pageName;
+	this.PriImage = priImage;
+	this.SecImage = secImage;
+}
+
+var viewMgr = null;
+
+var g_FileList = new  Array(
+ new FileEntry (1, 0, "頁-1", "vml_1.htm", "gif_1.htm")
+
+);
+
+var g_CurPageIndex = 0;
+var g_ZoomLoaded = false;
+var g_WidgetsLoaded = false;
+var g_FileProtocol = "file://";
+
+var g_HLMenuEntry = "menuEntry";
+var g_HLMenuEntryDiv = "menuEntryDiv";
+
+var g_LoadingWidgets = false;
+
+
+function CViewMgr(convertedImgID, highlightDivID)
+{
+	this.onResize = null;
+	this.ApplyZoom = null;
+	this.ChangingView = false;
+
+	this.put_Location = ViewMgrDefaultFind;
+	this.Zoom = ViewMgrDefaultResize;
+	this.PostZoomProcessing = null;
+	this.setView = null;
+	this.PostSetViewProcessing = null;
+	this.viewChanged = null;
+
+	this.SupportsDetails = false;
+	this.SupportsSearch = false;
+
+	this.visBBoxLeft = 0.0;
+	this.visBBoxRight = 0.0;
+	this.visBBoxBottom = 0.0;
+	this.visBBoxTop = 0.0;
+
+	this.highlightDiv = null;
+	this.stepWidth = 10;
+
+	this.id = convertedImgID;
+	this.zoomFactor = -1;
+	this.zoomLast = -1;
+	this.origWH = 1;
+	this.origWidth = 100;	
+	this.aspectRatio = 1;
+
+	this.docDrawing = null;
+	var docDrawing = frmDrawing.document;
+	if(docDrawing)
+	{
+		this.docDrawing = docDrawing;
+		var docEl = docDrawing.all(this.id);
+		if (docEl)
+		{
+			this.s = docEl.style;
+			this.origWidth = this.s.pixelWidth;
+			this.origWH = this.s.pixelWidth / this.s.pixelHeight;
+		}
+		this.highlightDiv = docDrawing.all(highlightDivID);
+	}
+
+	this.loadPage = DefPageLoad;
+	this.getPNZ	= null;
+}
+
+function DefPageLoad (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+        if (fileDelim == -1)
+            fileDelim = curPath.lastIndexOf ('\\');
+		var newPath = curPath.substring (0, fileDelim + 1);
+		newPath += g_FileList[pageIndex].PriImage;
+		frmDrawing.location.href = newPath;
+
+		SetPNZDisplay (pageIndex);
+	}
+}
+
+function CurPageUpdate (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		g_CurPageIndex = pageIndex;
+
+		SetCurPageInGoto (pageIndex);
+
+		var divDetails = frmToolbar.document.all("divDetails");
+		if (divDetails)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsDetails)
+			{
+				displayStatus = "none";
+			}
+
+			divDetails.style.display = displayStatus;
+		}
+
+		var divSearch = frmToolbar.document.all("divSearch");
+		if (divSearch)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsSearch)
+			{
+				displayStatus = "none";
+			}
+
+			divSearch.style.display = displayStatus;
+		}
+
+		SetPNZDisplay (pageIndex);
+
+		LoadZoom ();
+	}
+}
+
+function FramePageLoaded ()
+{
+	if (isUpLevel && viewMgr == null)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+		if (fileDelim >= 0)
+		{
+			var fileName = curPath.substring (fileDelim + 1, curPath.length);
+			var pageIndex = PageIndexFromFileName (fileName);
+			SetCurPageInGoto (pageIndex);
+			SetPNZDisplay (pageIndex);
+		}
+	}
+}
+
+function LoadZoom ()
+{
+	var zoomWidget = frmToolbar.ifrmPNZ;
+	if (zoomWidget)
+	{
+		if (g_ZoomLoaded)
+		{
+			zoomWidget.findContent();
+			PageLoadedDoCallback ();
+		}
+		else
+		{
+			window.setTimeout("LoadZoom()", 500);
+		}
+	}
+	else
+	{
+		PageLoadedDoCallback ();
+	}
+}
+
+function SetCurPageInGoto (pageIndex)
+{
+	var gotoPageSelect = frmToolbar.document.all("Select1");
+	if (gotoPageSelect != null)
+	{
+		gotoPageSelect.value = pageIndex;
+	}
+}
+
+function SetPNZDisplay (pageIndex)
+{
+	var divPNZ = frmToolbar.document.all("divPNZ");
+	if (divPNZ)
+	{
+		var displayStatus = "block";
+		if (g_FileList[pageIndex].PageID < 0)
+		{
+			displayStatus = "none";
+		}
+
+		divPNZ.style.display = displayStatus;
+	}
+}
+
+function ViewMgrDefaultFind()
+{
+	return;
+}
+
+function ViewMgrDefaultResize(size)
+{
+	return;
+}
+
+
+
+g_callBackFunctionArray = new Array();
+function PageLoadedDoCallback()
+{
+	if (g_WidgetsLoaded)	
+	{
+		for( var i=0; i < g_callBackFunctionArray.length; i++ )
+		{
+			g_callBackFunctionArray[i]();
+		}
+		g_callBackFunctionArray = new Array();
+	}
+	else
+	{
+		window.setTimeout("PageLoadedDoCallback()", 500);
+	}
+}
+
+
+function ParseParams (strRawParams)
+{
+	strRawParams = strRawParams.substring(1);
+
+	var arrayParamTokens = strRawParams.split('&');
+	for (var count = 0; count < arrayParamTokens.length; count++)
+	{
+		arrayParamTokens[count] = unescape(arrayParamTokens[count]);
+		this[count] = arrayParamTokens[count].substring(0, arrayParamTokens[count].indexOf('='));
+		this[this[count]] = arrayParamTokens[count].substring(arrayParamTokens[count].indexOf('=') + 1);
+	}
+
+	return this;
+}
+
+var gParams = ParseParams (location.search);
+
+var g_PageParamValue = gParams['page'];
+if (g_PageParamValue != null && 
+	g_PageParamValue.length > 0)
+{
+	var pageIndex = PageIndexFromName (g_PageParamValue);
+	if (pageIndex > 0 && pageIndex < g_FileList.length)
+	{
+		g_CurPageIndex = pageIndex;
+	}
+}
+else
+{
+	g_PageParamValue = null;
+}
+
+var g_FirstPageToLoad = g_PageParamValue;
+
+var g_ZoomParamValue = gParams['zoom'];
+if (g_ZoomParamValue != null && g_ZoomParamValue.length > 0)
+{
+	g_ZoomParamValue = 1.0 * g_ZoomParamValue;
+	if (g_ZoomParamValue >= 10 && g_ZoomParamValue <= 500)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (viewMgr && viewMgr.Zoom) { viewMgr.Zoom(g_ZoomParamValue); } };
+	}
+}
+
+var g_ShapeParamValue = gParams['shape'];
+if (g_ShapeParamValue != null && g_ShapeParamValue.length > 0)
+{
+	if (g_PageParamValue != null && g_PageParamValue.length > 0)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var shapeNode = FindShapeXMLByName (g_PageParamValue, g_ShapeParamValue); if (shapeNode) { frmToolbar.TreeSelect (g_FileList[g_CurPageIndex].PageID, shapeNode.attributes.getNamedItem ("ID").text); } };
+	}
+	else
+	{
+		g_ShapeParamValue = null;
+	}
+}
+
+var g_SearchParamValue = gParams['search'];
+if (g_SearchParamValue != null && g_SearchParamValue.length > 0)
+{
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (frmToolbar.theForm) { frmToolbar.theForm.findString.value = g_SearchParamValue; } };
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var goButton = frmToolbar.document.all('GoButton'); if(goButton) { goButton.click(); } };
+}
+
+
+var strHLTooltipText = "按一下以跟隨超連結。";
+var strPropsTooltipText = "Ctrl + 按一下以檢視詳細資料。";
+
+var strFocusHLTooltipText = "按下 Enter 以追蹤超連結。";
+var strFocusPropsTooltipText = "Ctrl + Enter 以檢視詳細資料。";
+
+
+function UpdateTooltip (element, pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var strHL, strProps;
+	
+		if(frmDrawing.event.type == "focus")
+		{
+			strHL = strFocusHLTooltipText;
+			strProps = strFocusPropsTooltipText;
+		}
+		else
+		{
+			strHL = strHLTooltipText;
+			strProps = strPropsTooltipText;
+		}
+
+		var strTooltip = "";
+		if (element.origTitle)
+		{
+			strTooltip = element.origTitle.toString();
+		}
+			
+		var shapeNode = FindShapeXML (pageID, shapeID);
+
+		if( shapeNode != null )
+		{
+			var propColl = shapeNode.selectNodes ("Prop");
+			if (propColl != null && propColl.length > 0)
+			{
+				if (strTooltip.length > 0)
+				{
+					strTooltip += "\n";
+				} 
+				strTooltip += strProps;
+			}
+		}
+
+		var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+		if (hlObj != null && (hlObj.DoFunction.length > 0 || hlObj.Hyperlink.length > 0))
+		{
+			if (strTooltip.length > 0)
+			{
+				strTooltip += "\n";
+			}	
+			strTooltip += strHL;
+		}
+
+		element.title = strTooltip;
+		if (element.alt != null)
+		{
+			element.alt = strTooltip;
+		}
+	}
+}
+
+
+function GetHLAction (shapeNode, pageID, shapeID)
+{
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		if (hlColl.length > 1)
+		{
+			hlObj.DoFunction = "showMenu(" + pageID + ", " + shapeID + ");"
+		}
+		else if (hlColl.length == 1)
+		{
+			hlObj = CreateHLObj (hlColl.item(0));
+		}
+	}
+
+	return hlObj;
+}
+
+function HLObj (strHyperlink, strDoFunction, strDesc, newWindow) 
+{
+	this.Hyperlink = strHyperlink;
+	this.DoFunction = strDoFunction;
+	this.Desc = strDesc;
+	this.NewWindow = newWindow;
+}
+
+function clickMenu()
+{
+	var e = window.frmDrawing.event;
+	var menu = frmDrawing.document.all("menu1")
+	
+	if (menu != null && menu.style.display != "none")
+	{
+		menu.style.display="none";
+
+		if (e && e.srcElement && e.srcElement.doFunction != null)
+		{
+			eval(e.srcElement.doFunction);
+		}
+	}
+}
+
+function toggleMenuDiv(el, highlight) 
+{
+	var divEl = el;
+	var aEl = null;
+
+	var ID = el.id.substring (g_HLMenuEntryDiv.length, el.id.length) * 1.0;
+	aEl = divEl.all(g_HLMenuEntry + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenuLink(el, highlight) 
+{
+	var divEl = null;
+	var aEl = el;
+
+	var ID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	divEl = frmDrawing.document.all(g_HLMenuEntryDiv + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenu(divEl, aEl, highlight)
+{
+	if (highlight)
+	{
+	  divEl.className="highlightItem";
+	  aEl.className="highlightItem";
+	} 
+	else 
+	{
+	  divEl.className="menuItem";
+	  aEl.className="menuItem";
+	}
+}
+
+function showMenu(pageID, shapeID)
+{
+	var shapeXML = FindShapeXML (pageID, shapeID);
+	if (shapeXML != null)
+	{
+		CreateHLMenu (shapeXML);
+		var menu = frmDrawing.document.all("menu1");
+		if (menu != null)
+		{
+			menu.style.visibility = "hidden";
+			menu.style.display = "inline";
+
+			var e = window.frmDrawing.event;
+			var elem = e.srcElement;
+
+			var clientWidth = frmDrawing.document.body.clientWidth;
+			var clientHeight = frmDrawing.document.body.clientHeight;
+
+			var menuWidth = menu.clientWidth;
+			var menuHeight = menu.clientHeight;
+
+			var menuLeft = e.x;
+			var menuTop = e.y;
+			
+			var doc = frmDrawing.document;
+			var img = doc.all("ConvertedImage");
+			
+			if( (menuLeft + doc.body.scrollLeft < elem.offsetLeft) || (menuLeft + doc.body.scrollLeft > elem.offsetLeft + elem.offsetWidth + img.offsetLeft) )
+			{
+				menuLeft = elem.offsetLeft + img.offsetLeft + elem.offsetWidth/2;
+			}
+			
+			if( (menuTop + doc.body.scrollTop < elem.offsetTop) || (menuTop + doc.body.scrollTop > elem.offsetTop + elem.offsetHeight + img.offsetTop) )
+			{
+				menuTop = elem.offsetTop + img.offsetTop + elem.offsetHeight/2;
+			}
+
+			var scrollBarSize = 20;
+			if (menuLeft + menuWidth > clientWidth - scrollBarSize)
+			{
+				menuLeft = clientWidth - menuWidth - scrollBarSize;
+			}
+
+			if (menuTop + menuHeight > clientHeight - scrollBarSize)
+			{
+				menuTop = clientHeight - menuHeight - scrollBarSize;
+			}
+
+			menu.style.posLeft = menuLeft + frmDrawing.document.body.scrollLeft;
+			menu.style.posTop = menuTop + frmDrawing.document.body.scrollTop;
+			menu.style.visibility = "visible";
+
+			var firstLink = menu.all(g_HLMenuEntry + "0");
+			firstLink.focus ();
+			
+			if (e.keyCode == 13)
+			{
+				toggleMenuLink(firstLink, true);
+			}
+
+			e.cancelBubble = true;
+		}
+	}
+}
+
+function MenuKeyDown ()
+{
+	var e = window.frmDrawing.event;
+	var el = e.srcElement;
+
+	if (e.keyCode == 27)	// 27 == ESC
+	{
+		clickMenu();
+		e.cancelBubble = true;
+		return;
+	}
+
+	var curSelID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	var newSelID = -1;
+
+	if (e.keyCode == 40)	// 40 == down arrow
+	{
+		newSelID = curSelID + 1;
+	}
+	else if (e.keyCode == 38) // 38 == up arrow
+	{
+		newSelID = curSelID - 1;
+	}
+
+	var newSelEntry = frmDrawing.document.all(g_HLMenuEntry + newSelID);
+
+	if (newSelEntry)
+	{
+		newSelEntry.focus();
+
+		var curSelEntry = frmDrawing.document.all(g_HLMenuEntry + curSelID);
+		toggleMenuLink (curSelEntry, false);
+		toggleMenuLink (newSelEntry, true);
+	}
+
+	e.cancelBubble = true;
+}
+
+function CreateHLMenu (shapeNode)
+{
+	var strHLMenuHTML = "";
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		strHLMenuHTML = "<div class='innerhlMenu'>";
+
+		var hlCount = hlColl.length;
+		for (var count = 0; count < hlCount; count++)
+		{
+			var hlObj = CreateHLObj (hlColl.item(count));
+			if (hlObj != null)
+			{
+				if (hlObj.Desc.length > 0)
+				{
+					strHLMenuHTML += "<div id='" + (g_HLMenuEntryDiv + count) + "' class='menuItem' onmouseover='toggleMenuDiv(this, true)' onmouseout='toggleMenuDiv(this, false)' onclick='" + (g_HLMenuEntry + count) + ".click()'>";
+					strHLMenuHTML += "<a href=";
+
+					if (hlObj.DoFunction.length > 0)
+					{
+						strHLMenuHTML += "'javascript:" + hlObj.DoFunction + "'";
+					}
+					else
+					{
+						var targetVal = "_top";
+						if (hlObj.NewWindow)
+						{
+							targetVal = "_blank";
+						}
+						strHLMenuHTML += "'" + hlObj.Hyperlink + "' target='" + targetVal + "'";
+					}
+
+					strHLMenuHTML += " class='menuItem' id='" + (g_HLMenuEntry + count) + "' onkeydown='parent.MenuKeyDown();' onmouseover='toggleMenuLink(this, true)' onmouseout='toggleMenuLink(this, false)'>";
+					strHLMenuHTML += hlObj.Desc + "</a></div>";
+				}
+			}
+		}
+		
+		strHLMenuHTML += "</div>";
+	}
+
+	frmDrawing.menu1.innerHTML = strHLMenuHTML;
+}
+
+function CreateHLObj (hlNode)
+{
+	var strAddress = "";
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (hlNode != null)
+	{
+		var hlAddress = hlNode.selectSingleNode("HLURL:Address/textnode()");
+		if (hlAddress != null && hlAddress.text.length > 0)
+		{
+			var absoluteURL = hlNode.selectSingleNode("HLURL:AbsoluteURL/textnode()");
+			var strAbsURL = absoluteURL.text;
+			var strAddr = hlAddress.text;
+
+			if (strAbsURL.indexOf (g_FileProtocol) == 0)
+			{
+				var strAbsPath = strAbsURL.substring (g_FileProtocol.length, strAbsURL.length);
+				strAbsPath.toLowerCase ();
+				strAddr.toLowerCase ();
+				if (strAbsPath == strAddr)
+				{
+					strAddress = strAbsPath;
+				}
+				else
+				{
+					strAddress = strAddr;
+					
+					var hlSubAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+					if (hlSubAddress != null && hlSubAddress.text.length > 0)
+					{
+						strAddress += '#';
+						strAddress += hlSubAddress.text;
+					}
+
+					var hlExtraInfo = hlNode.selectSingleNode("HLURL:ExtraInfo/textnode()");
+					if (hlExtraInfo != null && hlExtraInfo.text.length > 0)
+					{
+						strAddress += '?';
+						strAddress += hlExtraInfo.text;
+					}
+				}
+			}
+			else
+			{
+				strAddress = strAbsURL;
+			}		
+
+			strAddress = HTMLEscape (strAddress);
+			hlObj.Hyperlink += strAddress;
+		}
+		else
+		{
+			hlAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+			if (hlAddress != null && hlAddress.text.length > 0)
+			{
+				strAddress = hlAddress.text;
+
+				var pageShapeSep = strAddress.lastIndexOf ('/');
+				if (pageShapeSep > 0)
+				{
+					if (PageIndexFromName (strAddress) < 0)
+					{
+						strAddress = unescape (strAddress);
+						if (PageIndexFromName (strAddress) < 0)
+						{
+							strAddress = strAddress.substring (0, strAddress.lastIndexOf ('/'));
+						}
+					}
+				}
+
+				var pageIndex = PageIndexFromName (strAddress);
+
+				hlObj.DoFunction = "GoToPage (" + pageIndex + ");";
+				strAddress = HTMLEscape (strAddress);
+				hlObj.Desc = strAddress;
+			}
+		}
+
+		hlDesc = hlNode.selectSingleNode("HLURL:Description/textnode()");
+		if (hlDesc != null && hlDesc.text.length > 0)
+		{
+			hlObj.Desc = HTMLEscape (hlDesc.text);
+		}
+		else
+		{
+			hlObj.Desc = strAddress;
+		}
+	
+		var hlNewWindow = hlNode.selectSingleNode("HLURL:NewWindow/textnode()");
+		if (hlNewWindow != null && hlNewWindow.text.length > 0)
+		{
+			hlObj.NewWindow = (hlNewWindow.text == "1");
+		}		
+	}
+
+	return hlObj;
+}
+
+
+		</script>
+	</head>
+	
+	<frameset id="frmstOuter" cols="237,*" title="clonezilla_mode">
+		<frame src="clonezilla_mode.files/toolbar.htm" name="frmToolbar" id="frmToolbar" title="此框架包含管理您繪圖的工具。" frameborder="6" bordercolor="#999999" scrolling="no" marginheight="0" marginwidth="0" >
+		<frame src="clonezilla_mode.files/gif_1.htm" name="frmDrawing" title="此框架包含您繪圖的頁面。" marginheight="10" marginwidth="10" onload="if (parent.isUpLevel) FramePageLoaded()" >
+
+		<noframes>
+			<body>
+
+				<h1>clonezilla_mode</h1>
+				<ul>
+				<li><a href="clonezilla_mode.files/gif_1.htm">頁-1</a></li>
+
+				</ul>
+			</body>
+		</noframes>
+	</frameset>
+	
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/data.xml
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/data.xml	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/data.xml	(revision 21)
@@ -0,0 +1,822 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisioDocument>
+	<DocumentProperties>
+		<Title></Title>
+		<HyperlinkBase href=""></HyperlinkBase>
+	</DocumentProperties>
+	<Pages>
+		<Page ID="0" Name="頁-1" NameU="Page-1">
+			<Layer IX="0">
+				<Name>流程圖</Name>
+				<NameUniv>Flowchart</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Layer IX="1">
+				<Name>連接器</Name>
+				<NameUniv>Connector</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Shapes>
+				<Shape ID="1" UniqueID="{29D2827B-9052-461F-9D4B-C1EF084C67F9}" Name="終端子" NameU="Terminator" Master="0">
+					<Text>start</Text>
+					<XForm>
+						<PinX Unit="MM">3.740157480314961</PinX>
+						<PinY Unit="MM">11.285562006140795</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="2" UniqueID="{CF95AEEB-7119-47E9-A782-16BCD684980B}" Name="決策" NameU="Decision" Master="2">
+					<Text>是否選擇全部
+clients</Text>
+					<XForm>
+						<PinX Unit="MM">3.740157480314961</PinX>
+						<PinY Unit="MM">10.749899717008601</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="3" UniqueID="{224275E9-C8F7-4FB6-BACC-84C01C8003F1}" Name="動態連接器.3" NameU="Dynamic connector.3" Master="3">
+					<Text>No</Text>
+					<XForm>
+						<PinX Unit="MM">4.620666789003071</PinX>
+						<PinY Unit="MM">10.749899717008603</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="4" UniqueID="{315BFD34-377D-4C7D-B90C-97C3610274B1}" Name="決策.5" NameU="Decision.5" Master="2">
+					<Text>選擇 clients</Text>
+					<XForm>
+						<PinX Unit="MM">5.269376417990126</PinX>
+						<PinY Unit="MM">10.749899717008601</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="5" UniqueID="{1AF383F9-5FDD-4468-9A34-6B722B83E161}" Name="儲存的資料" NameU="Stored data" Master="4">
+					<Text>讀取
+ ip_list or
+ MAC list</Text>
+					<XForm>
+						<PinX Unit="MM">6.593946016281863</PinX>
+						<PinY Unit="MM">10.749899717008601</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="6" UniqueID="{2E8DAFA8-1ECA-434F-9A95-2320895FCC2D}" Name="動態連接器.9" NameU="Dynamic connector.9" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.915104097157350</PinX>
+						<PinY Unit="MM">10.749899717008599</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="7" UniqueID="{8A71A036-4D53-4177-B636-33ECAAB052B5}" Name="動態連接器" NameU="Dynamic connector" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.740157480314961</PinX>
+						<PinY Unit="MM">11.051209754645463</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="10" UniqueID="{1E6D94F1-3D19-4877-97FD-51A0B07B8A1D}" Name="決策.10" NameU="Decision.10" Master="2">
+					<Text>-hn0 or -hn1 checked ?</Text>
+					<XForm>
+						<PinX Unit="MM">3.740157480314961</PinX>
+						<PinY Unit="MM">8.968911795617260</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="12" UniqueID="{C2B87597-90A7-42DA-9826-EF6327E8F6C9}" Name="儲存的資料.12" NameU="Stored data.12" Master="4">
+					<Text>欲先儲存的選項</Text>
+					<XForm>
+						<PinX Unit="MM">6.224366764086225</PinX>
+						<PinY Unit="MM">8.123647658083698</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="13" UniqueID="{2A4F16E1-8995-42CE-89C4-815121CB7F0D}" Name="動態連接器.13" NameU="Dynamic connector.13" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.228325114326578</PinX>
+						<PinY Unit="MM">9.117742146272674</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="14" UniqueID="{CE00305C-D259-4556-B2BA-A5786C652355}" Name="手動輸入" NameU="Manual input" Master="7">
+					<Text>輸入 hostname</Text>
+					<XForm>
+						<PinX Unit="MM">1.283288802226208</PinX>
+						<PinY Unit="MM">8.120656905960875</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="16" UniqueID="{B18A0A9A-B59E-45A9-A41C-78A5679A1FE5}" Name="程序" NameU="Process" Master="8">
+					<Text>警告: 您選擇了
+ hn0 or hn1</Text>
+					<XForm>
+						<PinX Unit="MM">1.283288802226208</PinX>
+						<PinY Unit="MM">8.968911795617260</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="15" UniqueID="{CE2B2902-9046-4184-81CE-52DE9DA52DE5}" Name="動態連接器.15" NameU="Dynamic connector.15" Master="3">
+					<XForm>
+						<PinX Unit="MM">1.283288802226208</PinX>
+						<PinY Unit="MM">8.508551072928320</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="19" UniqueID="{36B96365-CC1A-4C11-B868-238FA1EDD2B7}" Name="動態連接器.19" NameU="Dynamic connector.19" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.740157480314961</PinX>
+						<PinY Unit="MM">8.530566932402941</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="20" UniqueID="{A14C2A02-0010-446A-B0C1-D61B9B414F90}" Name="動態連接器.20" NameU="Dynamic connector.20" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.440878341904637</PinX>
+						<PinY Unit="MM">8.120656905960875</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="18" UniqueID="{5B92964B-DF9B-4CCD-847D-F70DB3BC2562}" Name="動態連接器.18" NameU="Dynamic connector.18" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.740157480314960</PinX>
+						<PinY Unit="MM">7.684980868447033</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="24" UniqueID="{3143A975-F2D8-44D1-9935-76ACE2CED485}" Name="決策.24" NameU="Decision.24" Master="2">
+					<Text>-u is checked?</Text>
+					<XForm>
+						<PinX Unit="MM">3.747539370078743</PinX>
+						<PinY Unit="MM">6.418355774045692</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="25" UniqueID="{AAF38B59-9C93-4271-B113-791A3CDB9282}" Name="動態連接器.25" NameU="Dynamic connector.25" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.747539370078743</PinX>
+						<PinY Unit="MM">6.779307625751939</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="27" UniqueID="{0D4D7A3C-E18F-4557-AE81-3B5A8EA8A3E9}" Name="動態連接器.27" NameU="Dynamic connector.27" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.193804297878309</PinX>
+						<PinY Unit="MM">3.850559904474808</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="26" UniqueID="{82057D5D-D239-4707-9CD9-05DD5872E6A1}" Name="程序.26" NameU="Process.26" Master="8">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">3.727854330708665</PinX>
+						<PinY Unit="MM">1.282764034903925</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="30" UniqueID="{864A288E-5B67-4A6D-909F-25A2F4C574CC}" Name="程序.30" NameU="Process.30" Master="8">
+					<Text>選擇欲還原的印象檔</Text>
+					<XForm>
+						<PinX Unit="MM">3.747539370078743</PinX>
+						<PinY Unit="MM">5.696456819874340</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="31" UniqueID="{C427E7AB-A70D-45B1-9DC2-3665232CF83E}" Name="動態連接器.31" NameU="Dynamic connector.31" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.747539370078743</PinX>
+						<PinY Unit="MM">6.057406296960016</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="32" UniqueID="{11C34855-7993-46F3-8991-04EA9D00524C}" Name="程序.32" NameU="Process.32" Master="8">
+					<Text>選取欲還原的
+disk</Text>
+					<XForm>
+						<PinX Unit="MM">5.340829990120056</PinX>
+						<PinY Unit="MM">4.940362902787317</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="33" UniqueID="{B111D36B-BB3B-4F77-8E9C-B06A875E0E14}" Name="動態連接器.33" NameU="Dynamic connector.33" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.747539370078743</PinX>
+						<PinY Unit="MM">5.327047994505680</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="8" UniqueID="{49C1BAFE-FB44-489D-A0AD-07F994887AE2}" Name="決策.8" NameU="Decision.8" Master="2">
+					<Text>欲還原 
+disk or parts</Text>
+					<XForm>
+						<PinX Unit="MM">3.747539370078743</PinX>
+						<PinY Unit="MM">4.940362902787317</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="22" UniqueID="{949D5BB7-824C-49E5-8873-005519D0218E}" Name="動態連接器.22" NameU="Dynamic connector.22" Master="3">
+					<Text>disk</Text>
+					<XForm>
+						<PinX Unit="MM">4.611473084638186</PinX>
+						<PinY Unit="MM">4.940362902787317</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="11" UniqueID="{9289E3B7-53DC-4C94-A2DC-4A5F6B8F7F4B}" Name="程序.11" NameU="Process.11" Master="8">
+					<Text>選取欲還原的
+part</Text>
+					<XForm>
+						<PinX Unit="MM">2.153051181102366</PinX>
+						<PinY Unit="MM">4.940362902787316</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="34" UniqueID="{1E57103B-B346-4258-B08F-C5961F7D000D}" Name="動態連接器.34" NameU="Dynamic connector.34" Master="3">
+					<Text>part</Text>
+					<XForm>
+						<PinX Unit="MM">2.873164351366729</PinX>
+						<PinY Unit="MM">4.940362902787317</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="35" UniqueID="{90F50D6A-F681-42DF-80BF-96D0D51F50B3}" Name="決策.35" NameU="Decision.35" Master="2">
+					<Text>Multicast or unicast</Text>
+					<XForm>
+						<PinX Unit="MM">3.729051899643727</PinX>
+						<PinY Unit="MM">3.789960675723060</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="37" UniqueID="{BAD47914-D763-4ACA-B255-2D89D96EBE4A}" Name="動態連接器.37" NameU="Dynamic connector.37" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.941051540373046</PinX>
+						<PinY Unit="MM">4.365161789255188</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="38" UniqueID="{7F7AC8A5-552E-4881-BCFD-144779C3BE8A}" Name="動態連接器.38" NameU="Dynamic connector.38" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.712705083680131</PinX>
+						<PinY Unit="MM">4.258503305976245</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="17" UniqueID="{9EB2C817-B16E-415F-A79A-D1D919AA4025}" Name="動態連接器.17" NameU="Dynamic connector.17" Master="3">
+					<Text>Yes</Text>
+					<XForm>
+						<PinX Unit="MM">2.540686171792732</PinX>
+						<PinY Unit="MM">8.968911795617260</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="40" UniqueID="{50F5BF2C-66DB-4963-AC48-1CEE81D869EA}" Name="動態連接器.40" NameU="Dynamic connector.40" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.728453115176196</PinX>
+						<PinY Unit="MM">3.370250188013111</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="42" UniqueID="{3702A4C9-4B8B-4F2E-8B9F-050AA7042056}" Name="決策.42" NameU="Decision.42" Master="2">
+					<Text>Wait clients</Text>
+					<XForm>
+						<PinX Unit="MM">3.727854330708665</PinX>
+						<PinY Unit="MM">2.950539700303162</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="46" UniqueID="{39AC5F48-92D3-46C3-8235-8F6FC5BAEB24}" Name="決策.46" NameU="Decision.46" Master="2">
+					<Text>Wait time</Text>
+					<XForm>
+						<PinX Unit="MM">3.727854330708665</PinX>
+						<PinY Unit="MM">2.116651867603544</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="47" UniqueID="{F47A4170-B63B-46C4-B462-BB8CB29D5343}" Name="動態連接器.47" NameU="Dynamic connector.47" Master="3">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">3.727854330708664</PinX>
+						<PinY Unit="MM">2.534491153852458</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="50" UniqueID="{93DA853F-9D80-4720-87A6-523967183365}" Name="手動輸入.50" NameU="Manual input.50" Master="7">
+					<Text>Enter clients</Text>
+					<XForm>
+						<PinX Unit="MM">2.428641732283468</PinX>
+						<PinY Unit="MM">2.950539700303161</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="51" UniqueID="{31324421-54B1-4359-BDA8-4AA5875EF4C1}" Name="手動輸入.51" NameU="Manual input.51" Master="7">
+					<Text>Enter time to wait</Text>
+					<XForm>
+						<PinX Unit="MM">5.177406773382011</PinX>
+						<PinY Unit="MM">2.116651867603543</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="28" UniqueID="{3FEC99C7-5EA0-4BD4-920D-A2452D580EA9}" Name="動態連接器.28" NameU="Dynamic connector.28" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.102255546241134</PinX>
+						<PinY Unit="MM">2.950539700303162</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="36" UniqueID="{7922EBB4-75B7-48BE-BD82-3DE01F586023}" Name="動態連接器.36" NameU="Dynamic connector.36" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.881397637795279</PinX>
+						<PinY Unit="MM">2.415485547732880</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="39" UniqueID="{4D789F82-0D88-4B70-A46F-186E60782AF6}" Name="動態連接器.39" NameU="Dynamic connector.39" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.403417953620140</PinX>
+						<PinY Unit="MM">2.116651867603544</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="29" UniqueID="{70F13C83-586D-40DC-BE41-077305BFFE91}" Name="動態連接器.29" NameU="Dynamic connector.29" Master="3">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">3.727854330708664</PinX>
+						<PinY Unit="MM">1.697285013731708</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="43" UniqueID="{20735E5B-B3C4-43BF-88AC-8781C1698AFC}" Name="動態連接器.43" NameU="Dynamic connector.43" Master="3">
+					<Text>unicast</Text>
+					<XForm>
+						<PinX Unit="MM">3.357408818033407</PinX>
+						<PinY Unit="MM">2.536362355313493</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="41" UniqueID="{C7E89E63-1547-4F39-A1E7-139844330218}" Name="終端子.41" NameU="Terminator.41" Master="0">
+					<Text>end</Text>
+					<XForm>
+						<PinX Unit="MM">3.727854330708665</PinX>
+						<PinY Unit="MM">0.448876202204307</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="44" UniqueID="{60A4BA9B-408C-4138-A8B9-8DD2CE9880F3}" Name="動態連接器.44" NameU="Dynamic connector.44" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.727854330708665</PinX>
+						<PinY Unit="MM">0.827646989039618</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="45" UniqueID="{2DA8D012-DE15-44B8-A8F5-9CC2C6751576}" Name="動態連接器.45" NameU="Dynamic connector.45" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.063475507526743</PinX>
+						<PinY Unit="MM">8.122152282022286</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="48" UniqueID="{CCB7B344-94BE-4240-A60F-50B5BA71FEB6}" Name="動態連接器.48" NameU="Dynamic connector.48" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.228325114326577</PinX>
+						<PinY Unit="MM">7.581345328852423</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="23" UniqueID="{BC0FE8F4-8487-4C86-A0D3-03C83573C585}" Name="資料" NameU="Data" Master="9">
+					<Text>-y0
+-y1
+-y2
+-y3</Text>
+					<XForm>
+						<PinX Unit="MM">3.740157480314960</PinX>
+						<PinY Unit="MM">8.120656905960875</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="21" UniqueID="{39FF974E-D730-453D-A422-F2D5E06BA8F2}" Name="資料.21" NameU="Data.21" Master="9">
+					<Text>-p choose
+-p true
+-p poweroff
+-p reboot</Text>
+					<XForm>
+						<PinX Unit="MM">3.740157480314960</PinX>
+						<PinY Unit="MM">7.249304830933193</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="9" UniqueID="{BAD31A0B-A0F9-4CEA-AB36-8421B249A997}" Name="資料.9" NameU="Data.9" Master="9">
+					<Text>-g auto
+-x
+.
+.</Text>
+					<XForm>
+						<PinX Unit="MM">3.740157480314962</PinX>
+						<PinY Unit="MM">9.901574803149606</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="49" UniqueID="{60D66540-887D-41B7-877A-718FAD7760CE}" Name="動態連接器.49" NameU="Dynamic connector.49" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.740157480314962</PinX>
+						<PinY Unit="MM">10.372938376142409</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="52" UniqueID="{1CC8987B-AE62-49E0-8D74-D2961DD388F1}" Name="動態連接器.52" NameU="Dynamic connector.52" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.740157480314962</PinX>
+						<PinY Unit="MM">9.449460717769558</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="53" UniqueID="{8E9680D9-89CD-453D-B251-7BF9AF6807A8}" Name="動態連接器.53" NameU="Dynamic connector.53" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.504766949152544</PinX>
+						<PinY Unit="MM">10.472440944881889</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+			</Shapes>
+		</Page>
+	</Pages>
+</VisioDocument>
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/filelist.xml
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/filelist.xml	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/filelist.xml	(revision 21)
@@ -0,0 +1,32 @@
+<xml xmlns:o="urn:schemas-microsoft-com:office:office">
+ <o:File HRef="arrow.gif"/>
+ <o:File HRef="minimize.gif"/>
+ <o:File HRef="maximize.gif"/>
+ <o:File HRef="go.gif"/>
+ <o:File HRef="fullpage.gif"/>
+ <o:File HRef="plus.gif"/>
+ <o:File HRef="minus.gif"/>
+ <o:File HRef="panminus.gif"/>
+ <o:File HRef="panplus.gif"/>
+ <o:File HRef="tick-foc.gif"/>
+ <o:File HRef="tick-off.gif"/>
+ <o:File HRef="tick-on.gif"/>
+ <o:File HRef="toc.gif"/>
+ <o:File HRef="toc2.gif"/>
+ <o:File HRef="data.xml"/>
+ <o:File HRef="frameset.js"/>
+ <o:File HRef="keys.js"/>
+ <o:File HRef="visio.css"/>
+ <o:File HRef="vml_1.emz"/>
+ <o:File HRef="gif_1.gif"/>
+ <o:File HRef="vml_1.js"/>
+ <o:File HRef="vml_1.htm"/>
+ <o:File HRef="gif_1.js"/>
+ <o:File HRef="gif_1.htm"/>
+ <o:File HRef="zoom.htm"/>
+ <o:File HRef="find.js"/>
+ <o:File HRef="widgets.htm"/>
+ <o:File HRef="toolbar.htm"/>
+ <o:MainFile HRef="../clonezilla_restore_flow_chart.htm"/>
+ <o:File HRef="filelist.xml"/>
+</xml>
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/find.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/find.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/find.js	(revision 21)
@@ -0,0 +1,499 @@
+
+var strShapeName	= "圖形名稱";
+var strShapeText	= "圖形文字";
+var strProps		= "圖形資料";
+var strResults		= "搜尋結果關於:";
+
+var strShape	= "圖形名稱:";
+var strNoCustomPropertiesToDisplayText = "CTRL+按一下繪圖中的圖形以檢視詳細資料。";
+
+var FindShapeXML = parent.FindShapeXML;
+var Unquote = parent.Unquote;
+var put_Location = parent.put_Location;
+
+
+var strChkBox		= "Chkbox";
+var strPropChkBox	= "PropChkbox";
+
+function doExpando(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = up.src;
+	}else{
+		xxx.style.display = "none"
+		yyy.src = down.src;
+	}
+}
+
+function doExp(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = "minus.gif";
+	}else{
+		xxx.style.display = "none"
+		yyy.src = "plus.gif";
+	}
+}
+
+
+function FindOnClick()
+{
+	var count, indexOfString;
+	
+	var fieldsToSearchArray = new Array();
+	if (parent.xmlData != null && document.theForm[strProps + strChkBox].checked)
+	{
+		for( count=0; count < document.theForm.length; count++ )
+		{
+			indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+			if( -1 != indexOfString && document.theForm[count].checked )
+			{
+				fieldsToSearchArray[ fieldsToSearchArray.length ] = document.theForm[count].name.slice(0, indexOfString);
+			}
+		}
+	}
+
+	var searchTokensArray = CreateSearchTokens (document.theForm.findString.value);
+
+	if (searchTokensArray.length > 0)
+	{
+		var findArray = Find(searchTokensArray, fieldsToSearchArray);
+		var ArrayLength = findArray.length;
+		var strResultsHTML = "找不到相符項目。";
+		var lastPageID = null;
+		var shapeID;
+		
+		
+		if(ArrayLength > 0)
+		{
+			strResultsHTML = strResults + ' <b>'+ parent.HTMLEscape(document.theForm.findString.value) +'</b>';
+			for ( count = 0; count < ArrayLength; count++)
+			{
+			
+				if( lastPageID != findArray[count].PageID )
+				{
+					lastPageID = findArray[count].PageID;
+				}
+
+				shapeID = findArray[count].ShapeID;
+				strResultsHTML += '<p class="results"><a href="javascript:populateSearchResultDetails(\'results_'+ lastPageID +'_'+ shapeID +'\', '+ lastPageID +','+ shapeID +'); TogglePlus(results_' + lastPageID + '_' + shapeID + ',\'img_' + lastPageID + '_' + shapeID + '\', hideResults)"><img src="plus.gif" alt="顯示/隱藏圖形詳細資料" width="13" height="9" border="0" id="img_'+ lastPageID +'_'+ shapeID +'"></a>\n'
+				strResultsHTML += '<a  class="blu1" href="JavaScript:FindQuerySelect(';
+
+				strResultsHTML += findArray[count].PageID + ",";
+				strResultsHTML += findArray[count].ShapeID + ",";
+				strResultsHTML += findArray[count].PinX + ",";
+				strResultsHTML += findArray[count].PinY;
+
+				strResultsHTML += ')">'+ findArray[count].Title +'</a></p>\n'
+
+				strResultsHTML += '</div>\n';
+				strResultsHTML += '<div class="indent" id="results_'+ lastPageID +'_'+ shapeID +'" style="display:none;width:100%;"></div>\n'
+			}
+
+		}
+		var divAdvSrch = document.all("hideAdvSrch");
+		var imgAS0 = document.all("as0");
+		
+		var tmpObj = document.all("hideResults");
+		if( tmpObj != null )
+		{
+			tmpObj.innerHTML = strResultsHTML;
+			tmpObj.open = "true";
+			tmpObj.style.display = "block";
+		}
+	}
+}
+
+function CreateSearchTokens (strUserString)
+{
+	var searchTokensArray = new Array();
+
+	var strToken = "";
+	var chCurChar;
+
+	for (var count = 0; count < strUserString.length; count++)
+	{
+		chCurChar = strUserString.charAt(count);
+		if (chCurChar == '"')
+		{
+			var nNextQuote = strUserString.indexOf('"', count + 1);
+			if (nNextQuote >= 0)
+			{
+				strToken = strUserString.slice(count + 1, nNextQuote);
+				searchTokensArray[searchTokensArray.length] = strToken;
+				strToken = "";
+				count = nNextQuote;
+			}
+		}
+		else if (chCurChar == ' ')
+		{
+			if (strToken.length > 0)
+			{
+				searchTokensArray[searchTokensArray.length] = strToken;
+			}
+
+			strToken = "";
+		}
+		else
+		{
+			strToken += chCurChar;
+		}
+	}
+
+	if (strToken.length > 0)
+	{
+		searchTokensArray[searchTokensArray.length] = strToken;
+	}
+
+	return searchTokensArray;
+}
+
+function populateSearchResultDetails( divID, pageID, shapeID )
+{
+	var tmpShape = FindShapeXML (pageID, shapeID);
+	var strOutput = CreatePropTable( tmpShape );
+	
+	var tmpObj = document.all(divID);
+	if( tmpObj != null )
+	{
+		tmpObj.innerHTML = strOutput;
+	}
+}
+
+function makeAdvancedFindCheckboxes(div)
+{
+	if (parent.xmlData)
+	{
+		var strOutput = "";
+
+		strOutput += "<INPUT type='checkbox' name='" + strShapeName + strChkBox + "' id='" + strShapeName + strChkBox + "' checked><label for='" + strShapeName + strChkBox + "'>" + strShapeName + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strShapeText + strChkBox + "' id='" + strShapeText + strChkBox + "' checked><label for='" + strShapeText + strChkBox + "'>" + strShapeText + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strProps + strChkBox + "' id='" + strProps + strChkBox + "' onclick='AdvSearchCustomPropCheck ()'checked ><label for='" + strProps + strChkBox + "'>" + strProps +"</label><br>\n";
+		strOutput += "<div id='divCPBoxes' style='margin-left:1em;'>";
+		
+		var objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label");
+		var filter = "";
+		var boolFirstPass = true;
+		var tmpPropName;
+		while( objNodes.length > 0)
+		{
+			tmpPropName = objNodes.item( 0 ).text;
+			var escapedPropName = parent.EscapeString(tmpPropName);
+			if( true == boolFirstPass )
+			{
+				filter = ". != '" + escapedPropName + "'";
+				boolFirstPass = false;
+			}
+			else
+			{
+				filter += " and . != '" + escapedPropName + "'";
+			}
+
+			tmpPropName = parent.HTMLEscape (tmpPropName);
+			strOutput += "<INPUT type='checkbox' name='" + tmpPropName + strPropChkBox + "' id='"+ tmpPropName + strPropChkBox + "' checked><label for='"+ tmpPropName + strPropChkBox + "'>" + tmpPropName +"</label><br>\n";
+
+			objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label["+ filter + "]");
+		}
+		strOutput += "</div>"
+		div.innerHTML = strOutput;
+	}
+}
+
+function AdvSearchCustomPropCheck ()
+{
+	for( count=0; count < document.theForm.length; count++ )
+	{
+		indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+		if( -1 != indexOfString )
+		{
+			document.theForm[count].disabled = !document.theForm[strProps + strChkBox].checked;
+		}
+	}
+}
+
+
+function CResultItem(title, pageID, shapeID, pinX, pinY)
+{
+	 this["Title"] = title;
+	 this["PageID"] = pageID;
+	 this["ShapeID"] = shapeID;
+	 this["PinX"] = pinX;
+	 this["PinY"] = pinY;
+}
+
+function FindParentPage(nodeObject)
+{
+	if(nodeObject == null)
+	{
+		return null;
+	}
+	if(nodeObject.baseName == "Page")
+		return nodeObject;
+	else
+		return FindParentPage(nodeObject.parentNode);
+}
+
+function QueryStringForMatch(shapeNode, regTextForFind, filterString)
+{
+	if (filterString.length > 0)
+	{
+		var nodesToCheck = shapeNode.selectNodes(filterString);
+
+		var nodeCount = nodesToCheck.length;
+		var stringToParse;
+		for(var ncount = 0; ncount < nodeCount; ncount++)
+		{
+			stringToParse = nodesToCheck.item(ncount).text;
+			stringToParse = stringToParse.toLowerCase ();
+			if(stringToParse.indexOf(regTextForFind) > -1)
+			{
+				return true;
+			}
+		}
+	}
+}
+
+function GetShapeTitle(shapeNode)
+{
+	var objTempName = null;
+	var objTempTextElement = shapeNode.selectSingleNode("./Text");
+	if(objTempTextElement != null)
+	{
+		var objTextNode = objTempTextElement.selectSingleNode("textnode()");
+		if (objTextNode != null)
+		{
+			return parent.HTMLEscape (objTextNode.text);
+		}
+	}
+
+	objTempName = shapeNode.selectSingleNode("./@Name");
+	if(objTempName != null)
+	{
+		return parent.HTMLEscape (objTempName.text);
+	}
+
+	return "";
+}
+
+function GetPageTitle(pageID)
+{
+	var pagesObj = parent.xmlData.selectSingleNode("VisioDocument/Pages");
+	if(!pagesObj)
+	{
+		return "";
+	}
+
+	var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+	var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+	if(!pageObj)
+	{
+		return "";
+	}
+
+	var pageNameNode = pageObj.selectSingleNode("@Name");
+	if(!pageNameNode)
+	{
+		return "";
+	}
+	return pageNameNode.text;
+}
+
+function Find(searchTokensArray, propsToSearchArray)
+{
+	var bXMLNotValid = false;
+	var findArray = new Array();
+	var findIndex = 0;
+
+	if (parent.xmlData != null && searchTokensArray.length > 0)
+	{
+		var fieldsToSearchArray = new Array();
+		var filterString = "";
+		if( null != propsToSearchArray &&
+			propsToSearchArray.length > 0 )
+		{
+			var propFilterString = "";
+			for( var count=0; count< propsToSearchArray.length; count++ )
+			{
+				if( count == 0 )
+				{
+					propFilterString = "[. = '" + parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+				else
+				{
+					propFilterString += " or . = '"+ parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+			}
+			propFilterString += "]";
+
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Prop[Label"+ propFilterString +"]/Value";
+		}
+
+		if (document.theForm[strShapeText + strChkBox].checked)
+		{
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Text";
+		}
+
+		if (fieldsToSearchArray.length > 0)
+		{
+			filterString = "(.//(";
+
+			for (var fieldCount = 0; fieldCount < fieldsToSearchArray.length; fieldCount++)
+			{
+				if (fieldCount != 0)
+				{
+					filterString += " | ";
+				}
+
+				filterString += fieldsToSearchArray[fieldCount];
+			}
+
+			filterString += ")/textnode())";
+		}
+
+		var objShapeNodes;
+
+		if (document.theForm[strShapeName + strChkBox].checked)
+		{
+			if (filterString.length > 0)
+			{
+				filterString += " | ";
+			}
+			filterString += "(@Name)";
+
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape");
+		}
+		else
+		{
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape[(Prop/Value | Prop/Label | Text)]");
+		}
+
+		var shapeCount = objShapeNodes.length;
+		var objTempData = new CResultItem("A Label","PageID","ShapeID","PinX","PinY");
+		var objTempShape = null;
+
+		for (count = 0; count < shapeCount; count++)
+		{		
+			objTempShape = objShapeNodes.item(count);
+
+			var objParentPageNode = FindParentPage(objTempShape);
+			if (objParentPageNode == null)
+			{
+				continue;
+			}
+
+			var objPageIDNode = objParentPageNode.selectSingleNode("@ID/textnode()");
+			if(objPageIDNode == null)
+			{
+				continue;
+			}
+			var pageID = objPageIDNode.text;
+
+			var pageIndex = parent.PageIndexFromID (pageID);
+			if (pageIndex < 0)
+			{
+				continue;
+			}
+
+			var objLayerMember = objTempShape.selectSingleNode("LayerMem/LayerMember");
+			if (objLayerMember != null && objLayerMember.text.length > 0)
+			{
+				var layerArray = objLayerMember.text.split (';');
+				var visibleLayer = false;
+				for (var layerCount = 0; (layerCount < layerArray.length) && !visibleLayer; layerCount++)
+				{
+					var objLayerVisible = objParentPageNode.selectSingleNode("Layer[@IX=" + layerArray[layerCount] + "]/Visible");
+					if (objLayerVisible != null)
+					{
+						 visibleLayer = (objLayerVisible.text != 0);
+					}
+				}
+				
+				if (!visibleLayer)
+				{
+					continue;
+				}
+			}
+
+			for (var tokenCount = 0; tokenCount < searchTokensArray.length; tokenCount++)
+			{
+				var textToFind = searchTokensArray[tokenCount];
+				textToFind = textToFind.toLowerCase ();
+
+				if (QueryStringForMatch(objTempShape, textToFind, filterString))
+				{
+					objTempData.Title = GetShapeTitle(objTempShape);
+					objTempData.PageID = pageID;
+
+					objShapeIDNode = objTempShape.selectSingleNode("@ID/textnode()");
+					if(objShapeIDNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.ShapeID = objShapeIDNode.text;
+					objPinXNode = objTempShape.selectSingleNode("XForm/PinX/textnode()");
+					if(objPinXNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinX = objPinXNode.text;
+					objPinYNode = objTempShape.selectSingleNode("XForm/PinY/textnode()");
+					if(objPinYNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinY = objPinYNode.text;
+
+					findArray[findIndex] = new CResultItem(objTempData.Title, objTempData.PageID, objTempData.ShapeID, objTempData.PinX, objTempData.PinY);
+					findIndex++;
+					break;
+				}
+			}
+		}
+		if(bXMLNotValid)
+		{
+			findArray.length = 0;
+		}
+	}
+
+	return findArray;
+}
+
+function FindQuerySelect(pageID, shapeID, pinX, pinY)
+{
+	if ((!widgets.GoTo && parent.g_FileList.length > 1) || (widgets.GoTo && parent.g_FileList[document.all("Select1").value].PageID != pageID))
+	{
+		parent.g_callBackFunctionArray[parent.g_callBackFunctionArray.length] = function () { parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY); };
+		parent.GoToPageByID(pageID);
+	}
+	else 
+	{
+		if (parent.viewMgr != null)
+		{
+			parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY);
+		}
+	}
+}
+
+function TreeSelect(pageID, shapeID)
+{
+	var shapeNode = FindShapeXML (pageID, shapeID);
+	if (shapeNode != null)
+	{
+		var pinXNode = shapeNode.selectSingleNode("XForm/PinX/textnode()");
+		var pinYNode = shapeNode.selectSingleNode("XForm/PinY/textnode()");
+
+		if (pinXNode != null && pinYNode != null)
+		{
+			FindQuerySelect (pageID, shapeID, pinXNode.text, pinYNode.text);
+		}
+	}
+}
+
+
+var g_RowStyleList = parent.g_RowStyleList;
+var FillPropPane = parent.FillPropPane;
+var CreatePropTable = parent.CreatePropTable;
+
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/frameset.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/frameset.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/frameset.js	(revision 21)
@@ -0,0 +1,653 @@
+
+var MSIE = false;
+var ver = 0;
+var indexOfMSIE = navigator.userAgent.indexOf("MSIE"); 
+if(indexOfMSIE != -1)
+{
+	MSIE = true;
+	ver = parseFloat(navigator.userAgent.substring(indexOfMSIE + 5, navigator.userAgent.indexOf(";", indexOfMSIE)));
+}
+
+var isMac = (navigator.appVersion.indexOf("Macintosh") >= 0);
+var isUpLevel = (MSIE && ver >= 5 && !isMac);
+
+var xmlData = XMLData("clonezilla_restore_flow_chart.files/data.xml");
+
+var g_RowStyleList = new  Array(
+ "propViewerEvenRow",
+ "propViewerOddRow"
+);
+
+
+var strShape	= "圖形名稱:";
+
+
+
+function XMLData(file)
+{
+	var temp = null;
+	if(isUpLevel)
+	{
+		temp = CreateObject("Microsoft.XMLDOM");
+		if (temp == null)
+		{
+			temp = CreateObject("MSXML2.DOMDocument");
+		}
+
+		if (temp != null)
+		{
+			temp.async = false;
+		
+			temp.load(file);
+			if (temp.parseError.errorCode != 0)
+			{
+				temp = null;
+			}
+		}
+	}
+
+	return temp;
+}
+
+function CreateObject (strObj)
+{
+	var obj = null;
+	eval ("try { obj = new ActiveXObject(strObj); } catch (e) {}");
+	return obj;
+}
+
+function doVersion()
+{
+	if(isUpLevel)
+	{
+		frmToolbar.divDownLevel.innerHTML = "";
+		frmToolbar.divUpLevel.innerHTML = frmWidgets.divData.innerHTML;
+	}
+}	
+	
+	
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData != null)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(pageObj == null)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function OnShapeKey(pageID, shapeID)
+{
+	var e = window.frmDrawing.event;
+	
+	if(e.keyCode == 13 && e.ctrlKey)		//ctrl + enter
+	{
+		UpdateProps (pageID, shapeID);
+	}
+	else if (e.keyCode == 13)
+	{
+		OnShapeClick (pageID, shapeID);
+	}
+}
+
+function OnShapeClick (pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var e = frmDrawing.window.event;
+		var elem = e.srcElement;
+
+		if (e != null && e.ctrlKey && frmToolbar.widgets && frmToolbar.widgets.Details)
+		{
+			UpdateProps (pageID, shapeID);
+		}
+		else
+		{
+			var shapeNode = FindShapeXML (pageID, shapeID);
+			var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+			if (hlObj != null)
+			{
+				if (hlObj.DoFunction.length > 0)
+				{
+					eval (hlObj.DoFunction);
+				}
+				else if (hlObj.Hyperlink.length > 0)
+				{
+					if (hlObj.NewWindow)
+					{
+						window.open (hlObj.Hyperlink);
+					}
+					else
+					{
+						top.location.href = hlObj.Hyperlink.substr (0, 510);
+					}
+				}
+				else if (elem != null)
+				{
+					var href = elem.origHref;
+					if (href == null)
+					{
+						href = elem.href;
+					}
+
+					var target = elem.origTarget;
+					if (target == null)
+					{
+						target = elem.target;
+					}
+
+					if (href && href.length > 0)
+					{
+						href = HTMLEscape (href);
+						if (target && target == "_blank")
+						{
+							window.open (href);
+						}
+						else
+						{
+							top.location.href = href.substr (0, 510);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return (!isUpLevel);
+}
+
+function UpdateProps(pageID, shapeID)
+{
+	var shape = FindShapeXML (pageID, shapeID);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function UpdatePropsByShapeName(pageName, shapeName)
+{
+	var shape = FindShapeXMLByName (pageName, shapeName);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function FillPropPane (shapeNode, outputDivObj )
+{
+	if (shapeNode != null && outputDivObj != null)
+	{
+		if(outputDivObj.style.display == "none")
+		{
+			frmToolbar.ToggleWidget(outputDivObj);
+		}
+	
+		var strCPHTML = "";
+		
+		var shapeNameAttr = shapeNode.attributes.getNamedItem ("Name");
+		if (shapeNameAttr)
+		{
+			strCPHTML += "<span class='p2' style='padding-left:2px;'>" + strShape + " " + HTMLEscape(shapeNameAttr.text) + "</span>";
+		}
+
+		var strTableHTML = CreatePropTable (shapeNode);
+		if(strTableHTML.indexOf("<table") == -1)
+		{
+			strTableHTML = "<p class='p2' style='margin-left:1em;margin-top:0em;'>" + strTableHTML + "</p>";
+		}
+
+		if (strTableHTML.length > 0)
+		{
+			strCPHTML += strTableHTML;
+		}
+		else
+		{
+			strCPHTML = strNoCustomPropertiesToDisplayText;
+		}
+		
+		outputDivObj.innerHTML = strCPHTML;
+		outputDivObj.minHeight = 75;
+	}
+}
+
+function CreatePropTable (shapeNode)
+{
+	var strCPHTML = "";
+	var strStartTable = "<table class='propViewerTABLE' borderColor='#999999' cellPadding='2' width='95%' border='1' summary='此表格包含圖形詳細資料'>";
+		strStartTable += "<THEAD class='propViewerTHEAD'><TH>標籤</TH><TH>值</TH></THEAD>";
+	var strEndTable = "</TABLE>";
+
+	if (shapeNode != null)
+	{
+		var propColl = shapeNode.selectNodes ("Prop");
+
+		var propCount = propColl.length;
+		for (var count = 0; count < propCount; count++)
+		{
+			strCPHTML += "<TR class='" + g_RowStyleList[count % 2] + "'>";
+			
+			var strLabelText = "";
+			oPropLabel = propColl.item(count).selectSingleNode("Label/textnode()");
+			if (oPropLabel != null)
+			{
+				strLabelText = HTMLEscape (oPropLabel.text);
+			}
+			else
+			{
+				oPropName = propColl.item(count).attributes.getNamedItem ("Name");
+				if (oPropName)
+				{
+					strLabelText = HTMLEscape (oPropName.text);
+				}
+			}
+
+			if (strLabelText.length > 0)
+			{
+				strCPHTML += "<TD class='propViewerTD'>" + strLabelText + "</TD>";
+				strCPHTML += "<TD class='propViewerTD'>"
+
+				var strValueText = "&nbsp;";
+				oPropValue = propColl.item(count).selectSingleNode("Value/textnode()");
+				if (oPropValue)
+				{
+					strValueText = HTMLEscape (oPropValue.text);
+				}
+
+				strCPHTML += strValueText + "</TD></TR>";
+			}
+		}
+
+		if(strCPHTML != "")
+		{
+			strCPHTML = strStartTable + strCPHTML + strEndTable;
+		}
+		else
+		{
+			strCPHTML = "沒有可使用的詳細資料。";
+		}
+	}
+
+	return strCPHTML;
+}
+
+function keyHandler()
+{
+	var e = frmDrawing.window.event;
+	if(e.keyCode == 13) //enter
+	{
+		e.srcElement.click();
+	}
+}
+
+function GoToPage(index)
+{
+	if (viewMgr)
+	{
+		viewMgr.loadPage (index);
+	}
+	else
+	{
+		DefPageLoad (index);
+	}
+}
+
+function GoToPageByID(pageID)
+{
+	var pageIndex = PageIndexFromID (pageID);
+	if (pageIndex >= 0)
+	{
+		GoToPage (pageIndex);
+	}
+}
+
+function PageIndexFromID (pageID)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageID == g_FileList[count].PageID)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromName (strPageName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strPageNameLower = strPageName;
+		strPageNameLower = strPageNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListPageName = g_FileList[count].PageName;
+			strFileListPageName = HTMLUnescape (strFileListPageName);
+			strFileListPageName = strFileListPageName.toLowerCase ();
+			if (strPageNameLower == strFileListPageName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromFileName (strFileName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strFileNameLower = strFileName;
+		strFileNameLower = strFileNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListFileName = g_FileList[count].PriImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+
+			strFileListFileName = g_FileList[count].SecImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromVisioPageIndex (pageIndex)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageIndex == g_FileList[count].PageIndex)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function FindShapeXMLByName (pageName, shapeName)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@Name $ieq$ "' + EscapeString (pageName) + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@Name $ieq$ "' + EscapeString (shapeName) + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function Unquote (str)
+{
+	var nStartIndex = 0;
+	var nEndIndex = str.length;
+
+	if (str.charAt (0) == '"')
+	{
+		nStartIndex = 1;
+	}
+
+	if (str.charAt (nEndIndex - 1) == '"')
+	{
+		nEndIndex -= 1;
+	}
+
+	return str.substring (nStartIndex, nEndIndex);
+}
+
+function ConvertXorYCoordinate(PosValue, OldMin, OldMax, NewMin, NewMax, MapBackwards)
+{
+	var OldMid = (OldMax - OldMin) / 2;
+	var NewMid = (NewMax - NewMin) / 2;
+	var ConvertResult = 1 * PosValue;
+	ConvertResult = ConvertResult - (OldMin + OldMid);
+	ConvertResult = ConvertResult / OldMid;
+	if(MapBackwards != 0)
+	{
+		ConvertResult = 0 - ConvertResult;
+	}
+	ConvertResult = ConvertResult * NewMid;
+	ConvertResult = ConvertResult + (NewMin + NewMid);
+	return ConvertResult;
+}
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.display = "";
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+		divObject.style.display = "none";
+	}
+	return divObject;
+}
+
+function EscapeString (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "\\\\";
+		}
+		else if (curChar == "\"")
+		{
+			strResult += "\\\"";
+		}
+		else if (curChar == "\'")
+		{
+			strResult += "\\\'";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLEscape (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "&#92;";
+		}
+		else if (curChar == '\"')
+		{
+			strResult += "&#34;";
+		}
+		else if (curChar == '\'')
+		{
+			strResult += "&#39;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#60;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#62;";
+		}
+		else if (curChar == '&')
+		{
+			strResult += "&#38;";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLUnescape (str)
+{
+	var strResult = "";
+	var strEscapePattern = "&#xx;";
+
+	for (var i = 0 ; i < str.length - strEscapePattern.length + 1; i++)
+	{
+		if (str.charAt(i) == '&' && 
+			str.charAt(i + 1) == '#' &&
+			str.charAt(i + 4) == ';')
+		{
+			var charCode = str.charAt(i + 2);
+			charCode += str.charAt(i + 3);
+
+			if (charCode == "34")
+			{
+				strResult += '"';
+			}
+			else if (charCode == "39")
+			{
+				strResult += '\'';
+			}
+			else if (charCode == "60")
+			{
+				strResult += '<';
+			}
+			else if (charCode == "62")
+			{
+				strResult += '>';
+			}
+			else if (charCode == "92")
+			{
+				strResult += '\\';
+			}
+			else if (charCode == "38")
+			{
+				strResult += '&';
+			}
+			
+			i = i + strEscapePattern.length - 1;
+		}
+		else
+		{
+			strResult += str.charAt(i);
+		}
+	}
+
+	strResult += str.substring (i, str.length);
+
+	return strResult;
+}
+
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/gif_1.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/gif_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/gif_1.htm	(revision 21)
@@ -0,0 +1,152 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>
+clonezilla_restore_flow_chart
+</title>
+<script type="text/javascript" language="javascript">
+function UpdateTooltip(){};
+function OnShapeClick(){};
+</script>
+
+<script src="gif_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+	}
+</script>
+
+
+
+<script type="text/jscript" language="jscript">
+
+var pageID = 0;
+
+var isUpLevel = parent.isUpLevel;
+var OnShapeClick = null;
+if (!parent.isMac)
+{
+	OnShapeClick = parent.OnShapeClick;
+}
+
+var OnShapeKey = parent.OnShapeKey;
+var UpdateTooltip = parent.UpdateTooltip;
+var clickMenu = parent.clickMenu;
+var toggleMenuDiv = parent.toggleMenuDiv;
+var toggleMenuLink = parent.toggleMenuLink;
+var GoToPage = parent.GoToPage;
+
+
+if (parent.isUpLevel)
+{
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			var fileEntry = parent.g_FileList[parent.g_CurPageIndex];
+			var fileToLoad = fileToLoad = fileEntry.PriImage;
+			if (fileEntry.SecImage.length > 0)
+			{
+				fileToLoad = fileEntry.SecImage;
+			}
+
+			location.replace(fileToLoad);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+
+	var viewMgr = new parent.CViewMgr();
+	parent.viewMgr = viewMgr;
+
+	viewMgr.SupportsDetails = true;
+	viewMgr.SupportsSearch = true;
+
+	viewMgr.put_Location = ViewMgrSetRasterLocation;
+	viewMgr.visBBoxLeft = 0.785735;
+	viewMgr.visBBoxRight = 7.009541;
+	viewMgr.visBBoxBottom = 0.313294;
+	viewMgr.visBBoxTop = 11.421144;
+	viewMgr.highlightDiv = null;
+}
+
+function load ()
+{
+	if(isUpLevel)
+	{
+		arrowdiv.innerHTML = '<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>';
+
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.CurPageUpdate (pageIndex);
+	}
+}
+
+function unload()
+{
+	if(isUpLevel)
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+}
+
+window.onload = load;
+window.onunload = unload;
+document.onclick = clickMenu;
+
+</script>
+</head>
+
+<body class="pageView" bgcolor="#FFFFFF">
+
+<div id=arrowdiv style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+<DIV id=RasterDiv>
+
+
+<center>
+  <IMG id="ConvertedImage" SRC="gif_1.gif" ALT="頁-1" name=RasterImage BORDER="0" USEMAP="#visImageMap">
+</center>
+
+<MAP NAME="visImageMap">
+  <AREA shape="POLYGON" tabindex="1" ALT="-g auto -x . ." origTitle="-g auto -x . ." TITLE="-g auto -x . ."  target="_top" COORDS="125,98,178,98,194,66,141,66,125,98" onmouseover="UpdateTooltip(this,0,9)" onfocus="UpdateTooltip(this,0,9)" onclick="return OnShapeClick(0,9);" onkeyup="OnShapeKey(0,9);">
+  <AREA shape="POLYGON" tabindex="1" ALT="-p choose -p true -p poweroff -p reboot" origTitle="-p choose -p true -p poweroff -p reboot" TITLE="-p choose -p true -p poweroff -p reboot"  target="_top" COORDS="125,241,178,241,194,209,141,209,125,241" onmouseover="UpdateTooltip(this,0,21)" onfocus="UpdateTooltip(this,0,21)" onclick="return OnShapeClick(0,21);" onkeyup="OnShapeKey(0,21);">
+  <AREA shape="POLYGON" tabindex="1" ALT="-y0 -y1 -y2 -y3" origTitle="-y0 -y1 -y2 -y3" TITLE="-y0 -y1 -y2 -y3"  target="_top" COORDS="125,194,178,194,194,162,141,162,125,194" onmouseover="UpdateTooltip(this,0,23)" onfocus="UpdateTooltip(this,0,23)" onclick="return OnShapeClick(0,23);" onkeyup="OnShapeKey(0,23);">
+  <AREA shape="POLYGON" tabindex="1" ALT="end" origTitle="end" TITLE="end"  target="_top" COORDS="144,600,174,600,174,600,175,600,175,600,175,600,175,600,176,600,176,600,176,600,177,599,177,599,177,599,177,599,178,599,178,599,178,599,178,598,179,598,179,598,179,598,179,598,180,597,180,597,180,597,180,597,180,596,180,596,180,596,181,595,181,595,181,595,181,595,181,594,181,594,181,594,181,593,181,593,181,593,181,593,181,592,181,592,181,592,181,591,181,591,181,591,181,590,181,590,181,590,180,590,180,589,180,589,180,589,180,589,180,588,180,588,179,588,179,588,179,587,179,587,178,587,178,587,178,587,178,586,177,586,177,586,177,586,177,586,176,586,176,586,176,586,175,586,175,586,175,585,175,585,174,585,174,585,144,585,143,585,143,585,143,585,143,586,142,586,142,586,142,586,141,586,141,586,141,586,141,586,140,586,140,586,140,587,139,587,139,587,139,587,139,587,139,588,138,588,138,588,138,588,138,589,138,589,137,589,137,589,137,590,137,590,137,590,137,590,137,591,137,591,137,591,137,592,137,592,137,592,136,593,136,593,137,593,137,593,137,594,137,594,137,594,137,595,137,595,137,595,137,595,137,596,137,596,137,596,138,597,138,597,138,597,138,597,138,598,139,598,139,598,139,598,139,598,139,599,140,599,140,599,140,599,141,599,141,599,141,599,141,600,142,600,142,600,142,600,143,600,143,600,143,600,143,600,144,600" onmouseover="UpdateTooltip(this,0,41)" onfocus="UpdateTooltip(this,0,41)" onclick="return OnShapeClick(0,41);" onkeyup="OnShapeKey(0,41);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Enter time to wait" origTitle="Enter time to wait" TITLE="Enter time to wait"  target="_top" COORDS="211,515,264,515,264,490,211,500,211,515" onmouseover="UpdateTooltip(this,0,51)" onfocus="UpdateTooltip(this,0,51)" onclick="return OnShapeClick(0,51);" onkeyup="OnShapeKey(0,51);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Enter clients" origTitle="Enter clients" TITLE="Enter clients"  target="_top" COORDS="62,470,115,470,115,445,62,455,62,470" onmouseover="UpdateTooltip(this,0,50)" onfocus="UpdateTooltip(this,0,50)" onclick="return OnShapeClick(0,50);" onkeyup="OnShapeKey(0,50);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Wait time" origTitle="Wait time" TITLE="Wait time"  target="_top" COORDS="138,503,159,514,180,503,159,491,138,503" onmouseover="UpdateTooltip(this,0,46)" onfocus="UpdateTooltip(this,0,46)" onclick="return OnShapeClick(0,46);" onkeyup="OnShapeKey(0,46);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Wait clients" origTitle="Wait clients" TITLE="Wait clients"  target="_top" COORDS="135,458,159,469,183,458,159,446,135,458" onmouseover="UpdateTooltip(this,0,42)" onfocus="UpdateTooltip(this,0,42)" onclick="return OnShapeClick(0,42);" onkeyup="OnShapeKey(0,42);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Multicast or unicast" origTitle="Multicast or unicast" TITLE="Multicast or unicast"  target="_top" COORDS="167,419,178,412,174,410,174,404,165,404,159,401,153,404,145,404,145,409,140,412,151,419,151,419,152,419,159,424,166,419,167,419,167,419" onmouseover="UpdateTooltip(this,0,35)" onfocus="UpdateTooltip(this,0,35)" onclick="return OnShapeClick(0,35);" onkeyup="OnShapeKey(0,35);">
+  <AREA shape="POLYGON" tabindex="1" ALT="選取欲還原的 part" origTitle="選取欲還原的 part" TITLE="選取欲還原的 part"  target="_top" COORDS="51,362,96,362,96,339,51,339,51,362" onmouseover="UpdateTooltip(this,0,11)" onfocus="UpdateTooltip(this,0,11)" onclick="return OnShapeClick(0,11);" onkeyup="OnShapeKey(0,11);">
+  <AREA shape="POLYGON" tabindex="1" ALT="欲還原  disk or parts" origTitle="欲還原  disk or parts" TITLE="欲還原  disk or parts"  target="_top" COORDS="174,357,191,350,170,342,170,342,170,342,160,338,129,350,146,357,146,357,147,357,160,362,173,357,174,357,174,357" onmouseover="UpdateTooltip(this,0,8)" onfocus="UpdateTooltip(this,0,8)" onclick="return OnShapeClick(0,8);" onkeyup="OnShapeKey(0,8);">
+  <AREA shape="POLYGON" tabindex="1" ALT="選取欲還原的 disk" origTitle="選取欲還原的 disk" TITLE="選取欲還原的 disk"  target="_top" COORDS="222,362,269,362,269,339,222,339,222,362" onmouseover="UpdateTooltip(this,0,32)" onfocus="UpdateTooltip(this,0,32)" onclick="return OnShapeClick(0,32);" onkeyup="OnShapeKey(0,32);">
+  <AREA shape="POLYGON" tabindex="1" ALT="選擇欲還原的印象檔" origTitle="選擇欲還原的印象檔" TITLE="選擇欲還原的印象檔"  target="_top" COORDS="131,321,189,321,189,298,131,298,131,321" onmouseover="UpdateTooltip(this,0,30)" onfocus="UpdateTooltip(this,0,30)" onclick="return OnShapeClick(0,30);" onkeyup="OnShapeKey(0,30);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="138,559,180,559,180,536,138,536,138,559" onmouseover="UpdateTooltip(this,0,26)" onfocus="UpdateTooltip(this,0,26)" onclick="return OnShapeClick(0,26);" onkeyup="OnShapeKey(0,26);">
+  <AREA shape="POLYGON" tabindex="1" ALT="-u is checked?" origTitle="-u is checked?" TITLE="-u is checked?"  target="_top" COORDS="180,273,188,270,180,267,180,265,177,265,174,265,160,259,146,265,142,265,140,265,140,267,132,270,140,273,140,275,142,275,143,275,160,282,177,275,177,275,180,275,180,273" onmouseover="UpdateTooltip(this,0,24)" onfocus="UpdateTooltip(this,0,24)" onclick="return OnShapeClick(0,24);" onkeyup="OnShapeKey(0,24);">
+  <AREA shape="POLYGON" tabindex="1" ALT="警告: 您選擇了  hn0 or hn1" origTitle="警告: 您選擇了  hn0 or hn1" TITLE="警告: 您選擇了  hn0 or hn1"  target="_top" COORDS="0,144,54,144,54,121,0,121,0,144" onmouseover="UpdateTooltip(this,0,16)" onfocus="UpdateTooltip(this,0,16)" onclick="return OnShapeClick(0,16);" onkeyup="OnShapeKey(0,16);">
+  <AREA shape="POLYGON" tabindex="1" ALT="輸入 hostname" origTitle="輸入 hostname" TITLE="輸入 hostname"  target="_top" COORDS="40,191,46,191,46,166,8,176,8,191,13,191,13,193,40,193,40,191" onmouseover="UpdateTooltip(this,0,14)" onfocus="UpdateTooltip(this,0,14)" onclick="return OnShapeClick(0,14);" onkeyup="OnShapeKey(0,14);">
+  <AREA shape="POLYGON" tabindex="1" ALT="欲先儲存的選項" origTitle="欲先儲存的選項" TITLE="欲先儲存的選項"  target="_top" COORDS="278,167,277,167,277,168,277,168,277,169,276,169,276,170,276,170,276,171,276,171,276,172,275,172,275,173,275,173,275,174,275,175,275,175,275,176,275,176,275,177,275,177,275,178,275,178,275,179,275,179,275,180,275,181,275,181,275,182,275,182,275,183,275,183,275,184,276,184,276,185,276,185,276,186,276,186,276,187,277,187,277,188,277,188,277,189,278,189,313,189,312,189,312,188,312,188,312,187,311,187,311,186,311,186,311,185,311,185,311,184,310,184,310,183,310,183,310,182,310,182,310,181,310,181,310,180,310,179,310,179,310,178,310,178,310,177,310,177,310,176,310,176,310,175,310,175,310,174,310,173,310,173,310,172,311,172,311,171,311,171,311,170,311,170,311,169,312,169,312,168,312,168,312,167,313,167,278,167" onmouseover="UpdateTooltip(this,0,12)" onfocus="UpdateTooltip(this,0,12)" onclick="return OnShapeClick(0,12);" onkeyup="OnShapeKey(0,12);">
+  <AREA shape="POLYGON" tabindex="1" ALT="-hn0 or -hn1 checked ?" origTitle="-hn0 or -hn1 checked ?" TITLE="-hn0 or -hn1 checked ?"  target="_top" COORDS="172,124,159,115,147,124,145,124,145,126,136,132,159,150,183,132,175,127,175,124,172,124" onmouseover="UpdateTooltip(this,0,10)" onfocus="UpdateTooltip(this,0,10)" onclick="return OnShapeClick(0,10);" onkeyup="OnShapeKey(0,10);">
+  <AREA shape="POLYGON" tabindex="1" ALT="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list" TITLE="讀取  ip_list or  MAC list"  target="_top" COORDS="308,25,294,25,294,26,293,26,293,27,293,27,293,28,293,28,292,29,292,29,292,30,292,30,292,31,292,31,292,32,292,33,291,33,291,34,291,34,291,35,291,35,291,36,291,36,291,37,291,37,291,38,291,38,291,39,291,39,292,40,292,41,292,41,292,42,292,42,292,43,292,43,292,44,293,44,293,45,293,45,293,46,293,46,294,47,294,47,336,47,336,47,335,46,335,46,335,45,335,45,335,44,334,44,334,43,334,43,334,42,334,42,334,41,334,41,334,40,333,39,333,39,333,38,333,38,333,37,333,37,333,36,333,36,333,35,333,35,333,34,333,34,333,33,334,33,334,32,334,31,334,31,334,30,334,30,334,29,334,29,335,28,335,28,335,27,335,27,335,26,336,26,336,25,320,25,320,25,308,25,308,25" onmouseover="UpdateTooltip(this,0,5)" onfocus="UpdateTooltip(this,0,5)" onclick="return OnShapeClick(0,5);" onkeyup="OnShapeKey(0,5);">
+  <AREA shape="POLYGON" tabindex="1" ALT="選擇 clients" origTitle="選擇 clients" TITLE="選擇 clients"  target="_top" COORDS="251,43,264,36,252,30,252,26,250,26,244,26,242,25,241,26,235,26,235,29,220,36,233,43,233,45,238,45,242,47,246,45,251,45,251,43" onmouseover="UpdateTooltip(this,0,4)" onfocus="UpdateTooltip(this,0,4)" onclick="return OnShapeClick(0,4);" onkeyup="OnShapeKey(0,4);">
+  <AREA shape="POLYGON" tabindex="1" ALT="是否選擇全部 clients" origTitle="是否選擇全部 clients" TITLE="是否選擇全部 clients"  target="_top" COORDS="168,28,159,25,151,28,142,28,142,31,125,36,159,47,194,36,177,31,177,28,168,28" onmouseover="UpdateTooltip(this,0,2)" onfocus="UpdateTooltip(this,0,2)" onclick="return OnShapeClick(0,2);" onkeyup="OnShapeKey(0,2);">
+  <AREA shape="POLYGON" tabindex="1" ALT="start" origTitle="start" TITLE="start"  target="_top" COORDS="144,15,175,15,175,15,175,15,176,15,176,14,176,14,176,14,177,14,177,14,177,14,178,14,178,14,178,14,178,14,179,13,179,13,179,13,179,13,180,13,180,12,180,12,180,12,180,12,181,11,181,11,181,11,181,11,181,10,181,10,181,10,181,10,182,9,182,9,182,9,182,8,182,8,182,8,182,7,182,7,182,7,182,7,182,6,182,6,182,6,182,5,181,5,181,5,181,5,181,4,181,4,181,4,181,3,181,3,180,3,180,3,180,2,180,2,180,2,179,2,179,2,179,1,179,1,178,1,178,1,178,1,178,1,177,1,177,0,177,0,176,0,176,0,176,0,176,0,175,0,175,0,175,0,144,0,144,0,144,0,143,0,143,0,143,0,143,0,142,0,142,0,142,1,141,1,141,1,141,1,141,1,140,1,140,1,140,2,140,2,139,2,139,2,139,2,139,3,139,3,138,3,138,3,138,4,138,4,138,4,138,5,138,5,138,5,137,5,137,6,137,6,137,6,137,7,137,7,137,7,137,7,137,8,137,8,137,8,137,9,137,9,137,9,138,10,138,10,138,10,138,10,138,11,138,11,138,11,138,11,139,12,139,12,139,12,139,12,139,13,140,13,140,13,140,13,140,13,141,14,141,14,141,14,141,14,142,14,142,14,142,14,143,14,143,14,143,14,143,15,144,15,144,15,144,15" onmouseover="UpdateTooltip(this,0,1)" onfocus="UpdateTooltip(this,0,1)" onclick="return OnShapeClick(0,1);" onkeyup="OnShapeKey(0,1);">
+</MAP>
+
+
+
+</DIV>
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/gif_1.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/gif_1.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/gif_1.js	(revision 21)
@@ -0,0 +1,64 @@
+function ViewMgrSetRasterLocation(pageID, shapeID, pinX, pinY)
+{
+	clickMenu ();
+
+	var rasterImage = document.images("RasterImage");
+
+	var imageLeft = 0;
+	var imageRight = imageLeft + rasterImage.offsetWidth;
+	var imageTop = 0;
+	var imageBottom = imageTop + rasterImage.offsetHeight;
+	
+	var xLong = parent.ConvertXorYCoordinate(pinX, viewMgr.visBBoxLeft, viewMgr.visBBoxRight, imageLeft, imageRight, 0);
+	var yLong = parent.ConvertXorYCoordinate(pinY, viewMgr.visBBoxBottom, viewMgr.visBBoxTop, imageTop, imageBottom, 1);
+	
+	var pixelWidth = document.body.scrollWidth;
+	var pixelHeight = document.body.scrollHeight;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+	var halfClientWidth = clientWidth;
+	var halfClientHeight = clientHeight;
+
+	xLong = xLong + rasterImage.offsetLeft;
+	yLong = yLong + rasterImage.offsetTop;
+	var xScrollAmount = 0;
+	var yScrollAmount = 0;
+
+	var xPrevScrollAmount = document.body.scrollLeft;
+	var yPrevScrollAmount = document.body.scrollTop;
+
+	var arrowHalfWidth = arrowdiv.clientWidth / 2;
+	var arrowHeight = arrowdiv.clientHeight;
+
+	if ((xLong - arrowHalfWidth) < xPrevScrollAmount)
+	{
+		// X off left of screen.
+		document.body.scrollLeft = xLong - arrowHalfWidth;
+	}
+	else if ((xLong + arrowHalfWidth) > (clientWidth + xPrevScrollAmount))
+	{
+		// X off right of screen. 
+		document.body.scrollLeft = xLong - clientWidth + xPrevScrollAmount + arrowHalfWidth;
+	}
+
+	if (yLong < yPrevScrollAmount)
+	{
+		// Y off top of screen.
+		document.body.scrollTop = yLong;
+	}
+	else if ((yLong + arrowHeight) > (clientHeight + yPrevScrollAmount))
+	{
+		// Y off bottom of screen. 
+		document.body.scrollTop = yLong - clientHeight + yPrevScrollAmount + arrowHeight;
+	}
+
+	arrowdiv.style.posLeft = xLong - arrowHalfWidth;
+	arrowdiv.style.posTop = yLong;
+	arrowdiv.style.visibility = "visible";
+
+	setTimeout( "parent.hideObject(arrowdiv)", 0 );
+	setTimeout( "parent.showObject(arrowdiv)", 1 );
+	setTimeout( "parent.hideObject(arrowdiv)", 2000 );
+}
+
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/keys.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/keys.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/keys.js	(revision 21)
@@ -0,0 +1,14 @@
+
+function keyHandler()
+{
+	var e = window.event;
+	var tag = e.srcElement.tagName;
+	var override = !(tag == "A" || tag == "INPUT" || tag == "SELECT" || tag == "FORM" || tag == "SUBMIT");
+	
+	if(override && e.keyCode == 13) //13 is <enter> key
+	{
+		e.srcElement.click();
+	}
+}
+
+document.onkeypress = keyHandler;
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/toolbar.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/toolbar.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/toolbar.htm	(revision 21)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<title></title>
+<style type="text/css">
+body
+{
+	font-family: Verdana, Sans-Serif;
+	font-size: small;
+}
+
+.toc
+{
+	font-size: medium;
+}
+</style>
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace("widgets.htm");
+	}
+</script>
+</head>
+
+
+<body leftmargin="0" topmargin="0" class="nav" dir=ltr>
+	<table id="tabToc" width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#999999" height="20">
+	<tr>
+	<td>&nbsp;</td>
+	</tr>
+	</table>
+
+<h1 class="toc">clonezilla_restore_flow_chart</h1>
+	<ul>
+		<li><a href="gif_1.htm" target="frmDrawing">頁-1</a></li>
+
+	</ul>
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/visio.css
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/visio.css	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/visio.css	(revision 21)
@@ -0,0 +1,263 @@
+﻿td {vertical-align: top;}
+
+.fillcolor
+{	vertical-align: top;
+	padding: 0pt;
+	background-color:#5C85EF;
+	filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#5C85EF', EndColorStr='#90B6FF');
+}
+
+A.blu1
+{
+	color: #3366CC;
+	text-decoration: none;
+	font-size: 95%;
+}
+
+A.blu1:visited
+{
+	color: #3366CC;
+	text-decoration: none
+}
+
+A.blu1:hover
+{
+	text-decoration: underline
+}
+
+.visrptTitle
+{
+	color:Black;
+	font-style:normal;
+}
+
+.visrptSummryLabel
+{
+	color:black;
+	font-weight:bold;
+}
+
+.visrptGrandTotalRow
+{	
+	color:Black;
+	font-weight:bold;
+}
+
+.visrptHeader
+{
+	color:White;
+	font-style:normal;
+	background-color:#5C85EF;
+}
+
+.visrptRowItem
+{
+	background-color:#DDDDDD;
+}
+
+.a1
+{	color: #ffffff;
+	text-decoration:none;
+}
+
+.p1
+{	font-family: PMingLiu, verdana, san-serif;
+	font-size: 60%;
+	COLOR: #ffffff;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: .8em;
+}
+
+.p2
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: 1.3em;
+}
+
+.label
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: bold;
+	font-size: 70%;
+	COLOR: #FFFFFF;
+	Margin: .2em,0pt,2pt,2pt;
+	line-height: 1em;
+	text-decoration:none;
+}
+
+.gobutton
+{
+	padding: 0pt, 2pt, 0pt, 0pt;
+	vertical-align: bottom;
+}
+
+.formText
+{
+	font-size: 70%;
+	width: 99%;
+	margin: 0;
+	padding: 0;
+}
+
+.holderTable
+{
+	padding-left:1px;
+	padding-right:1px;
+}
+
+.detsPara
+{
+	margin:2pt;
+	font-size:60%;
+}
+
+.navTocColor
+{
+	background-color:#999999;
+}
+
+.indent
+{
+	margin-left:15px;
+	margin-right:15px;
+	padding-top:0px;
+	margin-top:0px;
+}
+
+.results
+{	
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,10pt;
+	text-indent: -10pt;
+	line-height: 1.1em;
+}
+
+.propViewer 
+{
+	background-Color:white;
+	color: black;
+	font-family: PMingLiu, verdana, san-serif;
+	font-style: italic;
+	font-weight: bold;
+	font-size: 70%;
+	text-align: center;
+}
+
+.propViewerTABLE 
+{
+	margin: 2pt;
+	border-collapse:collapse;
+	border:solid 1px #999999;	
+}
+
+.propViewerTHEAD 
+{
+	border: 2px;
+	font-size: 60%;
+}
+
+.propViewerTD 
+{
+	font-family: PMingLiu, Verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #000000;
+	Margin: 0pt;
+	line-height: 1.1em;
+}
+
+.propViewerEvenRow 
+{
+	background-Color: #E7E7E7;
+}
+
+.propViewerOddRow 
+{
+	background-Color: #FFFFFF; 
+}
+
+BODY
+{
+	font-family: PMingLiu, Verdana, Sans-Serif;
+	font-size: medium;
+}
+
+DIV
+{
+	margin:0;
+	padding:0;
+}
+
+FORM
+{
+	margin:0;
+}
+
+.hiderScroll
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+	overflow:auto;
+}
+
+.hider
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+}
+
+.nav
+{
+	width: 100%;
+	height: 100%;
+	overflow: auto;	
+}
+
+.menuItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-color:white;
+	color:black;
+	cursor:hand;
+}
+
+.highlightItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-Color:highlight; 
+	color:white;
+	cursor:hand;
+}
+
+.hlMenu 
+{
+	border:black 2px outset; 
+	display:none; 
+	z-index:10; 
+	position:absolute; 
+	background-Color:white;
+}
+
+.innerhlMenu 
+{
+	padding-left:2pt;
+	padding-right:2pt;
+	background-Color:white;
+}
+
+.svgmessage
+{     FONT-FAMILY: PMingLiu, verdana, san-serif;
+      FONT-WEIGHT: normal;
+      font-size: 80%;
+      COLOR: #333333;
+      Margin: 1em;
+      line-height: 1.1em;
+}
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/vml_1.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/vml_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/vml_1.htm	(revision 21)
@@ -0,0 +1,219 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" 
+ xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>clonezilla_restore_flow_chart</title>
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script src="vml_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+
+	var pageID = 0;
+	var viewMgr = null;
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+	function getPNZ()
+	{
+		var rawHTML = VMLDiv.innerHTML;
+		var strReturn = ""
+		
+		strReturn = rawHTML.slice( rawHTML.indexOf( '<v:group' ), rawHTML.indexOf( "</v:shape>" ) );
+		strReturn += "</v:shape></v:group>\n";
+				
+		return strReturn;
+	}
+	
+	function load()
+	{
+		viewMgr = new parent.CViewMgr("ConvertedImage", "arrowDiv");
+
+		viewMgr.put_Location = ViewMgrSetVMLLocation;
+
+
+		viewMgr.visBBoxLeft = 0.785735;
+		viewMgr.visBBoxRight = 7.009541;
+		viewMgr.visBBoxBottom = 0.313294;
+		viewMgr.visBBoxTop = 11.421144;
+
+		viewMgr.Zoom = VMLZoomChange;
+		viewMgr.setView= VMLSetView;
+
+		viewMgr.SupportsDetails = true;
+		viewMgr.SupportsSearch = true;
+
+		parent.viewMgr = viewMgr;
+
+		fit();
+	}
+
+	function unload()
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+
+	function fit()
+	{
+		if(parent.frmToolbar)
+		{
+			if (parent.g_WidgetsLoaded)
+			{
+				var zoom100 = parent.frmToolbar.document.all('a100');
+				if (zoom100)
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					zoom100.click();
+				}
+				else
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					viewMgr.Zoom(100);
+				}
+			}
+			else
+			{
+				window.setTimeout("fit()", 500);
+			}
+		}	
+		else
+		{
+			parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+			viewMgr.Zoom(100);
+		}
+	}
+
+	function PostZoomProcessing (newZoomLevel)
+	{
+		parent.viewMgr.PostZoomProcessing = null;
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.viewMgr.getPNZ = getPNZ;
+		parent.CurPageUpdate (pageIndex);
+	}
+
+
+	
+	var isUpLevel = parent.isUpLevel;
+	var OnShapeClick = parent.OnShapeClick;
+	var OnShapeKey = parent.OnShapeKey;
+	var UpdateTooltip = parent.UpdateTooltip;
+	var clickMenu = parent.clickMenu;
+	var toggleMenuDiv = parent.toggleMenuDiv;
+	var toggleMenuLink = parent.toggleMenuLink;
+	var GoToPage = parent.GoToPage;
+
+	window.onload = load;
+	window.onunload = unload;
+	document.onclick = clickMenu;
+
+
+
+
+</script>
+
+</head>
+
+<body style="MARGIN:10px" onresize="VMLOnResize();" onscroll="VMLOnScroll();">
+
+<div id="arrowdiv" style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+
+
+
+<div id="VMLDiv" >
+
+
+<v:group  id="ConvertedImage" style="width:2.241228in;height:4.000000in;position:absolute;visibility=hidden;" coordSize="1121,2000" coordOrigin="-1000,-1000" >
+
+<v:shapetype 
+  id="VISSHAPE"
+  target="_parent"
+  coordsize="1121,2000"
+  coordorigin="-1000,-1000"
+  stroked="f"
+  strokecolor="red"
+  filled="t"
+>
+<v:fill opacity="0.0"/>
+</v:shapetype>
+
+
+<v:shape style="top:-1000.0;left:-1000.0;width:1120.6;height:2000.0;position:absolute" coordSize="1121,2000" coordOrigin="-1000,-1000" >
+<v:imagedata src="vml_1.emz"/>
+</v:shape>
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="start" origTitle="start"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -518,-949 l -418,-949 l -417,-949 l -416,-949 l -415,-949 l -414,-949 l -413,-949 l -412,-950 l -411,-950 l -410,-950 l -409,-950 l -408,-951 l -407,-951 l -406,-952 l -405,-952 l -404,-953 l -404,-953 l -403,-954 l -402,-955 l -401,-955 l -401,-956 l -400,-957 l -399,-958 l -399,-958 l -398,-959 l -397,-960 l -397,-961 l -396,-962 l -396,-963 l -396,-964 l -395,-964 l -395,-965 l -395,-966 l -394,-967 l -394,-968 l -394,-969 l -394,-970 l -394,-971 l -394,-972 l -394,-973 l -394,-974 l -394,-975 l -394,-976 l -394,-977 l -394,-978 l -395,-979 l -395,-980 l -395,-981 l -396,-982 l -396,-983 l -396,-984 l -397,-985 l -397,-986 l -398,-987 l -399,-987 l -399,-988 l -400,-989 l -401,-990 l -401,-990 l -402,-991 l -403,-992 l -404,-992 l -404,-993 l -405,-993 l -406,-994 l -407,-994 l -408,-995 l -409,-995 l -410,-996 l -411,-996 l -412,-996 l -413,-996 l -414,-997 l -415,-997 l -416,-997 l -417,-997 l -418,-997 l -518,-997 l -519,-997 l -520,-997 l -521,-997 l -522,-997 l -523,-996 l -524,-996 l -525,-996 l -526,-996 l -527,-995 l -528,-995 l -529,-994 l -530,-994 l -530,-993 l -531,-993 l -532,-992 l -533,-992 l -534,-991 l -534,-990 l -535,-990 l -536,-989 l -537,-988 l -537,-987 l -538,-987 l -538,-986 l -539,-985 l -539,-984 l -540,-983 l -540,-982 l -541,-981 l -541,-980 l -541,-979 l -541,-978 l -542,-977 l -542,-976 l -542,-975 l -542,-974 l -542,-973 l -542,-972 l -542,-971 l -542,-970 l -542,-969 l -542,-968 l -541,-967 l -541,-966 l -541,-965 l -541,-964 l -540,-964 l -540,-963 l -539,-962 l -539,-961 l -538,-960 l -538,-959 l -537,-958 l -537,-958 l -536,-957 l -535,-956 l -534,-955 l -534,-955 l -533,-954 l -532,-953 l -531,-953 l -530,-952 l -530,-952 l -529,-951 l -528,-951 l -527,-950 l -526,-950 l -525,-950 l -524,-950 l -523,-949 l -522,-949 l -521,-949 l -520,-949 l -519,-949 l -518,-949xe" onmouseover="UpdateTooltip(this,0,1)" onclick="OnShapeClick(0,1)" onfocus="UpdateTooltip(this,0,1);" onkeyup="OnShapeKey(0,1)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="是否選擇全部 clients" origTitle="是否選擇全部 clients"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -439,-904 l -468,-913 l -497,-904 l -528,-904 l -528,-894 l -584,-877 l -468,-841 l -352,-877 l -408,-894 l -408,-904 l -439,-904xe" onmouseover="UpdateTooltip(this,0,2)" onclick="OnShapeClick(0,2)" onfocus="UpdateTooltip(this,0,2);" onkeyup="OnShapeKey(0,2)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選擇 clients" origTitle="選擇 clients"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -163,-855 l -120,-877 l -163,-897 l -163,-910 l -169,-910 l -189,-910 l -194,-913 l -199,-910 l -219,-910 l -219,-901 l -268,-877 l -224,-855 l -224,-847 l -207,-847 l -194,-841 l -181,-847 l -163,-847 l -163,-855xe" onmouseover="UpdateTooltip(this,0,4)" onclick="OnShapeClick(0,4)" onfocus="UpdateTooltip(this,0,4);" onkeyup="OnShapeKey(0,4)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m 23,-913 l -22,-913 l -23,-911 l -23,-910 l -24,-908 l -25,-906 l -26,-905 l -26,-903 l -27,-901 l -27,-900 l -28,-898 l -28,-896 l -29,-894 l -29,-893 l -29,-891 l -30,-889 l -30,-887 l -30,-886 l -30,-884 l -31,-882 l -31,-880 l -31,-878 l -31,-877 l -31,-875 l -31,-873 l -31,-871 l -30,-870 l -30,-868 l -30,-866 l -30,-864 l -29,-862 l -29,-861 l -29,-859 l -28,-857 l -28,-855 l -27,-854 l -27,-852 l -26,-850 l -26,-849 l -25,-847 l -24,-845 l -23,-844 l -23,-842 l -22,-841 l 118,-841 l 117,-842 l 116,-844 l 115,-845 l 114,-847 l 114,-849 l 113,-850 l 113,-852 l 112,-854 l 111,-855 l 111,-857 l 111,-859 l 110,-861 l 110,-862 l 110,-864 l 109,-866 l 109,-868 l 109,-870 l 109,-871 l 109,-873 l 109,-875 l 109,-877 l 109,-878 l 109,-880 l 109,-882 l 109,-884 l 109,-886 l 109,-887 l 110,-889 l 110,-891 l 110,-893 l 111,-894 l 111,-896 l 111,-898 l 112,-900 l 113,-901 l 113,-903 l 114,-905 l 114,-906 l 115,-908 l 116,-910 l 117,-911 l 118,-913 l 63,-913 l 63,-916 l 23,-916 l 23,-913xe" onmouseover="UpdateTooltip(this,0,5)" onclick="OnShapeClick(0,5)" onfocus="UpdateTooltip(this,0,5);" onkeyup="OnShapeKey(0,5)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="-hn0 or -hn1 checked ?" origTitle="-hn0 or -hn1 checked ?"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -426,-584 l -468,-615 l -510,-584 l -515,-584 l -515,-580 l -546,-557 l -468,-499 l -389,-557 l -415,-576 l -415,-584 l -426,-584xe" onmouseover="UpdateTooltip(this,0,10)" onclick="OnShapeClick(0,10)" onfocus="UpdateTooltip(this,0,10);" onkeyup="OnShapeKey(0,10)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="欲先儲存的選項" origTitle="欲先儲存的選項"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -76,-443 l -77,-441 l -78,-440 l -79,-438 l -79,-436 l -80,-435 l -81,-433 l -81,-431 l -82,-429 l -82,-428 l -83,-426 l -83,-424 l -84,-422 l -84,-421 l -84,-419 l -85,-417 l -85,-415 l -85,-413 l -85,-412 l -86,-410 l -86,-408 l -86,-406 l -86,-404 l -86,-402 l -86,-401 l -85,-399 l -85,-397 l -85,-395 l -85,-393 l -84,-391 l -84,-390 l -84,-388 l -83,-386 l -83,-384 l -82,-383 l -82,-381 l -81,-379 l -81,-377 l -80,-376 l -79,-374 l -79,-372 l -78,-371 l -77,-369 l -76,-367 l 40,-367 l 39,-369 l 38,-371 l 38,-372 l 37,-374 l 36,-376 l 35,-377 l 35,-379 l 34,-381 l 34,-383 l 33,-384 l 33,-386 l 32,-388 l 32,-390 l 32,-391 l 31,-393 l 31,-395 l 31,-397 l 31,-399 l 31,-401 l 31,-402 l 31,-404 l 31,-406 l 31,-408 l 31,-410 l 31,-412 l 31,-413 l 31,-415 l 31,-417 l 32,-419 l 32,-421 l 32,-422 l 33,-424 l 33,-426 l 34,-428 l 34,-429 l 35,-431 l 35,-433 l 36,-435 l 37,-436 l 38,-438 l 38,-440 l 39,-441 l 40,-443 l -76,-443xe" onmouseover="UpdateTooltip(this,0,12)" onclick="OnShapeClick(0,12)" onfocus="UpdateTooltip(this,0,12);" onkeyup="OnShapeKey(0,12)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="輸入 hostname" origTitle="輸入 hostname"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -863,-362 l -845,-362 l -845,-447 l -971,-412 l -971,-362 l -953,-362 l -953,-357 l -863,-357 l -863,-362xe" onmouseover="UpdateTooltip(this,0,14)" onclick="OnShapeClick(0,14)" onfocus="UpdateTooltip(this,0,14);" onkeyup="OnShapeKey(0,14)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="警告: 您選擇了  hn0 or hn1" origTitle="警告: 您選擇了  hn0 or hn1"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -997,-519 l -819,-519 l -819,-595 l -997,-595 l -997,-519xe" onmouseover="UpdateTooltip(this,0,16)" onclick="OnShapeClick(0,16)" onfocus="UpdateTooltip(this,0,16);" onkeyup="OnShapeKey(0,16)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="-u is checked?" origTitle="-u is checked?"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -399,-88 l -372,-99 l -399,-110 l -399,-118 l -409,-118 l -419,-118 l -467,-137 l -514,-118 l -526,-118 l -534,-118 l -534,-110 l -561,-99 l -534,-88 l -534,-84 l -526,-84 l -523,-84 l -467,-61 l -410,-84 l -409,-84 l -399,-84 l -399,-88xe" onmouseover="UpdateTooltip(this,0,24)" onclick="OnShapeClick(0,24)" onfocus="UpdateTooltip(this,0,24);" onkeyup="OnShapeKey(0,24)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -539,861 l -401,861 l -401,785 l -539,785 l -539,861xe" onmouseover="UpdateTooltip(this,0,26)" onclick="OnShapeClick(0,26)" onfocus="UpdateTooltip(this,0,26);" onkeyup="OnShapeKey(0,26)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選擇欲還原的印象檔" origTitle="選擇欲還原的印象檔"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -562,68 l -371,68 l -371,-7 l -562,-7 l -562,68xe" onmouseover="UpdateTooltip(this,0,30)" onclick="OnShapeClick(0,30)" onfocus="UpdateTooltip(this,0,30);" onkeyup="OnShapeKey(0,30)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選取欲還原的 disk" origTitle="選取欲還原的 disk"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -259,205 l -103,205 l -103,128 l -259,128 l -259,205xe" onmouseover="UpdateTooltip(this,0,32)" onclick="OnShapeClick(0,32)" onfocus="UpdateTooltip(this,0,32);" onkeyup="OnShapeKey(0,32)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="欲還原  disk or parts" origTitle="欲還原  disk or parts"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -420,189 l -365,166 l -432,140 l -432,139 l -432,139 l -467,126 l -568,166 l -513,189 l -513,190 l -509,190 l -467,207 l -424,190 l -420,190 l -420,189xe" onmouseover="UpdateTooltip(this,0,8)" onclick="OnShapeClick(0,8)" onfocus="UpdateTooltip(this,0,8);" onkeyup="OnShapeKey(0,8)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選取欲還原的 part" origTitle="選取欲還原的 part"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -827,205 l -678,205 l -678,128 l -827,128 l -827,205xe" onmouseover="UpdateTooltip(this,0,11)" onclick="OnShapeClick(0,11)" onfocus="UpdateTooltip(this,0,11);" onkeyup="OnShapeKey(0,11)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Multicast or unicast" origTitle="Multicast or unicast"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -443,395 l -406,373 l -419,365 l -419,346 l -451,346 l -470,335 l -489,346 l -516,346 l -516,362 l -534,373 l -496,395 l -496,397 l -494,397 l -470,411 l -446,397 l -443,397 l -443,395xe" onmouseover="UpdateTooltip(this,0,35)" onclick="OnShapeClick(0,35)" onfocus="UpdateTooltip(this,0,35);" onkeyup="OnShapeKey(0,35)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Wait clients" origTitle="Wait clients"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -550,524 l -470,562 l -391,524 l -470,485 l -550,524xe" onmouseover="UpdateTooltip(this,0,42)" onclick="OnShapeClick(0,42)" onfocus="UpdateTooltip(this,0,42);" onkeyup="OnShapeKey(0,42)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Wait time" origTitle="Wait time"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -541,673 l -470,712 l -400,673 l -470,635 l -541,673xe" onmouseover="UpdateTooltip(this,0,46)" onclick="OnShapeClick(0,46)" onfocus="UpdateTooltip(this,0,46);" onkeyup="OnShapeKey(0,46)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Enter clients" origTitle="Enter clients"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -791,566 l -615,566 l -615,481 l -791,517 l -791,566xe" onmouseover="UpdateTooltip(this,0,50)" onclick="OnShapeClick(0,50)" onfocus="UpdateTooltip(this,0,50);" onkeyup="OnShapeKey(0,50)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Enter time to wait" origTitle="Enter time to wait"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -299,716 l -122,716 l -122,631 l -299,666 l -299,716xe" onmouseover="UpdateTooltip(this,0,51)" onclick="OnShapeClick(0,51)" onfocus="UpdateTooltip(this,0,51);" onkeyup="OnShapeKey(0,51)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="end" origTitle="end"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -520,997 l -420,997 l -419,997 l -418,997 l -417,997 l -416,997 l -415,996 l -414,996 l -413,996 l -412,996 l -411,995 l -410,995 l -409,994 l -408,994 l -408,993 l -407,993 l -406,992 l -405,992 l -404,991 l -404,990 l -403,990 l -402,989 l -401,988 l -401,987 l -400,987 l -400,986 l -399,985 l -399,984 l -398,983 l -398,982 l -397,981 l -397,980 l -397,979 l -397,978 l -396,977 l -396,976 l -396,975 l -396,974 l -396,973 l -396,972 l -396,971 l -396,970 l -396,969 l -396,968 l -397,967 l -397,966 l -397,965 l -397,964 l -398,964 l -398,963 l -399,962 l -399,961 l -400,960 l -400,959 l -401,958 l -401,958 l -402,957 l -403,956 l -404,955 l -404,955 l -405,954 l -406,953 l -407,953 l -408,952 l -408,952 l -409,951 l -410,951 l -411,950 l -412,950 l -413,950 l -414,950 l -415,949 l -416,949 l -417,949 l -418,949 l -419,949 l -420,949 l -520,949 l -521,949 l -522,949 l -523,949 l -524,949 l -525,949 l -526,950 l -527,950 l -528,950 l -529,950 l -530,951 l -531,951 l -532,952 l -533,952 l -534,953 l -534,953 l -535,954 l -536,955 l -537,955 l -537,956 l -538,957 l -539,958 l -539,958 l -540,959 l -541,960 l -541,961 l -542,962 l -542,963 l -542,964 l -543,964 l -543,965 l -543,966 l -544,967 l -544,968 l -544,969 l -544,970 l -544,971 l -544,972 l -544,973 l -544,974 l -544,975 l -544,976 l -544,977 l -544,978 l -543,979 l -543,980 l -543,981 l -542,982 l -542,983 l -542,984 l -541,985 l -541,986 l -540,987 l -539,987 l -539,988 l -538,989 l -537,990 l -537,990 l -536,991 l -535,992 l -534,992 l -534,993 l -533,993 l -532,994 l -531,994 l -530,995 l -529,995 l -528,996 l -527,996 l -526,996 l -525,996 l -524,997 l -523,997 l -522,997 l -521,997 l -520,997xe" onmouseover="UpdateTooltip(this,0,41)" onclick="OnShapeClick(0,41)" onfocus="UpdateTooltip(this,0,41);" onkeyup="OnShapeKey(0,41)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="-y0 -y1 -y2 -y3" origTitle="-y0 -y1 -y2 -y3"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -583,-352 l -406,-352 l -353,-458 l -530,-458 l -583,-352xe" onmouseover="UpdateTooltip(this,0,23)" onclick="OnShapeClick(0,23)" onfocus="UpdateTooltip(this,0,23);" onkeyup="OnShapeKey(0,23)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="-p choose -p true -p poweroff -p reboot" origTitle="-p choose -p true -p poweroff -p reboot"  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -583,-195 l -406,-195 l -353,-301 l -530,-301 l -583,-195xe" onmouseover="UpdateTooltip(this,0,21)" onclick="OnShapeClick(0,21)" onfocus="UpdateTooltip(this,0,21);" onkeyup="OnShapeKey(0,21)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="-g auto -x . ." origTitle="-g auto -x . ."  style="top:-1000;left:-1000;width:1121;height:2000;position:absolute" path=" m -583,-671 l -406,-671 l -353,-777 l -530,-777 l -583,-671xe" onmouseover="UpdateTooltip(this,0,9)" onclick="OnShapeClick(0,9)" onfocus="UpdateTooltip(this,0,9);" onkeyup="OnShapeKey(0,9)"/> 
+
+</v:group>
+
+
+
+</div>
+
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/vml_1.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/vml_1.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/vml_1.js	(revision 21)
@@ -0,0 +1,221 @@
+
+function ViewMgrSetVMLLocation(pageID, shapeID, pinX, pinY)
+{
+	doc = parent.frmDrawing.document;
+	if (this.highlightDiv != null)
+	{
+		clickMenu ();
+
+		var VMLImage = this.s;
+
+		var imageLeft = 0;
+		var imageRight = imageLeft + VMLImage.pixelWidth;
+		var imageTop = 0;
+		var imageBottom = imageTop + VMLImage.pixelHeight;
+
+		var xLong = parent.ConvertXorYCoordinate(pinX, this.visBBoxLeft, this.visBBoxRight, imageLeft, imageRight, 0);
+		var yLong = parent.ConvertXorYCoordinate(pinY, this.visBBoxBottom, this.visBBoxTop, imageTop, imageBottom, 1);
+
+		xLong += doc.all['ConvertedImage'].style.posLeft;
+		yLong += doc.all['ConvertedImage'].style.posTop;
+
+		var arrowHalfWidth = viewMgr.highlightDiv.clientWidth / 2;
+		var arrowHeight = viewMgr.highlightDiv.clientHeight;
+
+		var boolNeedToScroll = false;
+
+		if( !( (xLong - arrowHalfWidth) > doc.body.scrollLeft && (xLong + arrowHalfWidth) < (doc.body.scrollLeft + doc.body.clientWidth) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( !( (yLong - arrowHeight) > doc.body.scrollTop && (yLong + arrowHeight) < (doc.body.scrollTop + doc.body.clientHeight) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( boolNeedToScroll == true )
+		{
+			window.scrollTo( xLong - doc.body.clientWidth / 2, yLong - doc.body.clientHeight / 2);
+		}
+		
+		this.highlightDiv.style.posLeft = xLong - arrowHalfWidth;
+		this.highlightDiv.style.posTop = yLong;
+		this.highlightDiv.style.visibility = "visible";
+
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 0 );
+		setTimeout( "parent.showObject(viewMgr.highlightDiv)", 1 );
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 2500 );
+	}
+}
+
+function VMLZoomChange(size)
+{
+	if(size)
+	{
+		if(size == "up")
+		{
+			size = zoomLast + 50;
+		}
+		else if(size == "down")
+		{
+			size = zoomLast - 50;
+		}
+		
+		size = parseInt(size);
+		if(typeof(size) != "number")
+			size = 100;
+	}
+	else
+	{
+		size = 100;
+	}
+
+	clickMenu ();
+
+	viewMgr.zoomLast = size;
+
+	var zoomFactor = size/100;
+
+	var width = this.s.pixelWidth;
+	var height = this.s.pixelHeight;
+
+	var margin = parseInt(document.body.style.margin) * 2;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+
+	var newScrollLeft = document.body.scrollLeft;
+	var newScrollTop = document.body.scrollTop;
+
+	var winwidth = clientWidth - margin;
+	var winheight = clientHeight - margin;
+
+	var widthRatio = winwidth / width;
+	var heightRatio = winheight / height;
+
+	if (widthRatio < heightRatio)
+	{
+		width = zoomFactor * winwidth;
+		height = width / this.origWH;
+	}
+	else
+	{
+		height = zoomFactor * winheight;
+		width = height * this.origWH;
+	}
+
+	this.s.pixelWidth = Math.max(width,1);
+	this.s.pixelHeight = Math.max(height,1);
+
+	this.sizeLast = size;
+
+	var centerX = (zoomFactor / viewMgr.zoomFactor) * (newScrollLeft + (clientWidth / 2) - this.s.posLeft);
+	var centerY = (zoomFactor / viewMgr.zoomFactor) * (newScrollTop + (clientHeight / 2) - this.s.posTop);
+
+	viewMgr.zoomFactor = zoomFactor;
+
+	if (width <= clientWidth)
+	{
+		this.s.posLeft = Math.max( 0, (clientWidth / 2) - (width / 2));
+	}
+	else
+	{
+		var left = centerX - (clientWidth / 2);
+		if ( left >= 0 )
+		{
+			this.s.posLeft = 0;
+			newScrollLeft = left;
+		}
+		else
+		{
+			this.s.posLeft = -left;
+			newScrollLeft = 0;
+		}
+	}
+
+	if (height <= clientHeight)
+	{
+		this.s.posTop = Math.max( 0, (clientHeight / 2) - (height / 2));
+	}
+	else
+	{
+		var top = centerY - (clientHeight / 2);
+		if ( top >= 0 )
+		{
+			this.s.posTop = 0;
+			newScrollTop = top;
+		}
+		else
+		{
+			this.s.posTop = -top;
+			newScrollTop = 0;
+		}
+	}
+
+	window.scrollTo(newScrollLeft, newScrollTop);
+
+	this.s.visibility = "visible";
+
+	var newXOffsetPercent = document.body.scrollLeft / this.s.pixelWidth;
+	var newYOffsetPercent = document.body.scrollTop / this.s.pixelHeight;
+	var newWidthPercent = document.body.clientWidth / this.s.pixelWidth;
+	var newHeightPercent = document.body.clientHeight / this.s.pixelHeight;
+
+	if (viewMgr.viewChanged)
+	{
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, newWidthPercent, newHeightPercent);
+	}
+
+	if (viewMgr.PostZoomProcessing)
+	{
+		viewMgr.PostZoomProcessing(size);
+	}
+}
+
+function VMLSetView (xOffsetPercent, yOffsetPercent)
+{
+	var leftPixelOffset = xOffsetPercent * this.s.pixelWidth;
+	var topPixelOffset = yOffsetPercent * this.s.pixelHeight;
+
+	window.scrollTo (leftPixelOffset - this.s.posLeft, topPixelOffset - this.s.posTop);
+
+	if (viewMgr.PostSetViewProcessing)
+	{
+		viewMgr.PostSetViewProcessing();
+	}
+}
+
+function VMLOnResize ()
+{
+	if (viewMgr.zoomLast == 100)
+	{
+		viewMgr.Zoom(100);
+	}
+
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newWidthPercent = document.body.clientWidth / image.style.pixelWidth;
+		var newHeightPercent = document.body.clientHeight / image.style.pixelHeight;
+
+		viewMgr.viewChanged (null, null, newWidthPercent, newHeightPercent);
+	}
+}
+
+function VMLOnScroll ()
+{
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newXOffsetPercent = document.body.scrollLeft / image.style.pixelWidth;
+		var newYOffsetPercent = document.body.scrollTop / image.style.pixelHeight;
+
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, null, null);
+	}
+}
+
+
+
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/widgets.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/widgets.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/widgets.htm	(revision 21)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>clonezilla_restore_flow_chart</title>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link href="visio.css" rel="stylesheet">
+<script src="keys.js" type="text/jscript" language="jscript"></script>
+<script src="find.js" type="text/jscript" language="jscript"></script>
+<script type="text/jscript" language="jscript">
+	
+	var imgMin = new Image();
+	imgMin.src = "minimize.gif";
+	
+	var imgMax = new Image();
+	imgMax.src = "maximize.gif";
+
+	var fileList = parent.g_FileList;
+	
+	function Widgets()
+	{
+		this.GoTo = null;
+		this.Search = null;
+		this.Details = null;
+		this.PNZ = null;
+
+		this.divCount = 0;
+		
+		this.OpenText = "全部摺疊";
+		this.OpenAlt = "全部摺疊";
+		this.ClosedText = "全部展開";
+		this.ClosedAlt = "全部展開";
+
+		this.Display = "";
+		this.Img = imgMin;
+		this.Text = this.OpenText;
+		this.Alt = this.OpenAlt;
+		
+		this.ToggleAll = ToggleAll;
+		this.ToggleWidget = ToggleWidget;
+		this.Add = Add;
+	}		
+
+	function Add(div, name)
+	{
+		tmpStr = "this." + name + " = new Widget(div);"
+		eval(tmpStr);
+		var thisWidget = eval("this." + name);
+	}
+
+	function Widget(div)
+	{
+		return div;
+	}	
+
+	function ToggleAll()
+	{
+		var OpenCloseFunc = Widget;
+
+		if(this.Display == "")
+		{
+			this.Display = "none";
+			this.Img = imgMax;
+			this.Text = this.ClosedText;
+			this.Alt = this.ClosedAlt;
+			expparent00.title = this.ClosedAlt;
+			OpenCloseFunc = CloseWidget;
+		}
+		else
+		{
+			this.Display = "";
+			this.Img = imgMin;
+			this.Text = this.OpenText;
+			this.Alt = this.OpenAlt;
+			expparent00.title = this.OpenAlt;
+			OpenCloseFunc = OpenWidget;
+		}
+		exp00.src = this.Img.src;	
+		textExp.innerText = this.Text;
+		exp00.alt = this.Alt;
+	
+		if(this.GoTo)
+		{
+			OpenCloseFunc(this.GoTo)
+		}
+		if(this.Search)
+		{
+			OpenCloseFunc(this.Search)
+		}
+		if(this.Details)
+		{
+			OpenCloseFunc(this.Details)
+		}
+		if(this.PNZ)
+		{
+			OpenCloseFunc(this.PNZ)
+		}
+	}
+
+	function ToggleNav()
+	{
+		if(divCollapsedNav.style.display == "none")
+		{
+			divCollapsedNav.style.display = "";
+			divOpenNav.style.display = "none";
+			parent.frmstOuter.cols = "20,*"
+			parent.document.all ('frmToolbar').noResize = true;
+		}
+		else
+		{
+			divOpenNav.style.display = "";
+			divCollapsedNav.style.display = "none";
+			parent.frmstOuter.cols = "237,*"
+			parent.document.all ('frmToolbar').noResize = false;
+		}
+	}
+	
+	function ToggleWidget(div)
+	{
+		if(div.style.display == "none")
+		{
+			OpenWidget(div);
+		}
+		else
+		{
+			CloseWidget(div);
+		}
+	}
+
+	function OpenWidget(div)
+	{
+		document.all(div.img).src = imgMin.src;
+		div.style.display = "";
+		document.all(div.img).alt = div.openAlt;
+		document.all(div.img + "1").title = div.openAlt;
+		document.all(div.img + "2").title = div.openAlt;
+	}
+
+	function CloseWidget(div)
+	{
+		document.all(div.img).src = imgMax.src;
+		div.style.display = "none";
+		document.all(div.img).alt = div.closedAlt;
+		document.all(div.img + "1").title = div.closedAlt;
+		document.all(div.img + "2").title = div.closedAlt;
+	}
+
+	function load()
+	{
+		parent.g_WidgetsLoaded = true;
+
+		if (parent.g_LoadingWidgets)
+		{
+			parent.g_LoadingWidgets = false;
+			parent.location.reload();
+		}
+	}
+
+	function unload()
+	{
+		parent.g_LoadingWidgets = true;
+	}
+	
+		
+	var widgets = new Widgets();
+
+</script>
+
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divOpenNav" class="nav">
+
+	<table id="tabToc" width="100%" class="navTocColor" style="margin-bottom:1px;" cellspacing="0" cellpadding="0" border="0" height="20" dir=ltr>
+	<tr>
+	<td width="2"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" id="linkNavOpen"><img src="toc.gif" alt="摺疊巡覽框架" width="22" height="17" border="0"></a></td>
+	<td><p class="p1"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" class="a1">隱藏</a></p></td>
+	<td align="right"><p class="p1"><a href="javascript:widgets.ToggleAll()" id="textExp" class="a1">全部摺疊</a></p></td>
+	<td width="2">
+		<div style="padding:2pt,1.5pt,0pt,0pt"><a href="javascript:widgets.ToggleAll()" title="全部摺疊" id="expparent00"><img id="exp00" alt="全部摺疊" src="minimize.gif" width="15" height="15" border="0"></a></div>
+	</td>
+	</tr>
+	</table>
+	
+	
+
+	
+	<div id="divPNZ" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp41" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><p class="label">全景和縮放</p></a></td>
+				<td width="15"><a id="exp42" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><img id="exp4" alt="摺疊全景和縮放" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hidePNZ" style="text-align:right;" img="exp4" class="hiderScroll" openAlt="摺疊全景和縮放" closedAlt="展開全景和縮放">
+				<table width="220" border="0" cellpadding="0" cellspacing="0">
+				<tr>
+				<td align="center" valign="middle">
+					<iframe title="全景和縮放視窗" longdesc="全景和縮放視窗" id="ifrmPNZ" src="zoom.htm" width="170" height="170" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="border: #cccccc 1px solid;"></iframe>
+				</td>
+					
+				<td>
+					<table id="tabScale" width="17" cellspacing="0" cellpadding="0" border="0">
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放頁面至 100%"><img src="fullpage.gif" alt="縮放頁面至 100%" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(1);" title="拉近"><img src="panplus.gif" alt="拉近" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(500);" title="縮放成 500%"><img id="t500" src="tick-off.gif" alt="縮放成 500%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(450);" title="縮放成 450%"><img id="t450" src="tick-off.gif" alt="縮放成 450%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(400);" title="縮放成 400%"><img id="t400" src="tick-off.gif" alt="縮放成 400%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(350);" title="縮放成 350%"><img id="t350" src="tick-off.gif" alt="縮放成 350%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(300);" title="縮放成 300%"><img id="t300" src="tick-off.gif" alt="縮放成 300%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(250);" title="縮放成 250%"><img id="t250" src="tick-off.gif" alt="縮放成 250%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(200);" title="縮放成 200%"><img id="t200" src="tick-off.gif" alt="縮放成 200%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(150);" title="縮放成 150%"><img id="t150" src="tick-off.gif" alt="縮放成 150%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放成 100%" id="a100"><img id="t100" src="tick-on.gif" alt="縮放成 100%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(50);" title="縮放成 50%"><img id="t50" src="tick-off.gif" alt="縮放成 50%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(10);" title="縮放成 10%"><img id="t10" src="tick-off.gif" alt="縮放成 10%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(-1);" title="拉遠"><img src="panminus.gif" alt="拉遠" border="0"></a></td></tr>
+					</table>
+				</td>
+				</tr>
+				</table>
+			</div>			
+		</td></tr>
+		</table>
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hidePNZ, "PNZ");
+
+			var zoomLevels = new Array(10, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500);
+
+			var tickOff = new Image();
+			tickOff.src = "tick-off.gif";
+			
+			var tickFoc = new Image();
+			tickFoc.src = "tick-foc.gif";
+			
+			var tickOn = new Image();
+			tickOn.src = "tick-on.gif";
+
+			function tickFocus()
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickFoc.src;
+				}
+			}			
+			
+			function tickBlur(percentZoom)
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickOff.src;
+				}
+			}
+
+			function tickSelect(percentZoom)
+			{
+				if (parent.viewMgr &&
+					parent.viewMgr.Zoom)
+				{
+					changeTick(percentZoom);
+					parent.viewMgr.Zoom(percentZoom);					
+				}
+
+				if(frames.item(0).zoomRectDiv)
+				{
+					frames.item(0).g_width = parseInt(frames.item(0).zoomRectDiv.style.pixelWidth) 
+					frames.item(0).g_height = parseInt(frames.item(0).zoomRectDiv.style.pixelHeight)
+					frames.item(0).g_newLeft = parseInt(frames.item(0).zoomRectDiv.style.left)
+					frames.item(0).g_newTop = parseInt(frames.item(0).zoomRectDiv.style.top)
+				}
+			}
+
+			function changeTick(percentZoom)
+			{
+				img = elemScale.all("t" + percentZoom);
+									
+				img.src = tickOn.src;
+				
+				if(elemScale.tickSelected && elemScale.tickSelected != img)
+				{
+					elemScale.tickSelected.src = tickOff.src;
+				}
+				elemScale.tickSelected = img;
+			}
+			
+			function ZoomUpDown(increment)
+			{
+				if (elemScale.tickSelected)
+				{
+					var curZoomLevel = elemScale.tickSelected.id.substring (1);
+					var newZoomLevelIndex = IndexFromLevel (curZoomLevel * 1.0);
+					if (newZoomLevelIndex >= 0)
+					{
+						var img = elemScale.all("t" + zoomLevels[newZoomLevelIndex + increment]);
+						if (img)
+						{
+							tickSelect(img.id.substring(1));
+						}
+					}
+				}
+				else
+				{
+					tickSelect (100);
+				}
+			}
+
+			function IndexFromLevel (zoomLevel)
+			{
+				for (var count = 0; count < zoomLevels.length; count++)
+				{
+					if (zoomLevels[count] == zoomLevel)
+					{
+						return count;
+					}
+				}
+
+				return -1;
+			}
+			
+			elemScale = document.all("tabScale");
+			if(elemScale)
+			{
+				elemScale.onmouseover = tickFocus;
+				elemScale.onmouseout = tickBlur;
+			}
+		</script>
+	</div>
+
+	
+	<div id="divDetails" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp21" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><p class="label">詳細資料</p></a></td>
+				<td width="15"><a id="exp22" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><img id="exp2" alt="摺疊詳細資料" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hideDetails" class="hiderScroll" img="exp2" openAlt="摺疊詳細資料" closedAlt="展開詳細資料">
+				<P class="p2" class="detsPara">CTRL+按一下繪圖中的圖形以檢視詳細資料。</P>
+			</div>
+		</td></tr>
+		</table>		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideDetails, "Details");
+			widgets.divCount++;
+		
+		</script>
+	</div>
+
+	
+	<div id="divSearch" class="holder">
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor" dir=ltr>
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp11" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><p class="label">搜尋頁</p></a></td>
+				<td width="15"><a id="exp12" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><img src="minimize.gif" id="exp1" alt="摺疊搜尋頁面" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+
+		</td></tr>
+		<tr><td>	
+
+			<div id="hideSearch" img="exp1" class="hiderScroll" openAlt="摺疊搜尋頁面" closedAlt="展開搜尋頁面">
+								<form name=theForm onsubmit="FindOnClick(); return false;" ID="Form1">
+									<table width="100%" cellspacing="0" cellpadding="3" border="0">
+									<tr>
+									<td width="100%">
+										<input class="formText" type="text" name="findString" maxlength="255" size="26" title="輸入要搜尋的文字。按 Enter 開始搜尋。">
+									</td>
+									<td width="18" class="gobutton">
+										<input type="image" src="go.gif" alt="開始搜尋" width="18" height="18" ID="GoButton" NAME="GoButton">
+									</td>
+									</tr>
+									<tr>
+									<td colspan="2" class="p2">
+										<a href="javascript:{};" tabindex="0" onclick="TogglePlus(hideAdvSrch,as0);" class="blu1"><img src="plus.gif" alt="顯示/隱藏進階搜尋選項" border="0" id="as0">進階</a>
+											<div id="hideAdvSrch" class="hiderScroll" style="display:none;">
+												<b>搜尋依據:</b>
+												<div id="divS"></div>
+											</div>
+										<hr width="100%" size="1" color="#cccccc">
+										<div id="hideResults" class="hiderScroll" style="display:none;"></div>
+									</td>
+									</tr>
+									</table>
+								</form>
+			</div>					
+
+		</td></tr>
+		</table>
+		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideSearch, "Search");
+			widgets.divCount += 2;
+			
+			makeAdvancedFindCheckboxes(divS);
+			
+			
+			var imgPlus = new Image();
+			imgPlus.src = "plus.gif";
+	
+			var imgMinus = new Image();
+			imgMinus.src = "minus.gif";
+			
+			function TogglePlus(div, img, container)
+			{
+				if(typeof(img) == "string")	
+					img = document.all(img)
+				if(typeof(div) == "string")
+					div = document.all(div)
+					
+				widget = widgets.Search;
+				if(div && img)
+				{
+					if(div.style.display == "none")
+					{
+						div.style.display = "";
+						img.src = imgMinus.src;
+						div.open = "true";
+					}
+					else
+					{
+						div.style.display = "none";
+						img.src = imgPlus.src;
+						
+						div.open = "false";
+					}
+				}
+			}
+		
+		</script>
+	</div>
+
+
+</div>
+
+<div id="divCollapsedNav" class="navTocColor" style="display:none;width:100%;height:100%;">
+	<a href="javascript:ToggleNav();" title="展開巡覽框架" id="linkNavClosed"><img src="toc2.gif" alt="展開巡覽框架" border="0"></a>
+</div>	
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/zoom.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/zoom.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.files/zoom.htm	(revision 21)
@@ -0,0 +1,990 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script type="text/jscript" language="jscript">
+
+var BUFFER = 1;
+
+function zoomObject()
+{
+	this.PZImgRatio			= null;
+	
+	this.zoomWinHeight		= null;
+	this.zoomWinWidth		= null;
+	this.zoomWinTop			= null;
+	this.zoomWinLeft		= null;
+	
+	this.scaleFactor		= null;
+	
+	this.updateContent		= zObj_updateContent;
+	this.doOnBodyResize		= zObj_doOnBodyResize;
+	this.clipZoomRect		= zObj_clipZoomRect;
+}
+
+var g_thumbHeight = window.clientHeight;
+var g_thumbWidth = window.clientWidth;
+zoomObj = new zoomObject();
+
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+	}
+	return divObject;
+}
+
+function zObj_updateContent( win_width, win_height, VMLDiv_left, VMLDiv_top, VMLDiv_width, VMLDiv_height )
+{
+	this.mainWinWidth		= win_width;
+	this.mainWinHeight		= win_height;
+
+	this.mainImgRatio = VMLDiv_height / VMLDiv_width;
+	this.doOnBodyResize();
+}
+
+function zObj_doOnBodyResize()
+{
+	return;
+}
+
+function zObj_clipZoomRect( objectToClip )
+{
+	if( objectToClip == null )
+	{
+		objectToClip = zoomRectObj;
+	}
+	
+	var clipTop		= ( objectToClip.style.posTop < (g_thumbTop) )	? (g_thumbTop - objectToClip.style.posTop)	: 0;
+	var clipLeft	= ( objectToClip.style.posLeft < (g_thumbLeft) )	? (g_thumbLeft - objectToClip.style.posLeft)	: 0;
+	var clipBottom	= ( (objectToClip.style.posHeight - clipTop) > (g_thumbTop + g_thumbHeight + 2 * BUFFER) ) ? (g_thumbHeight + clipTop + BUFFER) : objectToClip.style.posHeight;
+	var clipRight	= 0;
+	if( (this.zoomWinWidth - clipLeft) > (g_thumbLeft + g_thumbWidth) )
+	{
+		if( clipLeft == 0 )
+		{
+			clipRight = g_thumbWidth - objectToClip.style.posLeft + 2 * BUFFER;
+		}
+		else
+		{
+			clipRight = (g_thumbWidth + clipLeft + BUFFER);
+		}
+	}
+	else
+	{
+		clipRight = objectToClip.style.posWidth;
+	}
+	clipTo( objectToClip, clipTop, clipRight, clipBottom, clipLeft);
+}
+
+function findContent()
+{
+	zoomRectDiv.style.display = "none";
+	newZoomWindowDiv.style.display = "none";
+
+	if (parent.parent.frmDrawing && parent.parent.viewMgr)
+	{
+		var viewMgr = parent.parent.viewMgr;
+
+		var getPNZ = parent.parent.viewMgr.getPNZ;
+		if (getPNZ)
+		{
+			var tmp = parent.parent.frmDrawing;
+
+			divThumb = document.all("divThumbnail");
+
+			if (divThumb.innerHTML.length == 0)
+			{
+				divThumb.innerHTML = getPNZ();
+			}
+			else
+			{
+				var pnzInfo = getPNZ();
+				var idIndex = pnzInfo.indexOf("ConvertedImage");
+				if (idIndex >= 0)
+				{
+					var test = pnzInfo;
+					pnzInfo = test.substring (0, idIndex);
+					pnzInfo += "Temp";
+					pnzInfo += test.substring (idIndex, test.length);
+
+					divTempThumbnail.innerHTML = pnzInfo;
+
+					var vmlGroup = divThumbnail.childNodes(0);
+					var vmlTempGroup = divTempThumbnail.childNodes(0);
+					CopyVMLAttrs(vmlGroup, vmlTempGroup);
+					
+					var vmlShape = vmlGroup.childNodes(1);
+					var vmlTempShape = vmlTempGroup.childNodes(1);
+					CopyVMLAttrs(vmlShape, vmlTempShape);
+
+					CopyVMLAttrs(vmlGroup.childNodes(0), vmlTempGroup.childNodes(0));
+					
+					var vmlImageData = vmlShape.childNodes(0);
+					var vmlTempImageData = vmlTempShape.childNodes(0);
+					CopyVMLImageData(vmlImageData, vmlTempImageData);
+				}
+			}
+
+			zoomRectObj = document.all("zoomRectDiv");
+			showObject( zoomRectObj );
+
+			PNZimg = document.all("ConvertedImage");
+			if (PNZimg)
+			{
+				PNZimg.style.left = 0;
+				PNZimg.style.top = 0;
+
+				if (PNZimg.style.pixelWidth > PNZimg.style.pixelHeight)
+				{
+					var oldWidth = PNZimg.style.pixelWidth;
+					PNZimg.style.width = document.body.clientWidth;
+					PNZimg.style.height = (document.body.clientWidth / oldWidth) * PNZimg.style.pixelHeight;
+
+					divThumb.style.top = (document.body.clientHeight - parseInt(PNZimg.style.height)) / 2;
+					divThumb.style.left = 0;
+				}
+				else
+				{
+					var oldHeight = PNZimg.style.pixelHeight;
+					PNZimg.style.height = document.body.clientHeight;
+					PNZimg.style.width = (document.body.clientHeight / oldHeight) * PNZimg.style.pixelWidth;
+
+					divThumb.style.left = (document.body.clientWidth - parseInt(PNZimg.style.width)) / 2;
+					divThumb.style.top = 0;
+				}
+
+				PNZimg.style.visibility = "visible";
+
+				var strOutput = divThumb.innerHTML;
+				if (strOutput.length > 0)
+				{
+					var tmp2 = document.all['ConvertedImage'];
+					zoomObj.updateContent( tmp.document.body.clientWidth, tmp.document.body.clientHeight, parseInt(tmp2.style.left), parseInt(tmp2.style.top), parseInt(tmp2.clientWidth), parseInt(tmp2.clientHeight) );
+
+					viewMgr.viewChanged = PageViewChanged;
+				}
+			}
+		}
+	}
+}
+
+function CopyVMLAttrs(vmlObjDst, vmlObjSrc)
+{
+	if (vmlObjDst != null && vmlObjSrc != null)
+	{
+		vmlObjDst.style.cssText = vmlObjSrc.style.cssText;
+	}
+}
+
+function CopyVMLImageData(vmlImageDataDst, vmlImageDataSrc)
+{
+	if (vmlImageDataDst != null && vmlImageDataSrc != null)
+	{
+		vmlImageDataDst.src = vmlImageDataSrc.src;
+	}
+}
+
+function setZoomRectCursor()
+{
+	var x = getMouseXcoord() - zoomObj.zoomWinLeft;
+	var y = getMouseYcoord() - zoomObj.zoomWinTop;
+
+	var rbw = 5;
+
+	var newCursor	= "";
+	if( y > (zoomObj.zoomWinHeight - rbw) )
+		newCursor = "s"
+	else if( y < rbw )
+		newCursor = "n";
+		
+	if( x < rbw )
+		newCursor += "w";
+	else if( x > (zoomObj.zoomWinWidth - rbw) )
+		newCursor += "e";
+
+	if( newCursor != "" )
+		zoomRectObj.style.cursor = newCursor + "-resize";
+	else
+		zoomRectObj.style.cursor = "move";
+}
+
+function startZoomRectDrag()
+{
+	var currentCursor = zoomRectObj.style.cursor;
+
+	if( currentCursor.indexOf( '-' ) != -1 )
+	{
+		g_resizeDirection = currentCursor.split( '-' )[0];
+		startDrag( 'zoomRectDiv', doResizeZoomRectDrag, stopResizeZoomRectDrag );
+	}
+	else
+	{
+		startDrag( 'zoomRectDiv', doZoomRectDrag, stopZoomRectDrag );
+	}
+}
+
+function doZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var rectLeft = parseInt(dragObj.divObject.style.left);
+	var rectTop = parseInt(dragObj.divObject.style.top);
+	var rectWidth = parseInt(dragObj.divObject.style.width);
+	var rectHeight = parseInt(dragObj.divObject.style.height);
+
+	var xOffset = 0;
+	var yOffset = 0;
+
+	var xPercent = 0;
+	var yPercent = 0;
+
+	var pnzImgLeft = parseInt(divThumbnail.style.left);
+	var pnzImgTop = parseInt(divThumbnail.style.top);
+	var pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+	var pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+		
+	xOffset = x + dragObj.xOffset - pnzImgLeft;
+	xPercent = xOffset / pnzImgWidth;
+
+	yOffset = y + dragObj.yOffset - pnzImgTop;
+	yPercent = yOffset / pnzImgHeight;
+
+	if (xOffset < 0)
+	{
+		xPercent = 0;
+		xOffset = pnzImgLeft - BUFFER;
+	}
+	else if (xOffset + rectWidth > pnzImgWidth)
+	{
+		xPercent = 1;
+		xOffset = pnzImgLeft + pnzImgWidth - rectWidth + BUFFER;
+	}
+	else
+	{
+		xOffset = x + dragObj.xOffset;
+	}
+
+	if (yOffset < 0)
+	{
+		yPercent = 0;
+		yOffset = pnzImgTop - BUFFER;
+	}
+	else if (yOffset + rectHeight > pnzImgHeight)
+	{
+		yPercent = 1;
+		yOffset = pnzImgTop + pnzImgHeight - rectHeight + BUFFER;
+	}
+	else
+	{
+		yOffset = y + dragObj.yOffset;
+	}
+
+	if (parent.parent.viewMgr.setView)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	setZWinSize (null, null, xOffset, yOffset);
+}
+
+function stopZoomRectDrag(dragObj, x, y)
+{
+	var el = window.event.srcElement;
+	g_newLeft = parseInt(el.style.left);
+	g_newTop = parseInt(el.style.top);
+}
+
+function setZWinSize( newWidth, newHeight, newLeft, newTop )
+{
+	if( newWidth != null && newWidth >= 0 ) 
+	{
+		zoomObj.zoomWinWidth = newWidth;
+		zoomRectObj.style.width = newWidth;
+	}
+
+	if( newHeight != null && newHeight >= 0 ) 
+	{
+		zoomObj.zoomWinHeight = newHeight;
+		zoomRectObj.style.height = newHeight;
+	}
+
+	if( newLeft != null && newLeft >= 0 )
+	{
+		zoomObj.zoomWinLeft = newLeft;
+		zoomRectObj.style.left = newLeft;
+	}
+
+	if( newTop != null && newTop >= 0 )
+	{
+		zoomObj.zoomWinTop = newTop;
+		zoomRectObj.style.top= newTop;
+	}
+}
+
+function doResizeZoomRectDrag(dragObj, x, y)
+{
+	var newWidth	= null;
+	var newHeight	= null;
+	var newLeft		= null;
+	var newTop		= null;
+		
+	var tmp = parent.parent.frmDrawing;
+	if (tmp)
+	{
+		zoomObj.mainWinWidth		= tmp.document.body.clientWidth;
+		zoomObj.mainWinHeight		= tmp.document.body.clientHeight;
+	}
+
+	var widthHeightRatio = zoomObj.mainWinWidth / zoomObj.mainWinHeight;
+	
+	var minimumSize = 10;
+	if( g_resizeDirection == 'e' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'w' )
+	{
+		newWidth	= zoomObj.zoomWinWidth + zoomObj.zoomWinLeft - x;
+		if( newWidth > minimumSize )
+		{
+			newHeight	= newWidth / widthHeightRatio;
+			newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+			newLeft		= x;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+
+	if( g_resizeDirection == 'se' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 's' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'sw' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+	
+	if( g_resizeDirection == 'n' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'ne' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'nw' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+}
+
+function stopResizeZoomRectDrag(dragObj, x, y)
+{
+	PNZimg = document.all("ConvertedImage");
+
+	var xWidthPercent = parseInt(zoomRectDiv.style.width) / PNZimg.style.pixelWidth;
+	var yHeightPercent = parseInt(zoomRectDiv.style.height) / PNZimg.style.pixelHeight;
+
+	var newZoomLevel = GetZoomLevel (xWidthPercent, yHeightPercent);
+
+	if (parent.parent.viewMgr.Zoom)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostZoomProcessing = PostZoomProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.Zoom (newZoomLevel);
+	}
+
+	g_width = parseInt(zoomRectDiv.style.pixelWidth);
+	g_height = parseInt(zoomRectDiv.style.pixelHeight);
+	g_newLeft = parseInt(zoomRectDiv.style.left);
+	g_newTop = parseInt(zoomRectDiv.style.top);
+}
+
+function GetZoomLevel (xWidthPercent, yHeightPercent)
+{
+	var newZoomLevel;
+	if (xWidthPercent < yHeightPercent)
+	{
+		newZoomLevel = 100 / xWidthPercent;
+	}
+	else
+	{
+		newZoomLevel = 100 / yHeightPercent;
+	}
+
+	return newZoomLevel;
+}
+
+function PostZoomProcessing (newZoomLevel)
+{
+	var xOffset = parseInt(zoomRectDiv.style.left) - parseInt(divThumbnail.style.left);
+	var yOffset = parseInt(zoomRectDiv.style.top) - parseInt(divThumbnail.style.top);
+
+	var xPercent = xOffset / PNZimg.style.pixelWidth;
+	var yPercent = yOffset / PNZimg.style.pixelHeight;
+
+	var viewMgr = parent.parent.viewMgr;
+	viewMgr.ChangingView = true;
+
+	if (viewMgr.setView)
+	{
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	SetCorrectTick (newZoomLevel);
+
+	viewMgr.PostZoomProcessing = null;
+}
+
+function SetCorrectTick (newZoomLevel)
+{
+	var zoomLevels = parent.zoomLevels;
+	if (newZoomLevel <= zoomLevels[0])
+	{
+		parent.changeTick(zoomLevels[0]);
+	}
+	else if (newZoomLevel >= zoomLevels[zoomLevels.length - 1])
+	{
+		parent.changeTick(zoomLevels[zoomLevels.length - 1]);
+	}
+	else
+	{
+		for (var count = 0; count < zoomLevels.length - 1; count++)
+		{
+			var deltaDown = newZoomLevel - zoomLevels[count];
+			var deltaUp = newZoomLevel - zoomLevels[count + 1];
+			if (deltaDown >= 0 && deltaUp <= 0)
+			{
+				if (Math.abs(deltaDown) < Math.abs(deltaUp))
+				{
+					parent.changeTick(zoomLevels[count]);
+					break;
+				}
+				else
+				{
+					parent.changeTick(zoomLevels[count + 1]);
+					break;
+				}
+			}
+		}
+	}
+}
+
+function PostSetViewProcessing ()
+{
+	parent.parent.viewMgr.ChangingView = false;
+	parent.parent.viewMgr.PostSetViewProcessing = null;
+}
+
+function startNewZoomRectDrag()
+{
+	var x = getMouseXcoord();
+	var y = getMouseYcoord();
+	zoomObj.newZWinStartX = x;
+	zoomObj.newZWinStartY = y;
+	
+	g_newZWinObjRef = document.all("newZoomWindowDiv");
+	g_newZWinObjRef.style.display = "";
+
+	startDrag( 'zoomRectDiv', doNewZoomRectDrag, stopNewZoomRectDrag );
+}
+
+function doNewZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var width	= Math.abs( zoomObj.newZWinStartX - x );
+	var height	= Math.abs( zoomObj.newZWinStartY - y );
+
+	var aspectRatio = parent.parent.viewMgr.docDrawing.body.clientWidth / parent.parent.viewMgr.docDrawing.body.clientHeight;
+
+	if( width < (aspectRatio * height))
+	{
+		width = (aspectRatio) * height;
+	}
+	else
+	{
+		height = width / (aspectRatio);
+	}
+
+	width = Math.min (width, parseInt(PNZimg.style.pixelWidth));
+	height = Math.min (height, parseInt(PNZimg.style.pixelHeight));
+
+	var left = (x > zoomObj.newZWinStartX) ? zoomObj.newZWinStartX : zoomObj.newZWinStartX - width;
+	var top  = (y > zoomObj.newZWinStartY) ? zoomObj.newZWinStartY : zoomObj.newZWinStartY - height;
+
+	newZoomWindowDiv.style.top = top;
+	newZoomWindowDiv.style.left = left;
+	newZoomWindowDiv.style.height = height;
+	newZoomWindowDiv.style.width = width;
+	newZoomWindowDiv.style.visibility = "visible";
+
+	zoomObj.zoomWinLeft		= left;
+	zoomObj.zoomWinWidth	= width;
+	zoomObj.zoomWinTop		= top;
+	zoomObj.zoomWinHeight	= height;
+}
+
+function stopNewZoomRectDrag(dragObj, x, y)
+{
+	newZoomWindowDiv.style.visibility = "hidden";
+
+	if (parseInt (newZoomWindowDiv.style.width) > 10 && 
+		parseInt (newZoomWindowDiv.style.height) > 10)
+	{
+		zoomRectDiv.style.top = newZoomWindowDiv.style.top;
+		zoomRectDiv.style.left = newZoomWindowDiv.style.left;
+		zoomRectDiv.style.height = newZoomWindowDiv.style.height;
+		zoomRectDiv.style.width = newZoomWindowDiv.style.width;
+
+		stopResizeZoomRectDrag(dragObj,x,y);
+		zoomRectDiv.style.display = "inline";
+		zoomRectDiv.style.visibility = "visible";
+	}
+	else
+	{
+		zoomObj.zoomWinLeft		= parseInt(zoomRectDiv.style.left);
+		zoomObj.zoomWinWidth	= parseInt(zoomRectDiv.style.width);
+		zoomObj.zoomWinTop		= parseInt(zoomRectDiv.style.top);
+		zoomObj.zoomWinHeight	= parseInt(zoomRectDiv.style.height);
+	}
+
+	newZoomWindowDiv.style.height = "0px";
+	newZoomWindowDiv.style.width = "0px";
+
+	newZoomWindowDiv.style.display = "none";
+}
+
+var g_lastX = 0;
+var g_lastY = 0;
+
+document.onmousedown = mouseDown;
+document.onmousemove = mouseMove;
+document.onmouseup = mouseUp;
+document.onmouseout = mouseOut;
+
+function mouseDown()
+{
+	return true;
+}
+
+function mouseMove()
+{
+	var x = event.clientX + document.body.scrollLeft;
+	var y = event.clientY + document.body.scrollTop;
+
+	g_lastX = x;
+	g_lastY = y;
+	
+	doDrag( x, y );
+	return true;
+}
+
+function mouseUp() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+	
+	stopDrag(null,x,y);
+	return true;
+}
+
+function mouseOut() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+
+	if( x < 0 ) x = -1;
+	if( x >= document.body.clientWidth ) x = -1;
+		
+	if( y < 0 ) y = -1;
+	if( y >= document.body.clientHeight ) y = -1;
+
+	if( x == -1 || y == -1 )
+	{
+		x = -1;
+		y = -1;
+	}
+	
+
+	if( x == -1 )
+		stopDrag( null, x, y );
+	return true;
+}
+
+function getMouseXcoord()
+{
+	return event.x + document.body.scrollLeft;
+}
+
+function getMouseYcoord()
+{
+	return event.y + document.body.scrollTop;
+}
+
+var g_width		= -1;
+var g_height	= -1;
+var g_newLeft	= -1;	
+var g_newTop	= -1;
+		
+var g_pnzImgWidth = -1;
+var g_pnzImgHeight = -1;
+var g_pnzImgLeft = -1;
+var g_pnzImgTop = -1;
+
+function keydown()
+{
+	var key = window.event.keyCode;
+	var el = window.event.srcElement;
+
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{
+		if(g_width == -1)
+			g_width		= parseInt(el.style.pixelWidth);
+			
+		if(g_height == -1)
+			g_height		= parseInt(el.style.pixelHeight);
+			
+		if(g_newLeft == -1)
+			g_newLeft		= parseInt(el.style.left);	
+		
+		if(g_newTop == -1)
+			g_newTop		= parseInt(el.style.top);
+		
+		if(g_pnzImgWidth == -1)
+			g_pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+			
+		if(g_pnzImgHeight == -1)
+			g_pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+			
+		if(g_pnzImgLeft == -1)
+			g_pnzImgLeft = parseInt(divThumbnail.style.left);
+			
+		if(g_pnzImgTop == -1)
+			g_pnzImgTop = parseInt(divThumbnail.style.top);
+	
+
+		if(key == 37)	
+		{
+			g_newLeft -= 1;
+			if(g_newLeft < g_pnzImgLeft)
+			{
+				g_newLeft = g_pnzImgLeft;
+			}	
+		}
+		else if(key == 38)	
+		{
+			g_newTop -= 1;
+			if(g_newTop < g_pnzImgTop)
+			{
+				g_newTop = g_pnzImgTop;
+			}	
+		}
+		else if(key == 39)	
+		{
+			g_newLeft += 1;
+			if(g_newLeft + g_width > g_pnzImgLeft + g_pnzImgWidth)
+			{
+				g_newLeft = g_pnzImgLeft + g_pnzImgWidth - g_width;		
+			}
+		}
+		
+		else if(key == 40)	
+		{
+			g_newTop += 1;
+			if(g_newTop + g_height > g_pnzImgTop + g_pnzImgHeight)
+			{
+				g_newTop = g_pnzImgTop + g_pnzImgHeight - g_height;		
+			}
+		}
+		
+		setZoomRectCursor();
+
+		var xOffset = g_newLeft - g_pnzImgLeft;
+		var yOffset = g_newTop - g_pnzImgTop;
+		
+		var xPercent = xPercent = xOffset / g_pnzImgWidth;
+		var yPercent = yPercent = yOffset / g_pnzImgHeight;
+
+		if (xOffset < 0)
+		{
+			xPercent = 0;
+			xOffset = g_pnzImgLeft;
+		}
+		else if (xOffset + g_width > g_pnzImgWidth)
+		{
+			xPercent = 1;
+			xOffset = g_pnzImgLeft + g_pnzImgWidth - g_width;
+		}
+
+		if (yOffset < 0)
+		{
+			yPercent = 0;
+			yOffset = g_pnzImgTop;
+		}
+		else if (yOffset + g_height > g_pnzImgHeight)
+		{
+			yPercent = 1;
+			yOffset = g_pnzImgTop + g_pnzImgHeight - g_height;
+		}
+
+		if (parent.parent.viewMgr.setView)
+		{
+			var viewMgr = parent.parent.viewMgr;
+			viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+			viewMgr.ChangingView = true;
+			viewMgr.setView (xPercent, yPercent);
+		}	
+		setZWinSize (null, null, g_newLeft, g_newTop);
+	}
+}
+
+function keyup()
+{
+	var key = window.event.keyCode;
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{		
+		el = window.event.srcElement;
+	}
+}
+
+function dragObject( divID, divObject, xOffset, yOffset, dragFunctionPointer, dragStopFunctionPointer )
+{
+	this.divID			= divID;
+	this.divObject		= divObject;
+	this.xOffset		= xOffset;
+	this.yOffset		= yOffset;
+	this.dragFPtr		= dragFunctionPointer;
+	this.dragStopFPtr	= dragStopFunctionPointer;
+}
+
+var dragList = new Array();
+
+
+function startDrag( divID, dragFunctionPtr, dragStopFunctionPointer, xOffset, yOffset ) 
+{
+	var divObject = document.all(divID);
+	if( divObject != null ) 
+	{
+		document.selection.empty();
+		
+		if( xOffset == null )
+		{
+			xOffset = parseInt(divObject.style.left) - g_lastX;
+		}
+		
+		if( yOffset == null )
+		{
+			yOffset = parseInt(divObject.style.top)  - g_lastY;
+		}
+
+		dragList[ dragList.length ] = new dragObject( divID, divObject, xOffset, yOffset, dragFunctionPtr, dragStopFunctionPointer );
+		return true;
+	} 
+	else 
+	{
+		return false;
+	}
+}
+
+function doDrag( x, y ) 
+{
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].dragFPtr != null )
+			dragList[i].dragFPtr( dragList[i], x, y );
+	}
+	if( dragList.length )
+	{
+		document.selection.empty();
+	}
+}
+
+function stopDrag( divID, x, y ) 
+{ 
+	var tmpDragObject;
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].divID == divID || divID == null ) 
+		{
+			tmpDragObject = dragList[i];
+			
+			dragList[i] = dragList[ dragList.length - 1 ];
+			dragList.length = dragList.length - 1;
+			
+			if( tmpDragObject.dragStopFPtr != null )
+			{
+				tmpDragObject.dragStopFPtr( tmpDragObject, x, y );
+			}
+			
+		}
+	}
+}
+
+function PageViewChanged(newLeftPercent, newTopPercent, newWidthPercent, newHeightPercent)
+{
+	if (dragList.length == 0 && !parent.parent.viewMgr.ChangingView)
+	{
+		var newLeft		= null;
+		var newTop		= null;
+		var newWidth	= null;
+		var newHeight	= null;
+
+		var PNZimg = document.all("ConvertedImage");
+
+		if (newLeftPercent != null)
+		{
+			newLeft = (newLeftPercent * PNZimg.style.pixelWidth) + parseInt(divThumbnail.style.left);
+		}
+		
+		if (newTopPercent != null)
+		{
+			newTop = (newTopPercent * PNZimg.style.pixelHeight) + parseInt(divThumbnail.style.top);
+		}
+		
+		if (newWidthPercent != null)
+		{
+			newWidth = newWidthPercent * PNZimg.style.pixelWidth;
+		}
+		
+		if (newHeightPercent != null)
+		{
+			newHeight = newHeightPercent * PNZimg.style.pixelHeight;
+		}
+
+		setZWinSize (newWidth, newHeight, newLeft, newTop);
+
+		if (newLeftPercent <= 0 && newTopPercent <= 0 && newWidthPercent >= 1 && newHeightPercent >= 1)
+		{
+			zoomRectDiv.style.display = "none";
+			zoomRectDiv.style.visibility = "hidden";
+		}
+		else
+		{
+			zoomRectDiv.style.display = "inline";
+			zoomRectDiv.style.visibility = "visible";
+		}
+
+		if (newWidthPercent != null && newHeightPercent != null)
+		{
+			var newZoomLevel = GetZoomLevel (newWidthPercent, newHeightPercent);
+			SetCorrectTick (newZoomLevel);
+		}
+	}
+}
+
+function load()
+{
+	parent.parent.g_ZoomLoaded = true;
+
+	if (parent.parent.g_LoadingWidgets)
+	{
+		parent.parent.g_LoadingWidgets = false;
+		parent.parent.location.reload();
+	}
+}
+
+function unload()
+{
+	if (parent.parent.viewMgr)
+	{
+		parent.parent.viewMgr.viewChanged = null;
+	}
+
+	parent.parent.g_LoadingWidgets = true;
+}
+
+
+</script>
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divPZWindow" style="width: 100%; height: 100%;" >
+	<div id="divThumbnail" style="position: absolute; " onmousedown="startNewZoomRectDrag();"></div>
+</div>
+<div id="divTempThumbnail" style="position: absolute; visibility:hidden; display:none;" ></div>
+
+<div id="zoomRectDiv" tabindex="1" title="可見的區域。使用滑鼠或方向鍵來移動。" onkeydown="keydown()" onkeyup="keyup()" style="display:none;position: absolute; border: solid red thin; z-index: 3;" onmousedown="startZoomRectDrag();" onmouseover="setZoomRectCursor();" onmousemove="setZoomRectCursor();"></div>
+<div id="newZoomWindowDiv" style="position: absolute; border: solid blue thin; z-index: 4; visibility: hidden;"></div>
+
+</body>
+</html>
+
+
+
+
+
+
Index: /drbl_ui/flow_chart/clonezilla_restore_flow_chart.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_restore_flow_chart.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_restore_flow_chart.htm	(revision 21)
@@ -0,0 +1,718 @@
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+		<meta name="標題" content=""/>
+		<meta name="主旨" content=""/>
+		<meta name="類別" content=""/>
+		<meta name="關鍵字" content=""/>
+		<meta name="描述" content=""/>
+		<meta name="作者" content=" "/>
+		<meta name="主管" content=""/>
+		<meta name="公司" content=""/>
+
+		<title>clonezilla_restore_flow_chart</title>
+		<script src="clonezilla_restore_flow_chart.files/frameset.js" type="text/jscript" language="jscript"></script>
+		<script type="text/jscript" language="jscript" >
+
+function FileEntry (pageIndex, pageID, pageName, priImage, secImage) 
+{
+	this.PageIndex = pageIndex;
+	this.PageID	  = pageID;
+	this.PageName = pageName;
+	this.PriImage = priImage;
+	this.SecImage = secImage;
+}
+
+var viewMgr = null;
+
+var g_FileList = new  Array(
+ new FileEntry (1, 0, "頁-1", "vml_1.htm", "gif_1.htm")
+
+);
+
+var g_CurPageIndex = 0;
+var g_ZoomLoaded = false;
+var g_WidgetsLoaded = false;
+var g_FileProtocol = "file://";
+
+var g_HLMenuEntry = "menuEntry";
+var g_HLMenuEntryDiv = "menuEntryDiv";
+
+var g_LoadingWidgets = false;
+
+
+function CViewMgr(convertedImgID, highlightDivID)
+{
+	this.onResize = null;
+	this.ApplyZoom = null;
+	this.ChangingView = false;
+
+	this.put_Location = ViewMgrDefaultFind;
+	this.Zoom = ViewMgrDefaultResize;
+	this.PostZoomProcessing = null;
+	this.setView = null;
+	this.PostSetViewProcessing = null;
+	this.viewChanged = null;
+
+	this.SupportsDetails = false;
+	this.SupportsSearch = false;
+
+	this.visBBoxLeft = 0.0;
+	this.visBBoxRight = 0.0;
+	this.visBBoxBottom = 0.0;
+	this.visBBoxTop = 0.0;
+
+	this.highlightDiv = null;
+	this.stepWidth = 10;
+
+	this.id = convertedImgID;
+	this.zoomFactor = -1;
+	this.zoomLast = -1;
+	this.origWH = 1;
+	this.origWidth = 100;	
+	this.aspectRatio = 1;
+
+	this.docDrawing = null;
+	var docDrawing = frmDrawing.document;
+	if(docDrawing)
+	{
+		this.docDrawing = docDrawing;
+		var docEl = docDrawing.all(this.id);
+		if (docEl)
+		{
+			this.s = docEl.style;
+			this.origWidth = this.s.pixelWidth;
+			this.origWH = this.s.pixelWidth / this.s.pixelHeight;
+		}
+		this.highlightDiv = docDrawing.all(highlightDivID);
+	}
+
+	this.loadPage = DefPageLoad;
+	this.getPNZ	= null;
+}
+
+function DefPageLoad (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+        if (fileDelim == -1)
+            fileDelim = curPath.lastIndexOf ('\\');
+		var newPath = curPath.substring (0, fileDelim + 1);
+		newPath += g_FileList[pageIndex].PriImage;
+		frmDrawing.location.href = newPath;
+
+		SetPNZDisplay (pageIndex);
+	}
+}
+
+function CurPageUpdate (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		g_CurPageIndex = pageIndex;
+
+		SetCurPageInGoto (pageIndex);
+
+		var divDetails = frmToolbar.document.all("divDetails");
+		if (divDetails)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsDetails)
+			{
+				displayStatus = "none";
+			}
+
+			divDetails.style.display = displayStatus;
+		}
+
+		var divSearch = frmToolbar.document.all("divSearch");
+		if (divSearch)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsSearch)
+			{
+				displayStatus = "none";
+			}
+
+			divSearch.style.display = displayStatus;
+		}
+
+		SetPNZDisplay (pageIndex);
+
+		LoadZoom ();
+	}
+}
+
+function FramePageLoaded ()
+{
+	if (isUpLevel && viewMgr == null)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+		if (fileDelim >= 0)
+		{
+			var fileName = curPath.substring (fileDelim + 1, curPath.length);
+			var pageIndex = PageIndexFromFileName (fileName);
+			SetCurPageInGoto (pageIndex);
+			SetPNZDisplay (pageIndex);
+		}
+	}
+}
+
+function LoadZoom ()
+{
+	var zoomWidget = frmToolbar.ifrmPNZ;
+	if (zoomWidget)
+	{
+		if (g_ZoomLoaded)
+		{
+			zoomWidget.findContent();
+			PageLoadedDoCallback ();
+		}
+		else
+		{
+			window.setTimeout("LoadZoom()", 500);
+		}
+	}
+	else
+	{
+		PageLoadedDoCallback ();
+	}
+}
+
+function SetCurPageInGoto (pageIndex)
+{
+	var gotoPageSelect = frmToolbar.document.all("Select1");
+	if (gotoPageSelect != null)
+	{
+		gotoPageSelect.value = pageIndex;
+	}
+}
+
+function SetPNZDisplay (pageIndex)
+{
+	var divPNZ = frmToolbar.document.all("divPNZ");
+	if (divPNZ)
+	{
+		var displayStatus = "block";
+		if (g_FileList[pageIndex].PageID < 0)
+		{
+			displayStatus = "none";
+		}
+
+		divPNZ.style.display = displayStatus;
+	}
+}
+
+function ViewMgrDefaultFind()
+{
+	return;
+}
+
+function ViewMgrDefaultResize(size)
+{
+	return;
+}
+
+
+
+g_callBackFunctionArray = new Array();
+function PageLoadedDoCallback()
+{
+	if (g_WidgetsLoaded)	
+	{
+		for( var i=0; i < g_callBackFunctionArray.length; i++ )
+		{
+			g_callBackFunctionArray[i]();
+		}
+		g_callBackFunctionArray = new Array();
+	}
+	else
+	{
+		window.setTimeout("PageLoadedDoCallback()", 500);
+	}
+}
+
+
+function ParseParams (strRawParams)
+{
+	strRawParams = strRawParams.substring(1);
+
+	var arrayParamTokens = strRawParams.split('&');
+	for (var count = 0; count < arrayParamTokens.length; count++)
+	{
+		arrayParamTokens[count] = unescape(arrayParamTokens[count]);
+		this[count] = arrayParamTokens[count].substring(0, arrayParamTokens[count].indexOf('='));
+		this[this[count]] = arrayParamTokens[count].substring(arrayParamTokens[count].indexOf('=') + 1);
+	}
+
+	return this;
+}
+
+var gParams = ParseParams (location.search);
+
+var g_PageParamValue = gParams['page'];
+if (g_PageParamValue != null && 
+	g_PageParamValue.length > 0)
+{
+	var pageIndex = PageIndexFromName (g_PageParamValue);
+	if (pageIndex > 0 && pageIndex < g_FileList.length)
+	{
+		g_CurPageIndex = pageIndex;
+	}
+}
+else
+{
+	g_PageParamValue = null;
+}
+
+var g_FirstPageToLoad = g_PageParamValue;
+
+var g_ZoomParamValue = gParams['zoom'];
+if (g_ZoomParamValue != null && g_ZoomParamValue.length > 0)
+{
+	g_ZoomParamValue = 1.0 * g_ZoomParamValue;
+	if (g_ZoomParamValue >= 10 && g_ZoomParamValue <= 500)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (viewMgr && viewMgr.Zoom) { viewMgr.Zoom(g_ZoomParamValue); } };
+	}
+}
+
+var g_ShapeParamValue = gParams['shape'];
+if (g_ShapeParamValue != null && g_ShapeParamValue.length > 0)
+{
+	if (g_PageParamValue != null && g_PageParamValue.length > 0)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var shapeNode = FindShapeXMLByName (g_PageParamValue, g_ShapeParamValue); if (shapeNode) { frmToolbar.TreeSelect (g_FileList[g_CurPageIndex].PageID, shapeNode.attributes.getNamedItem ("ID").text); } };
+	}
+	else
+	{
+		g_ShapeParamValue = null;
+	}
+}
+
+var g_SearchParamValue = gParams['search'];
+if (g_SearchParamValue != null && g_SearchParamValue.length > 0)
+{
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (frmToolbar.theForm) { frmToolbar.theForm.findString.value = g_SearchParamValue; } };
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var goButton = frmToolbar.document.all('GoButton'); if(goButton) { goButton.click(); } };
+}
+
+
+var strHLTooltipText = "按一下以跟隨超連結。";
+var strPropsTooltipText = "Ctrl + 按一下以檢視詳細資料。";
+
+var strFocusHLTooltipText = "按下 Enter 以追蹤超連結。";
+var strFocusPropsTooltipText = "Ctrl + Enter 以檢視詳細資料。";
+
+
+function UpdateTooltip (element, pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var strHL, strProps;
+	
+		if(frmDrawing.event.type == "focus")
+		{
+			strHL = strFocusHLTooltipText;
+			strProps = strFocusPropsTooltipText;
+		}
+		else
+		{
+			strHL = strHLTooltipText;
+			strProps = strPropsTooltipText;
+		}
+
+		var strTooltip = "";
+		if (element.origTitle)
+		{
+			strTooltip = element.origTitle.toString();
+		}
+			
+		var shapeNode = FindShapeXML (pageID, shapeID);
+
+		if( shapeNode != null )
+		{
+			var propColl = shapeNode.selectNodes ("Prop");
+			if (propColl != null && propColl.length > 0)
+			{
+				if (strTooltip.length > 0)
+				{
+					strTooltip += "\n";
+				} 
+				strTooltip += strProps;
+			}
+		}
+
+		var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+		if (hlObj != null && (hlObj.DoFunction.length > 0 || hlObj.Hyperlink.length > 0))
+		{
+			if (strTooltip.length > 0)
+			{
+				strTooltip += "\n";
+			}	
+			strTooltip += strHL;
+		}
+
+		element.title = strTooltip;
+		if (element.alt != null)
+		{
+			element.alt = strTooltip;
+		}
+	}
+}
+
+
+function GetHLAction (shapeNode, pageID, shapeID)
+{
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		if (hlColl.length > 1)
+		{
+			hlObj.DoFunction = "showMenu(" + pageID + ", " + shapeID + ");"
+		}
+		else if (hlColl.length == 1)
+		{
+			hlObj = CreateHLObj (hlColl.item(0));
+		}
+	}
+
+	return hlObj;
+}
+
+function HLObj (strHyperlink, strDoFunction, strDesc, newWindow) 
+{
+	this.Hyperlink = strHyperlink;
+	this.DoFunction = strDoFunction;
+	this.Desc = strDesc;
+	this.NewWindow = newWindow;
+}
+
+function clickMenu()
+{
+	var e = window.frmDrawing.event;
+	var menu = frmDrawing.document.all("menu1")
+	
+	if (menu != null && menu.style.display != "none")
+	{
+		menu.style.display="none";
+
+		if (e && e.srcElement && e.srcElement.doFunction != null)
+		{
+			eval(e.srcElement.doFunction);
+		}
+	}
+}
+
+function toggleMenuDiv(el, highlight) 
+{
+	var divEl = el;
+	var aEl = null;
+
+	var ID = el.id.substring (g_HLMenuEntryDiv.length, el.id.length) * 1.0;
+	aEl = divEl.all(g_HLMenuEntry + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenuLink(el, highlight) 
+{
+	var divEl = null;
+	var aEl = el;
+
+	var ID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	divEl = frmDrawing.document.all(g_HLMenuEntryDiv + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenu(divEl, aEl, highlight)
+{
+	if (highlight)
+	{
+	  divEl.className="highlightItem";
+	  aEl.className="highlightItem";
+	} 
+	else 
+	{
+	  divEl.className="menuItem";
+	  aEl.className="menuItem";
+	}
+}
+
+function showMenu(pageID, shapeID)
+{
+	var shapeXML = FindShapeXML (pageID, shapeID);
+	if (shapeXML != null)
+	{
+		CreateHLMenu (shapeXML);
+		var menu = frmDrawing.document.all("menu1");
+		if (menu != null)
+		{
+			menu.style.visibility = "hidden";
+			menu.style.display = "inline";
+
+			var e = window.frmDrawing.event;
+			var elem = e.srcElement;
+
+			var clientWidth = frmDrawing.document.body.clientWidth;
+			var clientHeight = frmDrawing.document.body.clientHeight;
+
+			var menuWidth = menu.clientWidth;
+			var menuHeight = menu.clientHeight;
+
+			var menuLeft = e.x;
+			var menuTop = e.y;
+			
+			var doc = frmDrawing.document;
+			var img = doc.all("ConvertedImage");
+			
+			if( (menuLeft + doc.body.scrollLeft < elem.offsetLeft) || (menuLeft + doc.body.scrollLeft > elem.offsetLeft + elem.offsetWidth + img.offsetLeft) )
+			{
+				menuLeft = elem.offsetLeft + img.offsetLeft + elem.offsetWidth/2;
+			}
+			
+			if( (menuTop + doc.body.scrollTop < elem.offsetTop) || (menuTop + doc.body.scrollTop > elem.offsetTop + elem.offsetHeight + img.offsetTop) )
+			{
+				menuTop = elem.offsetTop + img.offsetTop + elem.offsetHeight/2;
+			}
+
+			var scrollBarSize = 20;
+			if (menuLeft + menuWidth > clientWidth - scrollBarSize)
+			{
+				menuLeft = clientWidth - menuWidth - scrollBarSize;
+			}
+
+			if (menuTop + menuHeight > clientHeight - scrollBarSize)
+			{
+				menuTop = clientHeight - menuHeight - scrollBarSize;
+			}
+
+			menu.style.posLeft = menuLeft + frmDrawing.document.body.scrollLeft;
+			menu.style.posTop = menuTop + frmDrawing.document.body.scrollTop;
+			menu.style.visibility = "visible";
+
+			var firstLink = menu.all(g_HLMenuEntry + "0");
+			firstLink.focus ();
+			
+			if (e.keyCode == 13)
+			{
+				toggleMenuLink(firstLink, true);
+			}
+
+			e.cancelBubble = true;
+		}
+	}
+}
+
+function MenuKeyDown ()
+{
+	var e = window.frmDrawing.event;
+	var el = e.srcElement;
+
+	if (e.keyCode == 27)	// 27 == ESC
+	{
+		clickMenu();
+		e.cancelBubble = true;
+		return;
+	}
+
+	var curSelID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	var newSelID = -1;
+
+	if (e.keyCode == 40)	// 40 == down arrow
+	{
+		newSelID = curSelID + 1;
+	}
+	else if (e.keyCode == 38) // 38 == up arrow
+	{
+		newSelID = curSelID - 1;
+	}
+
+	var newSelEntry = frmDrawing.document.all(g_HLMenuEntry + newSelID);
+
+	if (newSelEntry)
+	{
+		newSelEntry.focus();
+
+		var curSelEntry = frmDrawing.document.all(g_HLMenuEntry + curSelID);
+		toggleMenuLink (curSelEntry, false);
+		toggleMenuLink (newSelEntry, true);
+	}
+
+	e.cancelBubble = true;
+}
+
+function CreateHLMenu (shapeNode)
+{
+	var strHLMenuHTML = "";
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		strHLMenuHTML = "<div class='innerhlMenu'>";
+
+		var hlCount = hlColl.length;
+		for (var count = 0; count < hlCount; count++)
+		{
+			var hlObj = CreateHLObj (hlColl.item(count));
+			if (hlObj != null)
+			{
+				if (hlObj.Desc.length > 0)
+				{
+					strHLMenuHTML += "<div id='" + (g_HLMenuEntryDiv + count) + "' class='menuItem' onmouseover='toggleMenuDiv(this, true)' onmouseout='toggleMenuDiv(this, false)' onclick='" + (g_HLMenuEntry + count) + ".click()'>";
+					strHLMenuHTML += "<a href=";
+
+					if (hlObj.DoFunction.length > 0)
+					{
+						strHLMenuHTML += "'javascript:" + hlObj.DoFunction + "'";
+					}
+					else
+					{
+						var targetVal = "_top";
+						if (hlObj.NewWindow)
+						{
+							targetVal = "_blank";
+						}
+						strHLMenuHTML += "'" + hlObj.Hyperlink + "' target='" + targetVal + "'";
+					}
+
+					strHLMenuHTML += " class='menuItem' id='" + (g_HLMenuEntry + count) + "' onkeydown='parent.MenuKeyDown();' onmouseover='toggleMenuLink(this, true)' onmouseout='toggleMenuLink(this, false)'>";
+					strHLMenuHTML += hlObj.Desc + "</a></div>";
+				}
+			}
+		}
+		
+		strHLMenuHTML += "</div>";
+	}
+
+	frmDrawing.menu1.innerHTML = strHLMenuHTML;
+}
+
+function CreateHLObj (hlNode)
+{
+	var strAddress = "";
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (hlNode != null)
+	{
+		var hlAddress = hlNode.selectSingleNode("HLURL:Address/textnode()");
+		if (hlAddress != null && hlAddress.text.length > 0)
+		{
+			var absoluteURL = hlNode.selectSingleNode("HLURL:AbsoluteURL/textnode()");
+			var strAbsURL = absoluteURL.text;
+			var strAddr = hlAddress.text;
+
+			if (strAbsURL.indexOf (g_FileProtocol) == 0)
+			{
+				var strAbsPath = strAbsURL.substring (g_FileProtocol.length, strAbsURL.length);
+				strAbsPath.toLowerCase ();
+				strAddr.toLowerCase ();
+				if (strAbsPath == strAddr)
+				{
+					strAddress = strAbsPath;
+				}
+				else
+				{
+					strAddress = strAddr;
+					
+					var hlSubAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+					if (hlSubAddress != null && hlSubAddress.text.length > 0)
+					{
+						strAddress += '#';
+						strAddress += hlSubAddress.text;
+					}
+
+					var hlExtraInfo = hlNode.selectSingleNode("HLURL:ExtraInfo/textnode()");
+					if (hlExtraInfo != null && hlExtraInfo.text.length > 0)
+					{
+						strAddress += '?';
+						strAddress += hlExtraInfo.text;
+					}
+				}
+			}
+			else
+			{
+				strAddress = strAbsURL;
+			}		
+
+			strAddress = HTMLEscape (strAddress);
+			hlObj.Hyperlink += strAddress;
+		}
+		else
+		{
+			hlAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+			if (hlAddress != null && hlAddress.text.length > 0)
+			{
+				strAddress = hlAddress.text;
+
+				var pageShapeSep = strAddress.lastIndexOf ('/');
+				if (pageShapeSep > 0)
+				{
+					if (PageIndexFromName (strAddress) < 0)
+					{
+						strAddress = unescape (strAddress);
+						if (PageIndexFromName (strAddress) < 0)
+						{
+							strAddress = strAddress.substring (0, strAddress.lastIndexOf ('/'));
+						}
+					}
+				}
+
+				var pageIndex = PageIndexFromName (strAddress);
+
+				hlObj.DoFunction = "GoToPage (" + pageIndex + ");";
+				strAddress = HTMLEscape (strAddress);
+				hlObj.Desc = strAddress;
+			}
+		}
+
+		hlDesc = hlNode.selectSingleNode("HLURL:Description/textnode()");
+		if (hlDesc != null && hlDesc.text.length > 0)
+		{
+			hlObj.Desc = HTMLEscape (hlDesc.text);
+		}
+		else
+		{
+			hlObj.Desc = strAddress;
+		}
+	
+		var hlNewWindow = hlNode.selectSingleNode("HLURL:NewWindow/textnode()");
+		if (hlNewWindow != null && hlNewWindow.text.length > 0)
+		{
+			hlObj.NewWindow = (hlNewWindow.text == "1");
+		}		
+	}
+
+	return hlObj;
+}
+
+
+		</script>
+	</head>
+	
+	<frameset id="frmstOuter" cols="237,*" title="clonezilla_restore_flow_chart">
+		<frame src="clonezilla_restore_flow_chart.files/toolbar.htm" name="frmToolbar" id="frmToolbar" title="此框架包含管理您繪圖的工具。" frameborder="6" bordercolor="#999999" scrolling="no" marginheight="0" marginwidth="0" >
+		<frame src="clonezilla_restore_flow_chart.files/gif_1.htm" name="frmDrawing" title="此框架包含您繪圖的頁面。" marginheight="10" marginwidth="10" onload="if (parent.isUpLevel) FramePageLoaded()" >
+
+		<noframes>
+			<body>
+
+				<h1>clonezilla_restore_flow_chart</h1>
+				<ul>
+				<li><a href="clonezilla_restore_flow_chart.files/gif_1.htm">頁-1</a></li>
+
+				</ul>
+			</body>
+		</noframes>
+	</frameset>
+	
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/data.xml
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/data.xml	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/data.xml	(revision 21)
@@ -0,0 +1,554 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisioDocument>
+	<DocumentProperties>
+		<Title></Title>
+		<HyperlinkBase href=""></HyperlinkBase>
+	</DocumentProperties>
+	<Pages>
+		<Page ID="0" Name="頁-1" NameU="Page-1">
+			<Layer IX="0">
+				<Name>流程圖</Name>
+				<NameUniv>Flowchart</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Layer IX="1">
+				<Name>連接器</Name>
+				<NameUniv>Connector</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Shapes>
+				<Shape ID="1" UniqueID="{A2E80C2E-AB75-43F7-9090-9E23AD7BB81D}" Name="終端子" NameU="Terminator" Master="0">
+					<Text>start</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">10.826771653543304</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="2" UniqueID="{BE10E33C-8B82-4802-B35B-40AAE2CFF83A}" Name="決策" NameU="Decision" Master="2">
+					<Text>是否選擇全部
+clients</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">9.744094488188978</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="3" UniqueID="{5D42C29E-7A2F-49AA-B340-CBD414163D1D}" Name="動態連接器.6" NameU="Dynamic connector.6" Master="3">
+					<Text>No</Text>
+					<XForm>
+						<PinX Unit="MM">4.183070866141732</PinX>
+						<PinY Unit="MM">9.744094488188978</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="4" UniqueID="{194F9F8E-0E4F-4076-9CD6-3416CF620277}" Name="決策.5" NameU="Decision.5" Master="2">
+					<Text>選擇 clients</Text>
+					<XForm>
+						<PinX Unit="MM">4.960629921259841</PinX>
+						<PinY Unit="MM">9.744094488188978</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="5" UniqueID="{8B3C15EF-A147-4F1D-A8E0-E30C7D335841}" Name="動態連接器" NameU="Dynamic connector" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">10.334645669291337</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="6" UniqueID="{EF239B6A-54E7-4E66-BB71-909D187B76EE}" Name="儲存的資料" NameU="Stored data" Master="4">
+					<Text>讀取
+ ip_list or
+ MAC list</Text>
+					<XForm>
+						<PinX Unit="MM">6.535433070866137</PinX>
+						<PinY Unit="MM">9.744094488188978</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="7" UniqueID="{E3328BC5-6C16-4A4F-BBCB-42A74BA42AB4}" Name="動態連接器.9" NameU="Dynamic connector.9" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.728346456692910</PinX>
+						<PinY Unit="MM">9.744094488188978</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="8" UniqueID="{BE2A2377-C3C5-4EDA-9323-B09A3D770A8A}" Name="決策.8" NameU="Decision.8" Master="2">
+					<Text>選擇儲存 
+Disk or part</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">7.578740157480315</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="9" UniqueID="{6322ADA3-9F9B-40A7-8582-8F1DEAD23612}" Name="決策.9" NameU="Decision.9" Master="2">
+					<Text>現在輸入或是稍後在 client端輸入</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">8.562992125984250</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="10" UniqueID="{3B93E152-9271-408F-A96F-BEE8D9085CE2}" Name="動態連接器.10" NameU="Dynamic connector.10" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">9.153543307086615</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="11" UniqueID="{00665791-1DA2-4A35-BCE2-395DA9DF2585}" Name="手動輸入" NameU="Manual input" Master="7">
+					<Text>輸入欲儲存的 
+Disk name</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">6.594488188976380</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="12" UniqueID="{A8361058-606B-466A-9099-4FEA041CFEB8}" Name="手動輸入.12" NameU="Manual input.12" Master="7">
+					<Text>輸入欲儲存的 
+Disk and part name</Text>
+					<XForm>
+						<PinX Unit="MM">4.704724409448817</PinX>
+						<PinY Unit="MM">7.578740157480314</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="13" UniqueID="{DF19F8A8-F411-48BF-8E0F-8A5117D7BC06}" Name="動態連接器.13" NameU="Dynamic connector.13" Master="3">
+					<Text>Now</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">8.070866141732282</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="14" UniqueID="{A8E96D50-1EF0-4AB6-BAB7-437C09953143}" Name="動態連接器.14" NameU="Dynamic connector.14" Master="3">
+					<Text>Disk</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">7.007874015748032</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="15" UniqueID="{93431350-604B-4224-B8CA-8B98BF75D3E4}" Name="動態連接器.15" NameU="Dynamic connector.15" Master="3">
+					<Text>part</Text>
+					<XForm>
+						<PinX Unit="MM">3.917322834645668</PinX>
+						<PinY Unit="MM">7.578740157480315</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="16" UniqueID="{003C0310-62D4-4D75-AEB2-D0573DC3F686}" Name="決策.16" NameU="Decision.16" Master="2">
+					<Text>是否設定再生龍額外參數</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">5.610236220472444</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="18" UniqueID="{3EB6E613-DC59-4C6C-BAC8-FD72E6D1DA47}" Name="動態連接器.18" NameU="Dynamic connector.18" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.917322834645669</PinX>
+						<PinY Unit="MM">6.761811023622045</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="17" UniqueID="{FE93BA3A-B289-4E82-B55A-79BBC4B0DD8B}" Name="動態連接器.17" NameU="Dynamic connector.17" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">6.131889763779530</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="20" UniqueID="{6F4E8B03-513C-44FD-82C6-9D7639451B67}" Name="動態連接器.20" NameU="Dynamic connector.20" Master="3">
+					<Text>Later</Text>
+					<XForm>
+						<PinX Unit="MM">2.529527559055119</PinX>
+						<PinY Unit="MM">7.086614173228347</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="19" UniqueID="{2C75B32E-FA4E-47C0-855B-802105E0FC8A}" Name="動態連接器.19" NameU="Dynamic connector.19" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.399606299212598</PinX>
+						<PinY Unit="MM">9.005905511811022</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="23" UniqueID="{434B58C3-1213-4ACB-B915-FDF21B859145}" Name="動態連接器.23" NameU="Dynamic connector.23" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.163385826771653</PinX>
+						<PinY Unit="MM">4.257874015748038</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="24" UniqueID="{D6F1C331-D0E8-4532-A050-93828485578F}" Name="動態連接器.24" NameU="Dynamic connector.24" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">5.118110236220476</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="25" UniqueID="{717B4B2E-6CDF-480F-A389-C28939A8EB35}" Name="程序" NameU="Process" Master="8">
+					<Text>執行 drbl-ocs</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">1.712598425196851</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="26" UniqueID="{ECF4AF0D-6904-4D23-8252-3362B59DE106}" Name="動態連接器.26" NameU="Dynamic connector.26" Master="3">
+					<Text>No</Text>
+					<XForm>
+						<PinX Unit="MM">3.622047244094488</PinX>
+						<PinY Unit="MM">3.661417322834647</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="27" UniqueID="{77EC35F9-F5DD-4150-9DF8-201E471C5817}" Name="終端子.27" NameU="Terminator.27" Master="0">
+					<Text>end</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">0.570866141732275</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="28" UniqueID="{CDAB8818-4E2A-4990-8F85-77742BA29450}" Name="動態連接器.28" NameU="Dynamic connector.28" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">1.092519685039366</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="30" UniqueID="{4B411CF2-5ABF-40E6-9CF1-EF7D5B0A5C4F}" Name="動態連接器.30" NameU="Dynamic connector.30" Master="3">
+					<Text>ok</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">4.133858267716541</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="31" UniqueID="{4B03C840-6621-446B-B027-B5900D307DE2}" Name="儲存的資料.31" NameU="Stored data.31" Master="4">
+					<Text>預先儲存的選項</Text>
+					<XForm>
+						<PinX Unit="MM">4.704724409448817</PinX>
+						<PinY Unit="MM">3.641732283464574</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="32" UniqueID="{3CE91496-636E-447F-BF11-2C46E4E989F8}" Name="動態連接器.32" NameU="Dynamic connector.32" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.956692913385826</PinX>
+						<PinY Unit="MM">3.641732283464574</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="35" UniqueID="{484EFFB6-A69D-4C67-A8C8-4507F26C0BAE}" Name="動態連接器.35" NameU="Dynamic connector.35" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.163385826771653</PinX>
+						<PinY Unit="MM">3.025590551181110</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="36" UniqueID="{7CD44079-BD42-455C-A9AF-850F6952D4C4}" Name="動態連接器.36" NameU="Dynamic connector.36" Master="3">
+					<Text>ok</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">3.149606299212606</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="39" UniqueID="{6004A264-E6B2-4C68-9FC4-0CD621E194D1}" Name="動態連接器.39" NameU="Dynamic connector.39" Master="3">
+					<Text>ok</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">2.185039370078744</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="21" UniqueID="{59A71046-D14B-4FC1-91B8-D1D7493A5215}" Name="資料" NameU="Data" Master="9">
+					<Text>-p choose
+-p true
+-p poweroff
+-p reboot</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">3.641732283464574</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="22" UniqueID="{C4B78120-35FF-4828-8B7E-0E003E65FF79}" Name="資料.22" NameU="Data.22" Master="9">
+					<Text>-q, -c, -nogui, -a, -s, -f, -ntfs-ok</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">4.625984251968509</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="29" UniqueID="{FD676E0C-8D8A-4FE4-A0FB-F9F9E83AEC6D}" Name="資料.29" NameU="Data.29" Master="9">
+					<Text>-z0
+-z1
+-z2
+-z3</Text>
+					<XForm>
+						<PinX Unit="MM">3.129921259842520</PinX>
+						<PinY Unit="MM">2.657480314960639</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+			</Shapes>
+		</Page>
+	</Pages>
+</VisioDocument>
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/filelist.xml
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/filelist.xml	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/filelist.xml	(revision 21)
@@ -0,0 +1,32 @@
+<xml xmlns:o="urn:schemas-microsoft-com:office:office">
+ <o:File HRef="arrow.gif"/>
+ <o:File HRef="minimize.gif"/>
+ <o:File HRef="maximize.gif"/>
+ <o:File HRef="go.gif"/>
+ <o:File HRef="fullpage.gif"/>
+ <o:File HRef="plus.gif"/>
+ <o:File HRef="minus.gif"/>
+ <o:File HRef="panminus.gif"/>
+ <o:File HRef="panplus.gif"/>
+ <o:File HRef="tick-foc.gif"/>
+ <o:File HRef="tick-off.gif"/>
+ <o:File HRef="tick-on.gif"/>
+ <o:File HRef="toc.gif"/>
+ <o:File HRef="toc2.gif"/>
+ <o:File HRef="data.xml"/>
+ <o:File HRef="frameset.js"/>
+ <o:File HRef="keys.js"/>
+ <o:File HRef="visio.css"/>
+ <o:File HRef="vml_1.emz"/>
+ <o:File HRef="gif_1.gif"/>
+ <o:File HRef="vml_1.js"/>
+ <o:File HRef="vml_1.htm"/>
+ <o:File HRef="gif_1.js"/>
+ <o:File HRef="gif_1.htm"/>
+ <o:File HRef="zoom.htm"/>
+ <o:File HRef="find.js"/>
+ <o:File HRef="widgets.htm"/>
+ <o:File HRef="toolbar.htm"/>
+ <o:MainFile HRef="../clonezilla_save_flow_chart.htm"/>
+ <o:File HRef="filelist.xml"/>
+</xml>
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/find.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/find.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/find.js	(revision 21)
@@ -0,0 +1,499 @@
+
+var strShapeName	= "圖形名稱";
+var strShapeText	= "圖形文字";
+var strProps		= "圖形資料";
+var strResults		= "搜尋結果關於:";
+
+var strShape	= "圖形名稱:";
+var strNoCustomPropertiesToDisplayText = "CTRL+按一下繪圖中的圖形以檢視詳細資料。";
+
+var FindShapeXML = parent.FindShapeXML;
+var Unquote = parent.Unquote;
+var put_Location = parent.put_Location;
+
+
+var strChkBox		= "Chkbox";
+var strPropChkBox	= "PropChkbox";
+
+function doExpando(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = up.src;
+	}else{
+		xxx.style.display = "none"
+		yyy.src = down.src;
+	}
+}
+
+function doExp(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = "minus.gif";
+	}else{
+		xxx.style.display = "none"
+		yyy.src = "plus.gif";
+	}
+}
+
+
+function FindOnClick()
+{
+	var count, indexOfString;
+	
+	var fieldsToSearchArray = new Array();
+	if (parent.xmlData != null && document.theForm[strProps + strChkBox].checked)
+	{
+		for( count=0; count < document.theForm.length; count++ )
+		{
+			indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+			if( -1 != indexOfString && document.theForm[count].checked )
+			{
+				fieldsToSearchArray[ fieldsToSearchArray.length ] = document.theForm[count].name.slice(0, indexOfString);
+			}
+		}
+	}
+
+	var searchTokensArray = CreateSearchTokens (document.theForm.findString.value);
+
+	if (searchTokensArray.length > 0)
+	{
+		var findArray = Find(searchTokensArray, fieldsToSearchArray);
+		var ArrayLength = findArray.length;
+		var strResultsHTML = "找不到相符項目。";
+		var lastPageID = null;
+		var shapeID;
+		
+		
+		if(ArrayLength > 0)
+		{
+			strResultsHTML = strResults + ' <b>'+ parent.HTMLEscape(document.theForm.findString.value) +'</b>';
+			for ( count = 0; count < ArrayLength; count++)
+			{
+			
+				if( lastPageID != findArray[count].PageID )
+				{
+					lastPageID = findArray[count].PageID;
+				}
+
+				shapeID = findArray[count].ShapeID;
+				strResultsHTML += '<p class="results"><a href="javascript:populateSearchResultDetails(\'results_'+ lastPageID +'_'+ shapeID +'\', '+ lastPageID +','+ shapeID +'); TogglePlus(results_' + lastPageID + '_' + shapeID + ',\'img_' + lastPageID + '_' + shapeID + '\', hideResults)"><img src="plus.gif" alt="顯示/隱藏圖形詳細資料" width="13" height="9" border="0" id="img_'+ lastPageID +'_'+ shapeID +'"></a>\n'
+				strResultsHTML += '<a  class="blu1" href="JavaScript:FindQuerySelect(';
+
+				strResultsHTML += findArray[count].PageID + ",";
+				strResultsHTML += findArray[count].ShapeID + ",";
+				strResultsHTML += findArray[count].PinX + ",";
+				strResultsHTML += findArray[count].PinY;
+
+				strResultsHTML += ')">'+ findArray[count].Title +'</a></p>\n'
+
+				strResultsHTML += '</div>\n';
+				strResultsHTML += '<div class="indent" id="results_'+ lastPageID +'_'+ shapeID +'" style="display:none;width:100%;"></div>\n'
+			}
+
+		}
+		var divAdvSrch = document.all("hideAdvSrch");
+		var imgAS0 = document.all("as0");
+		
+		var tmpObj = document.all("hideResults");
+		if( tmpObj != null )
+		{
+			tmpObj.innerHTML = strResultsHTML;
+			tmpObj.open = "true";
+			tmpObj.style.display = "block";
+		}
+	}
+}
+
+function CreateSearchTokens (strUserString)
+{
+	var searchTokensArray = new Array();
+
+	var strToken = "";
+	var chCurChar;
+
+	for (var count = 0; count < strUserString.length; count++)
+	{
+		chCurChar = strUserString.charAt(count);
+		if (chCurChar == '"')
+		{
+			var nNextQuote = strUserString.indexOf('"', count + 1);
+			if (nNextQuote >= 0)
+			{
+				strToken = strUserString.slice(count + 1, nNextQuote);
+				searchTokensArray[searchTokensArray.length] = strToken;
+				strToken = "";
+				count = nNextQuote;
+			}
+		}
+		else if (chCurChar == ' ')
+		{
+			if (strToken.length > 0)
+			{
+				searchTokensArray[searchTokensArray.length] = strToken;
+			}
+
+			strToken = "";
+		}
+		else
+		{
+			strToken += chCurChar;
+		}
+	}
+
+	if (strToken.length > 0)
+	{
+		searchTokensArray[searchTokensArray.length] = strToken;
+	}
+
+	return searchTokensArray;
+}
+
+function populateSearchResultDetails( divID, pageID, shapeID )
+{
+	var tmpShape = FindShapeXML (pageID, shapeID);
+	var strOutput = CreatePropTable( tmpShape );
+	
+	var tmpObj = document.all(divID);
+	if( tmpObj != null )
+	{
+		tmpObj.innerHTML = strOutput;
+	}
+}
+
+function makeAdvancedFindCheckboxes(div)
+{
+	if (parent.xmlData)
+	{
+		var strOutput = "";
+
+		strOutput += "<INPUT type='checkbox' name='" + strShapeName + strChkBox + "' id='" + strShapeName + strChkBox + "' checked><label for='" + strShapeName + strChkBox + "'>" + strShapeName + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strShapeText + strChkBox + "' id='" + strShapeText + strChkBox + "' checked><label for='" + strShapeText + strChkBox + "'>" + strShapeText + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strProps + strChkBox + "' id='" + strProps + strChkBox + "' onclick='AdvSearchCustomPropCheck ()'checked ><label for='" + strProps + strChkBox + "'>" + strProps +"</label><br>\n";
+		strOutput += "<div id='divCPBoxes' style='margin-left:1em;'>";
+		
+		var objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label");
+		var filter = "";
+		var boolFirstPass = true;
+		var tmpPropName;
+		while( objNodes.length > 0)
+		{
+			tmpPropName = objNodes.item( 0 ).text;
+			var escapedPropName = parent.EscapeString(tmpPropName);
+			if( true == boolFirstPass )
+			{
+				filter = ". != '" + escapedPropName + "'";
+				boolFirstPass = false;
+			}
+			else
+			{
+				filter += " and . != '" + escapedPropName + "'";
+			}
+
+			tmpPropName = parent.HTMLEscape (tmpPropName);
+			strOutput += "<INPUT type='checkbox' name='" + tmpPropName + strPropChkBox + "' id='"+ tmpPropName + strPropChkBox + "' checked><label for='"+ tmpPropName + strPropChkBox + "'>" + tmpPropName +"</label><br>\n";
+
+			objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label["+ filter + "]");
+		}
+		strOutput += "</div>"
+		div.innerHTML = strOutput;
+	}
+}
+
+function AdvSearchCustomPropCheck ()
+{
+	for( count=0; count < document.theForm.length; count++ )
+	{
+		indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+		if( -1 != indexOfString )
+		{
+			document.theForm[count].disabled = !document.theForm[strProps + strChkBox].checked;
+		}
+	}
+}
+
+
+function CResultItem(title, pageID, shapeID, pinX, pinY)
+{
+	 this["Title"] = title;
+	 this["PageID"] = pageID;
+	 this["ShapeID"] = shapeID;
+	 this["PinX"] = pinX;
+	 this["PinY"] = pinY;
+}
+
+function FindParentPage(nodeObject)
+{
+	if(nodeObject == null)
+	{
+		return null;
+	}
+	if(nodeObject.baseName == "Page")
+		return nodeObject;
+	else
+		return FindParentPage(nodeObject.parentNode);
+}
+
+function QueryStringForMatch(shapeNode, regTextForFind, filterString)
+{
+	if (filterString.length > 0)
+	{
+		var nodesToCheck = shapeNode.selectNodes(filterString);
+
+		var nodeCount = nodesToCheck.length;
+		var stringToParse;
+		for(var ncount = 0; ncount < nodeCount; ncount++)
+		{
+			stringToParse = nodesToCheck.item(ncount).text;
+			stringToParse = stringToParse.toLowerCase ();
+			if(stringToParse.indexOf(regTextForFind) > -1)
+			{
+				return true;
+			}
+		}
+	}
+}
+
+function GetShapeTitle(shapeNode)
+{
+	var objTempName = null;
+	var objTempTextElement = shapeNode.selectSingleNode("./Text");
+	if(objTempTextElement != null)
+	{
+		var objTextNode = objTempTextElement.selectSingleNode("textnode()");
+		if (objTextNode != null)
+		{
+			return parent.HTMLEscape (objTextNode.text);
+		}
+	}
+
+	objTempName = shapeNode.selectSingleNode("./@Name");
+	if(objTempName != null)
+	{
+		return parent.HTMLEscape (objTempName.text);
+	}
+
+	return "";
+}
+
+function GetPageTitle(pageID)
+{
+	var pagesObj = parent.xmlData.selectSingleNode("VisioDocument/Pages");
+	if(!pagesObj)
+	{
+		return "";
+	}
+
+	var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+	var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+	if(!pageObj)
+	{
+		return "";
+	}
+
+	var pageNameNode = pageObj.selectSingleNode("@Name");
+	if(!pageNameNode)
+	{
+		return "";
+	}
+	return pageNameNode.text;
+}
+
+function Find(searchTokensArray, propsToSearchArray)
+{
+	var bXMLNotValid = false;
+	var findArray = new Array();
+	var findIndex = 0;
+
+	if (parent.xmlData != null && searchTokensArray.length > 0)
+	{
+		var fieldsToSearchArray = new Array();
+		var filterString = "";
+		if( null != propsToSearchArray &&
+			propsToSearchArray.length > 0 )
+		{
+			var propFilterString = "";
+			for( var count=0; count< propsToSearchArray.length; count++ )
+			{
+				if( count == 0 )
+				{
+					propFilterString = "[. = '" + parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+				else
+				{
+					propFilterString += " or . = '"+ parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+			}
+			propFilterString += "]";
+
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Prop[Label"+ propFilterString +"]/Value";
+		}
+
+		if (document.theForm[strShapeText + strChkBox].checked)
+		{
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Text";
+		}
+
+		if (fieldsToSearchArray.length > 0)
+		{
+			filterString = "(.//(";
+
+			for (var fieldCount = 0; fieldCount < fieldsToSearchArray.length; fieldCount++)
+			{
+				if (fieldCount != 0)
+				{
+					filterString += " | ";
+				}
+
+				filterString += fieldsToSearchArray[fieldCount];
+			}
+
+			filterString += ")/textnode())";
+		}
+
+		var objShapeNodes;
+
+		if (document.theForm[strShapeName + strChkBox].checked)
+		{
+			if (filterString.length > 0)
+			{
+				filterString += " | ";
+			}
+			filterString += "(@Name)";
+
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape");
+		}
+		else
+		{
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape[(Prop/Value | Prop/Label | Text)]");
+		}
+
+		var shapeCount = objShapeNodes.length;
+		var objTempData = new CResultItem("A Label","PageID","ShapeID","PinX","PinY");
+		var objTempShape = null;
+
+		for (count = 0; count < shapeCount; count++)
+		{		
+			objTempShape = objShapeNodes.item(count);
+
+			var objParentPageNode = FindParentPage(objTempShape);
+			if (objParentPageNode == null)
+			{
+				continue;
+			}
+
+			var objPageIDNode = objParentPageNode.selectSingleNode("@ID/textnode()");
+			if(objPageIDNode == null)
+			{
+				continue;
+			}
+			var pageID = objPageIDNode.text;
+
+			var pageIndex = parent.PageIndexFromID (pageID);
+			if (pageIndex < 0)
+			{
+				continue;
+			}
+
+			var objLayerMember = objTempShape.selectSingleNode("LayerMem/LayerMember");
+			if (objLayerMember != null && objLayerMember.text.length > 0)
+			{
+				var layerArray = objLayerMember.text.split (';');
+				var visibleLayer = false;
+				for (var layerCount = 0; (layerCount < layerArray.length) && !visibleLayer; layerCount++)
+				{
+					var objLayerVisible = objParentPageNode.selectSingleNode("Layer[@IX=" + layerArray[layerCount] + "]/Visible");
+					if (objLayerVisible != null)
+					{
+						 visibleLayer = (objLayerVisible.text != 0);
+					}
+				}
+				
+				if (!visibleLayer)
+				{
+					continue;
+				}
+			}
+
+			for (var tokenCount = 0; tokenCount < searchTokensArray.length; tokenCount++)
+			{
+				var textToFind = searchTokensArray[tokenCount];
+				textToFind = textToFind.toLowerCase ();
+
+				if (QueryStringForMatch(objTempShape, textToFind, filterString))
+				{
+					objTempData.Title = GetShapeTitle(objTempShape);
+					objTempData.PageID = pageID;
+
+					objShapeIDNode = objTempShape.selectSingleNode("@ID/textnode()");
+					if(objShapeIDNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.ShapeID = objShapeIDNode.text;
+					objPinXNode = objTempShape.selectSingleNode("XForm/PinX/textnode()");
+					if(objPinXNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinX = objPinXNode.text;
+					objPinYNode = objTempShape.selectSingleNode("XForm/PinY/textnode()");
+					if(objPinYNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinY = objPinYNode.text;
+
+					findArray[findIndex] = new CResultItem(objTempData.Title, objTempData.PageID, objTempData.ShapeID, objTempData.PinX, objTempData.PinY);
+					findIndex++;
+					break;
+				}
+			}
+		}
+		if(bXMLNotValid)
+		{
+			findArray.length = 0;
+		}
+	}
+
+	return findArray;
+}
+
+function FindQuerySelect(pageID, shapeID, pinX, pinY)
+{
+	if ((!widgets.GoTo && parent.g_FileList.length > 1) || (widgets.GoTo && parent.g_FileList[document.all("Select1").value].PageID != pageID))
+	{
+		parent.g_callBackFunctionArray[parent.g_callBackFunctionArray.length] = function () { parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY); };
+		parent.GoToPageByID(pageID);
+	}
+	else 
+	{
+		if (parent.viewMgr != null)
+		{
+			parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY);
+		}
+	}
+}
+
+function TreeSelect(pageID, shapeID)
+{
+	var shapeNode = FindShapeXML (pageID, shapeID);
+	if (shapeNode != null)
+	{
+		var pinXNode = shapeNode.selectSingleNode("XForm/PinX/textnode()");
+		var pinYNode = shapeNode.selectSingleNode("XForm/PinY/textnode()");
+
+		if (pinXNode != null && pinYNode != null)
+		{
+			FindQuerySelect (pageID, shapeID, pinXNode.text, pinYNode.text);
+		}
+	}
+}
+
+
+var g_RowStyleList = parent.g_RowStyleList;
+var FillPropPane = parent.FillPropPane;
+var CreatePropTable = parent.CreatePropTable;
+
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/frameset.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/frameset.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/frameset.js	(revision 21)
@@ -0,0 +1,653 @@
+
+var MSIE = false;
+var ver = 0;
+var indexOfMSIE = navigator.userAgent.indexOf("MSIE"); 
+if(indexOfMSIE != -1)
+{
+	MSIE = true;
+	ver = parseFloat(navigator.userAgent.substring(indexOfMSIE + 5, navigator.userAgent.indexOf(";", indexOfMSIE)));
+}
+
+var isMac = (navigator.appVersion.indexOf("Macintosh") >= 0);
+var isUpLevel = (MSIE && ver >= 5 && !isMac);
+
+var xmlData = XMLData("clonezilla_save_flow_chart.files/data.xml");
+
+var g_RowStyleList = new  Array(
+ "propViewerEvenRow",
+ "propViewerOddRow"
+);
+
+
+var strShape	= "圖形名稱:";
+
+
+
+function XMLData(file)
+{
+	var temp = null;
+	if(isUpLevel)
+	{
+		temp = CreateObject("Microsoft.XMLDOM");
+		if (temp == null)
+		{
+			temp = CreateObject("MSXML2.DOMDocument");
+		}
+
+		if (temp != null)
+		{
+			temp.async = false;
+		
+			temp.load(file);
+			if (temp.parseError.errorCode != 0)
+			{
+				temp = null;
+			}
+		}
+	}
+
+	return temp;
+}
+
+function CreateObject (strObj)
+{
+	var obj = null;
+	eval ("try { obj = new ActiveXObject(strObj); } catch (e) {}");
+	return obj;
+}
+
+function doVersion()
+{
+	if(isUpLevel)
+	{
+		frmToolbar.divDownLevel.innerHTML = "";
+		frmToolbar.divUpLevel.innerHTML = frmWidgets.divData.innerHTML;
+	}
+}	
+	
+	
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData != null)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(pageObj == null)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function OnShapeKey(pageID, shapeID)
+{
+	var e = window.frmDrawing.event;
+	
+	if(e.keyCode == 13 && e.ctrlKey)		//ctrl + enter
+	{
+		UpdateProps (pageID, shapeID);
+	}
+	else if (e.keyCode == 13)
+	{
+		OnShapeClick (pageID, shapeID);
+	}
+}
+
+function OnShapeClick (pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var e = frmDrawing.window.event;
+		var elem = e.srcElement;
+
+		if (e != null && e.ctrlKey && frmToolbar.widgets && frmToolbar.widgets.Details)
+		{
+			UpdateProps (pageID, shapeID);
+		}
+		else
+		{
+			var shapeNode = FindShapeXML (pageID, shapeID);
+			var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+			if (hlObj != null)
+			{
+				if (hlObj.DoFunction.length > 0)
+				{
+					eval (hlObj.DoFunction);
+				}
+				else if (hlObj.Hyperlink.length > 0)
+				{
+					if (hlObj.NewWindow)
+					{
+						window.open (hlObj.Hyperlink);
+					}
+					else
+					{
+						top.location.href = hlObj.Hyperlink.substr (0, 510);
+					}
+				}
+				else if (elem != null)
+				{
+					var href = elem.origHref;
+					if (href == null)
+					{
+						href = elem.href;
+					}
+
+					var target = elem.origTarget;
+					if (target == null)
+					{
+						target = elem.target;
+					}
+
+					if (href && href.length > 0)
+					{
+						href = HTMLEscape (href);
+						if (target && target == "_blank")
+						{
+							window.open (href);
+						}
+						else
+						{
+							top.location.href = href.substr (0, 510);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return (!isUpLevel);
+}
+
+function UpdateProps(pageID, shapeID)
+{
+	var shape = FindShapeXML (pageID, shapeID);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function UpdatePropsByShapeName(pageName, shapeName)
+{
+	var shape = FindShapeXMLByName (pageName, shapeName);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function FillPropPane (shapeNode, outputDivObj )
+{
+	if (shapeNode != null && outputDivObj != null)
+	{
+		if(outputDivObj.style.display == "none")
+		{
+			frmToolbar.ToggleWidget(outputDivObj);
+		}
+	
+		var strCPHTML = "";
+		
+		var shapeNameAttr = shapeNode.attributes.getNamedItem ("Name");
+		if (shapeNameAttr)
+		{
+			strCPHTML += "<span class='p2' style='padding-left:2px;'>" + strShape + " " + HTMLEscape(shapeNameAttr.text) + "</span>";
+		}
+
+		var strTableHTML = CreatePropTable (shapeNode);
+		if(strTableHTML.indexOf("<table") == -1)
+		{
+			strTableHTML = "<p class='p2' style='margin-left:1em;margin-top:0em;'>" + strTableHTML + "</p>";
+		}
+
+		if (strTableHTML.length > 0)
+		{
+			strCPHTML += strTableHTML;
+		}
+		else
+		{
+			strCPHTML = strNoCustomPropertiesToDisplayText;
+		}
+		
+		outputDivObj.innerHTML = strCPHTML;
+		outputDivObj.minHeight = 75;
+	}
+}
+
+function CreatePropTable (shapeNode)
+{
+	var strCPHTML = "";
+	var strStartTable = "<table class='propViewerTABLE' borderColor='#999999' cellPadding='2' width='95%' border='1' summary='此表格包含圖形詳細資料'>";
+		strStartTable += "<THEAD class='propViewerTHEAD'><TH>標籤</TH><TH>值</TH></THEAD>";
+	var strEndTable = "</TABLE>";
+
+	if (shapeNode != null)
+	{
+		var propColl = shapeNode.selectNodes ("Prop");
+
+		var propCount = propColl.length;
+		for (var count = 0; count < propCount; count++)
+		{
+			strCPHTML += "<TR class='" + g_RowStyleList[count % 2] + "'>";
+			
+			var strLabelText = "";
+			oPropLabel = propColl.item(count).selectSingleNode("Label/textnode()");
+			if (oPropLabel != null)
+			{
+				strLabelText = HTMLEscape (oPropLabel.text);
+			}
+			else
+			{
+				oPropName = propColl.item(count).attributes.getNamedItem ("Name");
+				if (oPropName)
+				{
+					strLabelText = HTMLEscape (oPropName.text);
+				}
+			}
+
+			if (strLabelText.length > 0)
+			{
+				strCPHTML += "<TD class='propViewerTD'>" + strLabelText + "</TD>";
+				strCPHTML += "<TD class='propViewerTD'>"
+
+				var strValueText = "&nbsp;";
+				oPropValue = propColl.item(count).selectSingleNode("Value/textnode()");
+				if (oPropValue)
+				{
+					strValueText = HTMLEscape (oPropValue.text);
+				}
+
+				strCPHTML += strValueText + "</TD></TR>";
+			}
+		}
+
+		if(strCPHTML != "")
+		{
+			strCPHTML = strStartTable + strCPHTML + strEndTable;
+		}
+		else
+		{
+			strCPHTML = "沒有可使用的詳細資料。";
+		}
+	}
+
+	return strCPHTML;
+}
+
+function keyHandler()
+{
+	var e = frmDrawing.window.event;
+	if(e.keyCode == 13) //enter
+	{
+		e.srcElement.click();
+	}
+}
+
+function GoToPage(index)
+{
+	if (viewMgr)
+	{
+		viewMgr.loadPage (index);
+	}
+	else
+	{
+		DefPageLoad (index);
+	}
+}
+
+function GoToPageByID(pageID)
+{
+	var pageIndex = PageIndexFromID (pageID);
+	if (pageIndex >= 0)
+	{
+		GoToPage (pageIndex);
+	}
+}
+
+function PageIndexFromID (pageID)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageID == g_FileList[count].PageID)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromName (strPageName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strPageNameLower = strPageName;
+		strPageNameLower = strPageNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListPageName = g_FileList[count].PageName;
+			strFileListPageName = HTMLUnescape (strFileListPageName);
+			strFileListPageName = strFileListPageName.toLowerCase ();
+			if (strPageNameLower == strFileListPageName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromFileName (strFileName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strFileNameLower = strFileName;
+		strFileNameLower = strFileNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListFileName = g_FileList[count].PriImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+
+			strFileListFileName = g_FileList[count].SecImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromVisioPageIndex (pageIndex)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageIndex == g_FileList[count].PageIndex)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function FindShapeXMLByName (pageName, shapeName)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@Name $ieq$ "' + EscapeString (pageName) + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@Name $ieq$ "' + EscapeString (shapeName) + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function Unquote (str)
+{
+	var nStartIndex = 0;
+	var nEndIndex = str.length;
+
+	if (str.charAt (0) == '"')
+	{
+		nStartIndex = 1;
+	}
+
+	if (str.charAt (nEndIndex - 1) == '"')
+	{
+		nEndIndex -= 1;
+	}
+
+	return str.substring (nStartIndex, nEndIndex);
+}
+
+function ConvertXorYCoordinate(PosValue, OldMin, OldMax, NewMin, NewMax, MapBackwards)
+{
+	var OldMid = (OldMax - OldMin) / 2;
+	var NewMid = (NewMax - NewMin) / 2;
+	var ConvertResult = 1 * PosValue;
+	ConvertResult = ConvertResult - (OldMin + OldMid);
+	ConvertResult = ConvertResult / OldMid;
+	if(MapBackwards != 0)
+	{
+		ConvertResult = 0 - ConvertResult;
+	}
+	ConvertResult = ConvertResult * NewMid;
+	ConvertResult = ConvertResult + (NewMin + NewMid);
+	return ConvertResult;
+}
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.display = "";
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+		divObject.style.display = "none";
+	}
+	return divObject;
+}
+
+function EscapeString (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "\\\\";
+		}
+		else if (curChar == "\"")
+		{
+			strResult += "\\\"";
+		}
+		else if (curChar == "\'")
+		{
+			strResult += "\\\'";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLEscape (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "&#92;";
+		}
+		else if (curChar == '\"')
+		{
+			strResult += "&#34;";
+		}
+		else if (curChar == '\'')
+		{
+			strResult += "&#39;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#60;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#62;";
+		}
+		else if (curChar == '&')
+		{
+			strResult += "&#38;";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLUnescape (str)
+{
+	var strResult = "";
+	var strEscapePattern = "&#xx;";
+
+	for (var i = 0 ; i < str.length - strEscapePattern.length + 1; i++)
+	{
+		if (str.charAt(i) == '&' && 
+			str.charAt(i + 1) == '#' &&
+			str.charAt(i + 4) == ';')
+		{
+			var charCode = str.charAt(i + 2);
+			charCode += str.charAt(i + 3);
+
+			if (charCode == "34")
+			{
+				strResult += '"';
+			}
+			else if (charCode == "39")
+			{
+				strResult += '\'';
+			}
+			else if (charCode == "60")
+			{
+				strResult += '<';
+			}
+			else if (charCode == "62")
+			{
+				strResult += '>';
+			}
+			else if (charCode == "92")
+			{
+				strResult += '\\';
+			}
+			else if (charCode == "38")
+			{
+				strResult += '&';
+			}
+			
+			i = i + strEscapePattern.length - 1;
+		}
+		else
+		{
+			strResult += str.charAt(i);
+		}
+	}
+
+	strResult += str.substring (i, str.length);
+
+	return strResult;
+}
+
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/gif_1.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/gif_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/gif_1.htm	(revision 21)
@@ -0,0 +1,144 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>
+clonezilla_save_flow_chart
+</title>
+<script type="text/javascript" language="javascript">
+function UpdateTooltip(){};
+function OnShapeClick(){};
+</script>
+
+<script src="gif_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+	}
+</script>
+
+
+
+<script type="text/jscript" language="jscript">
+
+var pageID = 0;
+
+var isUpLevel = parent.isUpLevel;
+var OnShapeClick = null;
+if (!parent.isMac)
+{
+	OnShapeClick = parent.OnShapeClick;
+}
+
+var OnShapeKey = parent.OnShapeKey;
+var UpdateTooltip = parent.UpdateTooltip;
+var clickMenu = parent.clickMenu;
+var toggleMenuDiv = parent.toggleMenuDiv;
+var toggleMenuLink = parent.toggleMenuLink;
+var GoToPage = parent.GoToPage;
+
+
+if (parent.isUpLevel)
+{
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			var fileEntry = parent.g_FileList[parent.g_CurPageIndex];
+			var fileToLoad = fileToLoad = fileEntry.PriImage;
+			if (fileEntry.SecImage.length > 0)
+			{
+				fileToLoad = fileEntry.SecImage;
+			}
+
+			location.replace(fileToLoad);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+
+	var viewMgr = new parent.CViewMgr();
+	parent.viewMgr = viewMgr;
+
+	viewMgr.SupportsDetails = true;
+	viewMgr.SupportsSearch = true;
+
+	viewMgr.put_Location = ViewMgrSetRasterLocation;
+	viewMgr.visBBoxLeft = 2.044799;
+	viewMgr.visBBoxRight = 7.029226;
+	viewMgr.visBBoxBottom = 0.372349;
+	viewMgr.visBBoxTop = 11.025289;
+	viewMgr.highlightDiv = null;
+}
+
+function load ()
+{
+	if(isUpLevel)
+	{
+		arrowdiv.innerHTML = '<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>';
+
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.CurPageUpdate (pageIndex);
+	}
+}
+
+function unload()
+{
+	if(isUpLevel)
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+}
+
+window.onload = load;
+window.onunload = unload;
+document.onclick = clickMenu;
+
+</script>
+</head>
+
+<body class="pageView" bgcolor="#FFFFFF">
+
+<div id=arrowdiv style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+<DIV id=RasterDiv>
+
+
+<center>
+  <IMG id="ConvertedImage" SRC="gif_1.gif" ALT="頁-1" name=RasterImage BORDER="0" USEMAP="#visImageMap">
+</center>
+
+<MAP NAME="visImageMap">
+  <AREA shape="POLYGON" tabindex="1" ALT="-z0 -z1 -z2 -z3" origTitle="-z0 -z1 -z2 -z3" TITLE="-z0 -z1 -z2 -z3"  target="_top" COORDS="25,488,80,488,97,455,42,455,25,488" onmouseover="UpdateTooltip(this,0,29)" onfocus="UpdateTooltip(this,0,29)" onclick="return OnShapeClick(0,29);" onkeyup="OnShapeKey(0,29);">
+  <AREA shape="POLYGON" tabindex="1" ALT="-q, -c, -nogui, -a, -s, -f, -ntfs-ok" origTitle="-q, -c, -nogui, -a, -s, -f, -ntfs-ok" TITLE="-q, -c, -nogui, -a, -s, -f, -ntfs-ok"  target="_top" COORDS="25,377,80,377,97,344,42,344,25,377" onmouseover="UpdateTooltip(this,0,22)" onfocus="UpdateTooltip(this,0,22)" onclick="return OnShapeClick(0,22);" onkeyup="OnShapeKey(0,22);">
+  <AREA shape="POLYGON" tabindex="1" ALT="-p choose -p true -p poweroff -p reboot" origTitle="-p choose -p true -p poweroff -p reboot" TITLE="-p choose -p true -p poweroff -p reboot"  target="_top" COORDS="25,432,80,432,97,399,42,399,25,432" onmouseover="UpdateTooltip(this,0,21)" onfocus="UpdateTooltip(this,0,21)" onclick="return OnShapeClick(0,21);" onkeyup="OnShapeKey(0,21);">
+  <AREA shape="POLYGON" tabindex="1" ALT="預先儲存的選項" origTitle="預先儲存的選項" TITLE="預先儲存的選項"  target="_top" COORDS="130,402,129,402,129,403,129,404,129,404,128,405,128,405,128,406,128,407,128,407,127,408,127,408,127,409,127,410,127,410,127,411,127,411,126,412,126,413,126,413,126,414,126,415,126,415,126,416,126,416,126,417,126,418,126,418,126,419,126,420,127,420,127,421,127,422,127,422,127,423,127,423,127,424,128,425,128,425,128,426,128,426,128,427,129,428,129,428,129,429,129,429,130,430,173,430,172,429,172,429,172,428,172,428,171,427,171,426,171,426,171,425,170,425,170,424,170,423,170,423,170,422,170,422,170,421,169,420,169,420,169,419,169,418,169,418,169,417,169,416,169,416,169,415,169,415,169,414,169,413,169,413,169,412,169,411,170,411,170,410,170,410,170,409,170,408,170,408,170,407,171,407,171,406,171,405,171,405,172,404,172,404,172,403,172,402,173,402,130,402" onmouseover="UpdateTooltip(this,0,31)" onfocus="UpdateTooltip(this,0,31)" onclick="return OnShapeClick(0,31);" onkeyup="OnShapeKey(0,31);">
+  <AREA shape="POLYGON" tabindex="1" ALT="end" origTitle="end" TITLE="end"  target="_top" COORDS="44,600,78,600,78,600,78,600,79,600,79,600,79,600,80,600,80,600,81,599,81,599,81,599,82,599,82,599,82,599,83,599,83,598,83,598,84,598,84,598,84,598,85,597,85,597,85,597,85,597,86,596,86,596,86,596,86,595,87,595,87,595,87,594,87,594,87,594,88,593,88,593,88,593,88,592,88,592,88,592,88,591,88,591,88,590,89,590,89,590,89,589,89,589,89,588,89,588,89,588,88,587,88,587,88,587,88,586,88,586,88,585,88,585,88,585,88,584,87,584,87,584,87,583,87,583,87,583,86,582,86,582,86,582,86,581,85,581,85,581,85,581,85,580,84,580,84,580,84,580,83,579,83,579,83,579,82,579,82,579,82,579,81,578,81,578,81,578,80,578,80,578,79,578,79,578,79,578,78,578,78,578,78,578,44,578,44,578,44,578,43,578,43,578,42,578,42,578,42,578,41,578,41,578,41,578,40,579,40,579,40,579,39,579,39,579,39,579,38,580,38,580,38,580,37,580,37,581,37,581,36,581,36,581,36,582,36,582,35,582,35,583,35,583,35,583,35,584,34,584,34,584,34,585,34,585,34,585,34,586,34,586,34,587,33,587,33,587,33,588,33,588,33,588,33,589,33,589,33,590,33,590,33,590,33,591,34,591,34,592,34,592,34,592,34,593,34,593,34,593,34,594,35,594,35,594,35,595,35,595,35,595,36,596,36,596,36,596,36,597,37,597,37,597,37,597,38,598,38,598,38,598,39,598,39,598,39,599,40,599,40,599,40,599,41,599,41,599,41,599,42,600,42,600,42,600,43,600,43,600,44,600,44,600,44,600" onmouseover="UpdateTooltip(this,0,27)" onfocus="UpdateTooltip(this,0,27)" onclick="return OnShapeClick(0,27);" onkeyup="OnShapeKey(0,27);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行 drbl-ocs" origTitle="執行 drbl-ocs" TITLE="執行 drbl-ocs"  target="_top" COORDS="33,541,89,541,89,508,33,508,33,541" onmouseover="UpdateTooltip(this,0,25)" onfocus="UpdateTooltip(this,0,25)" onclick="return OnShapeClick(0,25);" onkeyup="OnShapeKey(0,25);">
+  <AREA shape="POLYGON" tabindex="1" ALT="是否設定再生龍額外參數" origTitle="是否設定再生龍額外參數" TITLE="是否設定再生龍額外參數"  target="_top" COORDS="77,312,89,305,80,300,80,297,75,297,61,288,47,297,42,297,42,300,33,305,45,312,45,312,46,312,61,322,76,312,77,312,77,312" onmouseover="UpdateTooltip(this,0,16)" onfocus="UpdateTooltip(this,0,16)" onclick="return OnShapeClick(0,16);" onkeyup="OnShapeKey(0,16);">
+  <AREA shape="POLYGON" tabindex="1" ALT="輸入欲儲存的  Disk and part name" origTitle="輸入欲儲存的  Disk and part name" TITLE="輸入欲儲存的  Disk and part name"  target="_top" COORDS="122,207,177,207,177,181,122,192,122,207" onmouseover="UpdateTooltip(this,0,12)" onfocus="UpdateTooltip(this,0,12)" onclick="return OnShapeClick(0,12);" onkeyup="OnShapeKey(0,12);">
+  <AREA shape="POLYGON" tabindex="1" ALT="輸入欲儲存的  Disk name" origTitle="輸入欲儲存的  Disk name" TITLE="輸入欲儲存的  Disk name"  target="_top" COORDS="33,263,89,263,89,236,33,247,33,263" onmouseover="UpdateTooltip(this,0,11)" onfocus="UpdateTooltip(this,0,11)" onclick="return OnShapeClick(0,11);" onkeyup="OnShapeKey(0,11);">
+  <AREA shape="POLYGON" tabindex="1" ALT="現在輸入或是稍後在 client端輸入" origTitle="現在輸入或是稍後在 client端輸入" TITLE="現在輸入或是稍後在 client端輸入"  target="_top" COORDS="89,130,81,130,61,122,41,130,33,130,33,134,21,139,61,155,101,139,91,134,91,130,89,130" onmouseover="UpdateTooltip(this,0,9)" onfocus="UpdateTooltip(this,0,9)" onclick="return OnShapeClick(0,9);" onkeyup="OnShapeKey(0,9);">
+  <AREA shape="POLYGON" tabindex="1" ALT="選擇儲存  Disk or part" origTitle="選擇儲存  Disk or part" TITLE="選擇儲存  Disk or part"  target="_top" COORDS="75,186,61,177,33,194,61,211,89,194,75,186,75,186,75,186" onmouseover="UpdateTooltip(this,0,8)" onfocus="UpdateTooltip(this,0,8)" onclick="return OnShapeClick(0,8);" onkeyup="OnShapeKey(0,8);">
+  <AREA shape="POLYGON" tabindex="1" ALT="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list" TITLE="讀取  ip_list or  MAC list"  target="_top" COORDS="270,89,280,89,280,88,279,88,279,87,279,86,278,86,278,85,278,84,278,84,278,83,277,83,277,82,277,81,277,81,277,80,276,79,276,79,276,78,276,77,276,77,276,76,276,75,276,75,276,74,276,73,276,72,276,72,276,71,276,70,276,70,276,69,276,68,276,68,276,67,276,66,276,66,276,65,277,64,277,64,277,63,277,62,277,62,278,61,278,60,278,60,278,59,278,59,279,58,279,57,279,57,280,56,280,56,262,56,262,54,243,54,243,56,229,56,228,56,228,57,228,57,228,58,227,59,227,59,227,60,227,60,226,61,226,62,226,62,226,63,226,64,225,64,225,65,225,66,225,66,225,67,225,68,225,68,225,69,225,70,225,70,225,71,225,72,225,72,225,73,225,74,225,75,225,75,225,76,225,77,225,77,225,78,225,79,225,79,225,80,226,81,226,81,226,82,226,83,226,83,227,84,227,84,227,85,227,86,228,86,228,87,228,88,228,88,229,89,234,89,234,89,237,89,270,89,270,89" onmouseover="UpdateTooltip(this,0,6)" onfocus="UpdateTooltip(this,0,6)" onclick="return OnShapeClick(0,6);" onkeyup="OnShapeKey(0,6);">
+  <AREA shape="POLYGON" tabindex="1" ALT="選擇 clients" origTitle="選擇 clients" TITLE="選擇 clients"  target="_top" COORDS="177,81,191,72,178,64,178,57,175,57,167,57,164,56,161,57,153,57,153,62,136,72,150,81,150,85,158,85,164,89,170,85,177,85,177,81" onmouseover="UpdateTooltip(this,0,4)" onfocus="UpdateTooltip(this,0,4)" onclick="return OnShapeClick(0,4);" onkeyup="OnShapeKey(0,4);">
+  <AREA shape="POLYGON" tabindex="1" ALT="是否選擇全部 clients" origTitle="是否選擇全部 clients" TITLE="是否選擇全部 clients"  target="_top" COORDS="77,62,61,56,45,62,38,62,38,65,18,72,61,89,104,72,84,65,84,62,77,62" onmouseover="UpdateTooltip(this,0,2)" onfocus="UpdateTooltip(this,0,2)" onclick="return OnShapeClick(0,2);" onkeyup="OnShapeKey(0,2);">
+  <AREA shape="POLYGON" tabindex="1" ALT="start" origTitle="start" TITLE="start"  target="_top" COORDS="44,22,78,22,78,22,78,22,79,22,79,22,79,22,80,22,80,22,81,22,81,22,81,22,82,21,82,21,82,21,83,21,83,21,83,21,84,20,84,20,84,20,85,20,85,19,85,19,85,19,86,19,86,18,86,18,86,18,87,17,87,17,87,17,87,16,87,16,88,16,88,15,88,15,88,15,88,14,88,14,88,13,88,13,88,13,89,12,89,12,89,12,89,11,89,11,89,10,89,10,88,10,88,9,88,9,88,8,88,8,88,8,88,7,88,7,88,7,87,6,87,6,87,6,87,5,87,5,86,5,86,4,86,4,86,4,85,3,85,3,85,3,85,3,84,2,84,2,84,2,83,2,83,2,83,1,82,1,82,1,82,1,81,1,81,1,81,1,80,0,80,0,79,0,79,0,79,0,78,0,78,0,78,0,44,0,44,0,44,0,43,0,43,0,42,0,42,0,42,0,41,1,41,1,41,1,40,1,40,1,40,1,39,1,39,2,39,2,38,2,38,2,38,2,37,3,37,3,37,3,36,3,36,4,36,4,36,4,35,5,35,5,35,5,35,6,35,6,34,6,34,7,34,7,34,7,34,8,34,8,34,8,34,9,33,9,33,10,33,10,33,10,33,11,33,11,33,12,33,12,33,12,33,13,33,13,34,13,34,14,34,14,34,15,34,15,34,15,34,16,34,16,35,16,35,17,35,17,35,17,35,18,36,18,36,18,36,19,36,19,37,19,37,19,37,20,38,20,38,20,38,20,39,21,39,21,39,21,40,21,40,21,40,21,41,22,41,22,41,22,42,22,42,22,42,22,43,22,43,22,44,22,44,22,44,22" onmouseover="UpdateTooltip(this,0,1)" onfocus="UpdateTooltip(this,0,1)" onclick="return OnShapeClick(0,1);" onkeyup="OnShapeKey(0,1);">
+</MAP>
+
+
+
+</DIV>
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/gif_1.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/gif_1.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/gif_1.js	(revision 21)
@@ -0,0 +1,64 @@
+function ViewMgrSetRasterLocation(pageID, shapeID, pinX, pinY)
+{
+	clickMenu ();
+
+	var rasterImage = document.images("RasterImage");
+
+	var imageLeft = 0;
+	var imageRight = imageLeft + rasterImage.offsetWidth;
+	var imageTop = 0;
+	var imageBottom = imageTop + rasterImage.offsetHeight;
+	
+	var xLong = parent.ConvertXorYCoordinate(pinX, viewMgr.visBBoxLeft, viewMgr.visBBoxRight, imageLeft, imageRight, 0);
+	var yLong = parent.ConvertXorYCoordinate(pinY, viewMgr.visBBoxBottom, viewMgr.visBBoxTop, imageTop, imageBottom, 1);
+	
+	var pixelWidth = document.body.scrollWidth;
+	var pixelHeight = document.body.scrollHeight;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+	var halfClientWidth = clientWidth;
+	var halfClientHeight = clientHeight;
+
+	xLong = xLong + rasterImage.offsetLeft;
+	yLong = yLong + rasterImage.offsetTop;
+	var xScrollAmount = 0;
+	var yScrollAmount = 0;
+
+	var xPrevScrollAmount = document.body.scrollLeft;
+	var yPrevScrollAmount = document.body.scrollTop;
+
+	var arrowHalfWidth = arrowdiv.clientWidth / 2;
+	var arrowHeight = arrowdiv.clientHeight;
+
+	if ((xLong - arrowHalfWidth) < xPrevScrollAmount)
+	{
+		// X off left of screen.
+		document.body.scrollLeft = xLong - arrowHalfWidth;
+	}
+	else if ((xLong + arrowHalfWidth) > (clientWidth + xPrevScrollAmount))
+	{
+		// X off right of screen. 
+		document.body.scrollLeft = xLong - clientWidth + xPrevScrollAmount + arrowHalfWidth;
+	}
+
+	if (yLong < yPrevScrollAmount)
+	{
+		// Y off top of screen.
+		document.body.scrollTop = yLong;
+	}
+	else if ((yLong + arrowHeight) > (clientHeight + yPrevScrollAmount))
+	{
+		// Y off bottom of screen. 
+		document.body.scrollTop = yLong - clientHeight + yPrevScrollAmount + arrowHeight;
+	}
+
+	arrowdiv.style.posLeft = xLong - arrowHalfWidth;
+	arrowdiv.style.posTop = yLong;
+	arrowdiv.style.visibility = "visible";
+
+	setTimeout( "parent.hideObject(arrowdiv)", 0 );
+	setTimeout( "parent.showObject(arrowdiv)", 1 );
+	setTimeout( "parent.hideObject(arrowdiv)", 2000 );
+}
+
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/keys.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/keys.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/keys.js	(revision 21)
@@ -0,0 +1,14 @@
+
+function keyHandler()
+{
+	var e = window.event;
+	var tag = e.srcElement.tagName;
+	var override = !(tag == "A" || tag == "INPUT" || tag == "SELECT" || tag == "FORM" || tag == "SUBMIT");
+	
+	if(override && e.keyCode == 13) //13 is <enter> key
+	{
+		e.srcElement.click();
+	}
+}
+
+document.onkeypress = keyHandler;
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/toolbar.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/toolbar.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/toolbar.htm	(revision 21)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<title></title>
+<style type="text/css">
+body
+{
+	font-family: Verdana, Sans-Serif;
+	font-size: small;
+}
+
+.toc
+{
+	font-size: medium;
+}
+</style>
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace("widgets.htm");
+	}
+</script>
+</head>
+
+
+<body leftmargin="0" topmargin="0" class="nav" dir=ltr>
+	<table id="tabToc" width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#999999" height="20">
+	<tr>
+	<td>&nbsp;</td>
+	</tr>
+	</table>
+
+<h1 class="toc">clonezilla_save_flow_chart</h1>
+	<ul>
+		<li><a href="gif_1.htm" target="frmDrawing">頁-1</a></li>
+
+	</ul>
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/visio.css
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/visio.css	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/visio.css	(revision 21)
@@ -0,0 +1,263 @@
+﻿td {vertical-align: top;}
+
+.fillcolor
+{	vertical-align: top;
+	padding: 0pt;
+	background-color:#5C85EF;
+	filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#5C85EF', EndColorStr='#90B6FF');
+}
+
+A.blu1
+{
+	color: #3366CC;
+	text-decoration: none;
+	font-size: 95%;
+}
+
+A.blu1:visited
+{
+	color: #3366CC;
+	text-decoration: none
+}
+
+A.blu1:hover
+{
+	text-decoration: underline
+}
+
+.visrptTitle
+{
+	color:Black;
+	font-style:normal;
+}
+
+.visrptSummryLabel
+{
+	color:black;
+	font-weight:bold;
+}
+
+.visrptGrandTotalRow
+{	
+	color:Black;
+	font-weight:bold;
+}
+
+.visrptHeader
+{
+	color:White;
+	font-style:normal;
+	background-color:#5C85EF;
+}
+
+.visrptRowItem
+{
+	background-color:#DDDDDD;
+}
+
+.a1
+{	color: #ffffff;
+	text-decoration:none;
+}
+
+.p1
+{	font-family: PMingLiu, verdana, san-serif;
+	font-size: 60%;
+	COLOR: #ffffff;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: .8em;
+}
+
+.p2
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: 1.3em;
+}
+
+.label
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: bold;
+	font-size: 70%;
+	COLOR: #FFFFFF;
+	Margin: .2em,0pt,2pt,2pt;
+	line-height: 1em;
+	text-decoration:none;
+}
+
+.gobutton
+{
+	padding: 0pt, 2pt, 0pt, 0pt;
+	vertical-align: bottom;
+}
+
+.formText
+{
+	font-size: 70%;
+	width: 99%;
+	margin: 0;
+	padding: 0;
+}
+
+.holderTable
+{
+	padding-left:1px;
+	padding-right:1px;
+}
+
+.detsPara
+{
+	margin:2pt;
+	font-size:60%;
+}
+
+.navTocColor
+{
+	background-color:#999999;
+}
+
+.indent
+{
+	margin-left:15px;
+	margin-right:15px;
+	padding-top:0px;
+	margin-top:0px;
+}
+
+.results
+{	
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,10pt;
+	text-indent: -10pt;
+	line-height: 1.1em;
+}
+
+.propViewer 
+{
+	background-Color:white;
+	color: black;
+	font-family: PMingLiu, verdana, san-serif;
+	font-style: italic;
+	font-weight: bold;
+	font-size: 70%;
+	text-align: center;
+}
+
+.propViewerTABLE 
+{
+	margin: 2pt;
+	border-collapse:collapse;
+	border:solid 1px #999999;	
+}
+
+.propViewerTHEAD 
+{
+	border: 2px;
+	font-size: 60%;
+}
+
+.propViewerTD 
+{
+	font-family: PMingLiu, Verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #000000;
+	Margin: 0pt;
+	line-height: 1.1em;
+}
+
+.propViewerEvenRow 
+{
+	background-Color: #E7E7E7;
+}
+
+.propViewerOddRow 
+{
+	background-Color: #FFFFFF; 
+}
+
+BODY
+{
+	font-family: PMingLiu, Verdana, Sans-Serif;
+	font-size: medium;
+}
+
+DIV
+{
+	margin:0;
+	padding:0;
+}
+
+FORM
+{
+	margin:0;
+}
+
+.hiderScroll
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+	overflow:auto;
+}
+
+.hider
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+}
+
+.nav
+{
+	width: 100%;
+	height: 100%;
+	overflow: auto;	
+}
+
+.menuItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-color:white;
+	color:black;
+	cursor:hand;
+}
+
+.highlightItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-Color:highlight; 
+	color:white;
+	cursor:hand;
+}
+
+.hlMenu 
+{
+	border:black 2px outset; 
+	display:none; 
+	z-index:10; 
+	position:absolute; 
+	background-Color:white;
+}
+
+.innerhlMenu 
+{
+	padding-left:2pt;
+	padding-right:2pt;
+	background-Color:white;
+}
+
+.svgmessage
+{     FONT-FAMILY: PMingLiu, verdana, san-serif;
+      FONT-WEIGHT: normal;
+      font-size: 80%;
+      COLOR: #333333;
+      Margin: 1em;
+      line-height: 1.1em;
+}
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/vml_1.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/vml_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/vml_1.htm	(revision 21)
@@ -0,0 +1,203 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" 
+ xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>clonezilla_save_flow_chart</title>
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script src="vml_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+
+	var pageID = 0;
+	var viewMgr = null;
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+	function getPNZ()
+	{
+		var rawHTML = VMLDiv.innerHTML;
+		var strReturn = ""
+		
+		strReturn = rawHTML.slice( rawHTML.indexOf( '<v:group' ), rawHTML.indexOf( "</v:shape>" ) );
+		strReturn += "</v:shape></v:group>\n";
+				
+		return strReturn;
+	}
+	
+	function load()
+	{
+		viewMgr = new parent.CViewMgr("ConvertedImage", "arrowDiv");
+
+		viewMgr.put_Location = ViewMgrSetVMLLocation;
+
+
+		viewMgr.visBBoxLeft = 2.044799;
+		viewMgr.visBBoxRight = 7.029226;
+		viewMgr.visBBoxBottom = 0.372349;
+		viewMgr.visBBoxTop = 11.025289;
+
+		viewMgr.Zoom = VMLZoomChange;
+		viewMgr.setView= VMLSetView;
+
+		viewMgr.SupportsDetails = true;
+		viewMgr.SupportsSearch = true;
+
+		parent.viewMgr = viewMgr;
+
+		fit();
+	}
+
+	function unload()
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+
+	function fit()
+	{
+		if(parent.frmToolbar)
+		{
+			if (parent.g_WidgetsLoaded)
+			{
+				var zoom100 = parent.frmToolbar.document.all('a100');
+				if (zoom100)
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					zoom100.click();
+				}
+				else
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					viewMgr.Zoom(100);
+				}
+			}
+			else
+			{
+				window.setTimeout("fit()", 500);
+			}
+		}	
+		else
+		{
+			parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+			viewMgr.Zoom(100);
+		}
+	}
+
+	function PostZoomProcessing (newZoomLevel)
+	{
+		parent.viewMgr.PostZoomProcessing = null;
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.viewMgr.getPNZ = getPNZ;
+		parent.CurPageUpdate (pageIndex);
+	}
+
+
+	
+	var isUpLevel = parent.isUpLevel;
+	var OnShapeClick = parent.OnShapeClick;
+	var OnShapeKey = parent.OnShapeKey;
+	var UpdateTooltip = parent.UpdateTooltip;
+	var clickMenu = parent.clickMenu;
+	var toggleMenuDiv = parent.toggleMenuDiv;
+	var toggleMenuLink = parent.toggleMenuLink;
+	var GoToPage = parent.GoToPage;
+
+	window.onload = load;
+	window.onunload = unload;
+	document.onclick = clickMenu;
+
+
+
+
+</script>
+
+</head>
+
+<body style="MARGIN:10px" onresize="VMLOnResize();" onscroll="VMLOnScroll();">
+
+<div id="arrowdiv" style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+
+
+
+<div id="VMLDiv" >
+
+
+<v:group  id="ConvertedImage" style="width:1.871569in;height:4.000000in;position:absolute;visibility=hidden;" coordSize="936,2000" coordOrigin="-1000,-1000" >
+
+<v:shapetype 
+  id="VISSHAPE"
+  target="_parent"
+  coordsize="936,2000"
+  coordorigin="-1000,-1000"
+  stroked="f"
+  strokecolor="red"
+  filled="t"
+>
+<v:fill opacity="0.0"/>
+</v:shapetype>
+
+
+<v:shape style="top:-1000.0;left:-1000.0;width:935.8;height:2000.0;position:absolute" coordSize="936,2000" coordOrigin="-1000,-1000" >
+<v:imagedata src="vml_1.emz"/>
+</v:shape>
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="start" origTitle="start"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -850,-923 l -740,-923 l -738,-923 l -737,-923 l -736,-923 l -734,-923 l -733,-924 l -732,-924 l -731,-924 l -729,-924 l -728,-925 l -727,-925 l -726,-926 l -725,-926 l -723,-927 l -722,-927 l -721,-928 l -720,-929 l -719,-929 l -718,-930 l -717,-931 l -716,-932 l -715,-933 l -714,-933 l -713,-934 l -712,-935 l -711,-936 l -711,-937 l -710,-938 l -709,-939 l -708,-940 l -708,-941 l -707,-943 l -707,-944 l -706,-945 l -705,-946 l -705,-947 l -705,-949 l -704,-950 l -704,-951 l -704,-952 l -703,-954 l -703,-955 l -703,-956 l -703,-957 l -703,-959 l -703,-960 l -703,-961 l -703,-962 l -703,-964 l -703,-965 l -703,-966 l -704,-968 l -704,-969 l -704,-970 l -705,-971 l -705,-973 l -705,-974 l -706,-975 l -707,-976 l -707,-977 l -708,-978 l -708,-979 l -709,-981 l -710,-982 l -711,-983 l -711,-984 l -712,-985 l -713,-986 l -714,-986 l -715,-987 l -716,-988 l -717,-989 l -718,-990 l -719,-990 l -720,-991 l -721,-992 l -722,-992 l -723,-993 l -725,-994 l -726,-994 l -727,-995 l -728,-995 l -729,-995 l -731,-996 l -732,-996 l -733,-996 l -734,-996 l -736,-997 l -737,-997 l -738,-997 l -740,-997 l -850,-997 l -851,-997 l -852,-997 l -854,-997 l -855,-996 l -856,-996 l -857,-996 l -859,-996 l -860,-995 l -861,-995 l -862,-995 l -863,-994 l -865,-994 l -866,-993 l -867,-992 l -868,-992 l -869,-991 l -870,-990 l -871,-990 l -872,-989 l -873,-988 l -874,-987 l -875,-986 l -876,-986 l -877,-985 l -878,-984 l -879,-983 l -879,-982 l -880,-981 l -881,-979 l -882,-978 l -882,-977 l -883,-976 l -883,-975 l -884,-974 l -884,-973 l -885,-971 l -885,-970 l -885,-969 l -886,-968 l -886,-966 l -886,-965 l -886,-964 l -886,-962 l -886,-961 l -886,-960 l -886,-959 l -886,-957 l -886,-956 l -886,-955 l -886,-954 l -886,-952 l -885,-951 l -885,-950 l -885,-949 l -884,-947 l -884,-946 l -883,-945 l -883,-944 l -882,-943 l -882,-941 l -881,-940 l -880,-939 l -879,-938 l -879,-937 l -878,-936 l -877,-935 l -876,-934 l -875,-933 l -874,-933 l -873,-932 l -872,-931 l -871,-930 l -870,-929 l -869,-929 l -868,-928 l -867,-927 l -866,-927 l -865,-926 l -863,-926 l -862,-925 l -861,-925 l -860,-924 l -859,-924 l -857,-924 l -856,-924 l -855,-923 l -854,-923 l -852,-923 l -851,-923 l -850,-923xe" onmouseover="UpdateTooltip(this,0,1)" onclick="OnShapeClick(0,1)" onfocus="UpdateTooltip(this,0,1);" onkeyup="OnShapeKey(0,1)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="是否選擇全部 clients" origTitle="是否選擇全部 clients"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -742,-792 l -795,-813 l -847,-792 l -872,-792 l -872,-783 l -938,-757 l -795,-702 l -651,-757 l -717,-783 l -717,-792 l -742,-792xe" onmouseover="UpdateTooltip(this,0,2)" onclick="OnShapeClick(0,2)" onfocus="UpdateTooltip(this,0,2);" onkeyup="OnShapeKey(0,2)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選擇 clients" origTitle="選擇 clients"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -409,-729 l -361,-757 l -407,-785 l -407,-806 l -417,-806 l -443,-806 l -453,-813 l -463,-806 l -489,-806 l -489,-791 l -545,-757 l -498,-729 l -498,-714 l -472,-714 l -453,-702 l -434,-714 l -409,-714 l -409,-729xe" onmouseover="UpdateTooltip(this,0,4)" onclick="OnShapeClick(0,4)" onfocus="UpdateTooltip(this,0,4);" onkeyup="OnShapeKey(0,4)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -100,-702 l -67,-702 l -68,-704 l -69,-706 l -70,-708 l -71,-710 l -72,-712 l -73,-714 l -74,-716 l -75,-718 l -75,-721 l -76,-723 l -77,-725 l -77,-727 l -78,-729 l -78,-732 l -79,-734 l -79,-736 l -80,-738 l -80,-740 l -80,-743 l -81,-745 l -81,-747 l -81,-749 l -81,-752 l -81,-754 l -81,-756 l -81,-758 l -81,-761 l -81,-763 l -81,-765 l -81,-767 l -81,-770 l -80,-772 l -80,-774 l -80,-776 l -79,-779 l -79,-781 l -78,-783 l -78,-785 l -77,-787 l -77,-790 l -76,-792 l -75,-794 l -75,-796 l -74,-798 l -73,-800 l -72,-802 l -71,-804 l -70,-806 l -69,-808 l -68,-811 l -67,-813 l -128,-813 l -128,-818 l -190,-818 l -190,-813 l -237,-813 l -238,-811 l -239,-808 l -240,-806 l -241,-804 l -242,-802 l -243,-800 l -244,-798 l -245,-796 l -245,-794 l -246,-792 l -247,-790 l -247,-787 l -248,-785 l -248,-783 l -249,-781 l -249,-779 l -250,-776 l -250,-774 l -250,-772 l -250,-770 l -251,-767 l -251,-765 l -251,-763 l -251,-761 l -251,-758 l -251,-756 l -251,-754 l -251,-752 l -251,-749 l -251,-747 l -250,-745 l -250,-743 l -250,-740 l -250,-738 l -249,-736 l -249,-734 l -248,-732 l -248,-729 l -247,-727 l -247,-725 l -246,-723 l -245,-721 l -245,-718 l -244,-716 l -243,-714 l -242,-712 l -241,-710 l -240,-708 l -239,-706 l -238,-704 l -237,-702 l -218,-702 l -218,-701 l -210,-701 l -100,-701 l -100,-702xe" onmouseover="UpdateTooltip(this,0,6)" onclick="OnShapeClick(0,6)" onfocus="UpdateTooltip(this,0,6);" onkeyup="OnShapeKey(0,6)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選擇儲存  Disk or part" origTitle="選擇儲存  Disk or part"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -749,-380 l -795,-407 l -886,-352 l -795,-297 l -703,-352 l -748,-379 l -748,-380 l -749,-380xe" onmouseover="UpdateTooltip(this,0,8)" onclick="OnShapeClick(0,8)" onfocus="UpdateTooltip(this,0,8);" onkeyup="OnShapeKey(0,8)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="現在輸入或是稍後在 client端輸入" origTitle="現在輸入或是稍後在 client端輸入"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -701,-564 l -730,-564 l -795,-591 l -860,-564 l -888,-564 l -888,-552 l -927,-536 l -795,-481 l -662,-536 l -696,-550 l -696,-564 l -701,-564xe" onmouseover="UpdateTooltip(this,0,9)" onclick="OnShapeClick(0,9)" onfocus="UpdateTooltip(this,0,9);" onkeyup="OnShapeKey(0,9)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="輸入欲儲存的  Disk name" origTitle="輸入欲儲存的  Disk name"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -886,-123 l -703,-123 l -703,-212 l -886,-175 l -886,-123xe" onmouseover="UpdateTooltip(this,0,11)" onclick="OnShapeClick(0,11)" onfocus="UpdateTooltip(this,0,11);" onkeyup="OnShapeKey(0,11)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="輸入欲儲存的  Disk and part name" origTitle="輸入欲儲存的  Disk and part name"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -593,-308 l -409,-308 l -409,-396 l -593,-359 l -593,-308xe" onmouseover="UpdateTooltip(this,0,12)" onclick="OnShapeClick(0,12)" onfocus="UpdateTooltip(this,0,12);" onkeyup="OnShapeKey(0,12)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="是否設定再生龍額外參數" origTitle="是否設定再生龍額外參數"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -743,41 l -703,17 l -732,-1 l -732,-11 l -749,-11 l -795,-39 l -840,-11 l -857,-11 l -857,-1 l -886,17 l -846,41 l -846,42 l -845,42 l -795,72 l -744,42 l -743,42 l -743,41xe" onmouseover="UpdateTooltip(this,0,16)" onclick="OnShapeClick(0,16)" onfocus="UpdateTooltip(this,0,16);" onkeyup="OnShapeKey(0,16)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行 drbl-ocs" origTitle="執行 drbl-ocs"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -886,801 l -703,801 l -703,691 l -886,691 l -886,801xe" onmouseover="UpdateTooltip(this,0,25)" onclick="OnShapeClick(0,25)" onfocus="UpdateTooltip(this,0,25);" onkeyup="OnShapeKey(0,25)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="end" origTitle="end"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -850,997 l -740,997 l -738,997 l -737,997 l -736,997 l -734,996 l -733,996 l -732,996 l -731,996 l -729,995 l -728,995 l -727,995 l -726,994 l -725,994 l -723,993 l -722,992 l -721,992 l -720,991 l -719,990 l -718,990 l -717,989 l -716,988 l -715,987 l -714,986 l -713,986 l -712,985 l -711,984 l -711,983 l -710,982 l -709,981 l -708,979 l -708,978 l -707,977 l -707,976 l -706,975 l -705,974 l -705,973 l -705,971 l -704,970 l -704,969 l -704,968 l -703,966 l -703,965 l -703,964 l -703,962 l -703,961 l -703,960 l -703,959 l -703,957 l -703,956 l -703,955 l -703,954 l -704,952 l -704,951 l -704,950 l -705,949 l -705,947 l -705,946 l -706,945 l -707,944 l -707,943 l -708,941 l -708,940 l -709,939 l -710,938 l -711,937 l -711,936 l -712,935 l -713,934 l -714,933 l -715,933 l -716,932 l -717,931 l -718,930 l -719,929 l -720,929 l -721,928 l -722,927 l -723,927 l -725,926 l -726,926 l -727,925 l -728,925 l -729,924 l -731,924 l -732,924 l -733,924 l -734,923 l -736,923 l -737,923 l -738,923 l -740,923 l -850,923 l -851,923 l -852,923 l -854,923 l -855,923 l -856,924 l -857,924 l -859,924 l -860,924 l -861,925 l -862,925 l -863,926 l -865,926 l -866,927 l -867,927 l -868,928 l -869,929 l -870,929 l -871,930 l -872,931 l -873,932 l -874,933 l -875,933 l -876,934 l -877,935 l -878,936 l -879,937 l -879,938 l -880,939 l -881,940 l -882,941 l -882,943 l -883,944 l -883,945 l -884,946 l -884,947 l -885,949 l -885,950 l -885,951 l -886,952 l -886,954 l -886,955 l -886,956 l -886,957 l -886,959 l -886,960 l -886,961 l -886,962 l -886,964 l -886,965 l -886,966 l -886,968 l -885,969 l -885,970 l -885,971 l -884,973 l -884,974 l -883,975 l -883,976 l -882,977 l -882,978 l -881,979 l -880,981 l -879,982 l -879,983 l -878,984 l -877,985 l -876,986 l -875,986 l -874,987 l -873,988 l -872,989 l -871,990 l -870,990 l -869,991 l -868,992 l -867,992 l -866,993 l -865,994 l -863,994 l -862,995 l -861,995 l -860,995 l -859,996 l -857,996 l -856,996 l -855,996 l -854,997 l -852,997 l -851,997 l -850,997xe" onmouseover="UpdateTooltip(this,0,27)" onclick="OnShapeClick(0,27)" onfocus="UpdateTooltip(this,0,27);" onkeyup="OnShapeKey(0,27)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="預先儲存的選項" origTitle="預先儲存的選項"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -566,339 l -567,341 l -568,342 l -569,344 l -570,346 l -571,348 l -572,350 l -572,352 l -573,354 l -574,356 l -574,358 l -575,360 l -575,362 l -576,364 l -576,366 l -577,368 l -577,370 l -577,372 l -577,375 l -578,377 l -578,379 l -578,381 l -578,383 l -578,385 l -578,387 l -578,389 l -578,391 l -578,393 l -577,396 l -577,398 l -577,400 l -577,402 l -576,404 l -576,406 l -575,408 l -575,410 l -574,412 l -574,414 l -573,416 l -572,418 l -572,420 l -571,422 l -570,424 l -569,426 l -568,428 l -567,430 l -566,432 l -424,432 l -425,430 l -426,428 l -426,426 l -427,424 l -428,422 l -429,420 l -430,418 l -430,416 l -431,414 l -432,412 l -432,410 l -433,408 l -433,406 l -433,404 l -434,402 l -434,400 l -434,398 l -435,396 l -435,393 l -435,391 l -435,389 l -435,387 l -435,385 l -435,383 l -435,381 l -435,379 l -435,377 l -435,375 l -434,372 l -434,370 l -434,368 l -433,366 l -433,364 l -433,362 l -432,360 l -432,358 l -431,356 l -430,354 l -430,352 l -429,350 l -428,348 l -427,346 l -426,344 l -426,342 l -425,341 l -424,339 l -566,339xe" onmouseover="UpdateTooltip(this,0,31)" onclick="OnShapeClick(0,31)" onfocus="UpdateTooltip(this,0,31);" onkeyup="OnShapeKey(0,31)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="-p choose -p true -p poweroff -p reboot" origTitle="-p choose -p true -p poweroff -p reboot"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -914,440 l -730,440 l -675,330 l -859,330 l -914,440xe" onmouseover="UpdateTooltip(this,0,21)" onclick="OnShapeClick(0,21)" onfocus="UpdateTooltip(this,0,21);" onkeyup="OnShapeKey(0,21)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="-q, -c, -nogui, -a, -s, -f, -ntfs-ok" origTitle="-q, -c, -nogui, -a, -s, -f, -ntfs-ok"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -914,256 l -730,256 l -675,146 l -859,146 l -914,256xe" onmouseover="UpdateTooltip(this,0,22)" onclick="OnShapeClick(0,22)" onfocus="UpdateTooltip(this,0,22);" onkeyup="OnShapeKey(0,22)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="-z0 -z1 -z2 -z3" origTitle="-z0 -z1 -z2 -z3"  style="top:-1000;left:-1000;width:936;height:2000;position:absolute" path=" m -914,625 l -730,625 l -675,514 l -859,514 l -914,625xe" onmouseover="UpdateTooltip(this,0,29)" onclick="OnShapeClick(0,29)" onfocus="UpdateTooltip(this,0,29);" onkeyup="OnShapeKey(0,29)"/> 
+
+</v:group>
+
+
+
+</div>
+
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/vml_1.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/vml_1.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/vml_1.js	(revision 21)
@@ -0,0 +1,221 @@
+
+function ViewMgrSetVMLLocation(pageID, shapeID, pinX, pinY)
+{
+	doc = parent.frmDrawing.document;
+	if (this.highlightDiv != null)
+	{
+		clickMenu ();
+
+		var VMLImage = this.s;
+
+		var imageLeft = 0;
+		var imageRight = imageLeft + VMLImage.pixelWidth;
+		var imageTop = 0;
+		var imageBottom = imageTop + VMLImage.pixelHeight;
+
+		var xLong = parent.ConvertXorYCoordinate(pinX, this.visBBoxLeft, this.visBBoxRight, imageLeft, imageRight, 0);
+		var yLong = parent.ConvertXorYCoordinate(pinY, this.visBBoxBottom, this.visBBoxTop, imageTop, imageBottom, 1);
+
+		xLong += doc.all['ConvertedImage'].style.posLeft;
+		yLong += doc.all['ConvertedImage'].style.posTop;
+
+		var arrowHalfWidth = viewMgr.highlightDiv.clientWidth / 2;
+		var arrowHeight = viewMgr.highlightDiv.clientHeight;
+
+		var boolNeedToScroll = false;
+
+		if( !( (xLong - arrowHalfWidth) > doc.body.scrollLeft && (xLong + arrowHalfWidth) < (doc.body.scrollLeft + doc.body.clientWidth) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( !( (yLong - arrowHeight) > doc.body.scrollTop && (yLong + arrowHeight) < (doc.body.scrollTop + doc.body.clientHeight) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( boolNeedToScroll == true )
+		{
+			window.scrollTo( xLong - doc.body.clientWidth / 2, yLong - doc.body.clientHeight / 2);
+		}
+		
+		this.highlightDiv.style.posLeft = xLong - arrowHalfWidth;
+		this.highlightDiv.style.posTop = yLong;
+		this.highlightDiv.style.visibility = "visible";
+
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 0 );
+		setTimeout( "parent.showObject(viewMgr.highlightDiv)", 1 );
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 2500 );
+	}
+}
+
+function VMLZoomChange(size)
+{
+	if(size)
+	{
+		if(size == "up")
+		{
+			size = zoomLast + 50;
+		}
+		else if(size == "down")
+		{
+			size = zoomLast - 50;
+		}
+		
+		size = parseInt(size);
+		if(typeof(size) != "number")
+			size = 100;
+	}
+	else
+	{
+		size = 100;
+	}
+
+	clickMenu ();
+
+	viewMgr.zoomLast = size;
+
+	var zoomFactor = size/100;
+
+	var width = this.s.pixelWidth;
+	var height = this.s.pixelHeight;
+
+	var margin = parseInt(document.body.style.margin) * 2;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+
+	var newScrollLeft = document.body.scrollLeft;
+	var newScrollTop = document.body.scrollTop;
+
+	var winwidth = clientWidth - margin;
+	var winheight = clientHeight - margin;
+
+	var widthRatio = winwidth / width;
+	var heightRatio = winheight / height;
+
+	if (widthRatio < heightRatio)
+	{
+		width = zoomFactor * winwidth;
+		height = width / this.origWH;
+	}
+	else
+	{
+		height = zoomFactor * winheight;
+		width = height * this.origWH;
+	}
+
+	this.s.pixelWidth = Math.max(width,1);
+	this.s.pixelHeight = Math.max(height,1);
+
+	this.sizeLast = size;
+
+	var centerX = (zoomFactor / viewMgr.zoomFactor) * (newScrollLeft + (clientWidth / 2) - this.s.posLeft);
+	var centerY = (zoomFactor / viewMgr.zoomFactor) * (newScrollTop + (clientHeight / 2) - this.s.posTop);
+
+	viewMgr.zoomFactor = zoomFactor;
+
+	if (width <= clientWidth)
+	{
+		this.s.posLeft = Math.max( 0, (clientWidth / 2) - (width / 2));
+	}
+	else
+	{
+		var left = centerX - (clientWidth / 2);
+		if ( left >= 0 )
+		{
+			this.s.posLeft = 0;
+			newScrollLeft = left;
+		}
+		else
+		{
+			this.s.posLeft = -left;
+			newScrollLeft = 0;
+		}
+	}
+
+	if (height <= clientHeight)
+	{
+		this.s.posTop = Math.max( 0, (clientHeight / 2) - (height / 2));
+	}
+	else
+	{
+		var top = centerY - (clientHeight / 2);
+		if ( top >= 0 )
+		{
+			this.s.posTop = 0;
+			newScrollTop = top;
+		}
+		else
+		{
+			this.s.posTop = -top;
+			newScrollTop = 0;
+		}
+	}
+
+	window.scrollTo(newScrollLeft, newScrollTop);
+
+	this.s.visibility = "visible";
+
+	var newXOffsetPercent = document.body.scrollLeft / this.s.pixelWidth;
+	var newYOffsetPercent = document.body.scrollTop / this.s.pixelHeight;
+	var newWidthPercent = document.body.clientWidth / this.s.pixelWidth;
+	var newHeightPercent = document.body.clientHeight / this.s.pixelHeight;
+
+	if (viewMgr.viewChanged)
+	{
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, newWidthPercent, newHeightPercent);
+	}
+
+	if (viewMgr.PostZoomProcessing)
+	{
+		viewMgr.PostZoomProcessing(size);
+	}
+}
+
+function VMLSetView (xOffsetPercent, yOffsetPercent)
+{
+	var leftPixelOffset = xOffsetPercent * this.s.pixelWidth;
+	var topPixelOffset = yOffsetPercent * this.s.pixelHeight;
+
+	window.scrollTo (leftPixelOffset - this.s.posLeft, topPixelOffset - this.s.posTop);
+
+	if (viewMgr.PostSetViewProcessing)
+	{
+		viewMgr.PostSetViewProcessing();
+	}
+}
+
+function VMLOnResize ()
+{
+	if (viewMgr.zoomLast == 100)
+	{
+		viewMgr.Zoom(100);
+	}
+
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newWidthPercent = document.body.clientWidth / image.style.pixelWidth;
+		var newHeightPercent = document.body.clientHeight / image.style.pixelHeight;
+
+		viewMgr.viewChanged (null, null, newWidthPercent, newHeightPercent);
+	}
+}
+
+function VMLOnScroll ()
+{
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newXOffsetPercent = document.body.scrollLeft / image.style.pixelWidth;
+		var newYOffsetPercent = document.body.scrollTop / image.style.pixelHeight;
+
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, null, null);
+	}
+}
+
+
+
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/widgets.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/widgets.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/widgets.htm	(revision 21)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>clonezilla_save_flow_chart</title>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link href="visio.css" rel="stylesheet">
+<script src="keys.js" type="text/jscript" language="jscript"></script>
+<script src="find.js" type="text/jscript" language="jscript"></script>
+<script type="text/jscript" language="jscript">
+	
+	var imgMin = new Image();
+	imgMin.src = "minimize.gif";
+	
+	var imgMax = new Image();
+	imgMax.src = "maximize.gif";
+
+	var fileList = parent.g_FileList;
+	
+	function Widgets()
+	{
+		this.GoTo = null;
+		this.Search = null;
+		this.Details = null;
+		this.PNZ = null;
+
+		this.divCount = 0;
+		
+		this.OpenText = "全部摺疊";
+		this.OpenAlt = "全部摺疊";
+		this.ClosedText = "全部展開";
+		this.ClosedAlt = "全部展開";
+
+		this.Display = "";
+		this.Img = imgMin;
+		this.Text = this.OpenText;
+		this.Alt = this.OpenAlt;
+		
+		this.ToggleAll = ToggleAll;
+		this.ToggleWidget = ToggleWidget;
+		this.Add = Add;
+	}		
+
+	function Add(div, name)
+	{
+		tmpStr = "this." + name + " = new Widget(div);"
+		eval(tmpStr);
+		var thisWidget = eval("this." + name);
+	}
+
+	function Widget(div)
+	{
+		return div;
+	}	
+
+	function ToggleAll()
+	{
+		var OpenCloseFunc = Widget;
+
+		if(this.Display == "")
+		{
+			this.Display = "none";
+			this.Img = imgMax;
+			this.Text = this.ClosedText;
+			this.Alt = this.ClosedAlt;
+			expparent00.title = this.ClosedAlt;
+			OpenCloseFunc = CloseWidget;
+		}
+		else
+		{
+			this.Display = "";
+			this.Img = imgMin;
+			this.Text = this.OpenText;
+			this.Alt = this.OpenAlt;
+			expparent00.title = this.OpenAlt;
+			OpenCloseFunc = OpenWidget;
+		}
+		exp00.src = this.Img.src;	
+		textExp.innerText = this.Text;
+		exp00.alt = this.Alt;
+	
+		if(this.GoTo)
+		{
+			OpenCloseFunc(this.GoTo)
+		}
+		if(this.Search)
+		{
+			OpenCloseFunc(this.Search)
+		}
+		if(this.Details)
+		{
+			OpenCloseFunc(this.Details)
+		}
+		if(this.PNZ)
+		{
+			OpenCloseFunc(this.PNZ)
+		}
+	}
+
+	function ToggleNav()
+	{
+		if(divCollapsedNav.style.display == "none")
+		{
+			divCollapsedNav.style.display = "";
+			divOpenNav.style.display = "none";
+			parent.frmstOuter.cols = "20,*"
+			parent.document.all ('frmToolbar').noResize = true;
+		}
+		else
+		{
+			divOpenNav.style.display = "";
+			divCollapsedNav.style.display = "none";
+			parent.frmstOuter.cols = "237,*"
+			parent.document.all ('frmToolbar').noResize = false;
+		}
+	}
+	
+	function ToggleWidget(div)
+	{
+		if(div.style.display == "none")
+		{
+			OpenWidget(div);
+		}
+		else
+		{
+			CloseWidget(div);
+		}
+	}
+
+	function OpenWidget(div)
+	{
+		document.all(div.img).src = imgMin.src;
+		div.style.display = "";
+		document.all(div.img).alt = div.openAlt;
+		document.all(div.img + "1").title = div.openAlt;
+		document.all(div.img + "2").title = div.openAlt;
+	}
+
+	function CloseWidget(div)
+	{
+		document.all(div.img).src = imgMax.src;
+		div.style.display = "none";
+		document.all(div.img).alt = div.closedAlt;
+		document.all(div.img + "1").title = div.closedAlt;
+		document.all(div.img + "2").title = div.closedAlt;
+	}
+
+	function load()
+	{
+		parent.g_WidgetsLoaded = true;
+
+		if (parent.g_LoadingWidgets)
+		{
+			parent.g_LoadingWidgets = false;
+			parent.location.reload();
+		}
+	}
+
+	function unload()
+	{
+		parent.g_LoadingWidgets = true;
+	}
+	
+		
+	var widgets = new Widgets();
+
+</script>
+
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divOpenNav" class="nav">
+
+	<table id="tabToc" width="100%" class="navTocColor" style="margin-bottom:1px;" cellspacing="0" cellpadding="0" border="0" height="20" dir=ltr>
+	<tr>
+	<td width="2"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" id="linkNavOpen"><img src="toc.gif" alt="摺疊巡覽框架" width="22" height="17" border="0"></a></td>
+	<td><p class="p1"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" class="a1">隱藏</a></p></td>
+	<td align="right"><p class="p1"><a href="javascript:widgets.ToggleAll()" id="textExp" class="a1">全部摺疊</a></p></td>
+	<td width="2">
+		<div style="padding:2pt,1.5pt,0pt,0pt"><a href="javascript:widgets.ToggleAll()" title="全部摺疊" id="expparent00"><img id="exp00" alt="全部摺疊" src="minimize.gif" width="15" height="15" border="0"></a></div>
+	</td>
+	</tr>
+	</table>
+	
+	
+
+	
+	<div id="divPNZ" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp41" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><p class="label">全景和縮放</p></a></td>
+				<td width="15"><a id="exp42" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><img id="exp4" alt="摺疊全景和縮放" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hidePNZ" style="text-align:right;" img="exp4" class="hiderScroll" openAlt="摺疊全景和縮放" closedAlt="展開全景和縮放">
+				<table width="220" border="0" cellpadding="0" cellspacing="0">
+				<tr>
+				<td align="center" valign="middle">
+					<iframe title="全景和縮放視窗" longdesc="全景和縮放視窗" id="ifrmPNZ" src="zoom.htm" width="170" height="170" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="border: #cccccc 1px solid;"></iframe>
+				</td>
+					
+				<td>
+					<table id="tabScale" width="17" cellspacing="0" cellpadding="0" border="0">
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放頁面至 100%"><img src="fullpage.gif" alt="縮放頁面至 100%" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(1);" title="拉近"><img src="panplus.gif" alt="拉近" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(500);" title="縮放成 500%"><img id="t500" src="tick-off.gif" alt="縮放成 500%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(450);" title="縮放成 450%"><img id="t450" src="tick-off.gif" alt="縮放成 450%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(400);" title="縮放成 400%"><img id="t400" src="tick-off.gif" alt="縮放成 400%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(350);" title="縮放成 350%"><img id="t350" src="tick-off.gif" alt="縮放成 350%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(300);" title="縮放成 300%"><img id="t300" src="tick-off.gif" alt="縮放成 300%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(250);" title="縮放成 250%"><img id="t250" src="tick-off.gif" alt="縮放成 250%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(200);" title="縮放成 200%"><img id="t200" src="tick-off.gif" alt="縮放成 200%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(150);" title="縮放成 150%"><img id="t150" src="tick-off.gif" alt="縮放成 150%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放成 100%" id="a100"><img id="t100" src="tick-on.gif" alt="縮放成 100%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(50);" title="縮放成 50%"><img id="t50" src="tick-off.gif" alt="縮放成 50%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(10);" title="縮放成 10%"><img id="t10" src="tick-off.gif" alt="縮放成 10%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(-1);" title="拉遠"><img src="panminus.gif" alt="拉遠" border="0"></a></td></tr>
+					</table>
+				</td>
+				</tr>
+				</table>
+			</div>			
+		</td></tr>
+		</table>
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hidePNZ, "PNZ");
+
+			var zoomLevels = new Array(10, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500);
+
+			var tickOff = new Image();
+			tickOff.src = "tick-off.gif";
+			
+			var tickFoc = new Image();
+			tickFoc.src = "tick-foc.gif";
+			
+			var tickOn = new Image();
+			tickOn.src = "tick-on.gif";
+
+			function tickFocus()
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickFoc.src;
+				}
+			}			
+			
+			function tickBlur(percentZoom)
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickOff.src;
+				}
+			}
+
+			function tickSelect(percentZoom)
+			{
+				if (parent.viewMgr &&
+					parent.viewMgr.Zoom)
+				{
+					changeTick(percentZoom);
+					parent.viewMgr.Zoom(percentZoom);					
+				}
+
+				if(frames.item(0).zoomRectDiv)
+				{
+					frames.item(0).g_width = parseInt(frames.item(0).zoomRectDiv.style.pixelWidth) 
+					frames.item(0).g_height = parseInt(frames.item(0).zoomRectDiv.style.pixelHeight)
+					frames.item(0).g_newLeft = parseInt(frames.item(0).zoomRectDiv.style.left)
+					frames.item(0).g_newTop = parseInt(frames.item(0).zoomRectDiv.style.top)
+				}
+			}
+
+			function changeTick(percentZoom)
+			{
+				img = elemScale.all("t" + percentZoom);
+									
+				img.src = tickOn.src;
+				
+				if(elemScale.tickSelected && elemScale.tickSelected != img)
+				{
+					elemScale.tickSelected.src = tickOff.src;
+				}
+				elemScale.tickSelected = img;
+			}
+			
+			function ZoomUpDown(increment)
+			{
+				if (elemScale.tickSelected)
+				{
+					var curZoomLevel = elemScale.tickSelected.id.substring (1);
+					var newZoomLevelIndex = IndexFromLevel (curZoomLevel * 1.0);
+					if (newZoomLevelIndex >= 0)
+					{
+						var img = elemScale.all("t" + zoomLevels[newZoomLevelIndex + increment]);
+						if (img)
+						{
+							tickSelect(img.id.substring(1));
+						}
+					}
+				}
+				else
+				{
+					tickSelect (100);
+				}
+			}
+
+			function IndexFromLevel (zoomLevel)
+			{
+				for (var count = 0; count < zoomLevels.length; count++)
+				{
+					if (zoomLevels[count] == zoomLevel)
+					{
+						return count;
+					}
+				}
+
+				return -1;
+			}
+			
+			elemScale = document.all("tabScale");
+			if(elemScale)
+			{
+				elemScale.onmouseover = tickFocus;
+				elemScale.onmouseout = tickBlur;
+			}
+		</script>
+	</div>
+
+	
+	<div id="divDetails" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp21" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><p class="label">詳細資料</p></a></td>
+				<td width="15"><a id="exp22" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><img id="exp2" alt="摺疊詳細資料" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hideDetails" class="hiderScroll" img="exp2" openAlt="摺疊詳細資料" closedAlt="展開詳細資料">
+				<P class="p2" class="detsPara">CTRL+按一下繪圖中的圖形以檢視詳細資料。</P>
+			</div>
+		</td></tr>
+		</table>		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideDetails, "Details");
+			widgets.divCount++;
+		
+		</script>
+	</div>
+
+	
+	<div id="divSearch" class="holder">
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor" dir=ltr>
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp11" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><p class="label">搜尋頁</p></a></td>
+				<td width="15"><a id="exp12" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><img src="minimize.gif" id="exp1" alt="摺疊搜尋頁面" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+
+		</td></tr>
+		<tr><td>	
+
+			<div id="hideSearch" img="exp1" class="hiderScroll" openAlt="摺疊搜尋頁面" closedAlt="展開搜尋頁面">
+								<form name=theForm onsubmit="FindOnClick(); return false;" ID="Form1">
+									<table width="100%" cellspacing="0" cellpadding="3" border="0">
+									<tr>
+									<td width="100%">
+										<input class="formText" type="text" name="findString" maxlength="255" size="26" title="輸入要搜尋的文字。按 Enter 開始搜尋。">
+									</td>
+									<td width="18" class="gobutton">
+										<input type="image" src="go.gif" alt="開始搜尋" width="18" height="18" ID="GoButton" NAME="GoButton">
+									</td>
+									</tr>
+									<tr>
+									<td colspan="2" class="p2">
+										<a href="javascript:{};" tabindex="0" onclick="TogglePlus(hideAdvSrch,as0);" class="blu1"><img src="plus.gif" alt="顯示/隱藏進階搜尋選項" border="0" id="as0">進階</a>
+											<div id="hideAdvSrch" class="hiderScroll" style="display:none;">
+												<b>搜尋依據:</b>
+												<div id="divS"></div>
+											</div>
+										<hr width="100%" size="1" color="#cccccc">
+										<div id="hideResults" class="hiderScroll" style="display:none;"></div>
+									</td>
+									</tr>
+									</table>
+								</form>
+			</div>					
+
+		</td></tr>
+		</table>
+		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideSearch, "Search");
+			widgets.divCount += 2;
+			
+			makeAdvancedFindCheckboxes(divS);
+			
+			
+			var imgPlus = new Image();
+			imgPlus.src = "plus.gif";
+	
+			var imgMinus = new Image();
+			imgMinus.src = "minus.gif";
+			
+			function TogglePlus(div, img, container)
+			{
+				if(typeof(img) == "string")	
+					img = document.all(img)
+				if(typeof(div) == "string")
+					div = document.all(div)
+					
+				widget = widgets.Search;
+				if(div && img)
+				{
+					if(div.style.display == "none")
+					{
+						div.style.display = "";
+						img.src = imgMinus.src;
+						div.open = "true";
+					}
+					else
+					{
+						div.style.display = "none";
+						img.src = imgPlus.src;
+						
+						div.open = "false";
+					}
+				}
+			}
+		
+		</script>
+	</div>
+
+
+</div>
+
+<div id="divCollapsedNav" class="navTocColor" style="display:none;width:100%;height:100%;">
+	<a href="javascript:ToggleNav();" title="展開巡覽框架" id="linkNavClosed"><img src="toc2.gif" alt="展開巡覽框架" border="0"></a>
+</div>	
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/zoom.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/zoom.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.files/zoom.htm	(revision 21)
@@ -0,0 +1,990 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script type="text/jscript" language="jscript">
+
+var BUFFER = 1;
+
+function zoomObject()
+{
+	this.PZImgRatio			= null;
+	
+	this.zoomWinHeight		= null;
+	this.zoomWinWidth		= null;
+	this.zoomWinTop			= null;
+	this.zoomWinLeft		= null;
+	
+	this.scaleFactor		= null;
+	
+	this.updateContent		= zObj_updateContent;
+	this.doOnBodyResize		= zObj_doOnBodyResize;
+	this.clipZoomRect		= zObj_clipZoomRect;
+}
+
+var g_thumbHeight = window.clientHeight;
+var g_thumbWidth = window.clientWidth;
+zoomObj = new zoomObject();
+
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+	}
+	return divObject;
+}
+
+function zObj_updateContent( win_width, win_height, VMLDiv_left, VMLDiv_top, VMLDiv_width, VMLDiv_height )
+{
+	this.mainWinWidth		= win_width;
+	this.mainWinHeight		= win_height;
+
+	this.mainImgRatio = VMLDiv_height / VMLDiv_width;
+	this.doOnBodyResize();
+}
+
+function zObj_doOnBodyResize()
+{
+	return;
+}
+
+function zObj_clipZoomRect( objectToClip )
+{
+	if( objectToClip == null )
+	{
+		objectToClip = zoomRectObj;
+	}
+	
+	var clipTop		= ( objectToClip.style.posTop < (g_thumbTop) )	? (g_thumbTop - objectToClip.style.posTop)	: 0;
+	var clipLeft	= ( objectToClip.style.posLeft < (g_thumbLeft) )	? (g_thumbLeft - objectToClip.style.posLeft)	: 0;
+	var clipBottom	= ( (objectToClip.style.posHeight - clipTop) > (g_thumbTop + g_thumbHeight + 2 * BUFFER) ) ? (g_thumbHeight + clipTop + BUFFER) : objectToClip.style.posHeight;
+	var clipRight	= 0;
+	if( (this.zoomWinWidth - clipLeft) > (g_thumbLeft + g_thumbWidth) )
+	{
+		if( clipLeft == 0 )
+		{
+			clipRight = g_thumbWidth - objectToClip.style.posLeft + 2 * BUFFER;
+		}
+		else
+		{
+			clipRight = (g_thumbWidth + clipLeft + BUFFER);
+		}
+	}
+	else
+	{
+		clipRight = objectToClip.style.posWidth;
+	}
+	clipTo( objectToClip, clipTop, clipRight, clipBottom, clipLeft);
+}
+
+function findContent()
+{
+	zoomRectDiv.style.display = "none";
+	newZoomWindowDiv.style.display = "none";
+
+	if (parent.parent.frmDrawing && parent.parent.viewMgr)
+	{
+		var viewMgr = parent.parent.viewMgr;
+
+		var getPNZ = parent.parent.viewMgr.getPNZ;
+		if (getPNZ)
+		{
+			var tmp = parent.parent.frmDrawing;
+
+			divThumb = document.all("divThumbnail");
+
+			if (divThumb.innerHTML.length == 0)
+			{
+				divThumb.innerHTML = getPNZ();
+			}
+			else
+			{
+				var pnzInfo = getPNZ();
+				var idIndex = pnzInfo.indexOf("ConvertedImage");
+				if (idIndex >= 0)
+				{
+					var test = pnzInfo;
+					pnzInfo = test.substring (0, idIndex);
+					pnzInfo += "Temp";
+					pnzInfo += test.substring (idIndex, test.length);
+
+					divTempThumbnail.innerHTML = pnzInfo;
+
+					var vmlGroup = divThumbnail.childNodes(0);
+					var vmlTempGroup = divTempThumbnail.childNodes(0);
+					CopyVMLAttrs(vmlGroup, vmlTempGroup);
+					
+					var vmlShape = vmlGroup.childNodes(1);
+					var vmlTempShape = vmlTempGroup.childNodes(1);
+					CopyVMLAttrs(vmlShape, vmlTempShape);
+
+					CopyVMLAttrs(vmlGroup.childNodes(0), vmlTempGroup.childNodes(0));
+					
+					var vmlImageData = vmlShape.childNodes(0);
+					var vmlTempImageData = vmlTempShape.childNodes(0);
+					CopyVMLImageData(vmlImageData, vmlTempImageData);
+				}
+			}
+
+			zoomRectObj = document.all("zoomRectDiv");
+			showObject( zoomRectObj );
+
+			PNZimg = document.all("ConvertedImage");
+			if (PNZimg)
+			{
+				PNZimg.style.left = 0;
+				PNZimg.style.top = 0;
+
+				if (PNZimg.style.pixelWidth > PNZimg.style.pixelHeight)
+				{
+					var oldWidth = PNZimg.style.pixelWidth;
+					PNZimg.style.width = document.body.clientWidth;
+					PNZimg.style.height = (document.body.clientWidth / oldWidth) * PNZimg.style.pixelHeight;
+
+					divThumb.style.top = (document.body.clientHeight - parseInt(PNZimg.style.height)) / 2;
+					divThumb.style.left = 0;
+				}
+				else
+				{
+					var oldHeight = PNZimg.style.pixelHeight;
+					PNZimg.style.height = document.body.clientHeight;
+					PNZimg.style.width = (document.body.clientHeight / oldHeight) * PNZimg.style.pixelWidth;
+
+					divThumb.style.left = (document.body.clientWidth - parseInt(PNZimg.style.width)) / 2;
+					divThumb.style.top = 0;
+				}
+
+				PNZimg.style.visibility = "visible";
+
+				var strOutput = divThumb.innerHTML;
+				if (strOutput.length > 0)
+				{
+					var tmp2 = document.all['ConvertedImage'];
+					zoomObj.updateContent( tmp.document.body.clientWidth, tmp.document.body.clientHeight, parseInt(tmp2.style.left), parseInt(tmp2.style.top), parseInt(tmp2.clientWidth), parseInt(tmp2.clientHeight) );
+
+					viewMgr.viewChanged = PageViewChanged;
+				}
+			}
+		}
+	}
+}
+
+function CopyVMLAttrs(vmlObjDst, vmlObjSrc)
+{
+	if (vmlObjDst != null && vmlObjSrc != null)
+	{
+		vmlObjDst.style.cssText = vmlObjSrc.style.cssText;
+	}
+}
+
+function CopyVMLImageData(vmlImageDataDst, vmlImageDataSrc)
+{
+	if (vmlImageDataDst != null && vmlImageDataSrc != null)
+	{
+		vmlImageDataDst.src = vmlImageDataSrc.src;
+	}
+}
+
+function setZoomRectCursor()
+{
+	var x = getMouseXcoord() - zoomObj.zoomWinLeft;
+	var y = getMouseYcoord() - zoomObj.zoomWinTop;
+
+	var rbw = 5;
+
+	var newCursor	= "";
+	if( y > (zoomObj.zoomWinHeight - rbw) )
+		newCursor = "s"
+	else if( y < rbw )
+		newCursor = "n";
+		
+	if( x < rbw )
+		newCursor += "w";
+	else if( x > (zoomObj.zoomWinWidth - rbw) )
+		newCursor += "e";
+
+	if( newCursor != "" )
+		zoomRectObj.style.cursor = newCursor + "-resize";
+	else
+		zoomRectObj.style.cursor = "move";
+}
+
+function startZoomRectDrag()
+{
+	var currentCursor = zoomRectObj.style.cursor;
+
+	if( currentCursor.indexOf( '-' ) != -1 )
+	{
+		g_resizeDirection = currentCursor.split( '-' )[0];
+		startDrag( 'zoomRectDiv', doResizeZoomRectDrag, stopResizeZoomRectDrag );
+	}
+	else
+	{
+		startDrag( 'zoomRectDiv', doZoomRectDrag, stopZoomRectDrag );
+	}
+}
+
+function doZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var rectLeft = parseInt(dragObj.divObject.style.left);
+	var rectTop = parseInt(dragObj.divObject.style.top);
+	var rectWidth = parseInt(dragObj.divObject.style.width);
+	var rectHeight = parseInt(dragObj.divObject.style.height);
+
+	var xOffset = 0;
+	var yOffset = 0;
+
+	var xPercent = 0;
+	var yPercent = 0;
+
+	var pnzImgLeft = parseInt(divThumbnail.style.left);
+	var pnzImgTop = parseInt(divThumbnail.style.top);
+	var pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+	var pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+		
+	xOffset = x + dragObj.xOffset - pnzImgLeft;
+	xPercent = xOffset / pnzImgWidth;
+
+	yOffset = y + dragObj.yOffset - pnzImgTop;
+	yPercent = yOffset / pnzImgHeight;
+
+	if (xOffset < 0)
+	{
+		xPercent = 0;
+		xOffset = pnzImgLeft - BUFFER;
+	}
+	else if (xOffset + rectWidth > pnzImgWidth)
+	{
+		xPercent = 1;
+		xOffset = pnzImgLeft + pnzImgWidth - rectWidth + BUFFER;
+	}
+	else
+	{
+		xOffset = x + dragObj.xOffset;
+	}
+
+	if (yOffset < 0)
+	{
+		yPercent = 0;
+		yOffset = pnzImgTop - BUFFER;
+	}
+	else if (yOffset + rectHeight > pnzImgHeight)
+	{
+		yPercent = 1;
+		yOffset = pnzImgTop + pnzImgHeight - rectHeight + BUFFER;
+	}
+	else
+	{
+		yOffset = y + dragObj.yOffset;
+	}
+
+	if (parent.parent.viewMgr.setView)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	setZWinSize (null, null, xOffset, yOffset);
+}
+
+function stopZoomRectDrag(dragObj, x, y)
+{
+	var el = window.event.srcElement;
+	g_newLeft = parseInt(el.style.left);
+	g_newTop = parseInt(el.style.top);
+}
+
+function setZWinSize( newWidth, newHeight, newLeft, newTop )
+{
+	if( newWidth != null && newWidth >= 0 ) 
+	{
+		zoomObj.zoomWinWidth = newWidth;
+		zoomRectObj.style.width = newWidth;
+	}
+
+	if( newHeight != null && newHeight >= 0 ) 
+	{
+		zoomObj.zoomWinHeight = newHeight;
+		zoomRectObj.style.height = newHeight;
+	}
+
+	if( newLeft != null && newLeft >= 0 )
+	{
+		zoomObj.zoomWinLeft = newLeft;
+		zoomRectObj.style.left = newLeft;
+	}
+
+	if( newTop != null && newTop >= 0 )
+	{
+		zoomObj.zoomWinTop = newTop;
+		zoomRectObj.style.top= newTop;
+	}
+}
+
+function doResizeZoomRectDrag(dragObj, x, y)
+{
+	var newWidth	= null;
+	var newHeight	= null;
+	var newLeft		= null;
+	var newTop		= null;
+		
+	var tmp = parent.parent.frmDrawing;
+	if (tmp)
+	{
+		zoomObj.mainWinWidth		= tmp.document.body.clientWidth;
+		zoomObj.mainWinHeight		= tmp.document.body.clientHeight;
+	}
+
+	var widthHeightRatio = zoomObj.mainWinWidth / zoomObj.mainWinHeight;
+	
+	var minimumSize = 10;
+	if( g_resizeDirection == 'e' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'w' )
+	{
+		newWidth	= zoomObj.zoomWinWidth + zoomObj.zoomWinLeft - x;
+		if( newWidth > minimumSize )
+		{
+			newHeight	= newWidth / widthHeightRatio;
+			newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+			newLeft		= x;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+
+	if( g_resizeDirection == 'se' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 's' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'sw' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+	
+	if( g_resizeDirection == 'n' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'ne' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'nw' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+}
+
+function stopResizeZoomRectDrag(dragObj, x, y)
+{
+	PNZimg = document.all("ConvertedImage");
+
+	var xWidthPercent = parseInt(zoomRectDiv.style.width) / PNZimg.style.pixelWidth;
+	var yHeightPercent = parseInt(zoomRectDiv.style.height) / PNZimg.style.pixelHeight;
+
+	var newZoomLevel = GetZoomLevel (xWidthPercent, yHeightPercent);
+
+	if (parent.parent.viewMgr.Zoom)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostZoomProcessing = PostZoomProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.Zoom (newZoomLevel);
+	}
+
+	g_width = parseInt(zoomRectDiv.style.pixelWidth);
+	g_height = parseInt(zoomRectDiv.style.pixelHeight);
+	g_newLeft = parseInt(zoomRectDiv.style.left);
+	g_newTop = parseInt(zoomRectDiv.style.top);
+}
+
+function GetZoomLevel (xWidthPercent, yHeightPercent)
+{
+	var newZoomLevel;
+	if (xWidthPercent < yHeightPercent)
+	{
+		newZoomLevel = 100 / xWidthPercent;
+	}
+	else
+	{
+		newZoomLevel = 100 / yHeightPercent;
+	}
+
+	return newZoomLevel;
+}
+
+function PostZoomProcessing (newZoomLevel)
+{
+	var xOffset = parseInt(zoomRectDiv.style.left) - parseInt(divThumbnail.style.left);
+	var yOffset = parseInt(zoomRectDiv.style.top) - parseInt(divThumbnail.style.top);
+
+	var xPercent = xOffset / PNZimg.style.pixelWidth;
+	var yPercent = yOffset / PNZimg.style.pixelHeight;
+
+	var viewMgr = parent.parent.viewMgr;
+	viewMgr.ChangingView = true;
+
+	if (viewMgr.setView)
+	{
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	SetCorrectTick (newZoomLevel);
+
+	viewMgr.PostZoomProcessing = null;
+}
+
+function SetCorrectTick (newZoomLevel)
+{
+	var zoomLevels = parent.zoomLevels;
+	if (newZoomLevel <= zoomLevels[0])
+	{
+		parent.changeTick(zoomLevels[0]);
+	}
+	else if (newZoomLevel >= zoomLevels[zoomLevels.length - 1])
+	{
+		parent.changeTick(zoomLevels[zoomLevels.length - 1]);
+	}
+	else
+	{
+		for (var count = 0; count < zoomLevels.length - 1; count++)
+		{
+			var deltaDown = newZoomLevel - zoomLevels[count];
+			var deltaUp = newZoomLevel - zoomLevels[count + 1];
+			if (deltaDown >= 0 && deltaUp <= 0)
+			{
+				if (Math.abs(deltaDown) < Math.abs(deltaUp))
+				{
+					parent.changeTick(zoomLevels[count]);
+					break;
+				}
+				else
+				{
+					parent.changeTick(zoomLevels[count + 1]);
+					break;
+				}
+			}
+		}
+	}
+}
+
+function PostSetViewProcessing ()
+{
+	parent.parent.viewMgr.ChangingView = false;
+	parent.parent.viewMgr.PostSetViewProcessing = null;
+}
+
+function startNewZoomRectDrag()
+{
+	var x = getMouseXcoord();
+	var y = getMouseYcoord();
+	zoomObj.newZWinStartX = x;
+	zoomObj.newZWinStartY = y;
+	
+	g_newZWinObjRef = document.all("newZoomWindowDiv");
+	g_newZWinObjRef.style.display = "";
+
+	startDrag( 'zoomRectDiv', doNewZoomRectDrag, stopNewZoomRectDrag );
+}
+
+function doNewZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var width	= Math.abs( zoomObj.newZWinStartX - x );
+	var height	= Math.abs( zoomObj.newZWinStartY - y );
+
+	var aspectRatio = parent.parent.viewMgr.docDrawing.body.clientWidth / parent.parent.viewMgr.docDrawing.body.clientHeight;
+
+	if( width < (aspectRatio * height))
+	{
+		width = (aspectRatio) * height;
+	}
+	else
+	{
+		height = width / (aspectRatio);
+	}
+
+	width = Math.min (width, parseInt(PNZimg.style.pixelWidth));
+	height = Math.min (height, parseInt(PNZimg.style.pixelHeight));
+
+	var left = (x > zoomObj.newZWinStartX) ? zoomObj.newZWinStartX : zoomObj.newZWinStartX - width;
+	var top  = (y > zoomObj.newZWinStartY) ? zoomObj.newZWinStartY : zoomObj.newZWinStartY - height;
+
+	newZoomWindowDiv.style.top = top;
+	newZoomWindowDiv.style.left = left;
+	newZoomWindowDiv.style.height = height;
+	newZoomWindowDiv.style.width = width;
+	newZoomWindowDiv.style.visibility = "visible";
+
+	zoomObj.zoomWinLeft		= left;
+	zoomObj.zoomWinWidth	= width;
+	zoomObj.zoomWinTop		= top;
+	zoomObj.zoomWinHeight	= height;
+}
+
+function stopNewZoomRectDrag(dragObj, x, y)
+{
+	newZoomWindowDiv.style.visibility = "hidden";
+
+	if (parseInt (newZoomWindowDiv.style.width) > 10 && 
+		parseInt (newZoomWindowDiv.style.height) > 10)
+	{
+		zoomRectDiv.style.top = newZoomWindowDiv.style.top;
+		zoomRectDiv.style.left = newZoomWindowDiv.style.left;
+		zoomRectDiv.style.height = newZoomWindowDiv.style.height;
+		zoomRectDiv.style.width = newZoomWindowDiv.style.width;
+
+		stopResizeZoomRectDrag(dragObj,x,y);
+		zoomRectDiv.style.display = "inline";
+		zoomRectDiv.style.visibility = "visible";
+	}
+	else
+	{
+		zoomObj.zoomWinLeft		= parseInt(zoomRectDiv.style.left);
+		zoomObj.zoomWinWidth	= parseInt(zoomRectDiv.style.width);
+		zoomObj.zoomWinTop		= parseInt(zoomRectDiv.style.top);
+		zoomObj.zoomWinHeight	= parseInt(zoomRectDiv.style.height);
+	}
+
+	newZoomWindowDiv.style.height = "0px";
+	newZoomWindowDiv.style.width = "0px";
+
+	newZoomWindowDiv.style.display = "none";
+}
+
+var g_lastX = 0;
+var g_lastY = 0;
+
+document.onmousedown = mouseDown;
+document.onmousemove = mouseMove;
+document.onmouseup = mouseUp;
+document.onmouseout = mouseOut;
+
+function mouseDown()
+{
+	return true;
+}
+
+function mouseMove()
+{
+	var x = event.clientX + document.body.scrollLeft;
+	var y = event.clientY + document.body.scrollTop;
+
+	g_lastX = x;
+	g_lastY = y;
+	
+	doDrag( x, y );
+	return true;
+}
+
+function mouseUp() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+	
+	stopDrag(null,x,y);
+	return true;
+}
+
+function mouseOut() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+
+	if( x < 0 ) x = -1;
+	if( x >= document.body.clientWidth ) x = -1;
+		
+	if( y < 0 ) y = -1;
+	if( y >= document.body.clientHeight ) y = -1;
+
+	if( x == -1 || y == -1 )
+	{
+		x = -1;
+		y = -1;
+	}
+	
+
+	if( x == -1 )
+		stopDrag( null, x, y );
+	return true;
+}
+
+function getMouseXcoord()
+{
+	return event.x + document.body.scrollLeft;
+}
+
+function getMouseYcoord()
+{
+	return event.y + document.body.scrollTop;
+}
+
+var g_width		= -1;
+var g_height	= -1;
+var g_newLeft	= -1;	
+var g_newTop	= -1;
+		
+var g_pnzImgWidth = -1;
+var g_pnzImgHeight = -1;
+var g_pnzImgLeft = -1;
+var g_pnzImgTop = -1;
+
+function keydown()
+{
+	var key = window.event.keyCode;
+	var el = window.event.srcElement;
+
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{
+		if(g_width == -1)
+			g_width		= parseInt(el.style.pixelWidth);
+			
+		if(g_height == -1)
+			g_height		= parseInt(el.style.pixelHeight);
+			
+		if(g_newLeft == -1)
+			g_newLeft		= parseInt(el.style.left);	
+		
+		if(g_newTop == -1)
+			g_newTop		= parseInt(el.style.top);
+		
+		if(g_pnzImgWidth == -1)
+			g_pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+			
+		if(g_pnzImgHeight == -1)
+			g_pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+			
+		if(g_pnzImgLeft == -1)
+			g_pnzImgLeft = parseInt(divThumbnail.style.left);
+			
+		if(g_pnzImgTop == -1)
+			g_pnzImgTop = parseInt(divThumbnail.style.top);
+	
+
+		if(key == 37)	
+		{
+			g_newLeft -= 1;
+			if(g_newLeft < g_pnzImgLeft)
+			{
+				g_newLeft = g_pnzImgLeft;
+			}	
+		}
+		else if(key == 38)	
+		{
+			g_newTop -= 1;
+			if(g_newTop < g_pnzImgTop)
+			{
+				g_newTop = g_pnzImgTop;
+			}	
+		}
+		else if(key == 39)	
+		{
+			g_newLeft += 1;
+			if(g_newLeft + g_width > g_pnzImgLeft + g_pnzImgWidth)
+			{
+				g_newLeft = g_pnzImgLeft + g_pnzImgWidth - g_width;		
+			}
+		}
+		
+		else if(key == 40)	
+		{
+			g_newTop += 1;
+			if(g_newTop + g_height > g_pnzImgTop + g_pnzImgHeight)
+			{
+				g_newTop = g_pnzImgTop + g_pnzImgHeight - g_height;		
+			}
+		}
+		
+		setZoomRectCursor();
+
+		var xOffset = g_newLeft - g_pnzImgLeft;
+		var yOffset = g_newTop - g_pnzImgTop;
+		
+		var xPercent = xPercent = xOffset / g_pnzImgWidth;
+		var yPercent = yPercent = yOffset / g_pnzImgHeight;
+
+		if (xOffset < 0)
+		{
+			xPercent = 0;
+			xOffset = g_pnzImgLeft;
+		}
+		else if (xOffset + g_width > g_pnzImgWidth)
+		{
+			xPercent = 1;
+			xOffset = g_pnzImgLeft + g_pnzImgWidth - g_width;
+		}
+
+		if (yOffset < 0)
+		{
+			yPercent = 0;
+			yOffset = g_pnzImgTop;
+		}
+		else if (yOffset + g_height > g_pnzImgHeight)
+		{
+			yPercent = 1;
+			yOffset = g_pnzImgTop + g_pnzImgHeight - g_height;
+		}
+
+		if (parent.parent.viewMgr.setView)
+		{
+			var viewMgr = parent.parent.viewMgr;
+			viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+			viewMgr.ChangingView = true;
+			viewMgr.setView (xPercent, yPercent);
+		}	
+		setZWinSize (null, null, g_newLeft, g_newTop);
+	}
+}
+
+function keyup()
+{
+	var key = window.event.keyCode;
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{		
+		el = window.event.srcElement;
+	}
+}
+
+function dragObject( divID, divObject, xOffset, yOffset, dragFunctionPointer, dragStopFunctionPointer )
+{
+	this.divID			= divID;
+	this.divObject		= divObject;
+	this.xOffset		= xOffset;
+	this.yOffset		= yOffset;
+	this.dragFPtr		= dragFunctionPointer;
+	this.dragStopFPtr	= dragStopFunctionPointer;
+}
+
+var dragList = new Array();
+
+
+function startDrag( divID, dragFunctionPtr, dragStopFunctionPointer, xOffset, yOffset ) 
+{
+	var divObject = document.all(divID);
+	if( divObject != null ) 
+	{
+		document.selection.empty();
+		
+		if( xOffset == null )
+		{
+			xOffset = parseInt(divObject.style.left) - g_lastX;
+		}
+		
+		if( yOffset == null )
+		{
+			yOffset = parseInt(divObject.style.top)  - g_lastY;
+		}
+
+		dragList[ dragList.length ] = new dragObject( divID, divObject, xOffset, yOffset, dragFunctionPtr, dragStopFunctionPointer );
+		return true;
+	} 
+	else 
+	{
+		return false;
+	}
+}
+
+function doDrag( x, y ) 
+{
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].dragFPtr != null )
+			dragList[i].dragFPtr( dragList[i], x, y );
+	}
+	if( dragList.length )
+	{
+		document.selection.empty();
+	}
+}
+
+function stopDrag( divID, x, y ) 
+{ 
+	var tmpDragObject;
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].divID == divID || divID == null ) 
+		{
+			tmpDragObject = dragList[i];
+			
+			dragList[i] = dragList[ dragList.length - 1 ];
+			dragList.length = dragList.length - 1;
+			
+			if( tmpDragObject.dragStopFPtr != null )
+			{
+				tmpDragObject.dragStopFPtr( tmpDragObject, x, y );
+			}
+			
+		}
+	}
+}
+
+function PageViewChanged(newLeftPercent, newTopPercent, newWidthPercent, newHeightPercent)
+{
+	if (dragList.length == 0 && !parent.parent.viewMgr.ChangingView)
+	{
+		var newLeft		= null;
+		var newTop		= null;
+		var newWidth	= null;
+		var newHeight	= null;
+
+		var PNZimg = document.all("ConvertedImage");
+
+		if (newLeftPercent != null)
+		{
+			newLeft = (newLeftPercent * PNZimg.style.pixelWidth) + parseInt(divThumbnail.style.left);
+		}
+		
+		if (newTopPercent != null)
+		{
+			newTop = (newTopPercent * PNZimg.style.pixelHeight) + parseInt(divThumbnail.style.top);
+		}
+		
+		if (newWidthPercent != null)
+		{
+			newWidth = newWidthPercent * PNZimg.style.pixelWidth;
+		}
+		
+		if (newHeightPercent != null)
+		{
+			newHeight = newHeightPercent * PNZimg.style.pixelHeight;
+		}
+
+		setZWinSize (newWidth, newHeight, newLeft, newTop);
+
+		if (newLeftPercent <= 0 && newTopPercent <= 0 && newWidthPercent >= 1 && newHeightPercent >= 1)
+		{
+			zoomRectDiv.style.display = "none";
+			zoomRectDiv.style.visibility = "hidden";
+		}
+		else
+		{
+			zoomRectDiv.style.display = "inline";
+			zoomRectDiv.style.visibility = "visible";
+		}
+
+		if (newWidthPercent != null && newHeightPercent != null)
+		{
+			var newZoomLevel = GetZoomLevel (newWidthPercent, newHeightPercent);
+			SetCorrectTick (newZoomLevel);
+		}
+	}
+}
+
+function load()
+{
+	parent.parent.g_ZoomLoaded = true;
+
+	if (parent.parent.g_LoadingWidgets)
+	{
+		parent.parent.g_LoadingWidgets = false;
+		parent.parent.location.reload();
+	}
+}
+
+function unload()
+{
+	if (parent.parent.viewMgr)
+	{
+		parent.parent.viewMgr.viewChanged = null;
+	}
+
+	parent.parent.g_LoadingWidgets = true;
+}
+
+
+</script>
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divPZWindow" style="width: 100%; height: 100%;" >
+	<div id="divThumbnail" style="position: absolute; " onmousedown="startNewZoomRectDrag();"></div>
+</div>
+<div id="divTempThumbnail" style="position: absolute; visibility:hidden; display:none;" ></div>
+
+<div id="zoomRectDiv" tabindex="1" title="可見的區域。使用滑鼠或方向鍵來移動。" onkeydown="keydown()" onkeyup="keyup()" style="display:none;position: absolute; border: solid red thin; z-index: 3;" onmousedown="startZoomRectDrag();" onmouseover="setZoomRectCursor();" onmousemove="setZoomRectCursor();"></div>
+<div id="newZoomWindowDiv" style="position: absolute; border: solid blue thin; z-index: 4; visibility: hidden;"></div>
+
+</body>
+</html>
+
+
+
+
+
+
Index: /drbl_ui/flow_chart/clonezilla_save_flow_chart.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_save_flow_chart.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_save_flow_chart.htm	(revision 21)
@@ -0,0 +1,718 @@
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+		<meta name="標題" content=""/>
+		<meta name="主旨" content=""/>
+		<meta name="類別" content=""/>
+		<meta name="關鍵字" content=""/>
+		<meta name="描述" content=""/>
+		<meta name="作者" content=" "/>
+		<meta name="主管" content=""/>
+		<meta name="公司" content=""/>
+
+		<title>clonezilla_save_flow_chart</title>
+		<script src="clonezilla_save_flow_chart.files/frameset.js" type="text/jscript" language="jscript"></script>
+		<script type="text/jscript" language="jscript" >
+
+function FileEntry (pageIndex, pageID, pageName, priImage, secImage) 
+{
+	this.PageIndex = pageIndex;
+	this.PageID	  = pageID;
+	this.PageName = pageName;
+	this.PriImage = priImage;
+	this.SecImage = secImage;
+}
+
+var viewMgr = null;
+
+var g_FileList = new  Array(
+ new FileEntry (1, 0, "頁-1", "vml_1.htm", "gif_1.htm")
+
+);
+
+var g_CurPageIndex = 0;
+var g_ZoomLoaded = false;
+var g_WidgetsLoaded = false;
+var g_FileProtocol = "file://";
+
+var g_HLMenuEntry = "menuEntry";
+var g_HLMenuEntryDiv = "menuEntryDiv";
+
+var g_LoadingWidgets = false;
+
+
+function CViewMgr(convertedImgID, highlightDivID)
+{
+	this.onResize = null;
+	this.ApplyZoom = null;
+	this.ChangingView = false;
+
+	this.put_Location = ViewMgrDefaultFind;
+	this.Zoom = ViewMgrDefaultResize;
+	this.PostZoomProcessing = null;
+	this.setView = null;
+	this.PostSetViewProcessing = null;
+	this.viewChanged = null;
+
+	this.SupportsDetails = false;
+	this.SupportsSearch = false;
+
+	this.visBBoxLeft = 0.0;
+	this.visBBoxRight = 0.0;
+	this.visBBoxBottom = 0.0;
+	this.visBBoxTop = 0.0;
+
+	this.highlightDiv = null;
+	this.stepWidth = 10;
+
+	this.id = convertedImgID;
+	this.zoomFactor = -1;
+	this.zoomLast = -1;
+	this.origWH = 1;
+	this.origWidth = 100;	
+	this.aspectRatio = 1;
+
+	this.docDrawing = null;
+	var docDrawing = frmDrawing.document;
+	if(docDrawing)
+	{
+		this.docDrawing = docDrawing;
+		var docEl = docDrawing.all(this.id);
+		if (docEl)
+		{
+			this.s = docEl.style;
+			this.origWidth = this.s.pixelWidth;
+			this.origWH = this.s.pixelWidth / this.s.pixelHeight;
+		}
+		this.highlightDiv = docDrawing.all(highlightDivID);
+	}
+
+	this.loadPage = DefPageLoad;
+	this.getPNZ	= null;
+}
+
+function DefPageLoad (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+        if (fileDelim == -1)
+            fileDelim = curPath.lastIndexOf ('\\');
+		var newPath = curPath.substring (0, fileDelim + 1);
+		newPath += g_FileList[pageIndex].PriImage;
+		frmDrawing.location.href = newPath;
+
+		SetPNZDisplay (pageIndex);
+	}
+}
+
+function CurPageUpdate (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		g_CurPageIndex = pageIndex;
+
+		SetCurPageInGoto (pageIndex);
+
+		var divDetails = frmToolbar.document.all("divDetails");
+		if (divDetails)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsDetails)
+			{
+				displayStatus = "none";
+			}
+
+			divDetails.style.display = displayStatus;
+		}
+
+		var divSearch = frmToolbar.document.all("divSearch");
+		if (divSearch)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsSearch)
+			{
+				displayStatus = "none";
+			}
+
+			divSearch.style.display = displayStatus;
+		}
+
+		SetPNZDisplay (pageIndex);
+
+		LoadZoom ();
+	}
+}
+
+function FramePageLoaded ()
+{
+	if (isUpLevel && viewMgr == null)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+		if (fileDelim >= 0)
+		{
+			var fileName = curPath.substring (fileDelim + 1, curPath.length);
+			var pageIndex = PageIndexFromFileName (fileName);
+			SetCurPageInGoto (pageIndex);
+			SetPNZDisplay (pageIndex);
+		}
+	}
+}
+
+function LoadZoom ()
+{
+	var zoomWidget = frmToolbar.ifrmPNZ;
+	if (zoomWidget)
+	{
+		if (g_ZoomLoaded)
+		{
+			zoomWidget.findContent();
+			PageLoadedDoCallback ();
+		}
+		else
+		{
+			window.setTimeout("LoadZoom()", 500);
+		}
+	}
+	else
+	{
+		PageLoadedDoCallback ();
+	}
+}
+
+function SetCurPageInGoto (pageIndex)
+{
+	var gotoPageSelect = frmToolbar.document.all("Select1");
+	if (gotoPageSelect != null)
+	{
+		gotoPageSelect.value = pageIndex;
+	}
+}
+
+function SetPNZDisplay (pageIndex)
+{
+	var divPNZ = frmToolbar.document.all("divPNZ");
+	if (divPNZ)
+	{
+		var displayStatus = "block";
+		if (g_FileList[pageIndex].PageID < 0)
+		{
+			displayStatus = "none";
+		}
+
+		divPNZ.style.display = displayStatus;
+	}
+}
+
+function ViewMgrDefaultFind()
+{
+	return;
+}
+
+function ViewMgrDefaultResize(size)
+{
+	return;
+}
+
+
+
+g_callBackFunctionArray = new Array();
+function PageLoadedDoCallback()
+{
+	if (g_WidgetsLoaded)	
+	{
+		for( var i=0; i < g_callBackFunctionArray.length; i++ )
+		{
+			g_callBackFunctionArray[i]();
+		}
+		g_callBackFunctionArray = new Array();
+	}
+	else
+	{
+		window.setTimeout("PageLoadedDoCallback()", 500);
+	}
+}
+
+
+function ParseParams (strRawParams)
+{
+	strRawParams = strRawParams.substring(1);
+
+	var arrayParamTokens = strRawParams.split('&');
+	for (var count = 0; count < arrayParamTokens.length; count++)
+	{
+		arrayParamTokens[count] = unescape(arrayParamTokens[count]);
+		this[count] = arrayParamTokens[count].substring(0, arrayParamTokens[count].indexOf('='));
+		this[this[count]] = arrayParamTokens[count].substring(arrayParamTokens[count].indexOf('=') + 1);
+	}
+
+	return this;
+}
+
+var gParams = ParseParams (location.search);
+
+var g_PageParamValue = gParams['page'];
+if (g_PageParamValue != null && 
+	g_PageParamValue.length > 0)
+{
+	var pageIndex = PageIndexFromName (g_PageParamValue);
+	if (pageIndex > 0 && pageIndex < g_FileList.length)
+	{
+		g_CurPageIndex = pageIndex;
+	}
+}
+else
+{
+	g_PageParamValue = null;
+}
+
+var g_FirstPageToLoad = g_PageParamValue;
+
+var g_ZoomParamValue = gParams['zoom'];
+if (g_ZoomParamValue != null && g_ZoomParamValue.length > 0)
+{
+	g_ZoomParamValue = 1.0 * g_ZoomParamValue;
+	if (g_ZoomParamValue >= 10 && g_ZoomParamValue <= 500)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (viewMgr && viewMgr.Zoom) { viewMgr.Zoom(g_ZoomParamValue); } };
+	}
+}
+
+var g_ShapeParamValue = gParams['shape'];
+if (g_ShapeParamValue != null && g_ShapeParamValue.length > 0)
+{
+	if (g_PageParamValue != null && g_PageParamValue.length > 0)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var shapeNode = FindShapeXMLByName (g_PageParamValue, g_ShapeParamValue); if (shapeNode) { frmToolbar.TreeSelect (g_FileList[g_CurPageIndex].PageID, shapeNode.attributes.getNamedItem ("ID").text); } };
+	}
+	else
+	{
+		g_ShapeParamValue = null;
+	}
+}
+
+var g_SearchParamValue = gParams['search'];
+if (g_SearchParamValue != null && g_SearchParamValue.length > 0)
+{
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (frmToolbar.theForm) { frmToolbar.theForm.findString.value = g_SearchParamValue; } };
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var goButton = frmToolbar.document.all('GoButton'); if(goButton) { goButton.click(); } };
+}
+
+
+var strHLTooltipText = "按一下以跟隨超連結。";
+var strPropsTooltipText = "Ctrl + 按一下以檢視詳細資料。";
+
+var strFocusHLTooltipText = "按下 Enter 以追蹤超連結。";
+var strFocusPropsTooltipText = "Ctrl + Enter 以檢視詳細資料。";
+
+
+function UpdateTooltip (element, pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var strHL, strProps;
+	
+		if(frmDrawing.event.type == "focus")
+		{
+			strHL = strFocusHLTooltipText;
+			strProps = strFocusPropsTooltipText;
+		}
+		else
+		{
+			strHL = strHLTooltipText;
+			strProps = strPropsTooltipText;
+		}
+
+		var strTooltip = "";
+		if (element.origTitle)
+		{
+			strTooltip = element.origTitle.toString();
+		}
+			
+		var shapeNode = FindShapeXML (pageID, shapeID);
+
+		if( shapeNode != null )
+		{
+			var propColl = shapeNode.selectNodes ("Prop");
+			if (propColl != null && propColl.length > 0)
+			{
+				if (strTooltip.length > 0)
+				{
+					strTooltip += "\n";
+				} 
+				strTooltip += strProps;
+			}
+		}
+
+		var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+		if (hlObj != null && (hlObj.DoFunction.length > 0 || hlObj.Hyperlink.length > 0))
+		{
+			if (strTooltip.length > 0)
+			{
+				strTooltip += "\n";
+			}	
+			strTooltip += strHL;
+		}
+
+		element.title = strTooltip;
+		if (element.alt != null)
+		{
+			element.alt = strTooltip;
+		}
+	}
+}
+
+
+function GetHLAction (shapeNode, pageID, shapeID)
+{
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		if (hlColl.length > 1)
+		{
+			hlObj.DoFunction = "showMenu(" + pageID + ", " + shapeID + ");"
+		}
+		else if (hlColl.length == 1)
+		{
+			hlObj = CreateHLObj (hlColl.item(0));
+		}
+	}
+
+	return hlObj;
+}
+
+function HLObj (strHyperlink, strDoFunction, strDesc, newWindow) 
+{
+	this.Hyperlink = strHyperlink;
+	this.DoFunction = strDoFunction;
+	this.Desc = strDesc;
+	this.NewWindow = newWindow;
+}
+
+function clickMenu()
+{
+	var e = window.frmDrawing.event;
+	var menu = frmDrawing.document.all("menu1")
+	
+	if (menu != null && menu.style.display != "none")
+	{
+		menu.style.display="none";
+
+		if (e && e.srcElement && e.srcElement.doFunction != null)
+		{
+			eval(e.srcElement.doFunction);
+		}
+	}
+}
+
+function toggleMenuDiv(el, highlight) 
+{
+	var divEl = el;
+	var aEl = null;
+
+	var ID = el.id.substring (g_HLMenuEntryDiv.length, el.id.length) * 1.0;
+	aEl = divEl.all(g_HLMenuEntry + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenuLink(el, highlight) 
+{
+	var divEl = null;
+	var aEl = el;
+
+	var ID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	divEl = frmDrawing.document.all(g_HLMenuEntryDiv + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenu(divEl, aEl, highlight)
+{
+	if (highlight)
+	{
+	  divEl.className="highlightItem";
+	  aEl.className="highlightItem";
+	} 
+	else 
+	{
+	  divEl.className="menuItem";
+	  aEl.className="menuItem";
+	}
+}
+
+function showMenu(pageID, shapeID)
+{
+	var shapeXML = FindShapeXML (pageID, shapeID);
+	if (shapeXML != null)
+	{
+		CreateHLMenu (shapeXML);
+		var menu = frmDrawing.document.all("menu1");
+		if (menu != null)
+		{
+			menu.style.visibility = "hidden";
+			menu.style.display = "inline";
+
+			var e = window.frmDrawing.event;
+			var elem = e.srcElement;
+
+			var clientWidth = frmDrawing.document.body.clientWidth;
+			var clientHeight = frmDrawing.document.body.clientHeight;
+
+			var menuWidth = menu.clientWidth;
+			var menuHeight = menu.clientHeight;
+
+			var menuLeft = e.x;
+			var menuTop = e.y;
+			
+			var doc = frmDrawing.document;
+			var img = doc.all("ConvertedImage");
+			
+			if( (menuLeft + doc.body.scrollLeft < elem.offsetLeft) || (menuLeft + doc.body.scrollLeft > elem.offsetLeft + elem.offsetWidth + img.offsetLeft) )
+			{
+				menuLeft = elem.offsetLeft + img.offsetLeft + elem.offsetWidth/2;
+			}
+			
+			if( (menuTop + doc.body.scrollTop < elem.offsetTop) || (menuTop + doc.body.scrollTop > elem.offsetTop + elem.offsetHeight + img.offsetTop) )
+			{
+				menuTop = elem.offsetTop + img.offsetTop + elem.offsetHeight/2;
+			}
+
+			var scrollBarSize = 20;
+			if (menuLeft + menuWidth > clientWidth - scrollBarSize)
+			{
+				menuLeft = clientWidth - menuWidth - scrollBarSize;
+			}
+
+			if (menuTop + menuHeight > clientHeight - scrollBarSize)
+			{
+				menuTop = clientHeight - menuHeight - scrollBarSize;
+			}
+
+			menu.style.posLeft = menuLeft + frmDrawing.document.body.scrollLeft;
+			menu.style.posTop = menuTop + frmDrawing.document.body.scrollTop;
+			menu.style.visibility = "visible";
+
+			var firstLink = menu.all(g_HLMenuEntry + "0");
+			firstLink.focus ();
+			
+			if (e.keyCode == 13)
+			{
+				toggleMenuLink(firstLink, true);
+			}
+
+			e.cancelBubble = true;
+		}
+	}
+}
+
+function MenuKeyDown ()
+{
+	var e = window.frmDrawing.event;
+	var el = e.srcElement;
+
+	if (e.keyCode == 27)	// 27 == ESC
+	{
+		clickMenu();
+		e.cancelBubble = true;
+		return;
+	}
+
+	var curSelID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	var newSelID = -1;
+
+	if (e.keyCode == 40)	// 40 == down arrow
+	{
+		newSelID = curSelID + 1;
+	}
+	else if (e.keyCode == 38) // 38 == up arrow
+	{
+		newSelID = curSelID - 1;
+	}
+
+	var newSelEntry = frmDrawing.document.all(g_HLMenuEntry + newSelID);
+
+	if (newSelEntry)
+	{
+		newSelEntry.focus();
+
+		var curSelEntry = frmDrawing.document.all(g_HLMenuEntry + curSelID);
+		toggleMenuLink (curSelEntry, false);
+		toggleMenuLink (newSelEntry, true);
+	}
+
+	e.cancelBubble = true;
+}
+
+function CreateHLMenu (shapeNode)
+{
+	var strHLMenuHTML = "";
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		strHLMenuHTML = "<div class='innerhlMenu'>";
+
+		var hlCount = hlColl.length;
+		for (var count = 0; count < hlCount; count++)
+		{
+			var hlObj = CreateHLObj (hlColl.item(count));
+			if (hlObj != null)
+			{
+				if (hlObj.Desc.length > 0)
+				{
+					strHLMenuHTML += "<div id='" + (g_HLMenuEntryDiv + count) + "' class='menuItem' onmouseover='toggleMenuDiv(this, true)' onmouseout='toggleMenuDiv(this, false)' onclick='" + (g_HLMenuEntry + count) + ".click()'>";
+					strHLMenuHTML += "<a href=";
+
+					if (hlObj.DoFunction.length > 0)
+					{
+						strHLMenuHTML += "'javascript:" + hlObj.DoFunction + "'";
+					}
+					else
+					{
+						var targetVal = "_top";
+						if (hlObj.NewWindow)
+						{
+							targetVal = "_blank";
+						}
+						strHLMenuHTML += "'" + hlObj.Hyperlink + "' target='" + targetVal + "'";
+					}
+
+					strHLMenuHTML += " class='menuItem' id='" + (g_HLMenuEntry + count) + "' onkeydown='parent.MenuKeyDown();' onmouseover='toggleMenuLink(this, true)' onmouseout='toggleMenuLink(this, false)'>";
+					strHLMenuHTML += hlObj.Desc + "</a></div>";
+				}
+			}
+		}
+		
+		strHLMenuHTML += "</div>";
+	}
+
+	frmDrawing.menu1.innerHTML = strHLMenuHTML;
+}
+
+function CreateHLObj (hlNode)
+{
+	var strAddress = "";
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (hlNode != null)
+	{
+		var hlAddress = hlNode.selectSingleNode("HLURL:Address/textnode()");
+		if (hlAddress != null && hlAddress.text.length > 0)
+		{
+			var absoluteURL = hlNode.selectSingleNode("HLURL:AbsoluteURL/textnode()");
+			var strAbsURL = absoluteURL.text;
+			var strAddr = hlAddress.text;
+
+			if (strAbsURL.indexOf (g_FileProtocol) == 0)
+			{
+				var strAbsPath = strAbsURL.substring (g_FileProtocol.length, strAbsURL.length);
+				strAbsPath.toLowerCase ();
+				strAddr.toLowerCase ();
+				if (strAbsPath == strAddr)
+				{
+					strAddress = strAbsPath;
+				}
+				else
+				{
+					strAddress = strAddr;
+					
+					var hlSubAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+					if (hlSubAddress != null && hlSubAddress.text.length > 0)
+					{
+						strAddress += '#';
+						strAddress += hlSubAddress.text;
+					}
+
+					var hlExtraInfo = hlNode.selectSingleNode("HLURL:ExtraInfo/textnode()");
+					if (hlExtraInfo != null && hlExtraInfo.text.length > 0)
+					{
+						strAddress += '?';
+						strAddress += hlExtraInfo.text;
+					}
+				}
+			}
+			else
+			{
+				strAddress = strAbsURL;
+			}		
+
+			strAddress = HTMLEscape (strAddress);
+			hlObj.Hyperlink += strAddress;
+		}
+		else
+		{
+			hlAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+			if (hlAddress != null && hlAddress.text.length > 0)
+			{
+				strAddress = hlAddress.text;
+
+				var pageShapeSep = strAddress.lastIndexOf ('/');
+				if (pageShapeSep > 0)
+				{
+					if (PageIndexFromName (strAddress) < 0)
+					{
+						strAddress = unescape (strAddress);
+						if (PageIndexFromName (strAddress) < 0)
+						{
+							strAddress = strAddress.substring (0, strAddress.lastIndexOf ('/'));
+						}
+					}
+				}
+
+				var pageIndex = PageIndexFromName (strAddress);
+
+				hlObj.DoFunction = "GoToPage (" + pageIndex + ");";
+				strAddress = HTMLEscape (strAddress);
+				hlObj.Desc = strAddress;
+			}
+		}
+
+		hlDesc = hlNode.selectSingleNode("HLURL:Description/textnode()");
+		if (hlDesc != null && hlDesc.text.length > 0)
+		{
+			hlObj.Desc = HTMLEscape (hlDesc.text);
+		}
+		else
+		{
+			hlObj.Desc = strAddress;
+		}
+	
+		var hlNewWindow = hlNode.selectSingleNode("HLURL:NewWindow/textnode()");
+		if (hlNewWindow != null && hlNewWindow.text.length > 0)
+		{
+			hlObj.NewWindow = (hlNewWindow.text == "1");
+		}		
+	}
+
+	return hlObj;
+}
+
+
+		</script>
+	</head>
+	
+	<frameset id="frmstOuter" cols="237,*" title="clonezilla_save_flow_chart">
+		<frame src="clonezilla_save_flow_chart.files/toolbar.htm" name="frmToolbar" id="frmToolbar" title="此框架包含管理您繪圖的工具。" frameborder="6" bordercolor="#999999" scrolling="no" marginheight="0" marginwidth="0" >
+		<frame src="clonezilla_save_flow_chart.files/gif_1.htm" name="frmDrawing" title="此框架包含您繪圖的頁面。" marginheight="10" marginwidth="10" onload="if (parent.isUpLevel) FramePageLoaded()" >
+
+		<noframes>
+			<body>
+
+				<h1>clonezilla_save_flow_chart</h1>
+				<ul>
+				<li><a href="clonezilla_save_flow_chart.files/gif_1.htm">頁-1</a></li>
+
+				</ul>
+			</body>
+		</noframes>
+	</frameset>
+	
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/data.xml
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/data.xml	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/data.xml	(revision 21)
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisioDocument>
+	<DocumentProperties>
+		<Title></Title>
+		<HyperlinkBase href=""></HyperlinkBase>
+	</DocumentProperties>
+	<Pages>
+		<Page ID="0" Name="頁-1" NameU="Page-1">
+			<Layer IX="0">
+				<Name>流程圖</Name>
+				<NameUniv>Flowchart</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Layer IX="1">
+				<Name>連接器</Name>
+				<NameUniv>Connector</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Shapes>
+				<Shape ID="1" UniqueID="{75DEF776-0A55-49BA-B2D5-CB5BCAFFDADA}" Name="終端子" NameU="Terminator" Master="0">
+					<Text>start</Text>
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">9.313691615446320</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="2" UniqueID="{828F97CD-141E-43BB-8FB3-D4C6F3686B8F}" Name="決策" NameU="Decision" Master="4">
+					<Text>是否選擇全部
+clients</Text>
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">8.307901981342592</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="3" UniqueID="{F5C597B0-37D8-4BFC-A27C-5D9EEE5066D6}" Name="動態連接器.3" NameU="Dynamic connector.3" Master="5">
+					<Text>No</Text>
+					<XForm>
+						<PinX Unit="MM">4.150358880829124</PinX>
+						<PinY Unit="MM">8.307901981342592</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="4" UniqueID="{E64C6E52-A5C7-4770-AFC7-CC8FDD775A73}" Name="決策.5" NameU="Decision.5" Master="4">
+					<Text>選擇 clients</Text>
+					<XForm>
+						<PinX Unit="MM">5.199395466956370</PinX>
+						<PinY Unit="MM">8.307901981342592</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="5" UniqueID="{A71A144A-FBF3-48EE-9B85-28135DF3AD02}" Name="儲存的資料" NameU="Stored data" Master="6">
+					<Text>讀取
+ ip_list or
+ MAC list</Text>
+					<XForm>
+						<PinX Unit="MM">6.830084937501340</PinX>
+						<PinY Unit="MM">8.307901981342592</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="6" UniqueID="{0220A266-B1F4-4878-AA18-795E99C6E65C}" Name="動態連接器.6" NameU="Dynamic connector.6" Master="5">
+					<XForm>
+						<PinX Unit="MM">6.014740202228855</PinX>
+						<PinY Unit="MM">8.307901981342592</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="7" UniqueID="{E958577F-BFBC-45D2-95A6-0C112F8E419F}" Name="動態連接器" NameU="Dynamic connector" Master="5">
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">8.857019446119997</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="9" UniqueID="{CDC38A30-7F42-49CC-9259-1DA1D19C5EAD}" Name="動態連接器.53" NameU="Dynamic connector.53" Master="5">
+					<XForm>
+						<PinX Unit="MM">4.330068691477813</PinX>
+						<PinY Unit="MM">7.628448035282187</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="8" UniqueID="{5E03F8F3-1EB9-49EA-ADB6-5AD9B5C032D4}" Name="資料" NameU="Data" Master="7">
+					<Text>-y0
+-y1
+-y2
+-y3</Text>
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">7.226329975575023</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="10" UniqueID="{64458926-721B-4448-8782-550B97436DD6}" Name="動態連接器.10" NameU="Dynamic connector.10" Master="5">
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">7.832284219100308</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="11" UniqueID="{CB482452-35B6-40ED-8663-428C7DBC87D3}" Name="資料.21" NameU="Data.21" Master="7">
+					<Text>-p choose
+-p true
+-p poweroff
+-p reboot</Text>
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">5.867422083454217</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="12" UniqueID="{AE93C915-5E13-4771-B7F4-F67B221D3C9F}" Name="動態連接器.12" NameU="Dynamic connector.12" Master="5">
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">6.546876029514620</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="13" UniqueID="{5A5C52B8-53A8-48CA-9369-895E744E27B6}" Name="程序.26" NameU="Process.26" Master="8">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">4.485804475225773</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="14" UniqueID="{D465A2FD-3BD1-48E8-8A52-5077CFDD7B30}" Name="終端子.41" NameU="Terminator.41" Master="0">
+					<Text>end</Text>
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">3.334496890114759</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="15" UniqueID="{EA23ADD1-78B9-40BD-B886-249D7A025695}" Name="動態連接器.44" NameU="Dynamic connector.44" Master="5">
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">3.857446935434638</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="16" UniqueID="{5EB75C57-B046-43FD-BD6F-71F78E846A06}" Name="動態連接器.16" NameU="Dynamic connector.16" Master="5">
+					<XForm>
+						<PinX Unit="MM">2.781287969938852</PinX>
+						<PinY Unit="MM">5.117926138208583</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+			</Shapes>
+		</Page>
+	</Pages>
+</VisioDocument>
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/filelist.xml
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/filelist.xml	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/filelist.xml	(revision 21)
@@ -0,0 +1,32 @@
+<xml xmlns:o="urn:schemas-microsoft-com:office:office">
+ <o:File HRef="arrow.gif"/>
+ <o:File HRef="minimize.gif"/>
+ <o:File HRef="maximize.gif"/>
+ <o:File HRef="go.gif"/>
+ <o:File HRef="fullpage.gif"/>
+ <o:File HRef="plus.gif"/>
+ <o:File HRef="minus.gif"/>
+ <o:File HRef="panminus.gif"/>
+ <o:File HRef="panplus.gif"/>
+ <o:File HRef="tick-foc.gif"/>
+ <o:File HRef="tick-off.gif"/>
+ <o:File HRef="tick-on.gif"/>
+ <o:File HRef="toc.gif"/>
+ <o:File HRef="toc2.gif"/>
+ <o:File HRef="data.xml"/>
+ <o:File HRef="frameset.js"/>
+ <o:File HRef="keys.js"/>
+ <o:File HRef="visio.css"/>
+ <o:File HRef="vml_1.emz"/>
+ <o:File HRef="gif_1.gif"/>
+ <o:File HRef="vml_1.js"/>
+ <o:File HRef="vml_1.htm"/>
+ <o:File HRef="gif_1.js"/>
+ <o:File HRef="gif_1.htm"/>
+ <o:File HRef="zoom.htm"/>
+ <o:File HRef="find.js"/>
+ <o:File HRef="widgets.htm"/>
+ <o:File HRef="toolbar.htm"/>
+ <o:MainFile HRef="../clonezilla_select_flow_chart.htm"/>
+ <o:File HRef="filelist.xml"/>
+</xml>
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/find.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/find.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/find.js	(revision 21)
@@ -0,0 +1,499 @@
+
+var strShapeName	= "圖形名稱";
+var strShapeText	= "圖形文字";
+var strProps		= "圖形資料";
+var strResults		= "搜尋結果關於:";
+
+var strShape	= "圖形名稱:";
+var strNoCustomPropertiesToDisplayText = "CTRL+按一下繪圖中的圖形以檢視詳細資料。";
+
+var FindShapeXML = parent.FindShapeXML;
+var Unquote = parent.Unquote;
+var put_Location = parent.put_Location;
+
+
+var strChkBox		= "Chkbox";
+var strPropChkBox	= "PropChkbox";
+
+function doExpando(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = up.src;
+	}else{
+		xxx.style.display = "none"
+		yyy.src = down.src;
+	}
+}
+
+function doExp(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = "minus.gif";
+	}else{
+		xxx.style.display = "none"
+		yyy.src = "plus.gif";
+	}
+}
+
+
+function FindOnClick()
+{
+	var count, indexOfString;
+	
+	var fieldsToSearchArray = new Array();
+	if (parent.xmlData != null && document.theForm[strProps + strChkBox].checked)
+	{
+		for( count=0; count < document.theForm.length; count++ )
+		{
+			indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+			if( -1 != indexOfString && document.theForm[count].checked )
+			{
+				fieldsToSearchArray[ fieldsToSearchArray.length ] = document.theForm[count].name.slice(0, indexOfString);
+			}
+		}
+	}
+
+	var searchTokensArray = CreateSearchTokens (document.theForm.findString.value);
+
+	if (searchTokensArray.length > 0)
+	{
+		var findArray = Find(searchTokensArray, fieldsToSearchArray);
+		var ArrayLength = findArray.length;
+		var strResultsHTML = "找不到相符項目。";
+		var lastPageID = null;
+		var shapeID;
+		
+		
+		if(ArrayLength > 0)
+		{
+			strResultsHTML = strResults + ' <b>'+ parent.HTMLEscape(document.theForm.findString.value) +'</b>';
+			for ( count = 0; count < ArrayLength; count++)
+			{
+			
+				if( lastPageID != findArray[count].PageID )
+				{
+					lastPageID = findArray[count].PageID;
+				}
+
+				shapeID = findArray[count].ShapeID;
+				strResultsHTML += '<p class="results"><a href="javascript:populateSearchResultDetails(\'results_'+ lastPageID +'_'+ shapeID +'\', '+ lastPageID +','+ shapeID +'); TogglePlus(results_' + lastPageID + '_' + shapeID + ',\'img_' + lastPageID + '_' + shapeID + '\', hideResults)"><img src="plus.gif" alt="顯示/隱藏圖形詳細資料" width="13" height="9" border="0" id="img_'+ lastPageID +'_'+ shapeID +'"></a>\n'
+				strResultsHTML += '<a  class="blu1" href="JavaScript:FindQuerySelect(';
+
+				strResultsHTML += findArray[count].PageID + ",";
+				strResultsHTML += findArray[count].ShapeID + ",";
+				strResultsHTML += findArray[count].PinX + ",";
+				strResultsHTML += findArray[count].PinY;
+
+				strResultsHTML += ')">'+ findArray[count].Title +'</a></p>\n'
+
+				strResultsHTML += '</div>\n';
+				strResultsHTML += '<div class="indent" id="results_'+ lastPageID +'_'+ shapeID +'" style="display:none;width:100%;"></div>\n'
+			}
+
+		}
+		var divAdvSrch = document.all("hideAdvSrch");
+		var imgAS0 = document.all("as0");
+		
+		var tmpObj = document.all("hideResults");
+		if( tmpObj != null )
+		{
+			tmpObj.innerHTML = strResultsHTML;
+			tmpObj.open = "true";
+			tmpObj.style.display = "block";
+		}
+	}
+}
+
+function CreateSearchTokens (strUserString)
+{
+	var searchTokensArray = new Array();
+
+	var strToken = "";
+	var chCurChar;
+
+	for (var count = 0; count < strUserString.length; count++)
+	{
+		chCurChar = strUserString.charAt(count);
+		if (chCurChar == '"')
+		{
+			var nNextQuote = strUserString.indexOf('"', count + 1);
+			if (nNextQuote >= 0)
+			{
+				strToken = strUserString.slice(count + 1, nNextQuote);
+				searchTokensArray[searchTokensArray.length] = strToken;
+				strToken = "";
+				count = nNextQuote;
+			}
+		}
+		else if (chCurChar == ' ')
+		{
+			if (strToken.length > 0)
+			{
+				searchTokensArray[searchTokensArray.length] = strToken;
+			}
+
+			strToken = "";
+		}
+		else
+		{
+			strToken += chCurChar;
+		}
+	}
+
+	if (strToken.length > 0)
+	{
+		searchTokensArray[searchTokensArray.length] = strToken;
+	}
+
+	return searchTokensArray;
+}
+
+function populateSearchResultDetails( divID, pageID, shapeID )
+{
+	var tmpShape = FindShapeXML (pageID, shapeID);
+	var strOutput = CreatePropTable( tmpShape );
+	
+	var tmpObj = document.all(divID);
+	if( tmpObj != null )
+	{
+		tmpObj.innerHTML = strOutput;
+	}
+}
+
+function makeAdvancedFindCheckboxes(div)
+{
+	if (parent.xmlData)
+	{
+		var strOutput = "";
+
+		strOutput += "<INPUT type='checkbox' name='" + strShapeName + strChkBox + "' id='" + strShapeName + strChkBox + "' checked><label for='" + strShapeName + strChkBox + "'>" + strShapeName + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strShapeText + strChkBox + "' id='" + strShapeText + strChkBox + "' checked><label for='" + strShapeText + strChkBox + "'>" + strShapeText + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strProps + strChkBox + "' id='" + strProps + strChkBox + "' onclick='AdvSearchCustomPropCheck ()'checked ><label for='" + strProps + strChkBox + "'>" + strProps +"</label><br>\n";
+		strOutput += "<div id='divCPBoxes' style='margin-left:1em;'>";
+		
+		var objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label");
+		var filter = "";
+		var boolFirstPass = true;
+		var tmpPropName;
+		while( objNodes.length > 0)
+		{
+			tmpPropName = objNodes.item( 0 ).text;
+			var escapedPropName = parent.EscapeString(tmpPropName);
+			if( true == boolFirstPass )
+			{
+				filter = ". != '" + escapedPropName + "'";
+				boolFirstPass = false;
+			}
+			else
+			{
+				filter += " and . != '" + escapedPropName + "'";
+			}
+
+			tmpPropName = parent.HTMLEscape (tmpPropName);
+			strOutput += "<INPUT type='checkbox' name='" + tmpPropName + strPropChkBox + "' id='"+ tmpPropName + strPropChkBox + "' checked><label for='"+ tmpPropName + strPropChkBox + "'>" + tmpPropName +"</label><br>\n";
+
+			objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label["+ filter + "]");
+		}
+		strOutput += "</div>"
+		div.innerHTML = strOutput;
+	}
+}
+
+function AdvSearchCustomPropCheck ()
+{
+	for( count=0; count < document.theForm.length; count++ )
+	{
+		indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+		if( -1 != indexOfString )
+		{
+			document.theForm[count].disabled = !document.theForm[strProps + strChkBox].checked;
+		}
+	}
+}
+
+
+function CResultItem(title, pageID, shapeID, pinX, pinY)
+{
+	 this["Title"] = title;
+	 this["PageID"] = pageID;
+	 this["ShapeID"] = shapeID;
+	 this["PinX"] = pinX;
+	 this["PinY"] = pinY;
+}
+
+function FindParentPage(nodeObject)
+{
+	if(nodeObject == null)
+	{
+		return null;
+	}
+	if(nodeObject.baseName == "Page")
+		return nodeObject;
+	else
+		return FindParentPage(nodeObject.parentNode);
+}
+
+function QueryStringForMatch(shapeNode, regTextForFind, filterString)
+{
+	if (filterString.length > 0)
+	{
+		var nodesToCheck = shapeNode.selectNodes(filterString);
+
+		var nodeCount = nodesToCheck.length;
+		var stringToParse;
+		for(var ncount = 0; ncount < nodeCount; ncount++)
+		{
+			stringToParse = nodesToCheck.item(ncount).text;
+			stringToParse = stringToParse.toLowerCase ();
+			if(stringToParse.indexOf(regTextForFind) > -1)
+			{
+				return true;
+			}
+		}
+	}
+}
+
+function GetShapeTitle(shapeNode)
+{
+	var objTempName = null;
+	var objTempTextElement = shapeNode.selectSingleNode("./Text");
+	if(objTempTextElement != null)
+	{
+		var objTextNode = objTempTextElement.selectSingleNode("textnode()");
+		if (objTextNode != null)
+		{
+			return parent.HTMLEscape (objTextNode.text);
+		}
+	}
+
+	objTempName = shapeNode.selectSingleNode("./@Name");
+	if(objTempName != null)
+	{
+		return parent.HTMLEscape (objTempName.text);
+	}
+
+	return "";
+}
+
+function GetPageTitle(pageID)
+{
+	var pagesObj = parent.xmlData.selectSingleNode("VisioDocument/Pages");
+	if(!pagesObj)
+	{
+		return "";
+	}
+
+	var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+	var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+	if(!pageObj)
+	{
+		return "";
+	}
+
+	var pageNameNode = pageObj.selectSingleNode("@Name");
+	if(!pageNameNode)
+	{
+		return "";
+	}
+	return pageNameNode.text;
+}
+
+function Find(searchTokensArray, propsToSearchArray)
+{
+	var bXMLNotValid = false;
+	var findArray = new Array();
+	var findIndex = 0;
+
+	if (parent.xmlData != null && searchTokensArray.length > 0)
+	{
+		var fieldsToSearchArray = new Array();
+		var filterString = "";
+		if( null != propsToSearchArray &&
+			propsToSearchArray.length > 0 )
+		{
+			var propFilterString = "";
+			for( var count=0; count< propsToSearchArray.length; count++ )
+			{
+				if( count == 0 )
+				{
+					propFilterString = "[. = '" + parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+				else
+				{
+					propFilterString += " or . = '"+ parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+			}
+			propFilterString += "]";
+
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Prop[Label"+ propFilterString +"]/Value";
+		}
+
+		if (document.theForm[strShapeText + strChkBox].checked)
+		{
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Text";
+		}
+
+		if (fieldsToSearchArray.length > 0)
+		{
+			filterString = "(.//(";
+
+			for (var fieldCount = 0; fieldCount < fieldsToSearchArray.length; fieldCount++)
+			{
+				if (fieldCount != 0)
+				{
+					filterString += " | ";
+				}
+
+				filterString += fieldsToSearchArray[fieldCount];
+			}
+
+			filterString += ")/textnode())";
+		}
+
+		var objShapeNodes;
+
+		if (document.theForm[strShapeName + strChkBox].checked)
+		{
+			if (filterString.length > 0)
+			{
+				filterString += " | ";
+			}
+			filterString += "(@Name)";
+
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape");
+		}
+		else
+		{
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape[(Prop/Value | Prop/Label | Text)]");
+		}
+
+		var shapeCount = objShapeNodes.length;
+		var objTempData = new CResultItem("A Label","PageID","ShapeID","PinX","PinY");
+		var objTempShape = null;
+
+		for (count = 0; count < shapeCount; count++)
+		{		
+			objTempShape = objShapeNodes.item(count);
+
+			var objParentPageNode = FindParentPage(objTempShape);
+			if (objParentPageNode == null)
+			{
+				continue;
+			}
+
+			var objPageIDNode = objParentPageNode.selectSingleNode("@ID/textnode()");
+			if(objPageIDNode == null)
+			{
+				continue;
+			}
+			var pageID = objPageIDNode.text;
+
+			var pageIndex = parent.PageIndexFromID (pageID);
+			if (pageIndex < 0)
+			{
+				continue;
+			}
+
+			var objLayerMember = objTempShape.selectSingleNode("LayerMem/LayerMember");
+			if (objLayerMember != null && objLayerMember.text.length > 0)
+			{
+				var layerArray = objLayerMember.text.split (';');
+				var visibleLayer = false;
+				for (var layerCount = 0; (layerCount < layerArray.length) && !visibleLayer; layerCount++)
+				{
+					var objLayerVisible = objParentPageNode.selectSingleNode("Layer[@IX=" + layerArray[layerCount] + "]/Visible");
+					if (objLayerVisible != null)
+					{
+						 visibleLayer = (objLayerVisible.text != 0);
+					}
+				}
+				
+				if (!visibleLayer)
+				{
+					continue;
+				}
+			}
+
+			for (var tokenCount = 0; tokenCount < searchTokensArray.length; tokenCount++)
+			{
+				var textToFind = searchTokensArray[tokenCount];
+				textToFind = textToFind.toLowerCase ();
+
+				if (QueryStringForMatch(objTempShape, textToFind, filterString))
+				{
+					objTempData.Title = GetShapeTitle(objTempShape);
+					objTempData.PageID = pageID;
+
+					objShapeIDNode = objTempShape.selectSingleNode("@ID/textnode()");
+					if(objShapeIDNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.ShapeID = objShapeIDNode.text;
+					objPinXNode = objTempShape.selectSingleNode("XForm/PinX/textnode()");
+					if(objPinXNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinX = objPinXNode.text;
+					objPinYNode = objTempShape.selectSingleNode("XForm/PinY/textnode()");
+					if(objPinYNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinY = objPinYNode.text;
+
+					findArray[findIndex] = new CResultItem(objTempData.Title, objTempData.PageID, objTempData.ShapeID, objTempData.PinX, objTempData.PinY);
+					findIndex++;
+					break;
+				}
+			}
+		}
+		if(bXMLNotValid)
+		{
+			findArray.length = 0;
+		}
+	}
+
+	return findArray;
+}
+
+function FindQuerySelect(pageID, shapeID, pinX, pinY)
+{
+	if ((!widgets.GoTo && parent.g_FileList.length > 1) || (widgets.GoTo && parent.g_FileList[document.all("Select1").value].PageID != pageID))
+	{
+		parent.g_callBackFunctionArray[parent.g_callBackFunctionArray.length] = function () { parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY); };
+		parent.GoToPageByID(pageID);
+	}
+	else 
+	{
+		if (parent.viewMgr != null)
+		{
+			parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY);
+		}
+	}
+}
+
+function TreeSelect(pageID, shapeID)
+{
+	var shapeNode = FindShapeXML (pageID, shapeID);
+	if (shapeNode != null)
+	{
+		var pinXNode = shapeNode.selectSingleNode("XForm/PinX/textnode()");
+		var pinYNode = shapeNode.selectSingleNode("XForm/PinY/textnode()");
+
+		if (pinXNode != null && pinYNode != null)
+		{
+			FindQuerySelect (pageID, shapeID, pinXNode.text, pinYNode.text);
+		}
+	}
+}
+
+
+var g_RowStyleList = parent.g_RowStyleList;
+var FillPropPane = parent.FillPropPane;
+var CreatePropTable = parent.CreatePropTable;
+
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/frameset.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/frameset.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/frameset.js	(revision 21)
@@ -0,0 +1,653 @@
+
+var MSIE = false;
+var ver = 0;
+var indexOfMSIE = navigator.userAgent.indexOf("MSIE"); 
+if(indexOfMSIE != -1)
+{
+	MSIE = true;
+	ver = parseFloat(navigator.userAgent.substring(indexOfMSIE + 5, navigator.userAgent.indexOf(";", indexOfMSIE)));
+}
+
+var isMac = (navigator.appVersion.indexOf("Macintosh") >= 0);
+var isUpLevel = (MSIE && ver >= 5 && !isMac);
+
+var xmlData = XMLData("clonezilla_select_flow_chart.files/data.xml");
+
+var g_RowStyleList = new  Array(
+ "propViewerEvenRow",
+ "propViewerOddRow"
+);
+
+
+var strShape	= "圖形名稱:";
+
+
+
+function XMLData(file)
+{
+	var temp = null;
+	if(isUpLevel)
+	{
+		temp = CreateObject("Microsoft.XMLDOM");
+		if (temp == null)
+		{
+			temp = CreateObject("MSXML2.DOMDocument");
+		}
+
+		if (temp != null)
+		{
+			temp.async = false;
+		
+			temp.load(file);
+			if (temp.parseError.errorCode != 0)
+			{
+				temp = null;
+			}
+		}
+	}
+
+	return temp;
+}
+
+function CreateObject (strObj)
+{
+	var obj = null;
+	eval ("try { obj = new ActiveXObject(strObj); } catch (e) {}");
+	return obj;
+}
+
+function doVersion()
+{
+	if(isUpLevel)
+	{
+		frmToolbar.divDownLevel.innerHTML = "";
+		frmToolbar.divUpLevel.innerHTML = frmWidgets.divData.innerHTML;
+	}
+}	
+	
+	
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData != null)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(pageObj == null)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function OnShapeKey(pageID, shapeID)
+{
+	var e = window.frmDrawing.event;
+	
+	if(e.keyCode == 13 && e.ctrlKey)		//ctrl + enter
+	{
+		UpdateProps (pageID, shapeID);
+	}
+	else if (e.keyCode == 13)
+	{
+		OnShapeClick (pageID, shapeID);
+	}
+}
+
+function OnShapeClick (pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var e = frmDrawing.window.event;
+		var elem = e.srcElement;
+
+		if (e != null && e.ctrlKey && frmToolbar.widgets && frmToolbar.widgets.Details)
+		{
+			UpdateProps (pageID, shapeID);
+		}
+		else
+		{
+			var shapeNode = FindShapeXML (pageID, shapeID);
+			var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+			if (hlObj != null)
+			{
+				if (hlObj.DoFunction.length > 0)
+				{
+					eval (hlObj.DoFunction);
+				}
+				else if (hlObj.Hyperlink.length > 0)
+				{
+					if (hlObj.NewWindow)
+					{
+						window.open (hlObj.Hyperlink);
+					}
+					else
+					{
+						top.location.href = hlObj.Hyperlink.substr (0, 510);
+					}
+				}
+				else if (elem != null)
+				{
+					var href = elem.origHref;
+					if (href == null)
+					{
+						href = elem.href;
+					}
+
+					var target = elem.origTarget;
+					if (target == null)
+					{
+						target = elem.target;
+					}
+
+					if (href && href.length > 0)
+					{
+						href = HTMLEscape (href);
+						if (target && target == "_blank")
+						{
+							window.open (href);
+						}
+						else
+						{
+							top.location.href = href.substr (0, 510);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return (!isUpLevel);
+}
+
+function UpdateProps(pageID, shapeID)
+{
+	var shape = FindShapeXML (pageID, shapeID);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function UpdatePropsByShapeName(pageName, shapeName)
+{
+	var shape = FindShapeXMLByName (pageName, shapeName);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function FillPropPane (shapeNode, outputDivObj )
+{
+	if (shapeNode != null && outputDivObj != null)
+	{
+		if(outputDivObj.style.display == "none")
+		{
+			frmToolbar.ToggleWidget(outputDivObj);
+		}
+	
+		var strCPHTML = "";
+		
+		var shapeNameAttr = shapeNode.attributes.getNamedItem ("Name");
+		if (shapeNameAttr)
+		{
+			strCPHTML += "<span class='p2' style='padding-left:2px;'>" + strShape + " " + HTMLEscape(shapeNameAttr.text) + "</span>";
+		}
+
+		var strTableHTML = CreatePropTable (shapeNode);
+		if(strTableHTML.indexOf("<table") == -1)
+		{
+			strTableHTML = "<p class='p2' style='margin-left:1em;margin-top:0em;'>" + strTableHTML + "</p>";
+		}
+
+		if (strTableHTML.length > 0)
+		{
+			strCPHTML += strTableHTML;
+		}
+		else
+		{
+			strCPHTML = strNoCustomPropertiesToDisplayText;
+		}
+		
+		outputDivObj.innerHTML = strCPHTML;
+		outputDivObj.minHeight = 75;
+	}
+}
+
+function CreatePropTable (shapeNode)
+{
+	var strCPHTML = "";
+	var strStartTable = "<table class='propViewerTABLE' borderColor='#999999' cellPadding='2' width='95%' border='1' summary='此表格包含圖形詳細資料'>";
+		strStartTable += "<THEAD class='propViewerTHEAD'><TH>標籤</TH><TH>值</TH></THEAD>";
+	var strEndTable = "</TABLE>";
+
+	if (shapeNode != null)
+	{
+		var propColl = shapeNode.selectNodes ("Prop");
+
+		var propCount = propColl.length;
+		for (var count = 0; count < propCount; count++)
+		{
+			strCPHTML += "<TR class='" + g_RowStyleList[count % 2] + "'>";
+			
+			var strLabelText = "";
+			oPropLabel = propColl.item(count).selectSingleNode("Label/textnode()");
+			if (oPropLabel != null)
+			{
+				strLabelText = HTMLEscape (oPropLabel.text);
+			}
+			else
+			{
+				oPropName = propColl.item(count).attributes.getNamedItem ("Name");
+				if (oPropName)
+				{
+					strLabelText = HTMLEscape (oPropName.text);
+				}
+			}
+
+			if (strLabelText.length > 0)
+			{
+				strCPHTML += "<TD class='propViewerTD'>" + strLabelText + "</TD>";
+				strCPHTML += "<TD class='propViewerTD'>"
+
+				var strValueText = "&nbsp;";
+				oPropValue = propColl.item(count).selectSingleNode("Value/textnode()");
+				if (oPropValue)
+				{
+					strValueText = HTMLEscape (oPropValue.text);
+				}
+
+				strCPHTML += strValueText + "</TD></TR>";
+			}
+		}
+
+		if(strCPHTML != "")
+		{
+			strCPHTML = strStartTable + strCPHTML + strEndTable;
+		}
+		else
+		{
+			strCPHTML = "沒有可使用的詳細資料。";
+		}
+	}
+
+	return strCPHTML;
+}
+
+function keyHandler()
+{
+	var e = frmDrawing.window.event;
+	if(e.keyCode == 13) //enter
+	{
+		e.srcElement.click();
+	}
+}
+
+function GoToPage(index)
+{
+	if (viewMgr)
+	{
+		viewMgr.loadPage (index);
+	}
+	else
+	{
+		DefPageLoad (index);
+	}
+}
+
+function GoToPageByID(pageID)
+{
+	var pageIndex = PageIndexFromID (pageID);
+	if (pageIndex >= 0)
+	{
+		GoToPage (pageIndex);
+	}
+}
+
+function PageIndexFromID (pageID)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageID == g_FileList[count].PageID)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromName (strPageName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strPageNameLower = strPageName;
+		strPageNameLower = strPageNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListPageName = g_FileList[count].PageName;
+			strFileListPageName = HTMLUnescape (strFileListPageName);
+			strFileListPageName = strFileListPageName.toLowerCase ();
+			if (strPageNameLower == strFileListPageName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromFileName (strFileName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strFileNameLower = strFileName;
+		strFileNameLower = strFileNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListFileName = g_FileList[count].PriImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+
+			strFileListFileName = g_FileList[count].SecImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromVisioPageIndex (pageIndex)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageIndex == g_FileList[count].PageIndex)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function FindShapeXMLByName (pageName, shapeName)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@Name $ieq$ "' + EscapeString (pageName) + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@Name $ieq$ "' + EscapeString (shapeName) + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function Unquote (str)
+{
+	var nStartIndex = 0;
+	var nEndIndex = str.length;
+
+	if (str.charAt (0) == '"')
+	{
+		nStartIndex = 1;
+	}
+
+	if (str.charAt (nEndIndex - 1) == '"')
+	{
+		nEndIndex -= 1;
+	}
+
+	return str.substring (nStartIndex, nEndIndex);
+}
+
+function ConvertXorYCoordinate(PosValue, OldMin, OldMax, NewMin, NewMax, MapBackwards)
+{
+	var OldMid = (OldMax - OldMin) / 2;
+	var NewMid = (NewMax - NewMin) / 2;
+	var ConvertResult = 1 * PosValue;
+	ConvertResult = ConvertResult - (OldMin + OldMid);
+	ConvertResult = ConvertResult / OldMid;
+	if(MapBackwards != 0)
+	{
+		ConvertResult = 0 - ConvertResult;
+	}
+	ConvertResult = ConvertResult * NewMid;
+	ConvertResult = ConvertResult + (NewMin + NewMid);
+	return ConvertResult;
+}
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.display = "";
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+		divObject.style.display = "none";
+	}
+	return divObject;
+}
+
+function EscapeString (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "\\\\";
+		}
+		else if (curChar == "\"")
+		{
+			strResult += "\\\"";
+		}
+		else if (curChar == "\'")
+		{
+			strResult += "\\\'";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLEscape (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "&#92;";
+		}
+		else if (curChar == '\"')
+		{
+			strResult += "&#34;";
+		}
+		else if (curChar == '\'')
+		{
+			strResult += "&#39;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#60;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#62;";
+		}
+		else if (curChar == '&')
+		{
+			strResult += "&#38;";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLUnescape (str)
+{
+	var strResult = "";
+	var strEscapePattern = "&#xx;";
+
+	for (var i = 0 ; i < str.length - strEscapePattern.length + 1; i++)
+	{
+		if (str.charAt(i) == '&' && 
+			str.charAt(i + 1) == '#' &&
+			str.charAt(i + 4) == ';')
+		{
+			var charCode = str.charAt(i + 2);
+			charCode += str.charAt(i + 3);
+
+			if (charCode == "34")
+			{
+				strResult += '"';
+			}
+			else if (charCode == "39")
+			{
+				strResult += '\'';
+			}
+			else if (charCode == "60")
+			{
+				strResult += '<';
+			}
+			else if (charCode == "62")
+			{
+				strResult += '>';
+			}
+			else if (charCode == "92")
+			{
+				strResult += '\\';
+			}
+			else if (charCode == "38")
+			{
+				strResult += '&';
+			}
+			
+			i = i + strEscapePattern.length - 1;
+		}
+		else
+		{
+			strResult += str.charAt(i);
+		}
+	}
+
+	strResult += str.substring (i, str.length);
+
+	return strResult;
+}
+
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/gif_1.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/gif_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/gif_1.htm	(revision 21)
@@ -0,0 +1,137 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>
+clonezilla_select_flow_chart
+</title>
+<script type="text/javascript" language="javascript">
+function UpdateTooltip(){};
+function OnShapeClick(){};
+</script>
+
+<script src="gif_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+	}
+</script>
+
+
+
+<script type="text/jscript" language="jscript">
+
+var pageID = 0;
+
+var isUpLevel = parent.isUpLevel;
+var OnShapeClick = null;
+if (!parent.isMac)
+{
+	OnShapeClick = parent.OnShapeClick;
+}
+
+var OnShapeKey = parent.OnShapeKey;
+var UpdateTooltip = parent.UpdateTooltip;
+var clickMenu = parent.clickMenu;
+var toggleMenuDiv = parent.toggleMenuDiv;
+var toggleMenuLink = parent.toggleMenuLink;
+var GoToPage = parent.GoToPage;
+
+
+if (parent.isUpLevel)
+{
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			var fileEntry = parent.g_FileList[parent.g_CurPageIndex];
+			var fileToLoad = fileToLoad = fileEntry.PriImage;
+			if (fileEntry.SecImage.length > 0)
+			{
+				fileToLoad = fileEntry.SecImage;
+			}
+
+			location.replace(fileToLoad);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+
+	var viewMgr = new parent.CViewMgr();
+	parent.viewMgr = viewMgr;
+
+	viewMgr.SupportsDetails = true;
+	viewMgr.SupportsSearch = true;
+
+	viewMgr.put_Location = ViewMgrSetRasterLocation;
+	viewMgr.visBBoxLeft = 1.888097;
+	viewMgr.visBBoxRight = 7.403241;
+	viewMgr.visBBoxBottom = 3.147940;
+	viewMgr.visBBoxTop = 9.500249;
+	viewMgr.highlightDiv = null;
+}
+
+function load ()
+{
+	if(isUpLevel)
+	{
+		arrowdiv.innerHTML = '<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>';
+
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.CurPageUpdate (pageIndex);
+	}
+}
+
+function unload()
+{
+	if(isUpLevel)
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+}
+
+window.onload = load;
+window.onunload = unload;
+document.onclick = clickMenu;
+
+</script>
+</head>
+
+<body class="pageView" bgcolor="#FFFFFF">
+
+<div id=arrowdiv style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+<DIV id=RasterDiv>
+
+
+<center>
+  <IMG id="ConvertedImage" SRC="gif_1.gif" ALT="頁-1" name=RasterImage BORDER="0" USEMAP="#visImageMap">
+</center>
+
+<MAP NAME="visImageMap">
+  <AREA shape="POLYGON" tabindex="1" ALT="end" origTitle="end" TITLE="end"  target="_top" COORDS="48,600,121,600,122,600,122,600,123,600,123,600,124,600,125,599,125,599,126,599,126,599,127,599,128,599,128,598,129,598,129,598,130,597,130,597,131,597,131,596,132,596,132,596,133,595,133,595,134,594,134,594,134,593,135,593,135,592,136,592,136,591,136,591,137,590,137,590,137,589,137,588,137,588,138,587,138,587,138,586,138,585,138,585,138,584,138,584,138,583,138,582,138,582,138,581,138,581,138,580,138,579,138,579,138,578,138,577,137,577,137,576,137,576,137,575,137,575,136,574,136,573,136,573,135,572,135,572,134,571,134,571,134,570,133,570,133,570,132,569,132,569,131,568,131,568,130,568,130,567,129,567,129,567,128,566,128,566,127,566,126,566,126,566,125,565,125,565,124,565,123,565,123,565,122,565,122,565,121,565,48,565,47,565,47,565,46,565,45,565,45,565,44,565,44,565,43,566,42,566,42,566,41,566,41,566,40,567,39,567,39,567,38,568,38,568,37,568,37,569,36,569,36,570,36,570,35,570,35,571,34,571,34,572,34,572,33,573,33,573,33,574,32,575,32,575,32,576,31,576,31,577,31,577,31,578,31,579,31,579,31,580,30,581,30,581,30,582,30,582,30,583,30,584,30,584,31,585,31,585,31,586,31,587,31,587,31,588,31,588,32,589,32,590,32,590,33,591,33,591,33,592,34,592,34,593,34,593,35,594,35,594,36,595,36,595,36,596,37,596,37,596,38,597,38,597,39,597,39,598,40,598,41,598,41,599,42,599,42,599,43,599,44,599,44,599,45,600,45,600,46,600,47,600,47,600,48,600" onmouseover="UpdateTooltip(this,0,14)" onfocus="UpdateTooltip(this,0,14)" onclick="return OnShapeClick(0,14);" onkeyup="OnShapeKey(0,14);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="34,501,135,501,135,446,34,446,34,501" onmouseover="UpdateTooltip(this,0,13)" onfocus="UpdateTooltip(this,0,13)" onclick="return OnShapeClick(0,13);" onkeyup="OnShapeKey(0,13);">
+  <AREA shape="POLYGON" tabindex="1" ALT="-p choose -p true -p poweroff -p reboot" origTitle="-p choose -p true -p poweroff -p reboot" TITLE="-p choose -p true -p poweroff -p reboot"  target="_top" COORDS="1,382,129,382,168,305,39,305,1,382" onmouseover="UpdateTooltip(this,0,11)" onfocus="UpdateTooltip(this,0,11)" onclick="return OnShapeClick(0,11);" onkeyup="OnShapeKey(0,11);">
+  <AREA shape="POLYGON" tabindex="1" ALT="-y0 -y1 -y2 -y3" origTitle="-y0 -y1 -y2 -y3" TITLE="-y0 -y1 -y2 -y3"  target="_top" COORDS="1,253,129,253,168,176,39,176,1,253" onmouseover="UpdateTooltip(this,0,8)" onfocus="UpdateTooltip(this,0,8)" onclick="return OnShapeClick(0,8);" onkeyup="OnShapeKey(0,8);">
+  <AREA shape="POLYGON" tabindex="1" ALT="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list" TITLE="讀取  ip_list or  MAC list"  target="_top" COORDS="419,86,419,87,418,88,418,89,417,90,417,91,417,92,416,94,416,95,416,96,415,97,415,98,415,99,414,100,414,101,414,102,414,103,413,104,413,105,413,107,413,108,413,109,413,110,413,111,413,112,413,113,413,114,413,115,413,117,413,118,413,119,413,120,413,121,414,122,414,123,414,124,414,125,415,126,415,127,415,129,416,130,416,131,416,132,417,133,417,134,417,135,418,136,418,137,419,138,419,139,521,139,520,138,520,137,519,136,519,135,518,134,518,133,518,132,517,131,517,130,517,129,516,127,516,126,516,125,516,124,515,123,515,122,515,121,515,120,515,119,515,118,514,117,514,115,514,114,514,113,514,112,514,111,514,110,514,109,515,108,515,107,515,105,515,104,515,103,515,102,516,101,516,100,516,99,516,98,517,97,517,96,517,95,518,94,518,92,518,91,519,90,519,89,520,88,520,87,521,86,419,86" onmouseover="UpdateTooltip(this,0,5)" onfocus="UpdateTooltip(this,0,5)" onclick="return OnShapeClick(0,5);" onkeyup="OnShapeKey(0,5);">
+  <AREA shape="POLYGON" tabindex="1" ALT="選擇 clients" origTitle="選擇 clients" TITLE="選擇 clients"  target="_top" COORDS="259,113,313,139,367,113,313,86,259,113" onmouseover="UpdateTooltip(this,0,4)" onfocus="UpdateTooltip(this,0,4)" onclick="return OnShapeClick(0,4);" onkeyup="OnShapeKey(0,4);">
+  <AREA shape="POLYGON" tabindex="1" ALT="是否選擇全部 clients" origTitle="是否選擇全部 clients" TITLE="是否選擇全部 clients"  target="_top" COORDS="0,113,84,139,169,113,84,86,0,113" onmouseover="UpdateTooltip(this,0,2)" onfocus="UpdateTooltip(this,0,2)" onclick="return OnShapeClick(0,2);" onkeyup="OnShapeKey(0,2);">
+  <AREA shape="POLYGON" tabindex="1" ALT="start" origTitle="start" TITLE="start"  target="_top" COORDS="48,35,121,35,122,35,122,35,123,35,123,35,124,35,125,35,125,35,126,34,126,34,127,34,128,34,128,34,129,33,129,33,130,33,130,32,131,32,131,32,132,31,132,31,133,30,133,30,134,30,134,29,134,29,135,28,135,28,136,27,136,27,136,26,137,25,137,25,137,24,137,24,137,23,138,23,138,22,138,21,138,21,138,20,138,19,138,19,138,18,138,18,138,17,138,16,138,16,138,15,138,15,138,14,138,13,138,13,137,12,137,12,137,11,137,10,137,10,136,9,136,9,136,8,135,8,135,7,134,7,134,6,134,6,133,5,133,5,132,4,132,4,131,4,131,3,130,3,130,3,129,2,129,2,128,2,128,1,127,1,126,1,126,1,125,1,125,1,124,0,123,0,123,0,122,0,122,0,121,0,48,0,47,0,47,0,46,0,45,0,45,0,44,1,44,1,43,1,42,1,42,1,41,1,41,2,40,2,39,2,39,3,38,3,38,3,37,4,37,4,36,4,36,5,36,5,35,6,35,6,34,7,34,7,34,8,33,8,33,9,33,9,32,10,32,10,32,11,31,12,31,12,31,13,31,13,31,14,31,15,31,15,30,16,30,16,30,17,30,18,30,18,30,19,30,19,31,20,31,21,31,21,31,22,31,23,31,23,31,24,32,24,32,25,32,25,33,26,33,27,33,27,34,28,34,28,34,29,35,29,35,30,36,30,36,30,36,31,37,31,37,32,38,32,38,32,39,33,39,33,40,33,41,34,41,34,42,34,42,34,43,34,44,35,44,35,45,35,45,35,46,35,47,35,47,35,48,35" onmouseover="UpdateTooltip(this,0,1)" onfocus="UpdateTooltip(this,0,1)" onclick="return OnShapeClick(0,1);" onkeyup="OnShapeKey(0,1);">
+</MAP>
+
+
+
+</DIV>
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/gif_1.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/gif_1.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/gif_1.js	(revision 21)
@@ -0,0 +1,64 @@
+function ViewMgrSetRasterLocation(pageID, shapeID, pinX, pinY)
+{
+	clickMenu ();
+
+	var rasterImage = document.images("RasterImage");
+
+	var imageLeft = 0;
+	var imageRight = imageLeft + rasterImage.offsetWidth;
+	var imageTop = 0;
+	var imageBottom = imageTop + rasterImage.offsetHeight;
+	
+	var xLong = parent.ConvertXorYCoordinate(pinX, viewMgr.visBBoxLeft, viewMgr.visBBoxRight, imageLeft, imageRight, 0);
+	var yLong = parent.ConvertXorYCoordinate(pinY, viewMgr.visBBoxBottom, viewMgr.visBBoxTop, imageTop, imageBottom, 1);
+	
+	var pixelWidth = document.body.scrollWidth;
+	var pixelHeight = document.body.scrollHeight;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+	var halfClientWidth = clientWidth;
+	var halfClientHeight = clientHeight;
+
+	xLong = xLong + rasterImage.offsetLeft;
+	yLong = yLong + rasterImage.offsetTop;
+	var xScrollAmount = 0;
+	var yScrollAmount = 0;
+
+	var xPrevScrollAmount = document.body.scrollLeft;
+	var yPrevScrollAmount = document.body.scrollTop;
+
+	var arrowHalfWidth = arrowdiv.clientWidth / 2;
+	var arrowHeight = arrowdiv.clientHeight;
+
+	if ((xLong - arrowHalfWidth) < xPrevScrollAmount)
+	{
+		// X off left of screen.
+		document.body.scrollLeft = xLong - arrowHalfWidth;
+	}
+	else if ((xLong + arrowHalfWidth) > (clientWidth + xPrevScrollAmount))
+	{
+		// X off right of screen. 
+		document.body.scrollLeft = xLong - clientWidth + xPrevScrollAmount + arrowHalfWidth;
+	}
+
+	if (yLong < yPrevScrollAmount)
+	{
+		// Y off top of screen.
+		document.body.scrollTop = yLong;
+	}
+	else if ((yLong + arrowHeight) > (clientHeight + yPrevScrollAmount))
+	{
+		// Y off bottom of screen. 
+		document.body.scrollTop = yLong - clientHeight + yPrevScrollAmount + arrowHeight;
+	}
+
+	arrowdiv.style.posLeft = xLong - arrowHalfWidth;
+	arrowdiv.style.posTop = yLong;
+	arrowdiv.style.visibility = "visible";
+
+	setTimeout( "parent.hideObject(arrowdiv)", 0 );
+	setTimeout( "parent.showObject(arrowdiv)", 1 );
+	setTimeout( "parent.hideObject(arrowdiv)", 2000 );
+}
+
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/keys.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/keys.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/keys.js	(revision 21)
@@ -0,0 +1,14 @@
+
+function keyHandler()
+{
+	var e = window.event;
+	var tag = e.srcElement.tagName;
+	var override = !(tag == "A" || tag == "INPUT" || tag == "SELECT" || tag == "FORM" || tag == "SUBMIT");
+	
+	if(override && e.keyCode == 13) //13 is <enter> key
+	{
+		e.srcElement.click();
+	}
+}
+
+document.onkeypress = keyHandler;
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/toolbar.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/toolbar.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/toolbar.htm	(revision 21)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<title></title>
+<style type="text/css">
+body
+{
+	font-family: Verdana, Sans-Serif;
+	font-size: small;
+}
+
+.toc
+{
+	font-size: medium;
+}
+</style>
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace("widgets.htm");
+	}
+</script>
+</head>
+
+
+<body leftmargin="0" topmargin="0" class="nav" dir=ltr>
+	<table id="tabToc" width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#999999" height="20">
+	<tr>
+	<td>&nbsp;</td>
+	</tr>
+	</table>
+
+<h1 class="toc">clonezilla_select_flow_chart</h1>
+	<ul>
+		<li><a href="gif_1.htm" target="frmDrawing">頁-1</a></li>
+
+	</ul>
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/visio.css
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/visio.css	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/visio.css	(revision 21)
@@ -0,0 +1,263 @@
+﻿td {vertical-align: top;}
+
+.fillcolor
+{	vertical-align: top;
+	padding: 0pt;
+	background-color:#5C85EF;
+	filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#5C85EF', EndColorStr='#90B6FF');
+}
+
+A.blu1
+{
+	color: #3366CC;
+	text-decoration: none;
+	font-size: 95%;
+}
+
+A.blu1:visited
+{
+	color: #3366CC;
+	text-decoration: none
+}
+
+A.blu1:hover
+{
+	text-decoration: underline
+}
+
+.visrptTitle
+{
+	color:Black;
+	font-style:normal;
+}
+
+.visrptSummryLabel
+{
+	color:black;
+	font-weight:bold;
+}
+
+.visrptGrandTotalRow
+{	
+	color:Black;
+	font-weight:bold;
+}
+
+.visrptHeader
+{
+	color:White;
+	font-style:normal;
+	background-color:#5C85EF;
+}
+
+.visrptRowItem
+{
+	background-color:#DDDDDD;
+}
+
+.a1
+{	color: #ffffff;
+	text-decoration:none;
+}
+
+.p1
+{	font-family: PMingLiu, verdana, san-serif;
+	font-size: 60%;
+	COLOR: #ffffff;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: .8em;
+}
+
+.p2
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: 1.3em;
+}
+
+.label
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: bold;
+	font-size: 70%;
+	COLOR: #FFFFFF;
+	Margin: .2em,0pt,2pt,2pt;
+	line-height: 1em;
+	text-decoration:none;
+}
+
+.gobutton
+{
+	padding: 0pt, 2pt, 0pt, 0pt;
+	vertical-align: bottom;
+}
+
+.formText
+{
+	font-size: 70%;
+	width: 99%;
+	margin: 0;
+	padding: 0;
+}
+
+.holderTable
+{
+	padding-left:1px;
+	padding-right:1px;
+}
+
+.detsPara
+{
+	margin:2pt;
+	font-size:60%;
+}
+
+.navTocColor
+{
+	background-color:#999999;
+}
+
+.indent
+{
+	margin-left:15px;
+	margin-right:15px;
+	padding-top:0px;
+	margin-top:0px;
+}
+
+.results
+{	
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,10pt;
+	text-indent: -10pt;
+	line-height: 1.1em;
+}
+
+.propViewer 
+{
+	background-Color:white;
+	color: black;
+	font-family: PMingLiu, verdana, san-serif;
+	font-style: italic;
+	font-weight: bold;
+	font-size: 70%;
+	text-align: center;
+}
+
+.propViewerTABLE 
+{
+	margin: 2pt;
+	border-collapse:collapse;
+	border:solid 1px #999999;	
+}
+
+.propViewerTHEAD 
+{
+	border: 2px;
+	font-size: 60%;
+}
+
+.propViewerTD 
+{
+	font-family: PMingLiu, Verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #000000;
+	Margin: 0pt;
+	line-height: 1.1em;
+}
+
+.propViewerEvenRow 
+{
+	background-Color: #E7E7E7;
+}
+
+.propViewerOddRow 
+{
+	background-Color: #FFFFFF; 
+}
+
+BODY
+{
+	font-family: PMingLiu, Verdana, Sans-Serif;
+	font-size: medium;
+}
+
+DIV
+{
+	margin:0;
+	padding:0;
+}
+
+FORM
+{
+	margin:0;
+}
+
+.hiderScroll
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+	overflow:auto;
+}
+
+.hider
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+}
+
+.nav
+{
+	width: 100%;
+	height: 100%;
+	overflow: auto;	
+}
+
+.menuItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-color:white;
+	color:black;
+	cursor:hand;
+}
+
+.highlightItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-Color:highlight; 
+	color:white;
+	cursor:hand;
+}
+
+.hlMenu 
+{
+	border:black 2px outset; 
+	display:none; 
+	z-index:10; 
+	position:absolute; 
+	background-Color:white;
+}
+
+.innerhlMenu 
+{
+	padding-left:2pt;
+	padding-right:2pt;
+	background-Color:white;
+}
+
+.svgmessage
+{     FONT-FAMILY: PMingLiu, verdana, san-serif;
+      FONT-WEIGHT: normal;
+      font-size: 80%;
+      COLOR: #333333;
+      Margin: 1em;
+      line-height: 1.1em;
+}
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/vml_1.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/vml_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/vml_1.htm	(revision 21)
@@ -0,0 +1,189 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" 
+ xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>clonezilla_select_flow_chart</title>
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script src="vml_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+
+	var pageID = 0;
+	var viewMgr = null;
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+	function getPNZ()
+	{
+		var rawHTML = VMLDiv.innerHTML;
+		var strReturn = ""
+		
+		strReturn = rawHTML.slice( rawHTML.indexOf( '<v:group' ), rawHTML.indexOf( "</v:shape>" ) );
+		strReturn += "</v:shape></v:group>\n";
+				
+		return strReturn;
+	}
+	
+	function load()
+	{
+		viewMgr = new parent.CViewMgr("ConvertedImage", "arrowDiv");
+
+		viewMgr.put_Location = ViewMgrSetVMLLocation;
+
+
+		viewMgr.visBBoxLeft = 1.888097;
+		viewMgr.visBBoxRight = 7.403241;
+		viewMgr.visBBoxBottom = 3.147940;
+		viewMgr.visBBoxTop = 9.500249;
+
+		viewMgr.Zoom = VMLZoomChange;
+		viewMgr.setView= VMLSetView;
+
+		viewMgr.SupportsDetails = true;
+		viewMgr.SupportsSearch = true;
+
+		parent.viewMgr = viewMgr;
+
+		fit();
+	}
+
+	function unload()
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+
+	function fit()
+	{
+		if(parent.frmToolbar)
+		{
+			if (parent.g_WidgetsLoaded)
+			{
+				var zoom100 = parent.frmToolbar.document.all('a100');
+				if (zoom100)
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					zoom100.click();
+				}
+				else
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					viewMgr.Zoom(100);
+				}
+			}
+			else
+			{
+				window.setTimeout("fit()", 500);
+			}
+		}	
+		else
+		{
+			parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+			viewMgr.Zoom(100);
+		}
+	}
+
+	function PostZoomProcessing (newZoomLevel)
+	{
+		parent.viewMgr.PostZoomProcessing = null;
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.viewMgr.getPNZ = getPNZ;
+		parent.CurPageUpdate (pageIndex);
+	}
+
+
+	
+	var isUpLevel = parent.isUpLevel;
+	var OnShapeClick = parent.OnShapeClick;
+	var OnShapeKey = parent.OnShapeKey;
+	var UpdateTooltip = parent.UpdateTooltip;
+	var clickMenu = parent.clickMenu;
+	var toggleMenuDiv = parent.toggleMenuDiv;
+	var toggleMenuLink = parent.toggleMenuLink;
+	var GoToPage = parent.GoToPage;
+
+	window.onload = load;
+	window.onunload = unload;
+	document.onclick = clickMenu;
+
+
+
+
+</script>
+
+</head>
+
+<body style="MARGIN:10px" onresize="VMLOnResize();" onscroll="VMLOnScroll();">
+
+<div id="arrowdiv" style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+
+
+
+<div id="VMLDiv" >
+
+
+<v:group  id="ConvertedImage" style="width:3.472844in;height:4.000000in;position:absolute;visibility=hidden;" coordSize="1736,2000" coordOrigin="-1000,-1000" >
+
+<v:shapetype 
+  id="VISSHAPE"
+  target="_parent"
+  coordsize="1736,2000"
+  coordorigin="-1000,-1000"
+  stroked="f"
+  strokecolor="red"
+  filled="t"
+>
+<v:fill opacity="0.0"/>
+</v:shapetype>
+
+
+<v:shape style="top:-1000.0;left:-1000.0;width:1736.4;height:2000.0;position:absolute" coordSize="1736,2000" coordOrigin="-1000,-1000" >
+<v:imagedata src="vml_1.emz"/>
+</v:shape>
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="start" origTitle="start"  style="top:-1000;left:-1000;width:1736;height:2000;position:absolute" path=" m -837,-879 l -594,-879 l -592,-879 l -590,-879 l -588,-879 l -586,-879 l -584,-880 l -582,-880 l -580,-881 l -578,-881 l -576,-882 l -574,-882 l -572,-883 l -570,-884 l -569,-885 l -567,-886 l -565,-887 l -563,-888 l -561,-889 l -560,-890 l -558,-892 l -557,-893 l -555,-894 l -554,-896 l -552,-897 l -551,-899 l -549,-900 l -548,-902 l -547,-904 l -546,-905 l -545,-907 l -544,-909 l -543,-911 l -542,-913 l -541,-914 l -540,-916 l -540,-918 l -539,-920 l -538,-922 l -538,-924 l -537,-926 l -537,-928 l -537,-930 l -537,-933 l -537,-935 l -537,-937 l -537,-939 l -537,-941 l -537,-943 l -537,-945 l -537,-947 l -538,-949 l -538,-951 l -539,-953 l -540,-955 l -540,-957 l -541,-959 l -542,-961 l -543,-963 l -544,-964 l -545,-966 l -546,-968 l -547,-970 l -548,-971 l -549,-973 l -551,-975 l -552,-976 l -554,-978 l -555,-979 l -557,-980 l -558,-982 l -560,-983 l -561,-984 l -563,-985 l -565,-986 l -567,-987 l -569,-988 l -570,-989 l -572,-990 l -574,-991 l -576,-992 l -578,-992 l -580,-993 l -582,-993 l -584,-994 l -586,-994 l -588,-994 l -590,-994 l -592,-995 l -594,-995 l -837,-995 l -839,-995 l -841,-994 l -843,-994 l -845,-994 l -847,-994 l -849,-993 l -851,-993 l -853,-992 l -855,-992 l -857,-991 l -859,-990 l -861,-989 l -862,-988 l -864,-987 l -866,-986 l -868,-985 l -870,-984 l -871,-983 l -873,-982 l -874,-980 l -876,-979 l -877,-978 l -879,-976 l -880,-975 l -882,-973 l -883,-971 l -884,-970 l -885,-968 l -886,-966 l -887,-964 l -888,-963 l -889,-961 l -890,-959 l -891,-957 l -891,-955 l -892,-953 l -893,-951 l -893,-949 l -893,-947 l -894,-945 l -894,-943 l -894,-941 l -894,-939 l -894,-937 l -894,-935 l -894,-933 l -894,-930 l -894,-928 l -893,-926 l -893,-924 l -893,-922 l -892,-920 l -891,-918 l -891,-916 l -890,-914 l -889,-913 l -888,-911 l -887,-909 l -886,-907 l -885,-905 l -884,-904 l -883,-902 l -882,-900 l -880,-899 l -879,-897 l -877,-896 l -876,-894 l -874,-893 l -873,-892 l -871,-890 l -870,-889 l -868,-888 l -866,-887 l -864,-886 l -862,-885 l -861,-884 l -859,-883 l -857,-882 l -855,-882 l -853,-881 l -851,-881 l -849,-880 l -847,-880 l -845,-879 l -843,-879 l -841,-879 l -839,-879 l -837,-879xe" onmouseover="UpdateTooltip(this,0,1)" onclick="OnShapeClick(0,1)" onfocus="UpdateTooltip(this,0,1);" onkeyup="OnShapeKey(0,1)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="是否選擇全部 clients" origTitle="是否選擇全部 clients"  style="top:-1000;left:-1000;width:1736;height:2000;position:absolute" path=" m -995,-622 l -715,-535 l -436,-622 l -715,-708 l -995,-622xe" onmouseover="UpdateTooltip(this,0,2)" onclick="OnShapeClick(0,2)" onfocus="UpdateTooltip(this,0,2);" onkeyup="OnShapeKey(0,2)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選擇 clients" origTitle="選擇 clients"  style="top:-1000;left:-1000;width:1736;height:2000;position:absolute" path=" m -137,-622 l 42,-535 l 220,-622 l 42,-708 l -137,-622xe" onmouseover="UpdateTooltip(this,0,4)" onclick="OnShapeClick(0,4)" onfocus="UpdateTooltip(this,0,4);" onkeyup="OnShapeKey(0,4)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list"  style="top:-1000;left:-1000;width:1736;height:2000;position:absolute" path=" m 395,-708 l 393,-705 l 392,-702 l 390,-699 l 388,-695 l 387,-692 l 386,-688 l 384,-685 l 383,-681 l 382,-678 l 381,-674 l 380,-671 l 379,-667 l 378,-664 l 377,-660 l 376,-656 l 376,-653 l 375,-649 l 375,-645 l 374,-642 l 374,-638 l 374,-634 l 373,-631 l 373,-627 l 373,-623 l 373,-620 l 373,-616 l 373,-612 l 374,-609 l 374,-605 l 374,-601 l 375,-598 l 375,-594 l 376,-590 l 376,-587 l 377,-583 l 378,-579 l 379,-576 l 380,-572 l 381,-569 l 382,-565 l 383,-562 l 384,-558 l 386,-555 l 387,-551 l 388,-548 l 390,-545 l 392,-541 l 393,-538 l 395,-535 l 731,-535 l 729,-538 l 728,-541 l 726,-545 l 725,-548 l 723,-551 l 722,-555 l 720,-558 l 719,-562 l 718,-565 l 717,-569 l 716,-572 l 715,-576 l 714,-579 l 713,-583 l 713,-587 l 712,-590 l 711,-594 l 711,-598 l 710,-601 l 710,-605 l 710,-609 l 710,-612 l 709,-616 l 709,-620 l 709,-623 l 709,-627 l 710,-631 l 710,-634 l 710,-638 l 710,-642 l 711,-645 l 711,-649 l 712,-653 l 713,-656 l 713,-660 l 714,-664 l 715,-667 l 716,-671 l 717,-674 l 718,-678 l 719,-681 l 720,-685 l 722,-688 l 723,-692 l 725,-695 l 726,-699 l 728,-702 l 729,-705 l 731,-708 l 395,-708xe" onmouseover="UpdateTooltip(this,0,5)" onclick="OnShapeClick(0,5)" onfocus="UpdateTooltip(this,0,5);" onkeyup="OnShapeKey(0,5)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="-y0 -y1 -y2 -y3" origTitle="-y0 -y1 -y2 -y3"  style="top:-1000;left:-1000;width:1736;height:2000;position:absolute" path=" m -992,-155 l -567,-155 l -439,-410 l -864,-410 l -992,-155xe" onmouseover="UpdateTooltip(this,0,8)" onclick="OnShapeClick(0,8)" onfocus="UpdateTooltip(this,0,8);" onkeyup="OnShapeKey(0,8)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="-p choose -p true -p poweroff -p reboot" origTitle="-p choose -p true -p poweroff -p reboot"  style="top:-1000;left:-1000;width:1736;height:2000;position:absolute" path=" m -992,271 l -567,271 l -439,15 l -864,15 l -992,271xe" onmouseover="UpdateTooltip(this,0,11)" onclick="OnShapeClick(0,11)" onfocus="UpdateTooltip(this,0,11);" onkeyup="OnShapeKey(0,11)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:1736;height:2000;position:absolute" path=" m -883,667 l -548,667 l -548,485 l -883,485 l -883,667xe" onmouseover="UpdateTooltip(this,0,13)" onclick="OnShapeClick(0,13)" onfocus="UpdateTooltip(this,0,13);" onkeyup="OnShapeKey(0,13)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="end" origTitle="end"  style="top:-1000;left:-1000;width:1736;height:2000;position:absolute" path=" m -837,995 l -594,995 l -592,995 l -590,994 l -588,994 l -586,994 l -584,994 l -582,993 l -580,993 l -578,992 l -576,992 l -574,991 l -572,990 l -570,989 l -569,988 l -567,987 l -565,986 l -563,985 l -561,984 l -560,983 l -558,982 l -557,980 l -555,979 l -554,978 l -552,976 l -551,975 l -549,973 l -548,971 l -547,970 l -546,968 l -545,966 l -544,964 l -543,963 l -542,961 l -541,959 l -540,957 l -540,955 l -539,953 l -538,951 l -538,949 l -537,947 l -537,945 l -537,943 l -537,941 l -537,939 l -537,937 l -537,935 l -537,933 l -537,930 l -537,928 l -537,926 l -538,924 l -538,922 l -539,920 l -540,918 l -540,916 l -541,914 l -542,913 l -543,911 l -544,909 l -545,907 l -546,905 l -547,904 l -548,902 l -549,900 l -551,899 l -552,897 l -554,896 l -555,894 l -557,893 l -558,892 l -560,890 l -561,889 l -563,888 l -565,887 l -567,886 l -569,885 l -570,884 l -572,883 l -574,882 l -576,882 l -578,881 l -580,881 l -582,880 l -584,880 l -586,879 l -588,879 l -590,879 l -592,879 l -594,879 l -837,879 l -839,879 l -841,879 l -843,879 l -845,879 l -847,880 l -849,880 l -851,881 l -853,881 l -855,882 l -857,882 l -859,883 l -861,884 l -862,885 l -864,886 l -866,887 l -868,888 l -870,889 l -871,890 l -873,892 l -874,893 l -876,894 l -877,896 l -879,897 l -880,899 l -882,900 l -883,902 l -884,904 l -885,905 l -886,907 l -887,909 l -888,911 l -889,913 l -890,914 l -891,916 l -891,918 l -892,920 l -893,922 l -893,924 l -893,926 l -894,928 l -894,930 l -894,933 l -894,935 l -894,937 l -894,939 l -894,941 l -894,943 l -894,945 l -893,947 l -893,949 l -893,951 l -892,953 l -891,955 l -891,957 l -890,959 l -889,961 l -888,963 l -887,964 l -886,966 l -885,968 l -884,970 l -883,971 l -882,973 l -880,975 l -879,976 l -877,978 l -876,979 l -874,980 l -873,982 l -871,983 l -870,984 l -868,985 l -866,986 l -864,987 l -862,988 l -861,989 l -859,990 l -857,991 l -855,992 l -853,992 l -851,993 l -849,993 l -847,994 l -845,994 l -843,994 l -841,994 l -839,995 l -837,995xe" onmouseover="UpdateTooltip(this,0,14)" onclick="OnShapeClick(0,14)" onfocus="UpdateTooltip(this,0,14);" onkeyup="OnShapeKey(0,14)"/> 
+
+</v:group>
+
+
+
+</div>
+
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/vml_1.js
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/vml_1.js	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/vml_1.js	(revision 21)
@@ -0,0 +1,221 @@
+
+function ViewMgrSetVMLLocation(pageID, shapeID, pinX, pinY)
+{
+	doc = parent.frmDrawing.document;
+	if (this.highlightDiv != null)
+	{
+		clickMenu ();
+
+		var VMLImage = this.s;
+
+		var imageLeft = 0;
+		var imageRight = imageLeft + VMLImage.pixelWidth;
+		var imageTop = 0;
+		var imageBottom = imageTop + VMLImage.pixelHeight;
+
+		var xLong = parent.ConvertXorYCoordinate(pinX, this.visBBoxLeft, this.visBBoxRight, imageLeft, imageRight, 0);
+		var yLong = parent.ConvertXorYCoordinate(pinY, this.visBBoxBottom, this.visBBoxTop, imageTop, imageBottom, 1);
+
+		xLong += doc.all['ConvertedImage'].style.posLeft;
+		yLong += doc.all['ConvertedImage'].style.posTop;
+
+		var arrowHalfWidth = viewMgr.highlightDiv.clientWidth / 2;
+		var arrowHeight = viewMgr.highlightDiv.clientHeight;
+
+		var boolNeedToScroll = false;
+
+		if( !( (xLong - arrowHalfWidth) > doc.body.scrollLeft && (xLong + arrowHalfWidth) < (doc.body.scrollLeft + doc.body.clientWidth) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( !( (yLong - arrowHeight) > doc.body.scrollTop && (yLong + arrowHeight) < (doc.body.scrollTop + doc.body.clientHeight) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( boolNeedToScroll == true )
+		{
+			window.scrollTo( xLong - doc.body.clientWidth / 2, yLong - doc.body.clientHeight / 2);
+		}
+		
+		this.highlightDiv.style.posLeft = xLong - arrowHalfWidth;
+		this.highlightDiv.style.posTop = yLong;
+		this.highlightDiv.style.visibility = "visible";
+
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 0 );
+		setTimeout( "parent.showObject(viewMgr.highlightDiv)", 1 );
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 2500 );
+	}
+}
+
+function VMLZoomChange(size)
+{
+	if(size)
+	{
+		if(size == "up")
+		{
+			size = zoomLast + 50;
+		}
+		else if(size == "down")
+		{
+			size = zoomLast - 50;
+		}
+		
+		size = parseInt(size);
+		if(typeof(size) != "number")
+			size = 100;
+	}
+	else
+	{
+		size = 100;
+	}
+
+	clickMenu ();
+
+	viewMgr.zoomLast = size;
+
+	var zoomFactor = size/100;
+
+	var width = this.s.pixelWidth;
+	var height = this.s.pixelHeight;
+
+	var margin = parseInt(document.body.style.margin) * 2;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+
+	var newScrollLeft = document.body.scrollLeft;
+	var newScrollTop = document.body.scrollTop;
+
+	var winwidth = clientWidth - margin;
+	var winheight = clientHeight - margin;
+
+	var widthRatio = winwidth / width;
+	var heightRatio = winheight / height;
+
+	if (widthRatio < heightRatio)
+	{
+		width = zoomFactor * winwidth;
+		height = width / this.origWH;
+	}
+	else
+	{
+		height = zoomFactor * winheight;
+		width = height * this.origWH;
+	}
+
+	this.s.pixelWidth = Math.max(width,1);
+	this.s.pixelHeight = Math.max(height,1);
+
+	this.sizeLast = size;
+
+	var centerX = (zoomFactor / viewMgr.zoomFactor) * (newScrollLeft + (clientWidth / 2) - this.s.posLeft);
+	var centerY = (zoomFactor / viewMgr.zoomFactor) * (newScrollTop + (clientHeight / 2) - this.s.posTop);
+
+	viewMgr.zoomFactor = zoomFactor;
+
+	if (width <= clientWidth)
+	{
+		this.s.posLeft = Math.max( 0, (clientWidth / 2) - (width / 2));
+	}
+	else
+	{
+		var left = centerX - (clientWidth / 2);
+		if ( left >= 0 )
+		{
+			this.s.posLeft = 0;
+			newScrollLeft = left;
+		}
+		else
+		{
+			this.s.posLeft = -left;
+			newScrollLeft = 0;
+		}
+	}
+
+	if (height <= clientHeight)
+	{
+		this.s.posTop = Math.max( 0, (clientHeight / 2) - (height / 2));
+	}
+	else
+	{
+		var top = centerY - (clientHeight / 2);
+		if ( top >= 0 )
+		{
+			this.s.posTop = 0;
+			newScrollTop = top;
+		}
+		else
+		{
+			this.s.posTop = -top;
+			newScrollTop = 0;
+		}
+	}
+
+	window.scrollTo(newScrollLeft, newScrollTop);
+
+	this.s.visibility = "visible";
+
+	var newXOffsetPercent = document.body.scrollLeft / this.s.pixelWidth;
+	var newYOffsetPercent = document.body.scrollTop / this.s.pixelHeight;
+	var newWidthPercent = document.body.clientWidth / this.s.pixelWidth;
+	var newHeightPercent = document.body.clientHeight / this.s.pixelHeight;
+
+	if (viewMgr.viewChanged)
+	{
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, newWidthPercent, newHeightPercent);
+	}
+
+	if (viewMgr.PostZoomProcessing)
+	{
+		viewMgr.PostZoomProcessing(size);
+	}
+}
+
+function VMLSetView (xOffsetPercent, yOffsetPercent)
+{
+	var leftPixelOffset = xOffsetPercent * this.s.pixelWidth;
+	var topPixelOffset = yOffsetPercent * this.s.pixelHeight;
+
+	window.scrollTo (leftPixelOffset - this.s.posLeft, topPixelOffset - this.s.posTop);
+
+	if (viewMgr.PostSetViewProcessing)
+	{
+		viewMgr.PostSetViewProcessing();
+	}
+}
+
+function VMLOnResize ()
+{
+	if (viewMgr.zoomLast == 100)
+	{
+		viewMgr.Zoom(100);
+	}
+
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newWidthPercent = document.body.clientWidth / image.style.pixelWidth;
+		var newHeightPercent = document.body.clientHeight / image.style.pixelHeight;
+
+		viewMgr.viewChanged (null, null, newWidthPercent, newHeightPercent);
+	}
+}
+
+function VMLOnScroll ()
+{
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newXOffsetPercent = document.body.scrollLeft / image.style.pixelWidth;
+		var newYOffsetPercent = document.body.scrollTop / image.style.pixelHeight;
+
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, null, null);
+	}
+}
+
+
+
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/widgets.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/widgets.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/widgets.htm	(revision 21)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>clonezilla_select_flow_chart</title>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link href="visio.css" rel="stylesheet">
+<script src="keys.js" type="text/jscript" language="jscript"></script>
+<script src="find.js" type="text/jscript" language="jscript"></script>
+<script type="text/jscript" language="jscript">
+	
+	var imgMin = new Image();
+	imgMin.src = "minimize.gif";
+	
+	var imgMax = new Image();
+	imgMax.src = "maximize.gif";
+
+	var fileList = parent.g_FileList;
+	
+	function Widgets()
+	{
+		this.GoTo = null;
+		this.Search = null;
+		this.Details = null;
+		this.PNZ = null;
+
+		this.divCount = 0;
+		
+		this.OpenText = "全部摺疊";
+		this.OpenAlt = "全部摺疊";
+		this.ClosedText = "全部展開";
+		this.ClosedAlt = "全部展開";
+
+		this.Display = "";
+		this.Img = imgMin;
+		this.Text = this.OpenText;
+		this.Alt = this.OpenAlt;
+		
+		this.ToggleAll = ToggleAll;
+		this.ToggleWidget = ToggleWidget;
+		this.Add = Add;
+	}		
+
+	function Add(div, name)
+	{
+		tmpStr = "this." + name + " = new Widget(div);"
+		eval(tmpStr);
+		var thisWidget = eval("this." + name);
+	}
+
+	function Widget(div)
+	{
+		return div;
+	}	
+
+	function ToggleAll()
+	{
+		var OpenCloseFunc = Widget;
+
+		if(this.Display == "")
+		{
+			this.Display = "none";
+			this.Img = imgMax;
+			this.Text = this.ClosedText;
+			this.Alt = this.ClosedAlt;
+			expparent00.title = this.ClosedAlt;
+			OpenCloseFunc = CloseWidget;
+		}
+		else
+		{
+			this.Display = "";
+			this.Img = imgMin;
+			this.Text = this.OpenText;
+			this.Alt = this.OpenAlt;
+			expparent00.title = this.OpenAlt;
+			OpenCloseFunc = OpenWidget;
+		}
+		exp00.src = this.Img.src;	
+		textExp.innerText = this.Text;
+		exp00.alt = this.Alt;
+	
+		if(this.GoTo)
+		{
+			OpenCloseFunc(this.GoTo)
+		}
+		if(this.Search)
+		{
+			OpenCloseFunc(this.Search)
+		}
+		if(this.Details)
+		{
+			OpenCloseFunc(this.Details)
+		}
+		if(this.PNZ)
+		{
+			OpenCloseFunc(this.PNZ)
+		}
+	}
+
+	function ToggleNav()
+	{
+		if(divCollapsedNav.style.display == "none")
+		{
+			divCollapsedNav.style.display = "";
+			divOpenNav.style.display = "none";
+			parent.frmstOuter.cols = "20,*"
+			parent.document.all ('frmToolbar').noResize = true;
+		}
+		else
+		{
+			divOpenNav.style.display = "";
+			divCollapsedNav.style.display = "none";
+			parent.frmstOuter.cols = "237,*"
+			parent.document.all ('frmToolbar').noResize = false;
+		}
+	}
+	
+	function ToggleWidget(div)
+	{
+		if(div.style.display == "none")
+		{
+			OpenWidget(div);
+		}
+		else
+		{
+			CloseWidget(div);
+		}
+	}
+
+	function OpenWidget(div)
+	{
+		document.all(div.img).src = imgMin.src;
+		div.style.display = "";
+		document.all(div.img).alt = div.openAlt;
+		document.all(div.img + "1").title = div.openAlt;
+		document.all(div.img + "2").title = div.openAlt;
+	}
+
+	function CloseWidget(div)
+	{
+		document.all(div.img).src = imgMax.src;
+		div.style.display = "none";
+		document.all(div.img).alt = div.closedAlt;
+		document.all(div.img + "1").title = div.closedAlt;
+		document.all(div.img + "2").title = div.closedAlt;
+	}
+
+	function load()
+	{
+		parent.g_WidgetsLoaded = true;
+
+		if (parent.g_LoadingWidgets)
+		{
+			parent.g_LoadingWidgets = false;
+			parent.location.reload();
+		}
+	}
+
+	function unload()
+	{
+		parent.g_LoadingWidgets = true;
+	}
+	
+		
+	var widgets = new Widgets();
+
+</script>
+
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divOpenNav" class="nav">
+
+	<table id="tabToc" width="100%" class="navTocColor" style="margin-bottom:1px;" cellspacing="0" cellpadding="0" border="0" height="20" dir=ltr>
+	<tr>
+	<td width="2"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" id="linkNavOpen"><img src="toc.gif" alt="摺疊巡覽框架" width="22" height="17" border="0"></a></td>
+	<td><p class="p1"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" class="a1">隱藏</a></p></td>
+	<td align="right"><p class="p1"><a href="javascript:widgets.ToggleAll()" id="textExp" class="a1">全部摺疊</a></p></td>
+	<td width="2">
+		<div style="padding:2pt,1.5pt,0pt,0pt"><a href="javascript:widgets.ToggleAll()" title="全部摺疊" id="expparent00"><img id="exp00" alt="全部摺疊" src="minimize.gif" width="15" height="15" border="0"></a></div>
+	</td>
+	</tr>
+	</table>
+	
+	
+
+	
+	<div id="divPNZ" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp41" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><p class="label">全景和縮放</p></a></td>
+				<td width="15"><a id="exp42" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><img id="exp4" alt="摺疊全景和縮放" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hidePNZ" style="text-align:right;" img="exp4" class="hiderScroll" openAlt="摺疊全景和縮放" closedAlt="展開全景和縮放">
+				<table width="220" border="0" cellpadding="0" cellspacing="0">
+				<tr>
+				<td align="center" valign="middle">
+					<iframe title="全景和縮放視窗" longdesc="全景和縮放視窗" id="ifrmPNZ" src="zoom.htm" width="170" height="170" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="border: #cccccc 1px solid;"></iframe>
+				</td>
+					
+				<td>
+					<table id="tabScale" width="17" cellspacing="0" cellpadding="0" border="0">
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放頁面至 100%"><img src="fullpage.gif" alt="縮放頁面至 100%" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(1);" title="拉近"><img src="panplus.gif" alt="拉近" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(500);" title="縮放成 500%"><img id="t500" src="tick-off.gif" alt="縮放成 500%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(450);" title="縮放成 450%"><img id="t450" src="tick-off.gif" alt="縮放成 450%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(400);" title="縮放成 400%"><img id="t400" src="tick-off.gif" alt="縮放成 400%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(350);" title="縮放成 350%"><img id="t350" src="tick-off.gif" alt="縮放成 350%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(300);" title="縮放成 300%"><img id="t300" src="tick-off.gif" alt="縮放成 300%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(250);" title="縮放成 250%"><img id="t250" src="tick-off.gif" alt="縮放成 250%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(200);" title="縮放成 200%"><img id="t200" src="tick-off.gif" alt="縮放成 200%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(150);" title="縮放成 150%"><img id="t150" src="tick-off.gif" alt="縮放成 150%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放成 100%" id="a100"><img id="t100" src="tick-on.gif" alt="縮放成 100%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(50);" title="縮放成 50%"><img id="t50" src="tick-off.gif" alt="縮放成 50%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(10);" title="縮放成 10%"><img id="t10" src="tick-off.gif" alt="縮放成 10%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(-1);" title="拉遠"><img src="panminus.gif" alt="拉遠" border="0"></a></td></tr>
+					</table>
+				</td>
+				</tr>
+				</table>
+			</div>			
+		</td></tr>
+		</table>
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hidePNZ, "PNZ");
+
+			var zoomLevels = new Array(10, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500);
+
+			var tickOff = new Image();
+			tickOff.src = "tick-off.gif";
+			
+			var tickFoc = new Image();
+			tickFoc.src = "tick-foc.gif";
+			
+			var tickOn = new Image();
+			tickOn.src = "tick-on.gif";
+
+			function tickFocus()
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickFoc.src;
+				}
+			}			
+			
+			function tickBlur(percentZoom)
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickOff.src;
+				}
+			}
+
+			function tickSelect(percentZoom)
+			{
+				if (parent.viewMgr &&
+					parent.viewMgr.Zoom)
+				{
+					changeTick(percentZoom);
+					parent.viewMgr.Zoom(percentZoom);					
+				}
+
+				if(frames.item(0).zoomRectDiv)
+				{
+					frames.item(0).g_width = parseInt(frames.item(0).zoomRectDiv.style.pixelWidth) 
+					frames.item(0).g_height = parseInt(frames.item(0).zoomRectDiv.style.pixelHeight)
+					frames.item(0).g_newLeft = parseInt(frames.item(0).zoomRectDiv.style.left)
+					frames.item(0).g_newTop = parseInt(frames.item(0).zoomRectDiv.style.top)
+				}
+			}
+
+			function changeTick(percentZoom)
+			{
+				img = elemScale.all("t" + percentZoom);
+									
+				img.src = tickOn.src;
+				
+				if(elemScale.tickSelected && elemScale.tickSelected != img)
+				{
+					elemScale.tickSelected.src = tickOff.src;
+				}
+				elemScale.tickSelected = img;
+			}
+			
+			function ZoomUpDown(increment)
+			{
+				if (elemScale.tickSelected)
+				{
+					var curZoomLevel = elemScale.tickSelected.id.substring (1);
+					var newZoomLevelIndex = IndexFromLevel (curZoomLevel * 1.0);
+					if (newZoomLevelIndex >= 0)
+					{
+						var img = elemScale.all("t" + zoomLevels[newZoomLevelIndex + increment]);
+						if (img)
+						{
+							tickSelect(img.id.substring(1));
+						}
+					}
+				}
+				else
+				{
+					tickSelect (100);
+				}
+			}
+
+			function IndexFromLevel (zoomLevel)
+			{
+				for (var count = 0; count < zoomLevels.length; count++)
+				{
+					if (zoomLevels[count] == zoomLevel)
+					{
+						return count;
+					}
+				}
+
+				return -1;
+			}
+			
+			elemScale = document.all("tabScale");
+			if(elemScale)
+			{
+				elemScale.onmouseover = tickFocus;
+				elemScale.onmouseout = tickBlur;
+			}
+		</script>
+	</div>
+
+	
+	<div id="divDetails" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp21" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><p class="label">詳細資料</p></a></td>
+				<td width="15"><a id="exp22" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><img id="exp2" alt="摺疊詳細資料" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hideDetails" class="hiderScroll" img="exp2" openAlt="摺疊詳細資料" closedAlt="展開詳細資料">
+				<P class="p2" class="detsPara">CTRL+按一下繪圖中的圖形以檢視詳細資料。</P>
+			</div>
+		</td></tr>
+		</table>		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideDetails, "Details");
+			widgets.divCount++;
+		
+		</script>
+	</div>
+
+	
+	<div id="divSearch" class="holder">
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor" dir=ltr>
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp11" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><p class="label">搜尋頁</p></a></td>
+				<td width="15"><a id="exp12" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><img src="minimize.gif" id="exp1" alt="摺疊搜尋頁面" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+
+		</td></tr>
+		<tr><td>	
+
+			<div id="hideSearch" img="exp1" class="hiderScroll" openAlt="摺疊搜尋頁面" closedAlt="展開搜尋頁面">
+								<form name=theForm onsubmit="FindOnClick(); return false;" ID="Form1">
+									<table width="100%" cellspacing="0" cellpadding="3" border="0">
+									<tr>
+									<td width="100%">
+										<input class="formText" type="text" name="findString" maxlength="255" size="26" title="輸入要搜尋的文字。按 Enter 開始搜尋。">
+									</td>
+									<td width="18" class="gobutton">
+										<input type="image" src="go.gif" alt="開始搜尋" width="18" height="18" ID="GoButton" NAME="GoButton">
+									</td>
+									</tr>
+									<tr>
+									<td colspan="2" class="p2">
+										<a href="javascript:{};" tabindex="0" onclick="TogglePlus(hideAdvSrch,as0);" class="blu1"><img src="plus.gif" alt="顯示/隱藏進階搜尋選項" border="0" id="as0">進階</a>
+											<div id="hideAdvSrch" class="hiderScroll" style="display:none;">
+												<b>搜尋依據:</b>
+												<div id="divS"></div>
+											</div>
+										<hr width="100%" size="1" color="#cccccc">
+										<div id="hideResults" class="hiderScroll" style="display:none;"></div>
+									</td>
+									</tr>
+									</table>
+								</form>
+			</div>					
+
+		</td></tr>
+		</table>
+		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideSearch, "Search");
+			widgets.divCount += 2;
+			
+			makeAdvancedFindCheckboxes(divS);
+			
+			
+			var imgPlus = new Image();
+			imgPlus.src = "plus.gif";
+	
+			var imgMinus = new Image();
+			imgMinus.src = "minus.gif";
+			
+			function TogglePlus(div, img, container)
+			{
+				if(typeof(img) == "string")	
+					img = document.all(img)
+				if(typeof(div) == "string")
+					div = document.all(div)
+					
+				widget = widgets.Search;
+				if(div && img)
+				{
+					if(div.style.display == "none")
+					{
+						div.style.display = "";
+						img.src = imgMinus.src;
+						div.open = "true";
+					}
+					else
+					{
+						div.style.display = "none";
+						img.src = imgPlus.src;
+						
+						div.open = "false";
+					}
+				}
+			}
+		
+		</script>
+	</div>
+
+
+</div>
+
+<div id="divCollapsedNav" class="navTocColor" style="display:none;width:100%;height:100%;">
+	<a href="javascript:ToggleNav();" title="展開巡覽框架" id="linkNavClosed"><img src="toc2.gif" alt="展開巡覽框架" border="0"></a>
+</div>	
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/zoom.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/zoom.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.files/zoom.htm	(revision 21)
@@ -0,0 +1,990 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script type="text/jscript" language="jscript">
+
+var BUFFER = 1;
+
+function zoomObject()
+{
+	this.PZImgRatio			= null;
+	
+	this.zoomWinHeight		= null;
+	this.zoomWinWidth		= null;
+	this.zoomWinTop			= null;
+	this.zoomWinLeft		= null;
+	
+	this.scaleFactor		= null;
+	
+	this.updateContent		= zObj_updateContent;
+	this.doOnBodyResize		= zObj_doOnBodyResize;
+	this.clipZoomRect		= zObj_clipZoomRect;
+}
+
+var g_thumbHeight = window.clientHeight;
+var g_thumbWidth = window.clientWidth;
+zoomObj = new zoomObject();
+
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+	}
+	return divObject;
+}
+
+function zObj_updateContent( win_width, win_height, VMLDiv_left, VMLDiv_top, VMLDiv_width, VMLDiv_height )
+{
+	this.mainWinWidth		= win_width;
+	this.mainWinHeight		= win_height;
+
+	this.mainImgRatio = VMLDiv_height / VMLDiv_width;
+	this.doOnBodyResize();
+}
+
+function zObj_doOnBodyResize()
+{
+	return;
+}
+
+function zObj_clipZoomRect( objectToClip )
+{
+	if( objectToClip == null )
+	{
+		objectToClip = zoomRectObj;
+	}
+	
+	var clipTop		= ( objectToClip.style.posTop < (g_thumbTop) )	? (g_thumbTop - objectToClip.style.posTop)	: 0;
+	var clipLeft	= ( objectToClip.style.posLeft < (g_thumbLeft) )	? (g_thumbLeft - objectToClip.style.posLeft)	: 0;
+	var clipBottom	= ( (objectToClip.style.posHeight - clipTop) > (g_thumbTop + g_thumbHeight + 2 * BUFFER) ) ? (g_thumbHeight + clipTop + BUFFER) : objectToClip.style.posHeight;
+	var clipRight	= 0;
+	if( (this.zoomWinWidth - clipLeft) > (g_thumbLeft + g_thumbWidth) )
+	{
+		if( clipLeft == 0 )
+		{
+			clipRight = g_thumbWidth - objectToClip.style.posLeft + 2 * BUFFER;
+		}
+		else
+		{
+			clipRight = (g_thumbWidth + clipLeft + BUFFER);
+		}
+	}
+	else
+	{
+		clipRight = objectToClip.style.posWidth;
+	}
+	clipTo( objectToClip, clipTop, clipRight, clipBottom, clipLeft);
+}
+
+function findContent()
+{
+	zoomRectDiv.style.display = "none";
+	newZoomWindowDiv.style.display = "none";
+
+	if (parent.parent.frmDrawing && parent.parent.viewMgr)
+	{
+		var viewMgr = parent.parent.viewMgr;
+
+		var getPNZ = parent.parent.viewMgr.getPNZ;
+		if (getPNZ)
+		{
+			var tmp = parent.parent.frmDrawing;
+
+			divThumb = document.all("divThumbnail");
+
+			if (divThumb.innerHTML.length == 0)
+			{
+				divThumb.innerHTML = getPNZ();
+			}
+			else
+			{
+				var pnzInfo = getPNZ();
+				var idIndex = pnzInfo.indexOf("ConvertedImage");
+				if (idIndex >= 0)
+				{
+					var test = pnzInfo;
+					pnzInfo = test.substring (0, idIndex);
+					pnzInfo += "Temp";
+					pnzInfo += test.substring (idIndex, test.length);
+
+					divTempThumbnail.innerHTML = pnzInfo;
+
+					var vmlGroup = divThumbnail.childNodes(0);
+					var vmlTempGroup = divTempThumbnail.childNodes(0);
+					CopyVMLAttrs(vmlGroup, vmlTempGroup);
+					
+					var vmlShape = vmlGroup.childNodes(1);
+					var vmlTempShape = vmlTempGroup.childNodes(1);
+					CopyVMLAttrs(vmlShape, vmlTempShape);
+
+					CopyVMLAttrs(vmlGroup.childNodes(0), vmlTempGroup.childNodes(0));
+					
+					var vmlImageData = vmlShape.childNodes(0);
+					var vmlTempImageData = vmlTempShape.childNodes(0);
+					CopyVMLImageData(vmlImageData, vmlTempImageData);
+				}
+			}
+
+			zoomRectObj = document.all("zoomRectDiv");
+			showObject( zoomRectObj );
+
+			PNZimg = document.all("ConvertedImage");
+			if (PNZimg)
+			{
+				PNZimg.style.left = 0;
+				PNZimg.style.top = 0;
+
+				if (PNZimg.style.pixelWidth > PNZimg.style.pixelHeight)
+				{
+					var oldWidth = PNZimg.style.pixelWidth;
+					PNZimg.style.width = document.body.clientWidth;
+					PNZimg.style.height = (document.body.clientWidth / oldWidth) * PNZimg.style.pixelHeight;
+
+					divThumb.style.top = (document.body.clientHeight - parseInt(PNZimg.style.height)) / 2;
+					divThumb.style.left = 0;
+				}
+				else
+				{
+					var oldHeight = PNZimg.style.pixelHeight;
+					PNZimg.style.height = document.body.clientHeight;
+					PNZimg.style.width = (document.body.clientHeight / oldHeight) * PNZimg.style.pixelWidth;
+
+					divThumb.style.left = (document.body.clientWidth - parseInt(PNZimg.style.width)) / 2;
+					divThumb.style.top = 0;
+				}
+
+				PNZimg.style.visibility = "visible";
+
+				var strOutput = divThumb.innerHTML;
+				if (strOutput.length > 0)
+				{
+					var tmp2 = document.all['ConvertedImage'];
+					zoomObj.updateContent( tmp.document.body.clientWidth, tmp.document.body.clientHeight, parseInt(tmp2.style.left), parseInt(tmp2.style.top), parseInt(tmp2.clientWidth), parseInt(tmp2.clientHeight) );
+
+					viewMgr.viewChanged = PageViewChanged;
+				}
+			}
+		}
+	}
+}
+
+function CopyVMLAttrs(vmlObjDst, vmlObjSrc)
+{
+	if (vmlObjDst != null && vmlObjSrc != null)
+	{
+		vmlObjDst.style.cssText = vmlObjSrc.style.cssText;
+	}
+}
+
+function CopyVMLImageData(vmlImageDataDst, vmlImageDataSrc)
+{
+	if (vmlImageDataDst != null && vmlImageDataSrc != null)
+	{
+		vmlImageDataDst.src = vmlImageDataSrc.src;
+	}
+}
+
+function setZoomRectCursor()
+{
+	var x = getMouseXcoord() - zoomObj.zoomWinLeft;
+	var y = getMouseYcoord() - zoomObj.zoomWinTop;
+
+	var rbw = 5;
+
+	var newCursor	= "";
+	if( y > (zoomObj.zoomWinHeight - rbw) )
+		newCursor = "s"
+	else if( y < rbw )
+		newCursor = "n";
+		
+	if( x < rbw )
+		newCursor += "w";
+	else if( x > (zoomObj.zoomWinWidth - rbw) )
+		newCursor += "e";
+
+	if( newCursor != "" )
+		zoomRectObj.style.cursor = newCursor + "-resize";
+	else
+		zoomRectObj.style.cursor = "move";
+}
+
+function startZoomRectDrag()
+{
+	var currentCursor = zoomRectObj.style.cursor;
+
+	if( currentCursor.indexOf( '-' ) != -1 )
+	{
+		g_resizeDirection = currentCursor.split( '-' )[0];
+		startDrag( 'zoomRectDiv', doResizeZoomRectDrag, stopResizeZoomRectDrag );
+	}
+	else
+	{
+		startDrag( 'zoomRectDiv', doZoomRectDrag, stopZoomRectDrag );
+	}
+}
+
+function doZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var rectLeft = parseInt(dragObj.divObject.style.left);
+	var rectTop = parseInt(dragObj.divObject.style.top);
+	var rectWidth = parseInt(dragObj.divObject.style.width);
+	var rectHeight = parseInt(dragObj.divObject.style.height);
+
+	var xOffset = 0;
+	var yOffset = 0;
+
+	var xPercent = 0;
+	var yPercent = 0;
+
+	var pnzImgLeft = parseInt(divThumbnail.style.left);
+	var pnzImgTop = parseInt(divThumbnail.style.top);
+	var pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+	var pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+		
+	xOffset = x + dragObj.xOffset - pnzImgLeft;
+	xPercent = xOffset / pnzImgWidth;
+
+	yOffset = y + dragObj.yOffset - pnzImgTop;
+	yPercent = yOffset / pnzImgHeight;
+
+	if (xOffset < 0)
+	{
+		xPercent = 0;
+		xOffset = pnzImgLeft - BUFFER;
+	}
+	else if (xOffset + rectWidth > pnzImgWidth)
+	{
+		xPercent = 1;
+		xOffset = pnzImgLeft + pnzImgWidth - rectWidth + BUFFER;
+	}
+	else
+	{
+		xOffset = x + dragObj.xOffset;
+	}
+
+	if (yOffset < 0)
+	{
+		yPercent = 0;
+		yOffset = pnzImgTop - BUFFER;
+	}
+	else if (yOffset + rectHeight > pnzImgHeight)
+	{
+		yPercent = 1;
+		yOffset = pnzImgTop + pnzImgHeight - rectHeight + BUFFER;
+	}
+	else
+	{
+		yOffset = y + dragObj.yOffset;
+	}
+
+	if (parent.parent.viewMgr.setView)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	setZWinSize (null, null, xOffset, yOffset);
+}
+
+function stopZoomRectDrag(dragObj, x, y)
+{
+	var el = window.event.srcElement;
+	g_newLeft = parseInt(el.style.left);
+	g_newTop = parseInt(el.style.top);
+}
+
+function setZWinSize( newWidth, newHeight, newLeft, newTop )
+{
+	if( newWidth != null && newWidth >= 0 ) 
+	{
+		zoomObj.zoomWinWidth = newWidth;
+		zoomRectObj.style.width = newWidth;
+	}
+
+	if( newHeight != null && newHeight >= 0 ) 
+	{
+		zoomObj.zoomWinHeight = newHeight;
+		zoomRectObj.style.height = newHeight;
+	}
+
+	if( newLeft != null && newLeft >= 0 )
+	{
+		zoomObj.zoomWinLeft = newLeft;
+		zoomRectObj.style.left = newLeft;
+	}
+
+	if( newTop != null && newTop >= 0 )
+	{
+		zoomObj.zoomWinTop = newTop;
+		zoomRectObj.style.top= newTop;
+	}
+}
+
+function doResizeZoomRectDrag(dragObj, x, y)
+{
+	var newWidth	= null;
+	var newHeight	= null;
+	var newLeft		= null;
+	var newTop		= null;
+		
+	var tmp = parent.parent.frmDrawing;
+	if (tmp)
+	{
+		zoomObj.mainWinWidth		= tmp.document.body.clientWidth;
+		zoomObj.mainWinHeight		= tmp.document.body.clientHeight;
+	}
+
+	var widthHeightRatio = zoomObj.mainWinWidth / zoomObj.mainWinHeight;
+	
+	var minimumSize = 10;
+	if( g_resizeDirection == 'e' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'w' )
+	{
+		newWidth	= zoomObj.zoomWinWidth + zoomObj.zoomWinLeft - x;
+		if( newWidth > minimumSize )
+		{
+			newHeight	= newWidth / widthHeightRatio;
+			newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+			newLeft		= x;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+
+	if( g_resizeDirection == 'se' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 's' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'sw' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+	
+	if( g_resizeDirection == 'n' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'ne' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'nw' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+}
+
+function stopResizeZoomRectDrag(dragObj, x, y)
+{
+	PNZimg = document.all("ConvertedImage");
+
+	var xWidthPercent = parseInt(zoomRectDiv.style.width) / PNZimg.style.pixelWidth;
+	var yHeightPercent = parseInt(zoomRectDiv.style.height) / PNZimg.style.pixelHeight;
+
+	var newZoomLevel = GetZoomLevel (xWidthPercent, yHeightPercent);
+
+	if (parent.parent.viewMgr.Zoom)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostZoomProcessing = PostZoomProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.Zoom (newZoomLevel);
+	}
+
+	g_width = parseInt(zoomRectDiv.style.pixelWidth);
+	g_height = parseInt(zoomRectDiv.style.pixelHeight);
+	g_newLeft = parseInt(zoomRectDiv.style.left);
+	g_newTop = parseInt(zoomRectDiv.style.top);
+}
+
+function GetZoomLevel (xWidthPercent, yHeightPercent)
+{
+	var newZoomLevel;
+	if (xWidthPercent < yHeightPercent)
+	{
+		newZoomLevel = 100 / xWidthPercent;
+	}
+	else
+	{
+		newZoomLevel = 100 / yHeightPercent;
+	}
+
+	return newZoomLevel;
+}
+
+function PostZoomProcessing (newZoomLevel)
+{
+	var xOffset = parseInt(zoomRectDiv.style.left) - parseInt(divThumbnail.style.left);
+	var yOffset = parseInt(zoomRectDiv.style.top) - parseInt(divThumbnail.style.top);
+
+	var xPercent = xOffset / PNZimg.style.pixelWidth;
+	var yPercent = yOffset / PNZimg.style.pixelHeight;
+
+	var viewMgr = parent.parent.viewMgr;
+	viewMgr.ChangingView = true;
+
+	if (viewMgr.setView)
+	{
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	SetCorrectTick (newZoomLevel);
+
+	viewMgr.PostZoomProcessing = null;
+}
+
+function SetCorrectTick (newZoomLevel)
+{
+	var zoomLevels = parent.zoomLevels;
+	if (newZoomLevel <= zoomLevels[0])
+	{
+		parent.changeTick(zoomLevels[0]);
+	}
+	else if (newZoomLevel >= zoomLevels[zoomLevels.length - 1])
+	{
+		parent.changeTick(zoomLevels[zoomLevels.length - 1]);
+	}
+	else
+	{
+		for (var count = 0; count < zoomLevels.length - 1; count++)
+		{
+			var deltaDown = newZoomLevel - zoomLevels[count];
+			var deltaUp = newZoomLevel - zoomLevels[count + 1];
+			if (deltaDown >= 0 && deltaUp <= 0)
+			{
+				if (Math.abs(deltaDown) < Math.abs(deltaUp))
+				{
+					parent.changeTick(zoomLevels[count]);
+					break;
+				}
+				else
+				{
+					parent.changeTick(zoomLevels[count + 1]);
+					break;
+				}
+			}
+		}
+	}
+}
+
+function PostSetViewProcessing ()
+{
+	parent.parent.viewMgr.ChangingView = false;
+	parent.parent.viewMgr.PostSetViewProcessing = null;
+}
+
+function startNewZoomRectDrag()
+{
+	var x = getMouseXcoord();
+	var y = getMouseYcoord();
+	zoomObj.newZWinStartX = x;
+	zoomObj.newZWinStartY = y;
+	
+	g_newZWinObjRef = document.all("newZoomWindowDiv");
+	g_newZWinObjRef.style.display = "";
+
+	startDrag( 'zoomRectDiv', doNewZoomRectDrag, stopNewZoomRectDrag );
+}
+
+function doNewZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var width	= Math.abs( zoomObj.newZWinStartX - x );
+	var height	= Math.abs( zoomObj.newZWinStartY - y );
+
+	var aspectRatio = parent.parent.viewMgr.docDrawing.body.clientWidth / parent.parent.viewMgr.docDrawing.body.clientHeight;
+
+	if( width < (aspectRatio * height))
+	{
+		width = (aspectRatio) * height;
+	}
+	else
+	{
+		height = width / (aspectRatio);
+	}
+
+	width = Math.min (width, parseInt(PNZimg.style.pixelWidth));
+	height = Math.min (height, parseInt(PNZimg.style.pixelHeight));
+
+	var left = (x > zoomObj.newZWinStartX) ? zoomObj.newZWinStartX : zoomObj.newZWinStartX - width;
+	var top  = (y > zoomObj.newZWinStartY) ? zoomObj.newZWinStartY : zoomObj.newZWinStartY - height;
+
+	newZoomWindowDiv.style.top = top;
+	newZoomWindowDiv.style.left = left;
+	newZoomWindowDiv.style.height = height;
+	newZoomWindowDiv.style.width = width;
+	newZoomWindowDiv.style.visibility = "visible";
+
+	zoomObj.zoomWinLeft		= left;
+	zoomObj.zoomWinWidth	= width;
+	zoomObj.zoomWinTop		= top;
+	zoomObj.zoomWinHeight	= height;
+}
+
+function stopNewZoomRectDrag(dragObj, x, y)
+{
+	newZoomWindowDiv.style.visibility = "hidden";
+
+	if (parseInt (newZoomWindowDiv.style.width) > 10 && 
+		parseInt (newZoomWindowDiv.style.height) > 10)
+	{
+		zoomRectDiv.style.top = newZoomWindowDiv.style.top;
+		zoomRectDiv.style.left = newZoomWindowDiv.style.left;
+		zoomRectDiv.style.height = newZoomWindowDiv.style.height;
+		zoomRectDiv.style.width = newZoomWindowDiv.style.width;
+
+		stopResizeZoomRectDrag(dragObj,x,y);
+		zoomRectDiv.style.display = "inline";
+		zoomRectDiv.style.visibility = "visible";
+	}
+	else
+	{
+		zoomObj.zoomWinLeft		= parseInt(zoomRectDiv.style.left);
+		zoomObj.zoomWinWidth	= parseInt(zoomRectDiv.style.width);
+		zoomObj.zoomWinTop		= parseInt(zoomRectDiv.style.top);
+		zoomObj.zoomWinHeight	= parseInt(zoomRectDiv.style.height);
+	}
+
+	newZoomWindowDiv.style.height = "0px";
+	newZoomWindowDiv.style.width = "0px";
+
+	newZoomWindowDiv.style.display = "none";
+}
+
+var g_lastX = 0;
+var g_lastY = 0;
+
+document.onmousedown = mouseDown;
+document.onmousemove = mouseMove;
+document.onmouseup = mouseUp;
+document.onmouseout = mouseOut;
+
+function mouseDown()
+{
+	return true;
+}
+
+function mouseMove()
+{
+	var x = event.clientX + document.body.scrollLeft;
+	var y = event.clientY + document.body.scrollTop;
+
+	g_lastX = x;
+	g_lastY = y;
+	
+	doDrag( x, y );
+	return true;
+}
+
+function mouseUp() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+	
+	stopDrag(null,x,y);
+	return true;
+}
+
+function mouseOut() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+
+	if( x < 0 ) x = -1;
+	if( x >= document.body.clientWidth ) x = -1;
+		
+	if( y < 0 ) y = -1;
+	if( y >= document.body.clientHeight ) y = -1;
+
+	if( x == -1 || y == -1 )
+	{
+		x = -1;
+		y = -1;
+	}
+	
+
+	if( x == -1 )
+		stopDrag( null, x, y );
+	return true;
+}
+
+function getMouseXcoord()
+{
+	return event.x + document.body.scrollLeft;
+}
+
+function getMouseYcoord()
+{
+	return event.y + document.body.scrollTop;
+}
+
+var g_width		= -1;
+var g_height	= -1;
+var g_newLeft	= -1;	
+var g_newTop	= -1;
+		
+var g_pnzImgWidth = -1;
+var g_pnzImgHeight = -1;
+var g_pnzImgLeft = -1;
+var g_pnzImgTop = -1;
+
+function keydown()
+{
+	var key = window.event.keyCode;
+	var el = window.event.srcElement;
+
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{
+		if(g_width == -1)
+			g_width		= parseInt(el.style.pixelWidth);
+			
+		if(g_height == -1)
+			g_height		= parseInt(el.style.pixelHeight);
+			
+		if(g_newLeft == -1)
+			g_newLeft		= parseInt(el.style.left);	
+		
+		if(g_newTop == -1)
+			g_newTop		= parseInt(el.style.top);
+		
+		if(g_pnzImgWidth == -1)
+			g_pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+			
+		if(g_pnzImgHeight == -1)
+			g_pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+			
+		if(g_pnzImgLeft == -1)
+			g_pnzImgLeft = parseInt(divThumbnail.style.left);
+			
+		if(g_pnzImgTop == -1)
+			g_pnzImgTop = parseInt(divThumbnail.style.top);
+	
+
+		if(key == 37)	
+		{
+			g_newLeft -= 1;
+			if(g_newLeft < g_pnzImgLeft)
+			{
+				g_newLeft = g_pnzImgLeft;
+			}	
+		}
+		else if(key == 38)	
+		{
+			g_newTop -= 1;
+			if(g_newTop < g_pnzImgTop)
+			{
+				g_newTop = g_pnzImgTop;
+			}	
+		}
+		else if(key == 39)	
+		{
+			g_newLeft += 1;
+			if(g_newLeft + g_width > g_pnzImgLeft + g_pnzImgWidth)
+			{
+				g_newLeft = g_pnzImgLeft + g_pnzImgWidth - g_width;		
+			}
+		}
+		
+		else if(key == 40)	
+		{
+			g_newTop += 1;
+			if(g_newTop + g_height > g_pnzImgTop + g_pnzImgHeight)
+			{
+				g_newTop = g_pnzImgTop + g_pnzImgHeight - g_height;		
+			}
+		}
+		
+		setZoomRectCursor();
+
+		var xOffset = g_newLeft - g_pnzImgLeft;
+		var yOffset = g_newTop - g_pnzImgTop;
+		
+		var xPercent = xPercent = xOffset / g_pnzImgWidth;
+		var yPercent = yPercent = yOffset / g_pnzImgHeight;
+
+		if (xOffset < 0)
+		{
+			xPercent = 0;
+			xOffset = g_pnzImgLeft;
+		}
+		else if (xOffset + g_width > g_pnzImgWidth)
+		{
+			xPercent = 1;
+			xOffset = g_pnzImgLeft + g_pnzImgWidth - g_width;
+		}
+
+		if (yOffset < 0)
+		{
+			yPercent = 0;
+			yOffset = g_pnzImgTop;
+		}
+		else if (yOffset + g_height > g_pnzImgHeight)
+		{
+			yPercent = 1;
+			yOffset = g_pnzImgTop + g_pnzImgHeight - g_height;
+		}
+
+		if (parent.parent.viewMgr.setView)
+		{
+			var viewMgr = parent.parent.viewMgr;
+			viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+			viewMgr.ChangingView = true;
+			viewMgr.setView (xPercent, yPercent);
+		}	
+		setZWinSize (null, null, g_newLeft, g_newTop);
+	}
+}
+
+function keyup()
+{
+	var key = window.event.keyCode;
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{		
+		el = window.event.srcElement;
+	}
+}
+
+function dragObject( divID, divObject, xOffset, yOffset, dragFunctionPointer, dragStopFunctionPointer )
+{
+	this.divID			= divID;
+	this.divObject		= divObject;
+	this.xOffset		= xOffset;
+	this.yOffset		= yOffset;
+	this.dragFPtr		= dragFunctionPointer;
+	this.dragStopFPtr	= dragStopFunctionPointer;
+}
+
+var dragList = new Array();
+
+
+function startDrag( divID, dragFunctionPtr, dragStopFunctionPointer, xOffset, yOffset ) 
+{
+	var divObject = document.all(divID);
+	if( divObject != null ) 
+	{
+		document.selection.empty();
+		
+		if( xOffset == null )
+		{
+			xOffset = parseInt(divObject.style.left) - g_lastX;
+		}
+		
+		if( yOffset == null )
+		{
+			yOffset = parseInt(divObject.style.top)  - g_lastY;
+		}
+
+		dragList[ dragList.length ] = new dragObject( divID, divObject, xOffset, yOffset, dragFunctionPtr, dragStopFunctionPointer );
+		return true;
+	} 
+	else 
+	{
+		return false;
+	}
+}
+
+function doDrag( x, y ) 
+{
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].dragFPtr != null )
+			dragList[i].dragFPtr( dragList[i], x, y );
+	}
+	if( dragList.length )
+	{
+		document.selection.empty();
+	}
+}
+
+function stopDrag( divID, x, y ) 
+{ 
+	var tmpDragObject;
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].divID == divID || divID == null ) 
+		{
+			tmpDragObject = dragList[i];
+			
+			dragList[i] = dragList[ dragList.length - 1 ];
+			dragList.length = dragList.length - 1;
+			
+			if( tmpDragObject.dragStopFPtr != null )
+			{
+				tmpDragObject.dragStopFPtr( tmpDragObject, x, y );
+			}
+			
+		}
+	}
+}
+
+function PageViewChanged(newLeftPercent, newTopPercent, newWidthPercent, newHeightPercent)
+{
+	if (dragList.length == 0 && !parent.parent.viewMgr.ChangingView)
+	{
+		var newLeft		= null;
+		var newTop		= null;
+		var newWidth	= null;
+		var newHeight	= null;
+
+		var PNZimg = document.all("ConvertedImage");
+
+		if (newLeftPercent != null)
+		{
+			newLeft = (newLeftPercent * PNZimg.style.pixelWidth) + parseInt(divThumbnail.style.left);
+		}
+		
+		if (newTopPercent != null)
+		{
+			newTop = (newTopPercent * PNZimg.style.pixelHeight) + parseInt(divThumbnail.style.top);
+		}
+		
+		if (newWidthPercent != null)
+		{
+			newWidth = newWidthPercent * PNZimg.style.pixelWidth;
+		}
+		
+		if (newHeightPercent != null)
+		{
+			newHeight = newHeightPercent * PNZimg.style.pixelHeight;
+		}
+
+		setZWinSize (newWidth, newHeight, newLeft, newTop);
+
+		if (newLeftPercent <= 0 && newTopPercent <= 0 && newWidthPercent >= 1 && newHeightPercent >= 1)
+		{
+			zoomRectDiv.style.display = "none";
+			zoomRectDiv.style.visibility = "hidden";
+		}
+		else
+		{
+			zoomRectDiv.style.display = "inline";
+			zoomRectDiv.style.visibility = "visible";
+		}
+
+		if (newWidthPercent != null && newHeightPercent != null)
+		{
+			var newZoomLevel = GetZoomLevel (newWidthPercent, newHeightPercent);
+			SetCorrectTick (newZoomLevel);
+		}
+	}
+}
+
+function load()
+{
+	parent.parent.g_ZoomLoaded = true;
+
+	if (parent.parent.g_LoadingWidgets)
+	{
+		parent.parent.g_LoadingWidgets = false;
+		parent.parent.location.reload();
+	}
+}
+
+function unload()
+{
+	if (parent.parent.viewMgr)
+	{
+		parent.parent.viewMgr.viewChanged = null;
+	}
+
+	parent.parent.g_LoadingWidgets = true;
+}
+
+
+</script>
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divPZWindow" style="width: 100%; height: 100%;" >
+	<div id="divThumbnail" style="position: absolute; " onmousedown="startNewZoomRectDrag();"></div>
+</div>
+<div id="divTempThumbnail" style="position: absolute; visibility:hidden; display:none;" ></div>
+
+<div id="zoomRectDiv" tabindex="1" title="可見的區域。使用滑鼠或方向鍵來移動。" onkeydown="keydown()" onkeyup="keyup()" style="display:none;position: absolute; border: solid red thin; z-index: 3;" onmousedown="startZoomRectDrag();" onmouseover="setZoomRectCursor();" onmousemove="setZoomRectCursor();"></div>
+<div id="newZoomWindowDiv" style="position: absolute; border: solid blue thin; z-index: 4; visibility: hidden;"></div>
+
+</body>
+</html>
+
+
+
+
+
+
Index: /drbl_ui/flow_chart/clonezilla_select_flow_chart.htm
===================================================================
--- /drbl_ui/flow_chart/clonezilla_select_flow_chart.htm	(revision 21)
+++ /drbl_ui/flow_chart/clonezilla_select_flow_chart.htm	(revision 21)
@@ -0,0 +1,718 @@
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+		<meta name="標題" content=""/>
+		<meta name="主旨" content=""/>
+		<meta name="類別" content=""/>
+		<meta name="關鍵字" content=""/>
+		<meta name="描述" content=""/>
+		<meta name="作者" content=" "/>
+		<meta name="主管" content=""/>
+		<meta name="公司" content=""/>
+
+		<title>clonezilla_select_flow_chart</title>
+		<script src="clonezilla_select_flow_chart.files/frameset.js" type="text/jscript" language="jscript"></script>
+		<script type="text/jscript" language="jscript" >
+
+function FileEntry (pageIndex, pageID, pageName, priImage, secImage) 
+{
+	this.PageIndex = pageIndex;
+	this.PageID	  = pageID;
+	this.PageName = pageName;
+	this.PriImage = priImage;
+	this.SecImage = secImage;
+}
+
+var viewMgr = null;
+
+var g_FileList = new  Array(
+ new FileEntry (1, 0, "頁-1", "vml_1.htm", "gif_1.htm")
+
+);
+
+var g_CurPageIndex = 0;
+var g_ZoomLoaded = false;
+var g_WidgetsLoaded = false;
+var g_FileProtocol = "file://";
+
+var g_HLMenuEntry = "menuEntry";
+var g_HLMenuEntryDiv = "menuEntryDiv";
+
+var g_LoadingWidgets = false;
+
+
+function CViewMgr(convertedImgID, highlightDivID)
+{
+	this.onResize = null;
+	this.ApplyZoom = null;
+	this.ChangingView = false;
+
+	this.put_Location = ViewMgrDefaultFind;
+	this.Zoom = ViewMgrDefaultResize;
+	this.PostZoomProcessing = null;
+	this.setView = null;
+	this.PostSetViewProcessing = null;
+	this.viewChanged = null;
+
+	this.SupportsDetails = false;
+	this.SupportsSearch = false;
+
+	this.visBBoxLeft = 0.0;
+	this.visBBoxRight = 0.0;
+	this.visBBoxBottom = 0.0;
+	this.visBBoxTop = 0.0;
+
+	this.highlightDiv = null;
+	this.stepWidth = 10;
+
+	this.id = convertedImgID;
+	this.zoomFactor = -1;
+	this.zoomLast = -1;
+	this.origWH = 1;
+	this.origWidth = 100;	
+	this.aspectRatio = 1;
+
+	this.docDrawing = null;
+	var docDrawing = frmDrawing.document;
+	if(docDrawing)
+	{
+		this.docDrawing = docDrawing;
+		var docEl = docDrawing.all(this.id);
+		if (docEl)
+		{
+			this.s = docEl.style;
+			this.origWidth = this.s.pixelWidth;
+			this.origWH = this.s.pixelWidth / this.s.pixelHeight;
+		}
+		this.highlightDiv = docDrawing.all(highlightDivID);
+	}
+
+	this.loadPage = DefPageLoad;
+	this.getPNZ	= null;
+}
+
+function DefPageLoad (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+        if (fileDelim == -1)
+            fileDelim = curPath.lastIndexOf ('\\');
+		var newPath = curPath.substring (0, fileDelim + 1);
+		newPath += g_FileList[pageIndex].PriImage;
+		frmDrawing.location.href = newPath;
+
+		SetPNZDisplay (pageIndex);
+	}
+}
+
+function CurPageUpdate (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		g_CurPageIndex = pageIndex;
+
+		SetCurPageInGoto (pageIndex);
+
+		var divDetails = frmToolbar.document.all("divDetails");
+		if (divDetails)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsDetails)
+			{
+				displayStatus = "none";
+			}
+
+			divDetails.style.display = displayStatus;
+		}
+
+		var divSearch = frmToolbar.document.all("divSearch");
+		if (divSearch)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsSearch)
+			{
+				displayStatus = "none";
+			}
+
+			divSearch.style.display = displayStatus;
+		}
+
+		SetPNZDisplay (pageIndex);
+
+		LoadZoom ();
+	}
+}
+
+function FramePageLoaded ()
+{
+	if (isUpLevel && viewMgr == null)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+		if (fileDelim >= 0)
+		{
+			var fileName = curPath.substring (fileDelim + 1, curPath.length);
+			var pageIndex = PageIndexFromFileName (fileName);
+			SetCurPageInGoto (pageIndex);
+			SetPNZDisplay (pageIndex);
+		}
+	}
+}
+
+function LoadZoom ()
+{
+	var zoomWidget = frmToolbar.ifrmPNZ;
+	if (zoomWidget)
+	{
+		if (g_ZoomLoaded)
+		{
+			zoomWidget.findContent();
+			PageLoadedDoCallback ();
+		}
+		else
+		{
+			window.setTimeout("LoadZoom()", 500);
+		}
+	}
+	else
+	{
+		PageLoadedDoCallback ();
+	}
+}
+
+function SetCurPageInGoto (pageIndex)
+{
+	var gotoPageSelect = frmToolbar.document.all("Select1");
+	if (gotoPageSelect != null)
+	{
+		gotoPageSelect.value = pageIndex;
+	}
+}
+
+function SetPNZDisplay (pageIndex)
+{
+	var divPNZ = frmToolbar.document.all("divPNZ");
+	if (divPNZ)
+	{
+		var displayStatus = "block";
+		if (g_FileList[pageIndex].PageID < 0)
+		{
+			displayStatus = "none";
+		}
+
+		divPNZ.style.display = displayStatus;
+	}
+}
+
+function ViewMgrDefaultFind()
+{
+	return;
+}
+
+function ViewMgrDefaultResize(size)
+{
+	return;
+}
+
+
+
+g_callBackFunctionArray = new Array();
+function PageLoadedDoCallback()
+{
+	if (g_WidgetsLoaded)	
+	{
+		for( var i=0; i < g_callBackFunctionArray.length; i++ )
+		{
+			g_callBackFunctionArray[i]();
+		}
+		g_callBackFunctionArray = new Array();
+	}
+	else
+	{
+		window.setTimeout("PageLoadedDoCallback()", 500);
+	}
+}
+
+
+function ParseParams (strRawParams)
+{
+	strRawParams = strRawParams.substring(1);
+
+	var arrayParamTokens = strRawParams.split('&');
+	for (var count = 0; count < arrayParamTokens.length; count++)
+	{
+		arrayParamTokens[count] = unescape(arrayParamTokens[count]);
+		this[count] = arrayParamTokens[count].substring(0, arrayParamTokens[count].indexOf('='));
+		this[this[count]] = arrayParamTokens[count].substring(arrayParamTokens[count].indexOf('=') + 1);
+	}
+
+	return this;
+}
+
+var gParams = ParseParams (location.search);
+
+var g_PageParamValue = gParams['page'];
+if (g_PageParamValue != null && 
+	g_PageParamValue.length > 0)
+{
+	var pageIndex = PageIndexFromName (g_PageParamValue);
+	if (pageIndex > 0 && pageIndex < g_FileList.length)
+	{
+		g_CurPageIndex = pageIndex;
+	}
+}
+else
+{
+	g_PageParamValue = null;
+}
+
+var g_FirstPageToLoad = g_PageParamValue;
+
+var g_ZoomParamValue = gParams['zoom'];
+if (g_ZoomParamValue != null && g_ZoomParamValue.length > 0)
+{
+	g_ZoomParamValue = 1.0 * g_ZoomParamValue;
+	if (g_ZoomParamValue >= 10 && g_ZoomParamValue <= 500)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (viewMgr && viewMgr.Zoom) { viewMgr.Zoom(g_ZoomParamValue); } };
+	}
+}
+
+var g_ShapeParamValue = gParams['shape'];
+if (g_ShapeParamValue != null && g_ShapeParamValue.length > 0)
+{
+	if (g_PageParamValue != null && g_PageParamValue.length > 0)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var shapeNode = FindShapeXMLByName (g_PageParamValue, g_ShapeParamValue); if (shapeNode) { frmToolbar.TreeSelect (g_FileList[g_CurPageIndex].PageID, shapeNode.attributes.getNamedItem ("ID").text); } };
+	}
+	else
+	{
+		g_ShapeParamValue = null;
+	}
+}
+
+var g_SearchParamValue = gParams['search'];
+if (g_SearchParamValue != null && g_SearchParamValue.length > 0)
+{
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (frmToolbar.theForm) { frmToolbar.theForm.findString.value = g_SearchParamValue; } };
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var goButton = frmToolbar.document.all('GoButton'); if(goButton) { goButton.click(); } };
+}
+
+
+var strHLTooltipText = "按一下以跟隨超連結。";
+var strPropsTooltipText = "Ctrl + 按一下以檢視詳細資料。";
+
+var strFocusHLTooltipText = "按下 Enter 以追蹤超連結。";
+var strFocusPropsTooltipText = "Ctrl + Enter 以檢視詳細資料。";
+
+
+function UpdateTooltip (element, pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var strHL, strProps;
+	
+		if(frmDrawing.event.type == "focus")
+		{
+			strHL = strFocusHLTooltipText;
+			strProps = strFocusPropsTooltipText;
+		}
+		else
+		{
+			strHL = strHLTooltipText;
+			strProps = strPropsTooltipText;
+		}
+
+		var strTooltip = "";
+		if (element.origTitle)
+		{
+			strTooltip = element.origTitle.toString();
+		}
+			
+		var shapeNode = FindShapeXML (pageID, shapeID);
+
+		if( shapeNode != null )
+		{
+			var propColl = shapeNode.selectNodes ("Prop");
+			if (propColl != null && propColl.length > 0)
+			{
+				if (strTooltip.length > 0)
+				{
+					strTooltip += "\n";
+				} 
+				strTooltip += strProps;
+			}
+		}
+
+		var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+		if (hlObj != null && (hlObj.DoFunction.length > 0 || hlObj.Hyperlink.length > 0))
+		{
+			if (strTooltip.length > 0)
+			{
+				strTooltip += "\n";
+			}	
+			strTooltip += strHL;
+		}
+
+		element.title = strTooltip;
+		if (element.alt != null)
+		{
+			element.alt = strTooltip;
+		}
+	}
+}
+
+
+function GetHLAction (shapeNode, pageID, shapeID)
+{
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		if (hlColl.length > 1)
+		{
+			hlObj.DoFunction = "showMenu(" + pageID + ", " + shapeID + ");"
+		}
+		else if (hlColl.length == 1)
+		{
+			hlObj = CreateHLObj (hlColl.item(0));
+		}
+	}
+
+	return hlObj;
+}
+
+function HLObj (strHyperlink, strDoFunction, strDesc, newWindow) 
+{
+	this.Hyperlink = strHyperlink;
+	this.DoFunction = strDoFunction;
+	this.Desc = strDesc;
+	this.NewWindow = newWindow;
+}
+
+function clickMenu()
+{
+	var e = window.frmDrawing.event;
+	var menu = frmDrawing.document.all("menu1")
+	
+	if (menu != null && menu.style.display != "none")
+	{
+		menu.style.display="none";
+
+		if (e && e.srcElement && e.srcElement.doFunction != null)
+		{
+			eval(e.srcElement.doFunction);
+		}
+	}
+}
+
+function toggleMenuDiv(el, highlight) 
+{
+	var divEl = el;
+	var aEl = null;
+
+	var ID = el.id.substring (g_HLMenuEntryDiv.length, el.id.length) * 1.0;
+	aEl = divEl.all(g_HLMenuEntry + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenuLink(el, highlight) 
+{
+	var divEl = null;
+	var aEl = el;
+
+	var ID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	divEl = frmDrawing.document.all(g_HLMenuEntryDiv + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenu(divEl, aEl, highlight)
+{
+	if (highlight)
+	{
+	  divEl.className="highlightItem";
+	  aEl.className="highlightItem";
+	} 
+	else 
+	{
+	  divEl.className="menuItem";
+	  aEl.className="menuItem";
+	}
+}
+
+function showMenu(pageID, shapeID)
+{
+	var shapeXML = FindShapeXML (pageID, shapeID);
+	if (shapeXML != null)
+	{
+		CreateHLMenu (shapeXML);
+		var menu = frmDrawing.document.all("menu1");
+		if (menu != null)
+		{
+			menu.style.visibility = "hidden";
+			menu.style.display = "inline";
+
+			var e = window.frmDrawing.event;
+			var elem = e.srcElement;
+
+			var clientWidth = frmDrawing.document.body.clientWidth;
+			var clientHeight = frmDrawing.document.body.clientHeight;
+
+			var menuWidth = menu.clientWidth;
+			var menuHeight = menu.clientHeight;
+
+			var menuLeft = e.x;
+			var menuTop = e.y;
+			
+			var doc = frmDrawing.document;
+			var img = doc.all("ConvertedImage");
+			
+			if( (menuLeft + doc.body.scrollLeft < elem.offsetLeft) || (menuLeft + doc.body.scrollLeft > elem.offsetLeft + elem.offsetWidth + img.offsetLeft) )
+			{
+				menuLeft = elem.offsetLeft + img.offsetLeft + elem.offsetWidth/2;
+			}
+			
+			if( (menuTop + doc.body.scrollTop < elem.offsetTop) || (menuTop + doc.body.scrollTop > elem.offsetTop + elem.offsetHeight + img.offsetTop) )
+			{
+				menuTop = elem.offsetTop + img.offsetTop + elem.offsetHeight/2;
+			}
+
+			var scrollBarSize = 20;
+			if (menuLeft + menuWidth > clientWidth - scrollBarSize)
+			{
+				menuLeft = clientWidth - menuWidth - scrollBarSize;
+			}
+
+			if (menuTop + menuHeight > clientHeight - scrollBarSize)
+			{
+				menuTop = clientHeight - menuHeight - scrollBarSize;
+			}
+
+			menu.style.posLeft = menuLeft + frmDrawing.document.body.scrollLeft;
+			menu.style.posTop = menuTop + frmDrawing.document.body.scrollTop;
+			menu.style.visibility = "visible";
+
+			var firstLink = menu.all(g_HLMenuEntry + "0");
+			firstLink.focus ();
+			
+			if (e.keyCode == 13)
+			{
+				toggleMenuLink(firstLink, true);
+			}
+
+			e.cancelBubble = true;
+		}
+	}
+}
+
+function MenuKeyDown ()
+{
+	var e = window.frmDrawing.event;
+	var el = e.srcElement;
+
+	if (e.keyCode == 27)	// 27 == ESC
+	{
+		clickMenu();
+		e.cancelBubble = true;
+		return;
+	}
+
+	var curSelID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	var newSelID = -1;
+
+	if (e.keyCode == 40)	// 40 == down arrow
+	{
+		newSelID = curSelID + 1;
+	}
+	else if (e.keyCode == 38) // 38 == up arrow
+	{
+		newSelID = curSelID - 1;
+	}
+
+	var newSelEntry = frmDrawing.document.all(g_HLMenuEntry + newSelID);
+
+	if (newSelEntry)
+	{
+		newSelEntry.focus();
+
+		var curSelEntry = frmDrawing.document.all(g_HLMenuEntry + curSelID);
+		toggleMenuLink (curSelEntry, false);
+		toggleMenuLink (newSelEntry, true);
+	}
+
+	e.cancelBubble = true;
+}
+
+function CreateHLMenu (shapeNode)
+{
+	var strHLMenuHTML = "";
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		strHLMenuHTML = "<div class='innerhlMenu'>";
+
+		var hlCount = hlColl.length;
+		for (var count = 0; count < hlCount; count++)
+		{
+			var hlObj = CreateHLObj (hlColl.item(count));
+			if (hlObj != null)
+			{
+				if (hlObj.Desc.length > 0)
+				{
+					strHLMenuHTML += "<div id='" + (g_HLMenuEntryDiv + count) + "' class='menuItem' onmouseover='toggleMenuDiv(this, true)' onmouseout='toggleMenuDiv(this, false)' onclick='" + (g_HLMenuEntry + count) + ".click()'>";
+					strHLMenuHTML += "<a href=";
+
+					if (hlObj.DoFunction.length > 0)
+					{
+						strHLMenuHTML += "'javascript:" + hlObj.DoFunction + "'";
+					}
+					else
+					{
+						var targetVal = "_top";
+						if (hlObj.NewWindow)
+						{
+							targetVal = "_blank";
+						}
+						strHLMenuHTML += "'" + hlObj.Hyperlink + "' target='" + targetVal + "'";
+					}
+
+					strHLMenuHTML += " class='menuItem' id='" + (g_HLMenuEntry + count) + "' onkeydown='parent.MenuKeyDown();' onmouseover='toggleMenuLink(this, true)' onmouseout='toggleMenuLink(this, false)'>";
+					strHLMenuHTML += hlObj.Desc + "</a></div>";
+				}
+			}
+		}
+		
+		strHLMenuHTML += "</div>";
+	}
+
+	frmDrawing.menu1.innerHTML = strHLMenuHTML;
+}
+
+function CreateHLObj (hlNode)
+{
+	var strAddress = "";
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (hlNode != null)
+	{
+		var hlAddress = hlNode.selectSingleNode("HLURL:Address/textnode()");
+		if (hlAddress != null && hlAddress.text.length > 0)
+		{
+			var absoluteURL = hlNode.selectSingleNode("HLURL:AbsoluteURL/textnode()");
+			var strAbsURL = absoluteURL.text;
+			var strAddr = hlAddress.text;
+
+			if (strAbsURL.indexOf (g_FileProtocol) == 0)
+			{
+				var strAbsPath = strAbsURL.substring (g_FileProtocol.length, strAbsURL.length);
+				strAbsPath.toLowerCase ();
+				strAddr.toLowerCase ();
+				if (strAbsPath == strAddr)
+				{
+					strAddress = strAbsPath;
+				}
+				else
+				{
+					strAddress = strAddr;
+					
+					var hlSubAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+					if (hlSubAddress != null && hlSubAddress.text.length > 0)
+					{
+						strAddress += '#';
+						strAddress += hlSubAddress.text;
+					}
+
+					var hlExtraInfo = hlNode.selectSingleNode("HLURL:ExtraInfo/textnode()");
+					if (hlExtraInfo != null && hlExtraInfo.text.length > 0)
+					{
+						strAddress += '?';
+						strAddress += hlExtraInfo.text;
+					}
+				}
+			}
+			else
+			{
+				strAddress = strAbsURL;
+			}		
+
+			strAddress = HTMLEscape (strAddress);
+			hlObj.Hyperlink += strAddress;
+		}
+		else
+		{
+			hlAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+			if (hlAddress != null && hlAddress.text.length > 0)
+			{
+				strAddress = hlAddress.text;
+
+				var pageShapeSep = strAddress.lastIndexOf ('/');
+				if (pageShapeSep > 0)
+				{
+					if (PageIndexFromName (strAddress) < 0)
+					{
+						strAddress = unescape (strAddress);
+						if (PageIndexFromName (strAddress) < 0)
+						{
+							strAddress = strAddress.substring (0, strAddress.lastIndexOf ('/'));
+						}
+					}
+				}
+
+				var pageIndex = PageIndexFromName (strAddress);
+
+				hlObj.DoFunction = "GoToPage (" + pageIndex + ");";
+				strAddress = HTMLEscape (strAddress);
+				hlObj.Desc = strAddress;
+			}
+		}
+
+		hlDesc = hlNode.selectSingleNode("HLURL:Description/textnode()");
+		if (hlDesc != null && hlDesc.text.length > 0)
+		{
+			hlObj.Desc = HTMLEscape (hlDesc.text);
+		}
+		else
+		{
+			hlObj.Desc = strAddress;
+		}
+	
+		var hlNewWindow = hlNode.selectSingleNode("HLURL:NewWindow/textnode()");
+		if (hlNewWindow != null && hlNewWindow.text.length > 0)
+		{
+			hlObj.NewWindow = (hlNewWindow.text == "1");
+		}		
+	}
+
+	return hlObj;
+}
+
+
+		</script>
+	</head>
+	
+	<frameset id="frmstOuter" cols="237,*" title="clonezilla_select_flow_chart">
+		<frame src="clonezilla_select_flow_chart.files/toolbar.htm" name="frmToolbar" id="frmToolbar" title="此框架包含管理您繪圖的工具。" frameborder="6" bordercolor="#999999" scrolling="no" marginheight="0" marginwidth="0" >
+		<frame src="clonezilla_select_flow_chart.files/gif_1.htm" name="frmDrawing" title="此框架包含您繪圖的頁面。" marginheight="10" marginwidth="10" onload="if (parent.isUpLevel) FramePageLoaded()" >
+
+		<noframes>
+			<body>
+
+				<h1>clonezilla_select_flow_chart</h1>
+				<ul>
+				<li><a href="clonezilla_select_flow_chart.files/gif_1.htm">頁-1</a></li>
+
+				</ul>
+			</body>
+		</noframes>
+	</frameset>
+	
+</html>
+
Index: /drbl_ui/flow_chart/drbl_mode.files/data.xml
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/data.xml	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/data.xml	(revision 21)
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisioDocument>
+	<DocumentProperties>
+		<Title></Title>
+		<HyperlinkBase href=""></HyperlinkBase>
+	</DocumentProperties>
+	<Pages>
+		<Page ID="0" Name="頁-1" NameU="Page-1">
+			<Layer IX="0">
+				<Name>流程圖</Name>
+				<NameUniv>Flowchart</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Layer IX="1">
+				<Name>連接器</Name>
+				<NameUniv>Connector</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Shapes>
+				<Shape ID="1" UniqueID="{2114C4C3-EBB1-4ED2-8268-DEB3C82994B5}" Name="終端子" NameU="Terminator" Master="0">
+					<Text>start</Text>
+					<XForm>
+						<PinX Unit="MM">4.015748031496063</PinX>
+						<PinY Unit="MM">11.086556868661832</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="2" UniqueID="{F9EA8A62-53C8-41AA-B9FE-1F031407983C}" Name="決策" NameU="Decision" Master="2">
+					<Text>drbl_mode_0</Text>
+					<XForm>
+						<PinX Unit="MM">4.015748031496063</PinX>
+						<PinY Unit="MM">10.137795275590550</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="3" UniqueID="{DF114902-4515-4E6C-BCC5-3BF2D225CD4C}" Name="程序" NameU="Process" Master="3">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">4.015748031496063</PinX>
+						<PinY Unit="MM">6.299212598425197</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="4" UniqueID="{6A8BBD69-398F-4EF6-B175-9DC3400DBCF9}" Name="動態連接器" NameU="Dynamic connector" Master="4">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">4.015748031496063</PinX>
+						<PinY Unit="MM">9.547244094488189</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="5" UniqueID="{C156D2A4-1F48-443F-BF91-679AEA60B120}" Name="決策.5" NameU="Decision.5" Master="2">
+					<Text>drbl_mode_1</Text>
+					<XForm>
+						<PinX Unit="MM">4.015748031496063</PinX>
+						<PinY Unit="MM">8.956692913385826</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="6" UniqueID="{00BB09ED-56E5-4770-9692-629E1D591DA4}" Name="動態連接器.6" NameU="Dynamic connector.6" Master="4">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">4.015748031496063</PinX>
+						<PinY Unit="MM">7.627952755905511</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="9" UniqueID="{45D12CDE-4982-4027-B378-3C43E7D90A14}" Name="動態連接器.9" NameU="Dynamic connector.9" Master="4">
+					<XForm>
+						<PinX Unit="MM">4.015748031496063</PinX>
+						<PinY Unit="MM">10.692856081260258</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="11" UniqueID="{D4128DFF-7F30-4964-8B83-28B92C2BABF0}" Name="動態連接器.11" NameU="Dynamic connector.11" Master="4">
+					<XForm>
+						<PinX Unit="MM">3.523622047244094</PinX>
+						<PinY Unit="MM">8.218503937007874</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="12" UniqueID="{9A16FF6C-BC3C-426D-A78A-8CAEF5ADBCC6}" Name="動態連接器.12" NameU="Dynamic connector.12" Master="4">
+					<XForm>
+						<PinX Unit="MM">4.507874015748032</PinX>
+						<PinY Unit="MM">7.627952755905511</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="7" UniqueID="{0CC44E7E-632F-47E9-960A-9AD4779C3FA2}" Name="終端子.41" NameU="Terminator.41" Master="0">
+					<Text>end</Text>
+					<XForm>
+						<PinX Unit="MM">4.015748031496063</PinX>
+						<PinY Unit="MM">5.181045057638212</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="8" UniqueID="{4CB0089E-66CA-430F-9617-AC7B2825671B}" Name="動態連接器.8" NameU="Dynamic connector.8" Master="4">
+					<XForm>
+						<PinX Unit="MM">4.015748031496063</PinX>
+						<PinY Unit="MM">5.659448818897637</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+			</Shapes>
+		</Page>
+	</Pages>
+</VisioDocument>
Index: /drbl_ui/flow_chart/drbl_mode.files/filelist.xml
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/filelist.xml	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/filelist.xml	(revision 21)
@@ -0,0 +1,32 @@
+<xml xmlns:o="urn:schemas-microsoft-com:office:office">
+ <o:File HRef="arrow.gif"/>
+ <o:File HRef="minimize.gif"/>
+ <o:File HRef="maximize.gif"/>
+ <o:File HRef="go.gif"/>
+ <o:File HRef="fullpage.gif"/>
+ <o:File HRef="plus.gif"/>
+ <o:File HRef="minus.gif"/>
+ <o:File HRef="panminus.gif"/>
+ <o:File HRef="panplus.gif"/>
+ <o:File HRef="tick-foc.gif"/>
+ <o:File HRef="tick-off.gif"/>
+ <o:File HRef="tick-on.gif"/>
+ <o:File HRef="toc.gif"/>
+ <o:File HRef="toc2.gif"/>
+ <o:File HRef="data.xml"/>
+ <o:File HRef="frameset.js"/>
+ <o:File HRef="keys.js"/>
+ <o:File HRef="visio.css"/>
+ <o:File HRef="vml_1.emz"/>
+ <o:File HRef="gif_1.gif"/>
+ <o:File HRef="vml_1.js"/>
+ <o:File HRef="vml_1.htm"/>
+ <o:File HRef="gif_1.js"/>
+ <o:File HRef="gif_1.htm"/>
+ <o:File HRef="zoom.htm"/>
+ <o:File HRef="find.js"/>
+ <o:File HRef="widgets.htm"/>
+ <o:File HRef="toolbar.htm"/>
+ <o:MainFile HRef="../drbl_mode.htm"/>
+ <o:File HRef="filelist.xml"/>
+</xml>
Index: /drbl_ui/flow_chart/drbl_mode.files/find.js
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/find.js	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/find.js	(revision 21)
@@ -0,0 +1,499 @@
+
+var strShapeName	= "圖形名稱";
+var strShapeText	= "圖形文字";
+var strProps		= "圖形資料";
+var strResults		= "搜尋結果關於:";
+
+var strShape	= "圖形名稱:";
+var strNoCustomPropertiesToDisplayText = "CTRL+按一下繪圖中的圖形以檢視詳細資料。";
+
+var FindShapeXML = parent.FindShapeXML;
+var Unquote = parent.Unquote;
+var put_Location = parent.put_Location;
+
+
+var strChkBox		= "Chkbox";
+var strPropChkBox	= "PropChkbox";
+
+function doExpando(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = up.src;
+	}else{
+		xxx.style.display = "none"
+		yyy.src = down.src;
+	}
+}
+
+function doExp(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = "minus.gif";
+	}else{
+		xxx.style.display = "none"
+		yyy.src = "plus.gif";
+	}
+}
+
+
+function FindOnClick()
+{
+	var count, indexOfString;
+	
+	var fieldsToSearchArray = new Array();
+	if (parent.xmlData != null && document.theForm[strProps + strChkBox].checked)
+	{
+		for( count=0; count < document.theForm.length; count++ )
+		{
+			indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+			if( -1 != indexOfString && document.theForm[count].checked )
+			{
+				fieldsToSearchArray[ fieldsToSearchArray.length ] = document.theForm[count].name.slice(0, indexOfString);
+			}
+		}
+	}
+
+	var searchTokensArray = CreateSearchTokens (document.theForm.findString.value);
+
+	if (searchTokensArray.length > 0)
+	{
+		var findArray = Find(searchTokensArray, fieldsToSearchArray);
+		var ArrayLength = findArray.length;
+		var strResultsHTML = "找不到相符項目。";
+		var lastPageID = null;
+		var shapeID;
+		
+		
+		if(ArrayLength > 0)
+		{
+			strResultsHTML = strResults + ' <b>'+ parent.HTMLEscape(document.theForm.findString.value) +'</b>';
+			for ( count = 0; count < ArrayLength; count++)
+			{
+			
+				if( lastPageID != findArray[count].PageID )
+				{
+					lastPageID = findArray[count].PageID;
+				}
+
+				shapeID = findArray[count].ShapeID;
+				strResultsHTML += '<p class="results"><a href="javascript:populateSearchResultDetails(\'results_'+ lastPageID +'_'+ shapeID +'\', '+ lastPageID +','+ shapeID +'); TogglePlus(results_' + lastPageID + '_' + shapeID + ',\'img_' + lastPageID + '_' + shapeID + '\', hideResults)"><img src="plus.gif" alt="顯示/隱藏圖形詳細資料" width="13" height="9" border="0" id="img_'+ lastPageID +'_'+ shapeID +'"></a>\n'
+				strResultsHTML += '<a  class="blu1" href="JavaScript:FindQuerySelect(';
+
+				strResultsHTML += findArray[count].PageID + ",";
+				strResultsHTML += findArray[count].ShapeID + ",";
+				strResultsHTML += findArray[count].PinX + ",";
+				strResultsHTML += findArray[count].PinY;
+
+				strResultsHTML += ')">'+ findArray[count].Title +'</a></p>\n'
+
+				strResultsHTML += '</div>\n';
+				strResultsHTML += '<div class="indent" id="results_'+ lastPageID +'_'+ shapeID +'" style="display:none;width:100%;"></div>\n'
+			}
+
+		}
+		var divAdvSrch = document.all("hideAdvSrch");
+		var imgAS0 = document.all("as0");
+		
+		var tmpObj = document.all("hideResults");
+		if( tmpObj != null )
+		{
+			tmpObj.innerHTML = strResultsHTML;
+			tmpObj.open = "true";
+			tmpObj.style.display = "block";
+		}
+	}
+}
+
+function CreateSearchTokens (strUserString)
+{
+	var searchTokensArray = new Array();
+
+	var strToken = "";
+	var chCurChar;
+
+	for (var count = 0; count < strUserString.length; count++)
+	{
+		chCurChar = strUserString.charAt(count);
+		if (chCurChar == '"')
+		{
+			var nNextQuote = strUserString.indexOf('"', count + 1);
+			if (nNextQuote >= 0)
+			{
+				strToken = strUserString.slice(count + 1, nNextQuote);
+				searchTokensArray[searchTokensArray.length] = strToken;
+				strToken = "";
+				count = nNextQuote;
+			}
+		}
+		else if (chCurChar == ' ')
+		{
+			if (strToken.length > 0)
+			{
+				searchTokensArray[searchTokensArray.length] = strToken;
+			}
+
+			strToken = "";
+		}
+		else
+		{
+			strToken += chCurChar;
+		}
+	}
+
+	if (strToken.length > 0)
+	{
+		searchTokensArray[searchTokensArray.length] = strToken;
+	}
+
+	return searchTokensArray;
+}
+
+function populateSearchResultDetails( divID, pageID, shapeID )
+{
+	var tmpShape = FindShapeXML (pageID, shapeID);
+	var strOutput = CreatePropTable( tmpShape );
+	
+	var tmpObj = document.all(divID);
+	if( tmpObj != null )
+	{
+		tmpObj.innerHTML = strOutput;
+	}
+}
+
+function makeAdvancedFindCheckboxes(div)
+{
+	if (parent.xmlData)
+	{
+		var strOutput = "";
+
+		strOutput += "<INPUT type='checkbox' name='" + strShapeName + strChkBox + "' id='" + strShapeName + strChkBox + "' checked><label for='" + strShapeName + strChkBox + "'>" + strShapeName + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strShapeText + strChkBox + "' id='" + strShapeText + strChkBox + "' checked><label for='" + strShapeText + strChkBox + "'>" + strShapeText + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strProps + strChkBox + "' id='" + strProps + strChkBox + "' onclick='AdvSearchCustomPropCheck ()'checked ><label for='" + strProps + strChkBox + "'>" + strProps +"</label><br>\n";
+		strOutput += "<div id='divCPBoxes' style='margin-left:1em;'>";
+		
+		var objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label");
+		var filter = "";
+		var boolFirstPass = true;
+		var tmpPropName;
+		while( objNodes.length > 0)
+		{
+			tmpPropName = objNodes.item( 0 ).text;
+			var escapedPropName = parent.EscapeString(tmpPropName);
+			if( true == boolFirstPass )
+			{
+				filter = ". != '" + escapedPropName + "'";
+				boolFirstPass = false;
+			}
+			else
+			{
+				filter += " and . != '" + escapedPropName + "'";
+			}
+
+			tmpPropName = parent.HTMLEscape (tmpPropName);
+			strOutput += "<INPUT type='checkbox' name='" + tmpPropName + strPropChkBox + "' id='"+ tmpPropName + strPropChkBox + "' checked><label for='"+ tmpPropName + strPropChkBox + "'>" + tmpPropName +"</label><br>\n";
+
+			objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label["+ filter + "]");
+		}
+		strOutput += "</div>"
+		div.innerHTML = strOutput;
+	}
+}
+
+function AdvSearchCustomPropCheck ()
+{
+	for( count=0; count < document.theForm.length; count++ )
+	{
+		indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+		if( -1 != indexOfString )
+		{
+			document.theForm[count].disabled = !document.theForm[strProps + strChkBox].checked;
+		}
+	}
+}
+
+
+function CResultItem(title, pageID, shapeID, pinX, pinY)
+{
+	 this["Title"] = title;
+	 this["PageID"] = pageID;
+	 this["ShapeID"] = shapeID;
+	 this["PinX"] = pinX;
+	 this["PinY"] = pinY;
+}
+
+function FindParentPage(nodeObject)
+{
+	if(nodeObject == null)
+	{
+		return null;
+	}
+	if(nodeObject.baseName == "Page")
+		return nodeObject;
+	else
+		return FindParentPage(nodeObject.parentNode);
+}
+
+function QueryStringForMatch(shapeNode, regTextForFind, filterString)
+{
+	if (filterString.length > 0)
+	{
+		var nodesToCheck = shapeNode.selectNodes(filterString);
+
+		var nodeCount = nodesToCheck.length;
+		var stringToParse;
+		for(var ncount = 0; ncount < nodeCount; ncount++)
+		{
+			stringToParse = nodesToCheck.item(ncount).text;
+			stringToParse = stringToParse.toLowerCase ();
+			if(stringToParse.indexOf(regTextForFind) > -1)
+			{
+				return true;
+			}
+		}
+	}
+}
+
+function GetShapeTitle(shapeNode)
+{
+	var objTempName = null;
+	var objTempTextElement = shapeNode.selectSingleNode("./Text");
+	if(objTempTextElement != null)
+	{
+		var objTextNode = objTempTextElement.selectSingleNode("textnode()");
+		if (objTextNode != null)
+		{
+			return parent.HTMLEscape (objTextNode.text);
+		}
+	}
+
+	objTempName = shapeNode.selectSingleNode("./@Name");
+	if(objTempName != null)
+	{
+		return parent.HTMLEscape (objTempName.text);
+	}
+
+	return "";
+}
+
+function GetPageTitle(pageID)
+{
+	var pagesObj = parent.xmlData.selectSingleNode("VisioDocument/Pages");
+	if(!pagesObj)
+	{
+		return "";
+	}
+
+	var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+	var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+	if(!pageObj)
+	{
+		return "";
+	}
+
+	var pageNameNode = pageObj.selectSingleNode("@Name");
+	if(!pageNameNode)
+	{
+		return "";
+	}
+	return pageNameNode.text;
+}
+
+function Find(searchTokensArray, propsToSearchArray)
+{
+	var bXMLNotValid = false;
+	var findArray = new Array();
+	var findIndex = 0;
+
+	if (parent.xmlData != null && searchTokensArray.length > 0)
+	{
+		var fieldsToSearchArray = new Array();
+		var filterString = "";
+		if( null != propsToSearchArray &&
+			propsToSearchArray.length > 0 )
+		{
+			var propFilterString = "";
+			for( var count=0; count< propsToSearchArray.length; count++ )
+			{
+				if( count == 0 )
+				{
+					propFilterString = "[. = '" + parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+				else
+				{
+					propFilterString += " or . = '"+ parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+			}
+			propFilterString += "]";
+
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Prop[Label"+ propFilterString +"]/Value";
+		}
+
+		if (document.theForm[strShapeText + strChkBox].checked)
+		{
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Text";
+		}
+
+		if (fieldsToSearchArray.length > 0)
+		{
+			filterString = "(.//(";
+
+			for (var fieldCount = 0; fieldCount < fieldsToSearchArray.length; fieldCount++)
+			{
+				if (fieldCount != 0)
+				{
+					filterString += " | ";
+				}
+
+				filterString += fieldsToSearchArray[fieldCount];
+			}
+
+			filterString += ")/textnode())";
+		}
+
+		var objShapeNodes;
+
+		if (document.theForm[strShapeName + strChkBox].checked)
+		{
+			if (filterString.length > 0)
+			{
+				filterString += " | ";
+			}
+			filterString += "(@Name)";
+
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape");
+		}
+		else
+		{
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape[(Prop/Value | Prop/Label | Text)]");
+		}
+
+		var shapeCount = objShapeNodes.length;
+		var objTempData = new CResultItem("A Label","PageID","ShapeID","PinX","PinY");
+		var objTempShape = null;
+
+		for (count = 0; count < shapeCount; count++)
+		{		
+			objTempShape = objShapeNodes.item(count);
+
+			var objParentPageNode = FindParentPage(objTempShape);
+			if (objParentPageNode == null)
+			{
+				continue;
+			}
+
+			var objPageIDNode = objParentPageNode.selectSingleNode("@ID/textnode()");
+			if(objPageIDNode == null)
+			{
+				continue;
+			}
+			var pageID = objPageIDNode.text;
+
+			var pageIndex = parent.PageIndexFromID (pageID);
+			if (pageIndex < 0)
+			{
+				continue;
+			}
+
+			var objLayerMember = objTempShape.selectSingleNode("LayerMem/LayerMember");
+			if (objLayerMember != null && objLayerMember.text.length > 0)
+			{
+				var layerArray = objLayerMember.text.split (';');
+				var visibleLayer = false;
+				for (var layerCount = 0; (layerCount < layerArray.length) && !visibleLayer; layerCount++)
+				{
+					var objLayerVisible = objParentPageNode.selectSingleNode("Layer[@IX=" + layerArray[layerCount] + "]/Visible");
+					if (objLayerVisible != null)
+					{
+						 visibleLayer = (objLayerVisible.text != 0);
+					}
+				}
+				
+				if (!visibleLayer)
+				{
+					continue;
+				}
+			}
+
+			for (var tokenCount = 0; tokenCount < searchTokensArray.length; tokenCount++)
+			{
+				var textToFind = searchTokensArray[tokenCount];
+				textToFind = textToFind.toLowerCase ();
+
+				if (QueryStringForMatch(objTempShape, textToFind, filterString))
+				{
+					objTempData.Title = GetShapeTitle(objTempShape);
+					objTempData.PageID = pageID;
+
+					objShapeIDNode = objTempShape.selectSingleNode("@ID/textnode()");
+					if(objShapeIDNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.ShapeID = objShapeIDNode.text;
+					objPinXNode = objTempShape.selectSingleNode("XForm/PinX/textnode()");
+					if(objPinXNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinX = objPinXNode.text;
+					objPinYNode = objTempShape.selectSingleNode("XForm/PinY/textnode()");
+					if(objPinYNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinY = objPinYNode.text;
+
+					findArray[findIndex] = new CResultItem(objTempData.Title, objTempData.PageID, objTempData.ShapeID, objTempData.PinX, objTempData.PinY);
+					findIndex++;
+					break;
+				}
+			}
+		}
+		if(bXMLNotValid)
+		{
+			findArray.length = 0;
+		}
+	}
+
+	return findArray;
+}
+
+function FindQuerySelect(pageID, shapeID, pinX, pinY)
+{
+	if ((!widgets.GoTo && parent.g_FileList.length > 1) || (widgets.GoTo && parent.g_FileList[document.all("Select1").value].PageID != pageID))
+	{
+		parent.g_callBackFunctionArray[parent.g_callBackFunctionArray.length] = function () { parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY); };
+		parent.GoToPageByID(pageID);
+	}
+	else 
+	{
+		if (parent.viewMgr != null)
+		{
+			parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY);
+		}
+	}
+}
+
+function TreeSelect(pageID, shapeID)
+{
+	var shapeNode = FindShapeXML (pageID, shapeID);
+	if (shapeNode != null)
+	{
+		var pinXNode = shapeNode.selectSingleNode("XForm/PinX/textnode()");
+		var pinYNode = shapeNode.selectSingleNode("XForm/PinY/textnode()");
+
+		if (pinXNode != null && pinYNode != null)
+		{
+			FindQuerySelect (pageID, shapeID, pinXNode.text, pinYNode.text);
+		}
+	}
+}
+
+
+var g_RowStyleList = parent.g_RowStyleList;
+var FillPropPane = parent.FillPropPane;
+var CreatePropTable = parent.CreatePropTable;
+
Index: /drbl_ui/flow_chart/drbl_mode.files/frameset.js
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/frameset.js	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/frameset.js	(revision 21)
@@ -0,0 +1,653 @@
+
+var MSIE = false;
+var ver = 0;
+var indexOfMSIE = navigator.userAgent.indexOf("MSIE"); 
+if(indexOfMSIE != -1)
+{
+	MSIE = true;
+	ver = parseFloat(navigator.userAgent.substring(indexOfMSIE + 5, navigator.userAgent.indexOf(";", indexOfMSIE)));
+}
+
+var isMac = (navigator.appVersion.indexOf("Macintosh") >= 0);
+var isUpLevel = (MSIE && ver >= 5 && !isMac);
+
+var xmlData = XMLData("drbl_mode.files/data.xml");
+
+var g_RowStyleList = new  Array(
+ "propViewerEvenRow",
+ "propViewerOddRow"
+);
+
+
+var strShape	= "圖形名稱:";
+
+
+
+function XMLData(file)
+{
+	var temp = null;
+	if(isUpLevel)
+	{
+		temp = CreateObject("Microsoft.XMLDOM");
+		if (temp == null)
+		{
+			temp = CreateObject("MSXML2.DOMDocument");
+		}
+
+		if (temp != null)
+		{
+			temp.async = false;
+		
+			temp.load(file);
+			if (temp.parseError.errorCode != 0)
+			{
+				temp = null;
+			}
+		}
+	}
+
+	return temp;
+}
+
+function CreateObject (strObj)
+{
+	var obj = null;
+	eval ("try { obj = new ActiveXObject(strObj); } catch (e) {}");
+	return obj;
+}
+
+function doVersion()
+{
+	if(isUpLevel)
+	{
+		frmToolbar.divDownLevel.innerHTML = "";
+		frmToolbar.divUpLevel.innerHTML = frmWidgets.divData.innerHTML;
+	}
+}	
+	
+	
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData != null)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(pageObj == null)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function OnShapeKey(pageID, shapeID)
+{
+	var e = window.frmDrawing.event;
+	
+	if(e.keyCode == 13 && e.ctrlKey)		//ctrl + enter
+	{
+		UpdateProps (pageID, shapeID);
+	}
+	else if (e.keyCode == 13)
+	{
+		OnShapeClick (pageID, shapeID);
+	}
+}
+
+function OnShapeClick (pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var e = frmDrawing.window.event;
+		var elem = e.srcElement;
+
+		if (e != null && e.ctrlKey && frmToolbar.widgets && frmToolbar.widgets.Details)
+		{
+			UpdateProps (pageID, shapeID);
+		}
+		else
+		{
+			var shapeNode = FindShapeXML (pageID, shapeID);
+			var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+			if (hlObj != null)
+			{
+				if (hlObj.DoFunction.length > 0)
+				{
+					eval (hlObj.DoFunction);
+				}
+				else if (hlObj.Hyperlink.length > 0)
+				{
+					if (hlObj.NewWindow)
+					{
+						window.open (hlObj.Hyperlink);
+					}
+					else
+					{
+						top.location.href = hlObj.Hyperlink.substr (0, 510);
+					}
+				}
+				else if (elem != null)
+				{
+					var href = elem.origHref;
+					if (href == null)
+					{
+						href = elem.href;
+					}
+
+					var target = elem.origTarget;
+					if (target == null)
+					{
+						target = elem.target;
+					}
+
+					if (href && href.length > 0)
+					{
+						href = HTMLEscape (href);
+						if (target && target == "_blank")
+						{
+							window.open (href);
+						}
+						else
+						{
+							top.location.href = href.substr (0, 510);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return (!isUpLevel);
+}
+
+function UpdateProps(pageID, shapeID)
+{
+	var shape = FindShapeXML (pageID, shapeID);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function UpdatePropsByShapeName(pageName, shapeName)
+{
+	var shape = FindShapeXMLByName (pageName, shapeName);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function FillPropPane (shapeNode, outputDivObj )
+{
+	if (shapeNode != null && outputDivObj != null)
+	{
+		if(outputDivObj.style.display == "none")
+		{
+			frmToolbar.ToggleWidget(outputDivObj);
+		}
+	
+		var strCPHTML = "";
+		
+		var shapeNameAttr = shapeNode.attributes.getNamedItem ("Name");
+		if (shapeNameAttr)
+		{
+			strCPHTML += "<span class='p2' style='padding-left:2px;'>" + strShape + " " + HTMLEscape(shapeNameAttr.text) + "</span>";
+		}
+
+		var strTableHTML = CreatePropTable (shapeNode);
+		if(strTableHTML.indexOf("<table") == -1)
+		{
+			strTableHTML = "<p class='p2' style='margin-left:1em;margin-top:0em;'>" + strTableHTML + "</p>";
+		}
+
+		if (strTableHTML.length > 0)
+		{
+			strCPHTML += strTableHTML;
+		}
+		else
+		{
+			strCPHTML = strNoCustomPropertiesToDisplayText;
+		}
+		
+		outputDivObj.innerHTML = strCPHTML;
+		outputDivObj.minHeight = 75;
+	}
+}
+
+function CreatePropTable (shapeNode)
+{
+	var strCPHTML = "";
+	var strStartTable = "<table class='propViewerTABLE' borderColor='#999999' cellPadding='2' width='95%' border='1' summary='此表格包含圖形詳細資料'>";
+		strStartTable += "<THEAD class='propViewerTHEAD'><TH>標籤</TH><TH>值</TH></THEAD>";
+	var strEndTable = "</TABLE>";
+
+	if (shapeNode != null)
+	{
+		var propColl = shapeNode.selectNodes ("Prop");
+
+		var propCount = propColl.length;
+		for (var count = 0; count < propCount; count++)
+		{
+			strCPHTML += "<TR class='" + g_RowStyleList[count % 2] + "'>";
+			
+			var strLabelText = "";
+			oPropLabel = propColl.item(count).selectSingleNode("Label/textnode()");
+			if (oPropLabel != null)
+			{
+				strLabelText = HTMLEscape (oPropLabel.text);
+			}
+			else
+			{
+				oPropName = propColl.item(count).attributes.getNamedItem ("Name");
+				if (oPropName)
+				{
+					strLabelText = HTMLEscape (oPropName.text);
+				}
+			}
+
+			if (strLabelText.length > 0)
+			{
+				strCPHTML += "<TD class='propViewerTD'>" + strLabelText + "</TD>";
+				strCPHTML += "<TD class='propViewerTD'>"
+
+				var strValueText = "&nbsp;";
+				oPropValue = propColl.item(count).selectSingleNode("Value/textnode()");
+				if (oPropValue)
+				{
+					strValueText = HTMLEscape (oPropValue.text);
+				}
+
+				strCPHTML += strValueText + "</TD></TR>";
+			}
+		}
+
+		if(strCPHTML != "")
+		{
+			strCPHTML = strStartTable + strCPHTML + strEndTable;
+		}
+		else
+		{
+			strCPHTML = "沒有可使用的詳細資料。";
+		}
+	}
+
+	return strCPHTML;
+}
+
+function keyHandler()
+{
+	var e = frmDrawing.window.event;
+	if(e.keyCode == 13) //enter
+	{
+		e.srcElement.click();
+	}
+}
+
+function GoToPage(index)
+{
+	if (viewMgr)
+	{
+		viewMgr.loadPage (index);
+	}
+	else
+	{
+		DefPageLoad (index);
+	}
+}
+
+function GoToPageByID(pageID)
+{
+	var pageIndex = PageIndexFromID (pageID);
+	if (pageIndex >= 0)
+	{
+		GoToPage (pageIndex);
+	}
+}
+
+function PageIndexFromID (pageID)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageID == g_FileList[count].PageID)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromName (strPageName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strPageNameLower = strPageName;
+		strPageNameLower = strPageNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListPageName = g_FileList[count].PageName;
+			strFileListPageName = HTMLUnescape (strFileListPageName);
+			strFileListPageName = strFileListPageName.toLowerCase ();
+			if (strPageNameLower == strFileListPageName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromFileName (strFileName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strFileNameLower = strFileName;
+		strFileNameLower = strFileNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListFileName = g_FileList[count].PriImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+
+			strFileListFileName = g_FileList[count].SecImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromVisioPageIndex (pageIndex)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageIndex == g_FileList[count].PageIndex)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function FindShapeXMLByName (pageName, shapeName)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@Name $ieq$ "' + EscapeString (pageName) + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@Name $ieq$ "' + EscapeString (shapeName) + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function Unquote (str)
+{
+	var nStartIndex = 0;
+	var nEndIndex = str.length;
+
+	if (str.charAt (0) == '"')
+	{
+		nStartIndex = 1;
+	}
+
+	if (str.charAt (nEndIndex - 1) == '"')
+	{
+		nEndIndex -= 1;
+	}
+
+	return str.substring (nStartIndex, nEndIndex);
+}
+
+function ConvertXorYCoordinate(PosValue, OldMin, OldMax, NewMin, NewMax, MapBackwards)
+{
+	var OldMid = (OldMax - OldMin) / 2;
+	var NewMid = (NewMax - NewMin) / 2;
+	var ConvertResult = 1 * PosValue;
+	ConvertResult = ConvertResult - (OldMin + OldMid);
+	ConvertResult = ConvertResult / OldMid;
+	if(MapBackwards != 0)
+	{
+		ConvertResult = 0 - ConvertResult;
+	}
+	ConvertResult = ConvertResult * NewMid;
+	ConvertResult = ConvertResult + (NewMin + NewMid);
+	return ConvertResult;
+}
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.display = "";
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+		divObject.style.display = "none";
+	}
+	return divObject;
+}
+
+function EscapeString (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "\\\\";
+		}
+		else if (curChar == "\"")
+		{
+			strResult += "\\\"";
+		}
+		else if (curChar == "\'")
+		{
+			strResult += "\\\'";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLEscape (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "&#92;";
+		}
+		else if (curChar == '\"')
+		{
+			strResult += "&#34;";
+		}
+		else if (curChar == '\'')
+		{
+			strResult += "&#39;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#60;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#62;";
+		}
+		else if (curChar == '&')
+		{
+			strResult += "&#38;";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLUnescape (str)
+{
+	var strResult = "";
+	var strEscapePattern = "&#xx;";
+
+	for (var i = 0 ; i < str.length - strEscapePattern.length + 1; i++)
+	{
+		if (str.charAt(i) == '&' && 
+			str.charAt(i + 1) == '#' &&
+			str.charAt(i + 4) == ';')
+		{
+			var charCode = str.charAt(i + 2);
+			charCode += str.charAt(i + 3);
+
+			if (charCode == "34")
+			{
+				strResult += '"';
+			}
+			else if (charCode == "39")
+			{
+				strResult += '\'';
+			}
+			else if (charCode == "60")
+			{
+				strResult += '<';
+			}
+			else if (charCode == "62")
+			{
+				strResult += '>';
+			}
+			else if (charCode == "92")
+			{
+				strResult += '\\';
+			}
+			else if (charCode == "38")
+			{
+				strResult += '&';
+			}
+			
+			i = i + strEscapePattern.length - 1;
+		}
+		else
+		{
+			strResult += str.charAt(i);
+		}
+	}
+
+	strResult += str.substring (i, str.length);
+
+	return strResult;
+}
+
Index: /drbl_ui/flow_chart/drbl_mode.files/gif_1.htm
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/gif_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/gif_1.htm	(revision 21)
@@ -0,0 +1,134 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>
+drbl_mode
+</title>
+<script type="text/javascript" language="javascript">
+function UpdateTooltip(){};
+function OnShapeClick(){};
+</script>
+
+<script src="gif_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+	}
+</script>
+
+
+
+<script type="text/jscript" language="jscript">
+
+var pageID = 0;
+
+var isUpLevel = parent.isUpLevel;
+var OnShapeClick = null;
+if (!parent.isMac)
+{
+	OnShapeClick = parent.OnShapeClick;
+}
+
+var OnShapeKey = parent.OnShapeKey;
+var UpdateTooltip = parent.UpdateTooltip;
+var clickMenu = parent.clickMenu;
+var toggleMenuDiv = parent.toggleMenuDiv;
+var toggleMenuLink = parent.toggleMenuLink;
+var GoToPage = parent.GoToPage;
+
+
+if (parent.isUpLevel)
+{
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			var fileEntry = parent.g_FileList[parent.g_CurPageIndex];
+			var fileToLoad = fileToLoad = fileEntry.PriImage;
+			if (fileEntry.SecImage.length > 0)
+			{
+				fileToLoad = fileEntry.SecImage;
+			}
+
+			location.replace(fileToLoad);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+
+	var viewMgr = new parent.CViewMgr();
+	parent.viewMgr = viewMgr;
+
+	viewMgr.SupportsDetails = true;
+	viewMgr.SupportsSearch = true;
+
+	viewMgr.put_Location = ViewMgrSetRasterLocation;
+	viewMgr.visBBoxLeft = 2.754239;
+	viewMgr.visBBoxRight = 5.316627;
+	viewMgr.visBBoxBottom = 5.045463;
+	viewMgr.visBBoxTop = 11.222139;
+	viewMgr.highlightDiv = null;
+}
+
+function load ()
+{
+	if(isUpLevel)
+	{
+		arrowdiv.innerHTML = '<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>';
+
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.CurPageUpdate (pageIndex);
+	}
+}
+
+function unload()
+{
+	if(isUpLevel)
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+}
+
+window.onload = load;
+window.onunload = unload;
+document.onclick = clickMenu;
+
+</script>
+</head>
+
+<body class="pageView" bgcolor="#FFFFFF">
+
+<div id=arrowdiv style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+<DIV id=RasterDiv>
+
+
+<center>
+  <IMG id="ConvertedImage" SRC="gif_1.gif" ALT="頁-1" name=RasterImage BORDER="0" USEMAP="#visImageMap">
+</center>
+
+<MAP NAME="visImageMap">
+  <AREA shape="POLYGON" tabindex="1" ALT="end" origTitle="end" TITLE="end"  target="_top" COORDS="94,593,148,593,149,593,149,593,150,593,150,593,151,593,151,592,152,592,152,592,153,592,153,592,154,591,154,591,155,591,155,591,156,590,156,590,156,590,157,589,157,589,158,589,158,588,158,588,159,587,159,587,159,586,159,586,160,585,160,585,160,584,160,584,160,583,161,583,161,582,161,582,161,581,161,581,161,580,161,580,161,579,161,579,161,578,161,578,161,577,160,577,160,576,160,576,160,575,160,575,159,574,159,574,159,573,159,573,158,572,158,572,158,571,157,571,157,571,156,570,156,570,156,570,155,569,155,569,154,569,154,568,153,568,153,568,152,568,152,568,151,568,151,567,150,567,150,567,149,567,149,567,148,567,94,567,94,567,93,567,93,567,92,567,92,567,91,568,91,568,90,568,89,568,89,568,89,568,88,569,88,569,87,569,87,570,86,570,86,570,85,571,85,571,85,571,84,572,84,572,84,573,83,573,83,574,83,574,83,575,82,575,82,576,82,576,82,577,82,577,82,578,82,578,81,579,81,579,81,580,81,580,81,581,81,581,82,582,82,582,82,583,82,583,82,584,82,584,82,585,83,585,83,586,83,586,83,587,84,587,84,588,84,588,85,589,85,589,85,589,86,590,86,590,87,590,87,591,88,591,88,591,89,591,89,592,89,592,90,592,91,592,91,592,92,593,92,593,93,593,93,593,94,593,94,593" onmouseover="UpdateTooltip(this,0,7)" onfocus="UpdateTooltip(this,0,7)" onclick="return OnShapeClick(0,7);" onkeyup="OnShapeKey(0,7);">
+  <AREA shape="POLYGON" tabindex="1" ALT="drbl_mode_1" origTitle="drbl_mode_1" TITLE="drbl_mode_1"  target="_top" COORDS="74,217,121,246,168,217,121,189,74,217" onmouseover="UpdateTooltip(this,0,5)" onfocus="UpdateTooltip(this,0,5)" onclick="return OnShapeClick(0,5);" onkeyup="OnShapeKey(0,5);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="74,501,168,501,168,444,74,444,74,501" onmouseover="UpdateTooltip(this,0,3)" onfocus="UpdateTooltip(this,0,3)" onclick="return OnShapeClick(0,3);" onkeyup="OnShapeKey(0,3);">
+  <AREA shape="POLYGON" tabindex="1" ALT="drbl_mode_0" origTitle="drbl_mode_0" TITLE="drbl_mode_0"  target="_top" COORDS="74,104,121,132,168,104,121,76,74,104" onmouseover="UpdateTooltip(this,0,2)" onfocus="UpdateTooltip(this,0,2)" onclick="return OnShapeClick(0,2);" onkeyup="OnShapeKey(0,2);">
+  <AREA shape="POLYGON" tabindex="1" ALT="start" origTitle="start" TITLE="start"  target="_top" COORDS="94,26,148,26,149,26,149,26,150,26,150,26,151,26,151,25,152,25,152,25,153,25,153,25,154,25,154,24,155,24,155,24,156,23,156,23,156,23,157,22,157,22,158,22,158,21,158,21,159,20,159,20,159,19,159,19,160,18,160,18,160,17,160,17,160,16,161,16,161,15,161,15,161,14,161,14,161,13,161,13,161,12,161,12,161,11,161,11,161,10,160,10,160,9,160,9,160,8,160,8,159,7,159,7,159,6,159,6,158,5,158,5,158,4,157,4,157,4,156,3,156,3,156,3,155,2,155,2,154,2,154,2,153,1,153,1,152,1,152,1,151,1,151,0,150,0,150,0,149,0,149,0,148,0,94,0,94,0,93,0,93,0,92,0,92,0,91,1,91,1,90,1,89,1,89,1,89,2,88,2,88,2,87,2,87,3,86,3,86,3,85,4,85,4,85,4,84,5,84,5,84,6,83,6,83,7,83,7,83,8,82,8,82,9,82,9,82,10,82,10,82,11,82,11,81,12,81,12,81,13,81,13,81,14,81,14,82,15,82,15,82,16,82,16,82,17,82,17,82,18,83,18,83,19,83,19,83,20,84,20,84,21,84,21,85,22,85,22,85,22,86,23,86,23,87,23,87,24,88,24,88,24,89,25,89,25,89,25,90,25,91,25,91,25,92,26,92,26,93,26,93,26,94,26,94,26" onmouseover="UpdateTooltip(this,0,1)" onfocus="UpdateTooltip(this,0,1)" onclick="return OnShapeClick(0,1);" onkeyup="OnShapeKey(0,1);">
+</MAP>
+
+
+
+</DIV>
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/drbl_mode.files/gif_1.js
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/gif_1.js	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/gif_1.js	(revision 21)
@@ -0,0 +1,64 @@
+function ViewMgrSetRasterLocation(pageID, shapeID, pinX, pinY)
+{
+	clickMenu ();
+
+	var rasterImage = document.images("RasterImage");
+
+	var imageLeft = 0;
+	var imageRight = imageLeft + rasterImage.offsetWidth;
+	var imageTop = 0;
+	var imageBottom = imageTop + rasterImage.offsetHeight;
+	
+	var xLong = parent.ConvertXorYCoordinate(pinX, viewMgr.visBBoxLeft, viewMgr.visBBoxRight, imageLeft, imageRight, 0);
+	var yLong = parent.ConvertXorYCoordinate(pinY, viewMgr.visBBoxBottom, viewMgr.visBBoxTop, imageTop, imageBottom, 1);
+	
+	var pixelWidth = document.body.scrollWidth;
+	var pixelHeight = document.body.scrollHeight;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+	var halfClientWidth = clientWidth;
+	var halfClientHeight = clientHeight;
+
+	xLong = xLong + rasterImage.offsetLeft;
+	yLong = yLong + rasterImage.offsetTop;
+	var xScrollAmount = 0;
+	var yScrollAmount = 0;
+
+	var xPrevScrollAmount = document.body.scrollLeft;
+	var yPrevScrollAmount = document.body.scrollTop;
+
+	var arrowHalfWidth = arrowdiv.clientWidth / 2;
+	var arrowHeight = arrowdiv.clientHeight;
+
+	if ((xLong - arrowHalfWidth) < xPrevScrollAmount)
+	{
+		// X off left of screen.
+		document.body.scrollLeft = xLong - arrowHalfWidth;
+	}
+	else if ((xLong + arrowHalfWidth) > (clientWidth + xPrevScrollAmount))
+	{
+		// X off right of screen. 
+		document.body.scrollLeft = xLong - clientWidth + xPrevScrollAmount + arrowHalfWidth;
+	}
+
+	if (yLong < yPrevScrollAmount)
+	{
+		// Y off top of screen.
+		document.body.scrollTop = yLong;
+	}
+	else if ((yLong + arrowHeight) > (clientHeight + yPrevScrollAmount))
+	{
+		// Y off bottom of screen. 
+		document.body.scrollTop = yLong - clientHeight + yPrevScrollAmount + arrowHeight;
+	}
+
+	arrowdiv.style.posLeft = xLong - arrowHalfWidth;
+	arrowdiv.style.posTop = yLong;
+	arrowdiv.style.visibility = "visible";
+
+	setTimeout( "parent.hideObject(arrowdiv)", 0 );
+	setTimeout( "parent.showObject(arrowdiv)", 1 );
+	setTimeout( "parent.hideObject(arrowdiv)", 2000 );
+}
+
Index: /drbl_ui/flow_chart/drbl_mode.files/keys.js
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/keys.js	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/keys.js	(revision 21)
@@ -0,0 +1,14 @@
+
+function keyHandler()
+{
+	var e = window.event;
+	var tag = e.srcElement.tagName;
+	var override = !(tag == "A" || tag == "INPUT" || tag == "SELECT" || tag == "FORM" || tag == "SUBMIT");
+	
+	if(override && e.keyCode == 13) //13 is <enter> key
+	{
+		e.srcElement.click();
+	}
+}
+
+document.onkeypress = keyHandler;
Index: /drbl_ui/flow_chart/drbl_mode.files/toolbar.htm
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/toolbar.htm	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/toolbar.htm	(revision 21)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<title></title>
+<style type="text/css">
+body
+{
+	font-family: Verdana, Sans-Serif;
+	font-size: small;
+}
+
+.toc
+{
+	font-size: medium;
+}
+</style>
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace("widgets.htm");
+	}
+</script>
+</head>
+
+
+<body leftmargin="0" topmargin="0" class="nav" dir=ltr>
+	<table id="tabToc" width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#999999" height="20">
+	<tr>
+	<td>&nbsp;</td>
+	</tr>
+	</table>
+
+<h1 class="toc">drbl_mode</h1>
+	<ul>
+		<li><a href="gif_1.htm" target="frmDrawing">頁-1</a></li>
+
+	</ul>
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/drbl_mode.files/visio.css
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/visio.css	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/visio.css	(revision 21)
@@ -0,0 +1,263 @@
+﻿td {vertical-align: top;}
+
+.fillcolor
+{	vertical-align: top;
+	padding: 0pt;
+	background-color:#5C85EF;
+	filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#5C85EF', EndColorStr='#90B6FF');
+}
+
+A.blu1
+{
+	color: #3366CC;
+	text-decoration: none;
+	font-size: 95%;
+}
+
+A.blu1:visited
+{
+	color: #3366CC;
+	text-decoration: none
+}
+
+A.blu1:hover
+{
+	text-decoration: underline
+}
+
+.visrptTitle
+{
+	color:Black;
+	font-style:normal;
+}
+
+.visrptSummryLabel
+{
+	color:black;
+	font-weight:bold;
+}
+
+.visrptGrandTotalRow
+{	
+	color:Black;
+	font-weight:bold;
+}
+
+.visrptHeader
+{
+	color:White;
+	font-style:normal;
+	background-color:#5C85EF;
+}
+
+.visrptRowItem
+{
+	background-color:#DDDDDD;
+}
+
+.a1
+{	color: #ffffff;
+	text-decoration:none;
+}
+
+.p1
+{	font-family: PMingLiu, verdana, san-serif;
+	font-size: 60%;
+	COLOR: #ffffff;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: .8em;
+}
+
+.p2
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: 1.3em;
+}
+
+.label
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: bold;
+	font-size: 70%;
+	COLOR: #FFFFFF;
+	Margin: .2em,0pt,2pt,2pt;
+	line-height: 1em;
+	text-decoration:none;
+}
+
+.gobutton
+{
+	padding: 0pt, 2pt, 0pt, 0pt;
+	vertical-align: bottom;
+}
+
+.formText
+{
+	font-size: 70%;
+	width: 99%;
+	margin: 0;
+	padding: 0;
+}
+
+.holderTable
+{
+	padding-left:1px;
+	padding-right:1px;
+}
+
+.detsPara
+{
+	margin:2pt;
+	font-size:60%;
+}
+
+.navTocColor
+{
+	background-color:#999999;
+}
+
+.indent
+{
+	margin-left:15px;
+	margin-right:15px;
+	padding-top:0px;
+	margin-top:0px;
+}
+
+.results
+{	
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,10pt;
+	text-indent: -10pt;
+	line-height: 1.1em;
+}
+
+.propViewer 
+{
+	background-Color:white;
+	color: black;
+	font-family: PMingLiu, verdana, san-serif;
+	font-style: italic;
+	font-weight: bold;
+	font-size: 70%;
+	text-align: center;
+}
+
+.propViewerTABLE 
+{
+	margin: 2pt;
+	border-collapse:collapse;
+	border:solid 1px #999999;	
+}
+
+.propViewerTHEAD 
+{
+	border: 2px;
+	font-size: 60%;
+}
+
+.propViewerTD 
+{
+	font-family: PMingLiu, Verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #000000;
+	Margin: 0pt;
+	line-height: 1.1em;
+}
+
+.propViewerEvenRow 
+{
+	background-Color: #E7E7E7;
+}
+
+.propViewerOddRow 
+{
+	background-Color: #FFFFFF; 
+}
+
+BODY
+{
+	font-family: PMingLiu, Verdana, Sans-Serif;
+	font-size: medium;
+}
+
+DIV
+{
+	margin:0;
+	padding:0;
+}
+
+FORM
+{
+	margin:0;
+}
+
+.hiderScroll
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+	overflow:auto;
+}
+
+.hider
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+}
+
+.nav
+{
+	width: 100%;
+	height: 100%;
+	overflow: auto;	
+}
+
+.menuItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-color:white;
+	color:black;
+	cursor:hand;
+}
+
+.highlightItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-Color:highlight; 
+	color:white;
+	cursor:hand;
+}
+
+.hlMenu 
+{
+	border:black 2px outset; 
+	display:none; 
+	z-index:10; 
+	position:absolute; 
+	background-Color:white;
+}
+
+.innerhlMenu 
+{
+	padding-left:2pt;
+	padding-right:2pt;
+	background-Color:white;
+}
+
+.svgmessage
+{     FONT-FAMILY: PMingLiu, verdana, san-serif;
+      FONT-WEIGHT: normal;
+      font-size: 80%;
+      COLOR: #333333;
+      Margin: 1em;
+      line-height: 1.1em;
+}
Index: /drbl_ui/flow_chart/drbl_mode.files/vml_1.htm
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/vml_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/vml_1.htm	(revision 21)
@@ -0,0 +1,183 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" 
+ xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>drbl_mode</title>
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script src="vml_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+
+	var pageID = 0;
+	var viewMgr = null;
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+	function getPNZ()
+	{
+		var rawHTML = VMLDiv.innerHTML;
+		var strReturn = ""
+		
+		strReturn = rawHTML.slice( rawHTML.indexOf( '<v:group' ), rawHTML.indexOf( "</v:shape>" ) );
+		strReturn += "</v:shape></v:group>\n";
+				
+		return strReturn;
+	}
+	
+	function load()
+	{
+		viewMgr = new parent.CViewMgr("ConvertedImage", "arrowDiv");
+
+		viewMgr.put_Location = ViewMgrSetVMLLocation;
+
+
+		viewMgr.visBBoxLeft = 2.754239;
+		viewMgr.visBBoxRight = 5.316627;
+		viewMgr.visBBoxBottom = 5.045463;
+		viewMgr.visBBoxTop = 11.222139;
+
+		viewMgr.Zoom = VMLZoomChange;
+		viewMgr.setView= VMLSetView;
+
+		viewMgr.SupportsDetails = true;
+		viewMgr.SupportsSearch = true;
+
+		parent.viewMgr = viewMgr;
+
+		fit();
+	}
+
+	function unload()
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+
+	function fit()
+	{
+		if(parent.frmToolbar)
+		{
+			if (parent.g_WidgetsLoaded)
+			{
+				var zoom100 = parent.frmToolbar.document.all('a100');
+				if (zoom100)
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					zoom100.click();
+				}
+				else
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					viewMgr.Zoom(100);
+				}
+			}
+			else
+			{
+				window.setTimeout("fit()", 500);
+			}
+		}	
+		else
+		{
+			parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+			viewMgr.Zoom(100);
+		}
+	}
+
+	function PostZoomProcessing (newZoomLevel)
+	{
+		parent.viewMgr.PostZoomProcessing = null;
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.viewMgr.getPNZ = getPNZ;
+		parent.CurPageUpdate (pageIndex);
+	}
+
+
+	
+	var isUpLevel = parent.isUpLevel;
+	var OnShapeClick = parent.OnShapeClick;
+	var OnShapeKey = parent.OnShapeKey;
+	var UpdateTooltip = parent.UpdateTooltip;
+	var clickMenu = parent.clickMenu;
+	var toggleMenuDiv = parent.toggleMenuDiv;
+	var toggleMenuLink = parent.toggleMenuLink;
+	var GoToPage = parent.GoToPage;
+
+	window.onload = load;
+	window.onunload = unload;
+	document.onclick = clickMenu;
+
+
+
+
+</script>
+
+</head>
+
+<body style="MARGIN:10px" onresize="VMLOnResize();" onscroll="VMLOnScroll();">
+
+<div id="arrowdiv" style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+
+
+
+<div id="VMLDiv" >
+
+
+<v:group  id="ConvertedImage" style="width:1.659396in;height:4.000000in;position:absolute;visibility=hidden;" coordSize="830,2000" coordOrigin="-1000,-1000" >
+
+<v:shapetype 
+  id="VISSHAPE"
+  target="_parent"
+  coordsize="830,2000"
+  coordorigin="-1000,-1000"
+  stroked="f"
+  strokecolor="red"
+  filled="t"
+>
+<v:fill opacity="0.0"/>
+</v:shapetype>
+
+
+<v:shape style="top:-1000.0;left:-1000.0;width:829.7;height:2000.0;position:absolute" coordSize="830,2000" coordOrigin="-1000,-1000" >
+<v:imagedata src="vml_1.emz"/>
+</v:shape>
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="start" origTitle="start"  style="top:-1000;left:-1000;width:830;height:2000;position:absolute" path=" m -681,-908 l -502,-908 l -500,-908 l -498,-908 l -497,-908 l -495,-909 l -493,-909 l -491,-909 l -489,-910 l -488,-911 l -486,-911 l -484,-912 l -483,-913 l -481,-913 l -480,-914 l -478,-915 l -477,-916 l -475,-917 l -474,-919 l -473,-920 l -471,-921 l -470,-922 l -469,-924 l -468,-925 l -467,-927 l -466,-928 l -465,-930 l -464,-931 l -463,-933 l -462,-935 l -462,-936 l -461,-938 l -461,-940 l -460,-941 l -460,-943 l -459,-945 l -459,-947 l -459,-949 l -459,-950 l -459,-952 l -459,-954 l -459,-956 l -459,-958 l -460,-959 l -460,-961 l -461,-963 l -461,-965 l -462,-966 l -462,-968 l -463,-970 l -464,-971 l -465,-973 l -466,-974 l -467,-976 l -468,-977 l -469,-979 l -470,-980 l -471,-981 l -473,-983 l -474,-984 l -475,-985 l -477,-986 l -478,-987 l -480,-988 l -481,-989 l -483,-990 l -484,-991 l -486,-991 l -488,-992 l -489,-993 l -491,-993 l -493,-993 l -495,-994 l -497,-994 l -498,-994 l -500,-994 l -502,-994 l -681,-994 l -683,-994 l -685,-994 l -686,-994 l -688,-994 l -690,-993 l -692,-993 l -693,-993 l -695,-992 l -697,-991 l -698,-991 l -700,-990 l -702,-989 l -703,-988 l -705,-987 l -706,-986 l -708,-985 l -709,-984 l -710,-983 l -712,-981 l -713,-980 l -714,-979 l -715,-977 l -716,-976 l -717,-974 l -718,-973 l -719,-971 l -720,-970 l -721,-968 l -721,-966 l -722,-965 l -722,-963 l -723,-961 l -723,-959 l -723,-958 l -724,-956 l -724,-954 l -724,-952 l -724,-950 l -724,-949 l -724,-947 l -723,-945 l -723,-943 l -723,-941 l -722,-940 l -722,-938 l -721,-936 l -721,-935 l -720,-933 l -719,-931 l -718,-930 l -717,-928 l -716,-927 l -715,-925 l -714,-924 l -713,-922 l -712,-921 l -710,-920 l -709,-919 l -708,-917 l -706,-916 l -705,-915 l -703,-914 l -702,-913 l -700,-913 l -698,-912 l -697,-911 l -695,-911 l -693,-910 l -692,-909 l -690,-909 l -688,-909 l -686,-908 l -685,-908 l -683,-908 l -681,-908xe" onmouseover="UpdateTooltip(this,0,1)" onclick="OnShapeClick(0,1)" onfocus="UpdateTooltip(this,0,1);" onkeyup="OnShapeKey(0,1)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="drbl_mode_0" origTitle="drbl_mode_0"  style="top:-1000;left:-1000;width:830;height:2000;position:absolute" path=" m -749,-646 l -591,-550 l -434,-646 l -591,-741 l -749,-646xe" onmouseover="UpdateTooltip(this,0,2)" onclick="OnShapeClick(0,2)" onfocus="UpdateTooltip(this,0,2);" onkeyup="OnShapeKey(0,2)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:830;height:2000;position:absolute" path=" m -749,686 l -434,686 l -434,496 l -749,496 l -749,686xe" onmouseover="UpdateTooltip(this,0,3)" onclick="OnShapeClick(0,3)" onfocus="UpdateTooltip(this,0,3);" onkeyup="OnShapeKey(0,3)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="drbl_mode_1" origTitle="drbl_mode_1"  style="top:-1000;left:-1000;width:830;height:2000;position:absolute" path=" m -749,-265 l -591,-170 l -434,-265 l -591,-360 l -749,-265xe" onmouseover="UpdateTooltip(this,0,5)" onclick="OnShapeClick(0,5)" onfocus="UpdateTooltip(this,0,5);" onkeyup="OnShapeKey(0,5)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="end" origTitle="end"  style="top:-1000;left:-1000;width:830;height:2000;position:absolute" path=" m -681,994 l -502,994 l -500,994 l -498,994 l -497,994 l -495,994 l -493,993 l -491,993 l -489,993 l -488,992 l -486,991 l -484,991 l -483,990 l -481,989 l -480,988 l -478,987 l -477,986 l -475,985 l -474,984 l -473,983 l -471,981 l -470,980 l -469,979 l -468,977 l -467,976 l -466,974 l -465,973 l -464,971 l -463,970 l -462,968 l -462,966 l -461,965 l -461,963 l -460,961 l -460,959 l -459,958 l -459,956 l -459,954 l -459,952 l -459,950 l -459,949 l -459,947 l -459,945 l -460,943 l -460,941 l -461,940 l -461,938 l -462,936 l -462,935 l -463,933 l -464,931 l -465,930 l -466,928 l -467,927 l -468,925 l -469,924 l -470,922 l -471,921 l -473,920 l -474,919 l -475,917 l -477,916 l -478,915 l -480,914 l -481,913 l -483,913 l -484,912 l -486,911 l -488,911 l -489,910 l -491,909 l -493,909 l -495,909 l -497,908 l -498,908 l -500,908 l -502,908 l -681,908 l -683,908 l -685,908 l -686,908 l -688,909 l -690,909 l -692,909 l -693,910 l -695,911 l -697,911 l -698,912 l -700,913 l -702,913 l -703,914 l -705,915 l -706,916 l -708,917 l -709,919 l -710,920 l -712,921 l -713,922 l -714,924 l -715,925 l -716,927 l -717,928 l -718,930 l -719,931 l -720,933 l -721,935 l -721,936 l -722,938 l -722,940 l -723,941 l -723,943 l -723,945 l -724,947 l -724,949 l -724,950 l -724,952 l -724,954 l -724,956 l -723,958 l -723,959 l -723,961 l -722,963 l -722,965 l -721,966 l -721,968 l -720,970 l -719,971 l -718,973 l -717,974 l -716,976 l -715,977 l -714,979 l -713,980 l -712,981 l -710,983 l -709,984 l -708,985 l -706,986 l -705,987 l -703,988 l -702,989 l -700,990 l -698,991 l -697,991 l -695,992 l -693,993 l -692,993 l -690,993 l -688,994 l -686,994 l -685,994 l -683,994 l -681,994xe" onmouseover="UpdateTooltip(this,0,7)" onclick="OnShapeClick(0,7)" onfocus="UpdateTooltip(this,0,7);" onkeyup="OnShapeKey(0,7)"/> 
+
+</v:group>
+
+
+
+</div>
+
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/drbl_mode.files/vml_1.js
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/vml_1.js	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/vml_1.js	(revision 21)
@@ -0,0 +1,221 @@
+
+function ViewMgrSetVMLLocation(pageID, shapeID, pinX, pinY)
+{
+	doc = parent.frmDrawing.document;
+	if (this.highlightDiv != null)
+	{
+		clickMenu ();
+
+		var VMLImage = this.s;
+
+		var imageLeft = 0;
+		var imageRight = imageLeft + VMLImage.pixelWidth;
+		var imageTop = 0;
+		var imageBottom = imageTop + VMLImage.pixelHeight;
+
+		var xLong = parent.ConvertXorYCoordinate(pinX, this.visBBoxLeft, this.visBBoxRight, imageLeft, imageRight, 0);
+		var yLong = parent.ConvertXorYCoordinate(pinY, this.visBBoxBottom, this.visBBoxTop, imageTop, imageBottom, 1);
+
+		xLong += doc.all['ConvertedImage'].style.posLeft;
+		yLong += doc.all['ConvertedImage'].style.posTop;
+
+		var arrowHalfWidth = viewMgr.highlightDiv.clientWidth / 2;
+		var arrowHeight = viewMgr.highlightDiv.clientHeight;
+
+		var boolNeedToScroll = false;
+
+		if( !( (xLong - arrowHalfWidth) > doc.body.scrollLeft && (xLong + arrowHalfWidth) < (doc.body.scrollLeft + doc.body.clientWidth) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( !( (yLong - arrowHeight) > doc.body.scrollTop && (yLong + arrowHeight) < (doc.body.scrollTop + doc.body.clientHeight) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( boolNeedToScroll == true )
+		{
+			window.scrollTo( xLong - doc.body.clientWidth / 2, yLong - doc.body.clientHeight / 2);
+		}
+		
+		this.highlightDiv.style.posLeft = xLong - arrowHalfWidth;
+		this.highlightDiv.style.posTop = yLong;
+		this.highlightDiv.style.visibility = "visible";
+
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 0 );
+		setTimeout( "parent.showObject(viewMgr.highlightDiv)", 1 );
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 2500 );
+	}
+}
+
+function VMLZoomChange(size)
+{
+	if(size)
+	{
+		if(size == "up")
+		{
+			size = zoomLast + 50;
+		}
+		else if(size == "down")
+		{
+			size = zoomLast - 50;
+		}
+		
+		size = parseInt(size);
+		if(typeof(size) != "number")
+			size = 100;
+	}
+	else
+	{
+		size = 100;
+	}
+
+	clickMenu ();
+
+	viewMgr.zoomLast = size;
+
+	var zoomFactor = size/100;
+
+	var width = this.s.pixelWidth;
+	var height = this.s.pixelHeight;
+
+	var margin = parseInt(document.body.style.margin) * 2;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+
+	var newScrollLeft = document.body.scrollLeft;
+	var newScrollTop = document.body.scrollTop;
+
+	var winwidth = clientWidth - margin;
+	var winheight = clientHeight - margin;
+
+	var widthRatio = winwidth / width;
+	var heightRatio = winheight / height;
+
+	if (widthRatio < heightRatio)
+	{
+		width = zoomFactor * winwidth;
+		height = width / this.origWH;
+	}
+	else
+	{
+		height = zoomFactor * winheight;
+		width = height * this.origWH;
+	}
+
+	this.s.pixelWidth = Math.max(width,1);
+	this.s.pixelHeight = Math.max(height,1);
+
+	this.sizeLast = size;
+
+	var centerX = (zoomFactor / viewMgr.zoomFactor) * (newScrollLeft + (clientWidth / 2) - this.s.posLeft);
+	var centerY = (zoomFactor / viewMgr.zoomFactor) * (newScrollTop + (clientHeight / 2) - this.s.posTop);
+
+	viewMgr.zoomFactor = zoomFactor;
+
+	if (width <= clientWidth)
+	{
+		this.s.posLeft = Math.max( 0, (clientWidth / 2) - (width / 2));
+	}
+	else
+	{
+		var left = centerX - (clientWidth / 2);
+		if ( left >= 0 )
+		{
+			this.s.posLeft = 0;
+			newScrollLeft = left;
+		}
+		else
+		{
+			this.s.posLeft = -left;
+			newScrollLeft = 0;
+		}
+	}
+
+	if (height <= clientHeight)
+	{
+		this.s.posTop = Math.max( 0, (clientHeight / 2) - (height / 2));
+	}
+	else
+	{
+		var top = centerY - (clientHeight / 2);
+		if ( top >= 0 )
+		{
+			this.s.posTop = 0;
+			newScrollTop = top;
+		}
+		else
+		{
+			this.s.posTop = -top;
+			newScrollTop = 0;
+		}
+	}
+
+	window.scrollTo(newScrollLeft, newScrollTop);
+
+	this.s.visibility = "visible";
+
+	var newXOffsetPercent = document.body.scrollLeft / this.s.pixelWidth;
+	var newYOffsetPercent = document.body.scrollTop / this.s.pixelHeight;
+	var newWidthPercent = document.body.clientWidth / this.s.pixelWidth;
+	var newHeightPercent = document.body.clientHeight / this.s.pixelHeight;
+
+	if (viewMgr.viewChanged)
+	{
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, newWidthPercent, newHeightPercent);
+	}
+
+	if (viewMgr.PostZoomProcessing)
+	{
+		viewMgr.PostZoomProcessing(size);
+	}
+}
+
+function VMLSetView (xOffsetPercent, yOffsetPercent)
+{
+	var leftPixelOffset = xOffsetPercent * this.s.pixelWidth;
+	var topPixelOffset = yOffsetPercent * this.s.pixelHeight;
+
+	window.scrollTo (leftPixelOffset - this.s.posLeft, topPixelOffset - this.s.posTop);
+
+	if (viewMgr.PostSetViewProcessing)
+	{
+		viewMgr.PostSetViewProcessing();
+	}
+}
+
+function VMLOnResize ()
+{
+	if (viewMgr.zoomLast == 100)
+	{
+		viewMgr.Zoom(100);
+	}
+
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newWidthPercent = document.body.clientWidth / image.style.pixelWidth;
+		var newHeightPercent = document.body.clientHeight / image.style.pixelHeight;
+
+		viewMgr.viewChanged (null, null, newWidthPercent, newHeightPercent);
+	}
+}
+
+function VMLOnScroll ()
+{
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newXOffsetPercent = document.body.scrollLeft / image.style.pixelWidth;
+		var newYOffsetPercent = document.body.scrollTop / image.style.pixelHeight;
+
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, null, null);
+	}
+}
+
+
+
Index: /drbl_ui/flow_chart/drbl_mode.files/widgets.htm
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/widgets.htm	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/widgets.htm	(revision 21)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>drbl_mode</title>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link href="visio.css" rel="stylesheet">
+<script src="keys.js" type="text/jscript" language="jscript"></script>
+<script src="find.js" type="text/jscript" language="jscript"></script>
+<script type="text/jscript" language="jscript">
+	
+	var imgMin = new Image();
+	imgMin.src = "minimize.gif";
+	
+	var imgMax = new Image();
+	imgMax.src = "maximize.gif";
+
+	var fileList = parent.g_FileList;
+	
+	function Widgets()
+	{
+		this.GoTo = null;
+		this.Search = null;
+		this.Details = null;
+		this.PNZ = null;
+
+		this.divCount = 0;
+		
+		this.OpenText = "全部摺疊";
+		this.OpenAlt = "全部摺疊";
+		this.ClosedText = "全部展開";
+		this.ClosedAlt = "全部展開";
+
+		this.Display = "";
+		this.Img = imgMin;
+		this.Text = this.OpenText;
+		this.Alt = this.OpenAlt;
+		
+		this.ToggleAll = ToggleAll;
+		this.ToggleWidget = ToggleWidget;
+		this.Add = Add;
+	}		
+
+	function Add(div, name)
+	{
+		tmpStr = "this." + name + " = new Widget(div);"
+		eval(tmpStr);
+		var thisWidget = eval("this." + name);
+	}
+
+	function Widget(div)
+	{
+		return div;
+	}	
+
+	function ToggleAll()
+	{
+		var OpenCloseFunc = Widget;
+
+		if(this.Display == "")
+		{
+			this.Display = "none";
+			this.Img = imgMax;
+			this.Text = this.ClosedText;
+			this.Alt = this.ClosedAlt;
+			expparent00.title = this.ClosedAlt;
+			OpenCloseFunc = CloseWidget;
+		}
+		else
+		{
+			this.Display = "";
+			this.Img = imgMin;
+			this.Text = this.OpenText;
+			this.Alt = this.OpenAlt;
+			expparent00.title = this.OpenAlt;
+			OpenCloseFunc = OpenWidget;
+		}
+		exp00.src = this.Img.src;	
+		textExp.innerText = this.Text;
+		exp00.alt = this.Alt;
+	
+		if(this.GoTo)
+		{
+			OpenCloseFunc(this.GoTo)
+		}
+		if(this.Search)
+		{
+			OpenCloseFunc(this.Search)
+		}
+		if(this.Details)
+		{
+			OpenCloseFunc(this.Details)
+		}
+		if(this.PNZ)
+		{
+			OpenCloseFunc(this.PNZ)
+		}
+	}
+
+	function ToggleNav()
+	{
+		if(divCollapsedNav.style.display == "none")
+		{
+			divCollapsedNav.style.display = "";
+			divOpenNav.style.display = "none";
+			parent.frmstOuter.cols = "20,*"
+			parent.document.all ('frmToolbar').noResize = true;
+		}
+		else
+		{
+			divOpenNav.style.display = "";
+			divCollapsedNav.style.display = "none";
+			parent.frmstOuter.cols = "237,*"
+			parent.document.all ('frmToolbar').noResize = false;
+		}
+	}
+	
+	function ToggleWidget(div)
+	{
+		if(div.style.display == "none")
+		{
+			OpenWidget(div);
+		}
+		else
+		{
+			CloseWidget(div);
+		}
+	}
+
+	function OpenWidget(div)
+	{
+		document.all(div.img).src = imgMin.src;
+		div.style.display = "";
+		document.all(div.img).alt = div.openAlt;
+		document.all(div.img + "1").title = div.openAlt;
+		document.all(div.img + "2").title = div.openAlt;
+	}
+
+	function CloseWidget(div)
+	{
+		document.all(div.img).src = imgMax.src;
+		div.style.display = "none";
+		document.all(div.img).alt = div.closedAlt;
+		document.all(div.img + "1").title = div.closedAlt;
+		document.all(div.img + "2").title = div.closedAlt;
+	}
+
+	function load()
+	{
+		parent.g_WidgetsLoaded = true;
+
+		if (parent.g_LoadingWidgets)
+		{
+			parent.g_LoadingWidgets = false;
+			parent.location.reload();
+		}
+	}
+
+	function unload()
+	{
+		parent.g_LoadingWidgets = true;
+	}
+	
+		
+	var widgets = new Widgets();
+
+</script>
+
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divOpenNav" class="nav">
+
+	<table id="tabToc" width="100%" class="navTocColor" style="margin-bottom:1px;" cellspacing="0" cellpadding="0" border="0" height="20" dir=ltr>
+	<tr>
+	<td width="2"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" id="linkNavOpen"><img src="toc.gif" alt="摺疊巡覽框架" width="22" height="17" border="0"></a></td>
+	<td><p class="p1"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" class="a1">隱藏</a></p></td>
+	<td align="right"><p class="p1"><a href="javascript:widgets.ToggleAll()" id="textExp" class="a1">全部摺疊</a></p></td>
+	<td width="2">
+		<div style="padding:2pt,1.5pt,0pt,0pt"><a href="javascript:widgets.ToggleAll()" title="全部摺疊" id="expparent00"><img id="exp00" alt="全部摺疊" src="minimize.gif" width="15" height="15" border="0"></a></div>
+	</td>
+	</tr>
+	</table>
+	
+	
+
+	
+	<div id="divPNZ" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp41" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><p class="label">全景和縮放</p></a></td>
+				<td width="15"><a id="exp42" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><img id="exp4" alt="摺疊全景和縮放" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hidePNZ" style="text-align:right;" img="exp4" class="hiderScroll" openAlt="摺疊全景和縮放" closedAlt="展開全景和縮放">
+				<table width="220" border="0" cellpadding="0" cellspacing="0">
+				<tr>
+				<td align="center" valign="middle">
+					<iframe title="全景和縮放視窗" longdesc="全景和縮放視窗" id="ifrmPNZ" src="zoom.htm" width="170" height="170" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="border: #cccccc 1px solid;"></iframe>
+				</td>
+					
+				<td>
+					<table id="tabScale" width="17" cellspacing="0" cellpadding="0" border="0">
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放頁面至 100%"><img src="fullpage.gif" alt="縮放頁面至 100%" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(1);" title="拉近"><img src="panplus.gif" alt="拉近" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(500);" title="縮放成 500%"><img id="t500" src="tick-off.gif" alt="縮放成 500%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(450);" title="縮放成 450%"><img id="t450" src="tick-off.gif" alt="縮放成 450%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(400);" title="縮放成 400%"><img id="t400" src="tick-off.gif" alt="縮放成 400%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(350);" title="縮放成 350%"><img id="t350" src="tick-off.gif" alt="縮放成 350%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(300);" title="縮放成 300%"><img id="t300" src="tick-off.gif" alt="縮放成 300%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(250);" title="縮放成 250%"><img id="t250" src="tick-off.gif" alt="縮放成 250%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(200);" title="縮放成 200%"><img id="t200" src="tick-off.gif" alt="縮放成 200%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(150);" title="縮放成 150%"><img id="t150" src="tick-off.gif" alt="縮放成 150%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放成 100%" id="a100"><img id="t100" src="tick-on.gif" alt="縮放成 100%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(50);" title="縮放成 50%"><img id="t50" src="tick-off.gif" alt="縮放成 50%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(10);" title="縮放成 10%"><img id="t10" src="tick-off.gif" alt="縮放成 10%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(-1);" title="拉遠"><img src="panminus.gif" alt="拉遠" border="0"></a></td></tr>
+					</table>
+				</td>
+				</tr>
+				</table>
+			</div>			
+		</td></tr>
+		</table>
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hidePNZ, "PNZ");
+
+			var zoomLevels = new Array(10, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500);
+
+			var tickOff = new Image();
+			tickOff.src = "tick-off.gif";
+			
+			var tickFoc = new Image();
+			tickFoc.src = "tick-foc.gif";
+			
+			var tickOn = new Image();
+			tickOn.src = "tick-on.gif";
+
+			function tickFocus()
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickFoc.src;
+				}
+			}			
+			
+			function tickBlur(percentZoom)
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickOff.src;
+				}
+			}
+
+			function tickSelect(percentZoom)
+			{
+				if (parent.viewMgr &&
+					parent.viewMgr.Zoom)
+				{
+					changeTick(percentZoom);
+					parent.viewMgr.Zoom(percentZoom);					
+				}
+
+				if(frames.item(0).zoomRectDiv)
+				{
+					frames.item(0).g_width = parseInt(frames.item(0).zoomRectDiv.style.pixelWidth) 
+					frames.item(0).g_height = parseInt(frames.item(0).zoomRectDiv.style.pixelHeight)
+					frames.item(0).g_newLeft = parseInt(frames.item(0).zoomRectDiv.style.left)
+					frames.item(0).g_newTop = parseInt(frames.item(0).zoomRectDiv.style.top)
+				}
+			}
+
+			function changeTick(percentZoom)
+			{
+				img = elemScale.all("t" + percentZoom);
+									
+				img.src = tickOn.src;
+				
+				if(elemScale.tickSelected && elemScale.tickSelected != img)
+				{
+					elemScale.tickSelected.src = tickOff.src;
+				}
+				elemScale.tickSelected = img;
+			}
+			
+			function ZoomUpDown(increment)
+			{
+				if (elemScale.tickSelected)
+				{
+					var curZoomLevel = elemScale.tickSelected.id.substring (1);
+					var newZoomLevelIndex = IndexFromLevel (curZoomLevel * 1.0);
+					if (newZoomLevelIndex >= 0)
+					{
+						var img = elemScale.all("t" + zoomLevels[newZoomLevelIndex + increment]);
+						if (img)
+						{
+							tickSelect(img.id.substring(1));
+						}
+					}
+				}
+				else
+				{
+					tickSelect (100);
+				}
+			}
+
+			function IndexFromLevel (zoomLevel)
+			{
+				for (var count = 0; count < zoomLevels.length; count++)
+				{
+					if (zoomLevels[count] == zoomLevel)
+					{
+						return count;
+					}
+				}
+
+				return -1;
+			}
+			
+			elemScale = document.all("tabScale");
+			if(elemScale)
+			{
+				elemScale.onmouseover = tickFocus;
+				elemScale.onmouseout = tickBlur;
+			}
+		</script>
+	</div>
+
+	
+	<div id="divDetails" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp21" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><p class="label">詳細資料</p></a></td>
+				<td width="15"><a id="exp22" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><img id="exp2" alt="摺疊詳細資料" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hideDetails" class="hiderScroll" img="exp2" openAlt="摺疊詳細資料" closedAlt="展開詳細資料">
+				<P class="p2" class="detsPara">CTRL+按一下繪圖中的圖形以檢視詳細資料。</P>
+			</div>
+		</td></tr>
+		</table>		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideDetails, "Details");
+			widgets.divCount++;
+		
+		</script>
+	</div>
+
+	
+	<div id="divSearch" class="holder">
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor" dir=ltr>
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp11" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><p class="label">搜尋頁</p></a></td>
+				<td width="15"><a id="exp12" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><img src="minimize.gif" id="exp1" alt="摺疊搜尋頁面" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+
+		</td></tr>
+		<tr><td>	
+
+			<div id="hideSearch" img="exp1" class="hiderScroll" openAlt="摺疊搜尋頁面" closedAlt="展開搜尋頁面">
+								<form name=theForm onsubmit="FindOnClick(); return false;" ID="Form1">
+									<table width="100%" cellspacing="0" cellpadding="3" border="0">
+									<tr>
+									<td width="100%">
+										<input class="formText" type="text" name="findString" maxlength="255" size="26" title="輸入要搜尋的文字。按 Enter 開始搜尋。">
+									</td>
+									<td width="18" class="gobutton">
+										<input type="image" src="go.gif" alt="開始搜尋" width="18" height="18" ID="GoButton" NAME="GoButton">
+									</td>
+									</tr>
+									<tr>
+									<td colspan="2" class="p2">
+										<a href="javascript:{};" tabindex="0" onclick="TogglePlus(hideAdvSrch,as0);" class="blu1"><img src="plus.gif" alt="顯示/隱藏進階搜尋選項" border="0" id="as0">進階</a>
+											<div id="hideAdvSrch" class="hiderScroll" style="display:none;">
+												<b>搜尋依據:</b>
+												<div id="divS"></div>
+											</div>
+										<hr width="100%" size="1" color="#cccccc">
+										<div id="hideResults" class="hiderScroll" style="display:none;"></div>
+									</td>
+									</tr>
+									</table>
+								</form>
+			</div>					
+
+		</td></tr>
+		</table>
+		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideSearch, "Search");
+			widgets.divCount += 2;
+			
+			makeAdvancedFindCheckboxes(divS);
+			
+			
+			var imgPlus = new Image();
+			imgPlus.src = "plus.gif";
+	
+			var imgMinus = new Image();
+			imgMinus.src = "minus.gif";
+			
+			function TogglePlus(div, img, container)
+			{
+				if(typeof(img) == "string")	
+					img = document.all(img)
+				if(typeof(div) == "string")
+					div = document.all(div)
+					
+				widget = widgets.Search;
+				if(div && img)
+				{
+					if(div.style.display == "none")
+					{
+						div.style.display = "";
+						img.src = imgMinus.src;
+						div.open = "true";
+					}
+					else
+					{
+						div.style.display = "none";
+						img.src = imgPlus.src;
+						
+						div.open = "false";
+					}
+				}
+			}
+		
+		</script>
+	</div>
+
+
+</div>
+
+<div id="divCollapsedNav" class="navTocColor" style="display:none;width:100%;height:100%;">
+	<a href="javascript:ToggleNav();" title="展開巡覽框架" id="linkNavClosed"><img src="toc2.gif" alt="展開巡覽框架" border="0"></a>
+</div>	
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/drbl_mode.files/zoom.htm
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.files/zoom.htm	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.files/zoom.htm	(revision 21)
@@ -0,0 +1,990 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script type="text/jscript" language="jscript">
+
+var BUFFER = 1;
+
+function zoomObject()
+{
+	this.PZImgRatio			= null;
+	
+	this.zoomWinHeight		= null;
+	this.zoomWinWidth		= null;
+	this.zoomWinTop			= null;
+	this.zoomWinLeft		= null;
+	
+	this.scaleFactor		= null;
+	
+	this.updateContent		= zObj_updateContent;
+	this.doOnBodyResize		= zObj_doOnBodyResize;
+	this.clipZoomRect		= zObj_clipZoomRect;
+}
+
+var g_thumbHeight = window.clientHeight;
+var g_thumbWidth = window.clientWidth;
+zoomObj = new zoomObject();
+
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+	}
+	return divObject;
+}
+
+function zObj_updateContent( win_width, win_height, VMLDiv_left, VMLDiv_top, VMLDiv_width, VMLDiv_height )
+{
+	this.mainWinWidth		= win_width;
+	this.mainWinHeight		= win_height;
+
+	this.mainImgRatio = VMLDiv_height / VMLDiv_width;
+	this.doOnBodyResize();
+}
+
+function zObj_doOnBodyResize()
+{
+	return;
+}
+
+function zObj_clipZoomRect( objectToClip )
+{
+	if( objectToClip == null )
+	{
+		objectToClip = zoomRectObj;
+	}
+	
+	var clipTop		= ( objectToClip.style.posTop < (g_thumbTop) )	? (g_thumbTop - objectToClip.style.posTop)	: 0;
+	var clipLeft	= ( objectToClip.style.posLeft < (g_thumbLeft) )	? (g_thumbLeft - objectToClip.style.posLeft)	: 0;
+	var clipBottom	= ( (objectToClip.style.posHeight - clipTop) > (g_thumbTop + g_thumbHeight + 2 * BUFFER) ) ? (g_thumbHeight + clipTop + BUFFER) : objectToClip.style.posHeight;
+	var clipRight	= 0;
+	if( (this.zoomWinWidth - clipLeft) > (g_thumbLeft + g_thumbWidth) )
+	{
+		if( clipLeft == 0 )
+		{
+			clipRight = g_thumbWidth - objectToClip.style.posLeft + 2 * BUFFER;
+		}
+		else
+		{
+			clipRight = (g_thumbWidth + clipLeft + BUFFER);
+		}
+	}
+	else
+	{
+		clipRight = objectToClip.style.posWidth;
+	}
+	clipTo( objectToClip, clipTop, clipRight, clipBottom, clipLeft);
+}
+
+function findContent()
+{
+	zoomRectDiv.style.display = "none";
+	newZoomWindowDiv.style.display = "none";
+
+	if (parent.parent.frmDrawing && parent.parent.viewMgr)
+	{
+		var viewMgr = parent.parent.viewMgr;
+
+		var getPNZ = parent.parent.viewMgr.getPNZ;
+		if (getPNZ)
+		{
+			var tmp = parent.parent.frmDrawing;
+
+			divThumb = document.all("divThumbnail");
+
+			if (divThumb.innerHTML.length == 0)
+			{
+				divThumb.innerHTML = getPNZ();
+			}
+			else
+			{
+				var pnzInfo = getPNZ();
+				var idIndex = pnzInfo.indexOf("ConvertedImage");
+				if (idIndex >= 0)
+				{
+					var test = pnzInfo;
+					pnzInfo = test.substring (0, idIndex);
+					pnzInfo += "Temp";
+					pnzInfo += test.substring (idIndex, test.length);
+
+					divTempThumbnail.innerHTML = pnzInfo;
+
+					var vmlGroup = divThumbnail.childNodes(0);
+					var vmlTempGroup = divTempThumbnail.childNodes(0);
+					CopyVMLAttrs(vmlGroup, vmlTempGroup);
+					
+					var vmlShape = vmlGroup.childNodes(1);
+					var vmlTempShape = vmlTempGroup.childNodes(1);
+					CopyVMLAttrs(vmlShape, vmlTempShape);
+
+					CopyVMLAttrs(vmlGroup.childNodes(0), vmlTempGroup.childNodes(0));
+					
+					var vmlImageData = vmlShape.childNodes(0);
+					var vmlTempImageData = vmlTempShape.childNodes(0);
+					CopyVMLImageData(vmlImageData, vmlTempImageData);
+				}
+			}
+
+			zoomRectObj = document.all("zoomRectDiv");
+			showObject( zoomRectObj );
+
+			PNZimg = document.all("ConvertedImage");
+			if (PNZimg)
+			{
+				PNZimg.style.left = 0;
+				PNZimg.style.top = 0;
+
+				if (PNZimg.style.pixelWidth > PNZimg.style.pixelHeight)
+				{
+					var oldWidth = PNZimg.style.pixelWidth;
+					PNZimg.style.width = document.body.clientWidth;
+					PNZimg.style.height = (document.body.clientWidth / oldWidth) * PNZimg.style.pixelHeight;
+
+					divThumb.style.top = (document.body.clientHeight - parseInt(PNZimg.style.height)) / 2;
+					divThumb.style.left = 0;
+				}
+				else
+				{
+					var oldHeight = PNZimg.style.pixelHeight;
+					PNZimg.style.height = document.body.clientHeight;
+					PNZimg.style.width = (document.body.clientHeight / oldHeight) * PNZimg.style.pixelWidth;
+
+					divThumb.style.left = (document.body.clientWidth - parseInt(PNZimg.style.width)) / 2;
+					divThumb.style.top = 0;
+				}
+
+				PNZimg.style.visibility = "visible";
+
+				var strOutput = divThumb.innerHTML;
+				if (strOutput.length > 0)
+				{
+					var tmp2 = document.all['ConvertedImage'];
+					zoomObj.updateContent( tmp.document.body.clientWidth, tmp.document.body.clientHeight, parseInt(tmp2.style.left), parseInt(tmp2.style.top), parseInt(tmp2.clientWidth), parseInt(tmp2.clientHeight) );
+
+					viewMgr.viewChanged = PageViewChanged;
+				}
+			}
+		}
+	}
+}
+
+function CopyVMLAttrs(vmlObjDst, vmlObjSrc)
+{
+	if (vmlObjDst != null && vmlObjSrc != null)
+	{
+		vmlObjDst.style.cssText = vmlObjSrc.style.cssText;
+	}
+}
+
+function CopyVMLImageData(vmlImageDataDst, vmlImageDataSrc)
+{
+	if (vmlImageDataDst != null && vmlImageDataSrc != null)
+	{
+		vmlImageDataDst.src = vmlImageDataSrc.src;
+	}
+}
+
+function setZoomRectCursor()
+{
+	var x = getMouseXcoord() - zoomObj.zoomWinLeft;
+	var y = getMouseYcoord() - zoomObj.zoomWinTop;
+
+	var rbw = 5;
+
+	var newCursor	= "";
+	if( y > (zoomObj.zoomWinHeight - rbw) )
+		newCursor = "s"
+	else if( y < rbw )
+		newCursor = "n";
+		
+	if( x < rbw )
+		newCursor += "w";
+	else if( x > (zoomObj.zoomWinWidth - rbw) )
+		newCursor += "e";
+
+	if( newCursor != "" )
+		zoomRectObj.style.cursor = newCursor + "-resize";
+	else
+		zoomRectObj.style.cursor = "move";
+}
+
+function startZoomRectDrag()
+{
+	var currentCursor = zoomRectObj.style.cursor;
+
+	if( currentCursor.indexOf( '-' ) != -1 )
+	{
+		g_resizeDirection = currentCursor.split( '-' )[0];
+		startDrag( 'zoomRectDiv', doResizeZoomRectDrag, stopResizeZoomRectDrag );
+	}
+	else
+	{
+		startDrag( 'zoomRectDiv', doZoomRectDrag, stopZoomRectDrag );
+	}
+}
+
+function doZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var rectLeft = parseInt(dragObj.divObject.style.left);
+	var rectTop = parseInt(dragObj.divObject.style.top);
+	var rectWidth = parseInt(dragObj.divObject.style.width);
+	var rectHeight = parseInt(dragObj.divObject.style.height);
+
+	var xOffset = 0;
+	var yOffset = 0;
+
+	var xPercent = 0;
+	var yPercent = 0;
+
+	var pnzImgLeft = parseInt(divThumbnail.style.left);
+	var pnzImgTop = parseInt(divThumbnail.style.top);
+	var pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+	var pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+		
+	xOffset = x + dragObj.xOffset - pnzImgLeft;
+	xPercent = xOffset / pnzImgWidth;
+
+	yOffset = y + dragObj.yOffset - pnzImgTop;
+	yPercent = yOffset / pnzImgHeight;
+
+	if (xOffset < 0)
+	{
+		xPercent = 0;
+		xOffset = pnzImgLeft - BUFFER;
+	}
+	else if (xOffset + rectWidth > pnzImgWidth)
+	{
+		xPercent = 1;
+		xOffset = pnzImgLeft + pnzImgWidth - rectWidth + BUFFER;
+	}
+	else
+	{
+		xOffset = x + dragObj.xOffset;
+	}
+
+	if (yOffset < 0)
+	{
+		yPercent = 0;
+		yOffset = pnzImgTop - BUFFER;
+	}
+	else if (yOffset + rectHeight > pnzImgHeight)
+	{
+		yPercent = 1;
+		yOffset = pnzImgTop + pnzImgHeight - rectHeight + BUFFER;
+	}
+	else
+	{
+		yOffset = y + dragObj.yOffset;
+	}
+
+	if (parent.parent.viewMgr.setView)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	setZWinSize (null, null, xOffset, yOffset);
+}
+
+function stopZoomRectDrag(dragObj, x, y)
+{
+	var el = window.event.srcElement;
+	g_newLeft = parseInt(el.style.left);
+	g_newTop = parseInt(el.style.top);
+}
+
+function setZWinSize( newWidth, newHeight, newLeft, newTop )
+{
+	if( newWidth != null && newWidth >= 0 ) 
+	{
+		zoomObj.zoomWinWidth = newWidth;
+		zoomRectObj.style.width = newWidth;
+	}
+
+	if( newHeight != null && newHeight >= 0 ) 
+	{
+		zoomObj.zoomWinHeight = newHeight;
+		zoomRectObj.style.height = newHeight;
+	}
+
+	if( newLeft != null && newLeft >= 0 )
+	{
+		zoomObj.zoomWinLeft = newLeft;
+		zoomRectObj.style.left = newLeft;
+	}
+
+	if( newTop != null && newTop >= 0 )
+	{
+		zoomObj.zoomWinTop = newTop;
+		zoomRectObj.style.top= newTop;
+	}
+}
+
+function doResizeZoomRectDrag(dragObj, x, y)
+{
+	var newWidth	= null;
+	var newHeight	= null;
+	var newLeft		= null;
+	var newTop		= null;
+		
+	var tmp = parent.parent.frmDrawing;
+	if (tmp)
+	{
+		zoomObj.mainWinWidth		= tmp.document.body.clientWidth;
+		zoomObj.mainWinHeight		= tmp.document.body.clientHeight;
+	}
+
+	var widthHeightRatio = zoomObj.mainWinWidth / zoomObj.mainWinHeight;
+	
+	var minimumSize = 10;
+	if( g_resizeDirection == 'e' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'w' )
+	{
+		newWidth	= zoomObj.zoomWinWidth + zoomObj.zoomWinLeft - x;
+		if( newWidth > minimumSize )
+		{
+			newHeight	= newWidth / widthHeightRatio;
+			newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+			newLeft		= x;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+
+	if( g_resizeDirection == 'se' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 's' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'sw' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+	
+	if( g_resizeDirection == 'n' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'ne' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'nw' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+}
+
+function stopResizeZoomRectDrag(dragObj, x, y)
+{
+	PNZimg = document.all("ConvertedImage");
+
+	var xWidthPercent = parseInt(zoomRectDiv.style.width) / PNZimg.style.pixelWidth;
+	var yHeightPercent = parseInt(zoomRectDiv.style.height) / PNZimg.style.pixelHeight;
+
+	var newZoomLevel = GetZoomLevel (xWidthPercent, yHeightPercent);
+
+	if (parent.parent.viewMgr.Zoom)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostZoomProcessing = PostZoomProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.Zoom (newZoomLevel);
+	}
+
+	g_width = parseInt(zoomRectDiv.style.pixelWidth);
+	g_height = parseInt(zoomRectDiv.style.pixelHeight);
+	g_newLeft = parseInt(zoomRectDiv.style.left);
+	g_newTop = parseInt(zoomRectDiv.style.top);
+}
+
+function GetZoomLevel (xWidthPercent, yHeightPercent)
+{
+	var newZoomLevel;
+	if (xWidthPercent < yHeightPercent)
+	{
+		newZoomLevel = 100 / xWidthPercent;
+	}
+	else
+	{
+		newZoomLevel = 100 / yHeightPercent;
+	}
+
+	return newZoomLevel;
+}
+
+function PostZoomProcessing (newZoomLevel)
+{
+	var xOffset = parseInt(zoomRectDiv.style.left) - parseInt(divThumbnail.style.left);
+	var yOffset = parseInt(zoomRectDiv.style.top) - parseInt(divThumbnail.style.top);
+
+	var xPercent = xOffset / PNZimg.style.pixelWidth;
+	var yPercent = yOffset / PNZimg.style.pixelHeight;
+
+	var viewMgr = parent.parent.viewMgr;
+	viewMgr.ChangingView = true;
+
+	if (viewMgr.setView)
+	{
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	SetCorrectTick (newZoomLevel);
+
+	viewMgr.PostZoomProcessing = null;
+}
+
+function SetCorrectTick (newZoomLevel)
+{
+	var zoomLevels = parent.zoomLevels;
+	if (newZoomLevel <= zoomLevels[0])
+	{
+		parent.changeTick(zoomLevels[0]);
+	}
+	else if (newZoomLevel >= zoomLevels[zoomLevels.length - 1])
+	{
+		parent.changeTick(zoomLevels[zoomLevels.length - 1]);
+	}
+	else
+	{
+		for (var count = 0; count < zoomLevels.length - 1; count++)
+		{
+			var deltaDown = newZoomLevel - zoomLevels[count];
+			var deltaUp = newZoomLevel - zoomLevels[count + 1];
+			if (deltaDown >= 0 && deltaUp <= 0)
+			{
+				if (Math.abs(deltaDown) < Math.abs(deltaUp))
+				{
+					parent.changeTick(zoomLevels[count]);
+					break;
+				}
+				else
+				{
+					parent.changeTick(zoomLevels[count + 1]);
+					break;
+				}
+			}
+		}
+	}
+}
+
+function PostSetViewProcessing ()
+{
+	parent.parent.viewMgr.ChangingView = false;
+	parent.parent.viewMgr.PostSetViewProcessing = null;
+}
+
+function startNewZoomRectDrag()
+{
+	var x = getMouseXcoord();
+	var y = getMouseYcoord();
+	zoomObj.newZWinStartX = x;
+	zoomObj.newZWinStartY = y;
+	
+	g_newZWinObjRef = document.all("newZoomWindowDiv");
+	g_newZWinObjRef.style.display = "";
+
+	startDrag( 'zoomRectDiv', doNewZoomRectDrag, stopNewZoomRectDrag );
+}
+
+function doNewZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var width	= Math.abs( zoomObj.newZWinStartX - x );
+	var height	= Math.abs( zoomObj.newZWinStartY - y );
+
+	var aspectRatio = parent.parent.viewMgr.docDrawing.body.clientWidth / parent.parent.viewMgr.docDrawing.body.clientHeight;
+
+	if( width < (aspectRatio * height))
+	{
+		width = (aspectRatio) * height;
+	}
+	else
+	{
+		height = width / (aspectRatio);
+	}
+
+	width = Math.min (width, parseInt(PNZimg.style.pixelWidth));
+	height = Math.min (height, parseInt(PNZimg.style.pixelHeight));
+
+	var left = (x > zoomObj.newZWinStartX) ? zoomObj.newZWinStartX : zoomObj.newZWinStartX - width;
+	var top  = (y > zoomObj.newZWinStartY) ? zoomObj.newZWinStartY : zoomObj.newZWinStartY - height;
+
+	newZoomWindowDiv.style.top = top;
+	newZoomWindowDiv.style.left = left;
+	newZoomWindowDiv.style.height = height;
+	newZoomWindowDiv.style.width = width;
+	newZoomWindowDiv.style.visibility = "visible";
+
+	zoomObj.zoomWinLeft		= left;
+	zoomObj.zoomWinWidth	= width;
+	zoomObj.zoomWinTop		= top;
+	zoomObj.zoomWinHeight	= height;
+}
+
+function stopNewZoomRectDrag(dragObj, x, y)
+{
+	newZoomWindowDiv.style.visibility = "hidden";
+
+	if (parseInt (newZoomWindowDiv.style.width) > 10 && 
+		parseInt (newZoomWindowDiv.style.height) > 10)
+	{
+		zoomRectDiv.style.top = newZoomWindowDiv.style.top;
+		zoomRectDiv.style.left = newZoomWindowDiv.style.left;
+		zoomRectDiv.style.height = newZoomWindowDiv.style.height;
+		zoomRectDiv.style.width = newZoomWindowDiv.style.width;
+
+		stopResizeZoomRectDrag(dragObj,x,y);
+		zoomRectDiv.style.display = "inline";
+		zoomRectDiv.style.visibility = "visible";
+	}
+	else
+	{
+		zoomObj.zoomWinLeft		= parseInt(zoomRectDiv.style.left);
+		zoomObj.zoomWinWidth	= parseInt(zoomRectDiv.style.width);
+		zoomObj.zoomWinTop		= parseInt(zoomRectDiv.style.top);
+		zoomObj.zoomWinHeight	= parseInt(zoomRectDiv.style.height);
+	}
+
+	newZoomWindowDiv.style.height = "0px";
+	newZoomWindowDiv.style.width = "0px";
+
+	newZoomWindowDiv.style.display = "none";
+}
+
+var g_lastX = 0;
+var g_lastY = 0;
+
+document.onmousedown = mouseDown;
+document.onmousemove = mouseMove;
+document.onmouseup = mouseUp;
+document.onmouseout = mouseOut;
+
+function mouseDown()
+{
+	return true;
+}
+
+function mouseMove()
+{
+	var x = event.clientX + document.body.scrollLeft;
+	var y = event.clientY + document.body.scrollTop;
+
+	g_lastX = x;
+	g_lastY = y;
+	
+	doDrag( x, y );
+	return true;
+}
+
+function mouseUp() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+	
+	stopDrag(null,x,y);
+	return true;
+}
+
+function mouseOut() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+
+	if( x < 0 ) x = -1;
+	if( x >= document.body.clientWidth ) x = -1;
+		
+	if( y < 0 ) y = -1;
+	if( y >= document.body.clientHeight ) y = -1;
+
+	if( x == -1 || y == -1 )
+	{
+		x = -1;
+		y = -1;
+	}
+	
+
+	if( x == -1 )
+		stopDrag( null, x, y );
+	return true;
+}
+
+function getMouseXcoord()
+{
+	return event.x + document.body.scrollLeft;
+}
+
+function getMouseYcoord()
+{
+	return event.y + document.body.scrollTop;
+}
+
+var g_width		= -1;
+var g_height	= -1;
+var g_newLeft	= -1;	
+var g_newTop	= -1;
+		
+var g_pnzImgWidth = -1;
+var g_pnzImgHeight = -1;
+var g_pnzImgLeft = -1;
+var g_pnzImgTop = -1;
+
+function keydown()
+{
+	var key = window.event.keyCode;
+	var el = window.event.srcElement;
+
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{
+		if(g_width == -1)
+			g_width		= parseInt(el.style.pixelWidth);
+			
+		if(g_height == -1)
+			g_height		= parseInt(el.style.pixelHeight);
+			
+		if(g_newLeft == -1)
+			g_newLeft		= parseInt(el.style.left);	
+		
+		if(g_newTop == -1)
+			g_newTop		= parseInt(el.style.top);
+		
+		if(g_pnzImgWidth == -1)
+			g_pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+			
+		if(g_pnzImgHeight == -1)
+			g_pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+			
+		if(g_pnzImgLeft == -1)
+			g_pnzImgLeft = parseInt(divThumbnail.style.left);
+			
+		if(g_pnzImgTop == -1)
+			g_pnzImgTop = parseInt(divThumbnail.style.top);
+	
+
+		if(key == 37)	
+		{
+			g_newLeft -= 1;
+			if(g_newLeft < g_pnzImgLeft)
+			{
+				g_newLeft = g_pnzImgLeft;
+			}	
+		}
+		else if(key == 38)	
+		{
+			g_newTop -= 1;
+			if(g_newTop < g_pnzImgTop)
+			{
+				g_newTop = g_pnzImgTop;
+			}	
+		}
+		else if(key == 39)	
+		{
+			g_newLeft += 1;
+			if(g_newLeft + g_width > g_pnzImgLeft + g_pnzImgWidth)
+			{
+				g_newLeft = g_pnzImgLeft + g_pnzImgWidth - g_width;		
+			}
+		}
+		
+		else if(key == 40)	
+		{
+			g_newTop += 1;
+			if(g_newTop + g_height > g_pnzImgTop + g_pnzImgHeight)
+			{
+				g_newTop = g_pnzImgTop + g_pnzImgHeight - g_height;		
+			}
+		}
+		
+		setZoomRectCursor();
+
+		var xOffset = g_newLeft - g_pnzImgLeft;
+		var yOffset = g_newTop - g_pnzImgTop;
+		
+		var xPercent = xPercent = xOffset / g_pnzImgWidth;
+		var yPercent = yPercent = yOffset / g_pnzImgHeight;
+
+		if (xOffset < 0)
+		{
+			xPercent = 0;
+			xOffset = g_pnzImgLeft;
+		}
+		else if (xOffset + g_width > g_pnzImgWidth)
+		{
+			xPercent = 1;
+			xOffset = g_pnzImgLeft + g_pnzImgWidth - g_width;
+		}
+
+		if (yOffset < 0)
+		{
+			yPercent = 0;
+			yOffset = g_pnzImgTop;
+		}
+		else if (yOffset + g_height > g_pnzImgHeight)
+		{
+			yPercent = 1;
+			yOffset = g_pnzImgTop + g_pnzImgHeight - g_height;
+		}
+
+		if (parent.parent.viewMgr.setView)
+		{
+			var viewMgr = parent.parent.viewMgr;
+			viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+			viewMgr.ChangingView = true;
+			viewMgr.setView (xPercent, yPercent);
+		}	
+		setZWinSize (null, null, g_newLeft, g_newTop);
+	}
+}
+
+function keyup()
+{
+	var key = window.event.keyCode;
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{		
+		el = window.event.srcElement;
+	}
+}
+
+function dragObject( divID, divObject, xOffset, yOffset, dragFunctionPointer, dragStopFunctionPointer )
+{
+	this.divID			= divID;
+	this.divObject		= divObject;
+	this.xOffset		= xOffset;
+	this.yOffset		= yOffset;
+	this.dragFPtr		= dragFunctionPointer;
+	this.dragStopFPtr	= dragStopFunctionPointer;
+}
+
+var dragList = new Array();
+
+
+function startDrag( divID, dragFunctionPtr, dragStopFunctionPointer, xOffset, yOffset ) 
+{
+	var divObject = document.all(divID);
+	if( divObject != null ) 
+	{
+		document.selection.empty();
+		
+		if( xOffset == null )
+		{
+			xOffset = parseInt(divObject.style.left) - g_lastX;
+		}
+		
+		if( yOffset == null )
+		{
+			yOffset = parseInt(divObject.style.top)  - g_lastY;
+		}
+
+		dragList[ dragList.length ] = new dragObject( divID, divObject, xOffset, yOffset, dragFunctionPtr, dragStopFunctionPointer );
+		return true;
+	} 
+	else 
+	{
+		return false;
+	}
+}
+
+function doDrag( x, y ) 
+{
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].dragFPtr != null )
+			dragList[i].dragFPtr( dragList[i], x, y );
+	}
+	if( dragList.length )
+	{
+		document.selection.empty();
+	}
+}
+
+function stopDrag( divID, x, y ) 
+{ 
+	var tmpDragObject;
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].divID == divID || divID == null ) 
+		{
+			tmpDragObject = dragList[i];
+			
+			dragList[i] = dragList[ dragList.length - 1 ];
+			dragList.length = dragList.length - 1;
+			
+			if( tmpDragObject.dragStopFPtr != null )
+			{
+				tmpDragObject.dragStopFPtr( tmpDragObject, x, y );
+			}
+			
+		}
+	}
+}
+
+function PageViewChanged(newLeftPercent, newTopPercent, newWidthPercent, newHeightPercent)
+{
+	if (dragList.length == 0 && !parent.parent.viewMgr.ChangingView)
+	{
+		var newLeft		= null;
+		var newTop		= null;
+		var newWidth	= null;
+		var newHeight	= null;
+
+		var PNZimg = document.all("ConvertedImage");
+
+		if (newLeftPercent != null)
+		{
+			newLeft = (newLeftPercent * PNZimg.style.pixelWidth) + parseInt(divThumbnail.style.left);
+		}
+		
+		if (newTopPercent != null)
+		{
+			newTop = (newTopPercent * PNZimg.style.pixelHeight) + parseInt(divThumbnail.style.top);
+		}
+		
+		if (newWidthPercent != null)
+		{
+			newWidth = newWidthPercent * PNZimg.style.pixelWidth;
+		}
+		
+		if (newHeightPercent != null)
+		{
+			newHeight = newHeightPercent * PNZimg.style.pixelHeight;
+		}
+
+		setZWinSize (newWidth, newHeight, newLeft, newTop);
+
+		if (newLeftPercent <= 0 && newTopPercent <= 0 && newWidthPercent >= 1 && newHeightPercent >= 1)
+		{
+			zoomRectDiv.style.display = "none";
+			zoomRectDiv.style.visibility = "hidden";
+		}
+		else
+		{
+			zoomRectDiv.style.display = "inline";
+			zoomRectDiv.style.visibility = "visible";
+		}
+
+		if (newWidthPercent != null && newHeightPercent != null)
+		{
+			var newZoomLevel = GetZoomLevel (newWidthPercent, newHeightPercent);
+			SetCorrectTick (newZoomLevel);
+		}
+	}
+}
+
+function load()
+{
+	parent.parent.g_ZoomLoaded = true;
+
+	if (parent.parent.g_LoadingWidgets)
+	{
+		parent.parent.g_LoadingWidgets = false;
+		parent.parent.location.reload();
+	}
+}
+
+function unload()
+{
+	if (parent.parent.viewMgr)
+	{
+		parent.parent.viewMgr.viewChanged = null;
+	}
+
+	parent.parent.g_LoadingWidgets = true;
+}
+
+
+</script>
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divPZWindow" style="width: 100%; height: 100%;" >
+	<div id="divThumbnail" style="position: absolute; " onmousedown="startNewZoomRectDrag();"></div>
+</div>
+<div id="divTempThumbnail" style="position: absolute; visibility:hidden; display:none;" ></div>
+
+<div id="zoomRectDiv" tabindex="1" title="可見的區域。使用滑鼠或方向鍵來移動。" onkeydown="keydown()" onkeyup="keyup()" style="display:none;position: absolute; border: solid red thin; z-index: 3;" onmousedown="startZoomRectDrag();" onmouseover="setZoomRectCursor();" onmousemove="setZoomRectCursor();"></div>
+<div id="newZoomWindowDiv" style="position: absolute; border: solid blue thin; z-index: 4; visibility: hidden;"></div>
+
+</body>
+</html>
+
+
+
+
+
+
Index: /drbl_ui/flow_chart/drbl_mode.htm
===================================================================
--- /drbl_ui/flow_chart/drbl_mode.htm	(revision 21)
+++ /drbl_ui/flow_chart/drbl_mode.htm	(revision 21)
@@ -0,0 +1,718 @@
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+		<meta name="標題" content=""/>
+		<meta name="主旨" content=""/>
+		<meta name="類別" content=""/>
+		<meta name="關鍵字" content=""/>
+		<meta name="描述" content=""/>
+		<meta name="作者" content=" "/>
+		<meta name="主管" content=""/>
+		<meta name="公司" content=""/>
+
+		<title>drbl_mode</title>
+		<script src="drbl_mode.files/frameset.js" type="text/jscript" language="jscript"></script>
+		<script type="text/jscript" language="jscript" >
+
+function FileEntry (pageIndex, pageID, pageName, priImage, secImage) 
+{
+	this.PageIndex = pageIndex;
+	this.PageID	  = pageID;
+	this.PageName = pageName;
+	this.PriImage = priImage;
+	this.SecImage = secImage;
+}
+
+var viewMgr = null;
+
+var g_FileList = new  Array(
+ new FileEntry (1, 0, "頁-1", "vml_1.htm", "gif_1.htm")
+
+);
+
+var g_CurPageIndex = 0;
+var g_ZoomLoaded = false;
+var g_WidgetsLoaded = false;
+var g_FileProtocol = "file://";
+
+var g_HLMenuEntry = "menuEntry";
+var g_HLMenuEntryDiv = "menuEntryDiv";
+
+var g_LoadingWidgets = false;
+
+
+function CViewMgr(convertedImgID, highlightDivID)
+{
+	this.onResize = null;
+	this.ApplyZoom = null;
+	this.ChangingView = false;
+
+	this.put_Location = ViewMgrDefaultFind;
+	this.Zoom = ViewMgrDefaultResize;
+	this.PostZoomProcessing = null;
+	this.setView = null;
+	this.PostSetViewProcessing = null;
+	this.viewChanged = null;
+
+	this.SupportsDetails = false;
+	this.SupportsSearch = false;
+
+	this.visBBoxLeft = 0.0;
+	this.visBBoxRight = 0.0;
+	this.visBBoxBottom = 0.0;
+	this.visBBoxTop = 0.0;
+
+	this.highlightDiv = null;
+	this.stepWidth = 10;
+
+	this.id = convertedImgID;
+	this.zoomFactor = -1;
+	this.zoomLast = -1;
+	this.origWH = 1;
+	this.origWidth = 100;	
+	this.aspectRatio = 1;
+
+	this.docDrawing = null;
+	var docDrawing = frmDrawing.document;
+	if(docDrawing)
+	{
+		this.docDrawing = docDrawing;
+		var docEl = docDrawing.all(this.id);
+		if (docEl)
+		{
+			this.s = docEl.style;
+			this.origWidth = this.s.pixelWidth;
+			this.origWH = this.s.pixelWidth / this.s.pixelHeight;
+		}
+		this.highlightDiv = docDrawing.all(highlightDivID);
+	}
+
+	this.loadPage = DefPageLoad;
+	this.getPNZ	= null;
+}
+
+function DefPageLoad (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+        if (fileDelim == -1)
+            fileDelim = curPath.lastIndexOf ('\\');
+		var newPath = curPath.substring (0, fileDelim + 1);
+		newPath += g_FileList[pageIndex].PriImage;
+		frmDrawing.location.href = newPath;
+
+		SetPNZDisplay (pageIndex);
+	}
+}
+
+function CurPageUpdate (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		g_CurPageIndex = pageIndex;
+
+		SetCurPageInGoto (pageIndex);
+
+		var divDetails = frmToolbar.document.all("divDetails");
+		if (divDetails)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsDetails)
+			{
+				displayStatus = "none";
+			}
+
+			divDetails.style.display = displayStatus;
+		}
+
+		var divSearch = frmToolbar.document.all("divSearch");
+		if (divSearch)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsSearch)
+			{
+				displayStatus = "none";
+			}
+
+			divSearch.style.display = displayStatus;
+		}
+
+		SetPNZDisplay (pageIndex);
+
+		LoadZoom ();
+	}
+}
+
+function FramePageLoaded ()
+{
+	if (isUpLevel && viewMgr == null)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+		if (fileDelim >= 0)
+		{
+			var fileName = curPath.substring (fileDelim + 1, curPath.length);
+			var pageIndex = PageIndexFromFileName (fileName);
+			SetCurPageInGoto (pageIndex);
+			SetPNZDisplay (pageIndex);
+		}
+	}
+}
+
+function LoadZoom ()
+{
+	var zoomWidget = frmToolbar.ifrmPNZ;
+	if (zoomWidget)
+	{
+		if (g_ZoomLoaded)
+		{
+			zoomWidget.findContent();
+			PageLoadedDoCallback ();
+		}
+		else
+		{
+			window.setTimeout("LoadZoom()", 500);
+		}
+	}
+	else
+	{
+		PageLoadedDoCallback ();
+	}
+}
+
+function SetCurPageInGoto (pageIndex)
+{
+	var gotoPageSelect = frmToolbar.document.all("Select1");
+	if (gotoPageSelect != null)
+	{
+		gotoPageSelect.value = pageIndex;
+	}
+}
+
+function SetPNZDisplay (pageIndex)
+{
+	var divPNZ = frmToolbar.document.all("divPNZ");
+	if (divPNZ)
+	{
+		var displayStatus = "block";
+		if (g_FileList[pageIndex].PageID < 0)
+		{
+			displayStatus = "none";
+		}
+
+		divPNZ.style.display = displayStatus;
+	}
+}
+
+function ViewMgrDefaultFind()
+{
+	return;
+}
+
+function ViewMgrDefaultResize(size)
+{
+	return;
+}
+
+
+
+g_callBackFunctionArray = new Array();
+function PageLoadedDoCallback()
+{
+	if (g_WidgetsLoaded)	
+	{
+		for( var i=0; i < g_callBackFunctionArray.length; i++ )
+		{
+			g_callBackFunctionArray[i]();
+		}
+		g_callBackFunctionArray = new Array();
+	}
+	else
+	{
+		window.setTimeout("PageLoadedDoCallback()", 500);
+	}
+}
+
+
+function ParseParams (strRawParams)
+{
+	strRawParams = strRawParams.substring(1);
+
+	var arrayParamTokens = strRawParams.split('&');
+	for (var count = 0; count < arrayParamTokens.length; count++)
+	{
+		arrayParamTokens[count] = unescape(arrayParamTokens[count]);
+		this[count] = arrayParamTokens[count].substring(0, arrayParamTokens[count].indexOf('='));
+		this[this[count]] = arrayParamTokens[count].substring(arrayParamTokens[count].indexOf('=') + 1);
+	}
+
+	return this;
+}
+
+var gParams = ParseParams (location.search);
+
+var g_PageParamValue = gParams['page'];
+if (g_PageParamValue != null && 
+	g_PageParamValue.length > 0)
+{
+	var pageIndex = PageIndexFromName (g_PageParamValue);
+	if (pageIndex > 0 && pageIndex < g_FileList.length)
+	{
+		g_CurPageIndex = pageIndex;
+	}
+}
+else
+{
+	g_PageParamValue = null;
+}
+
+var g_FirstPageToLoad = g_PageParamValue;
+
+var g_ZoomParamValue = gParams['zoom'];
+if (g_ZoomParamValue != null && g_ZoomParamValue.length > 0)
+{
+	g_ZoomParamValue = 1.0 * g_ZoomParamValue;
+	if (g_ZoomParamValue >= 10 && g_ZoomParamValue <= 500)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (viewMgr && viewMgr.Zoom) { viewMgr.Zoom(g_ZoomParamValue); } };
+	}
+}
+
+var g_ShapeParamValue = gParams['shape'];
+if (g_ShapeParamValue != null && g_ShapeParamValue.length > 0)
+{
+	if (g_PageParamValue != null && g_PageParamValue.length > 0)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var shapeNode = FindShapeXMLByName (g_PageParamValue, g_ShapeParamValue); if (shapeNode) { frmToolbar.TreeSelect (g_FileList[g_CurPageIndex].PageID, shapeNode.attributes.getNamedItem ("ID").text); } };
+	}
+	else
+	{
+		g_ShapeParamValue = null;
+	}
+}
+
+var g_SearchParamValue = gParams['search'];
+if (g_SearchParamValue != null && g_SearchParamValue.length > 0)
+{
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (frmToolbar.theForm) { frmToolbar.theForm.findString.value = g_SearchParamValue; } };
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var goButton = frmToolbar.document.all('GoButton'); if(goButton) { goButton.click(); } };
+}
+
+
+var strHLTooltipText = "按一下以跟隨超連結。";
+var strPropsTooltipText = "Ctrl + 按一下以檢視詳細資料。";
+
+var strFocusHLTooltipText = "按下 Enter 以追蹤超連結。";
+var strFocusPropsTooltipText = "Ctrl + Enter 以檢視詳細資料。";
+
+
+function UpdateTooltip (element, pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var strHL, strProps;
+	
+		if(frmDrawing.event.type == "focus")
+		{
+			strHL = strFocusHLTooltipText;
+			strProps = strFocusPropsTooltipText;
+		}
+		else
+		{
+			strHL = strHLTooltipText;
+			strProps = strPropsTooltipText;
+		}
+
+		var strTooltip = "";
+		if (element.origTitle)
+		{
+			strTooltip = element.origTitle.toString();
+		}
+			
+		var shapeNode = FindShapeXML (pageID, shapeID);
+
+		if( shapeNode != null )
+		{
+			var propColl = shapeNode.selectNodes ("Prop");
+			if (propColl != null && propColl.length > 0)
+			{
+				if (strTooltip.length > 0)
+				{
+					strTooltip += "\n";
+				} 
+				strTooltip += strProps;
+			}
+		}
+
+		var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+		if (hlObj != null && (hlObj.DoFunction.length > 0 || hlObj.Hyperlink.length > 0))
+		{
+			if (strTooltip.length > 0)
+			{
+				strTooltip += "\n";
+			}	
+			strTooltip += strHL;
+		}
+
+		element.title = strTooltip;
+		if (element.alt != null)
+		{
+			element.alt = strTooltip;
+		}
+	}
+}
+
+
+function GetHLAction (shapeNode, pageID, shapeID)
+{
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		if (hlColl.length > 1)
+		{
+			hlObj.DoFunction = "showMenu(" + pageID + ", " + shapeID + ");"
+		}
+		else if (hlColl.length == 1)
+		{
+			hlObj = CreateHLObj (hlColl.item(0));
+		}
+	}
+
+	return hlObj;
+}
+
+function HLObj (strHyperlink, strDoFunction, strDesc, newWindow) 
+{
+	this.Hyperlink = strHyperlink;
+	this.DoFunction = strDoFunction;
+	this.Desc = strDesc;
+	this.NewWindow = newWindow;
+}
+
+function clickMenu()
+{
+	var e = window.frmDrawing.event;
+	var menu = frmDrawing.document.all("menu1")
+	
+	if (menu != null && menu.style.display != "none")
+	{
+		menu.style.display="none";
+
+		if (e && e.srcElement && e.srcElement.doFunction != null)
+		{
+			eval(e.srcElement.doFunction);
+		}
+	}
+}
+
+function toggleMenuDiv(el, highlight) 
+{
+	var divEl = el;
+	var aEl = null;
+
+	var ID = el.id.substring (g_HLMenuEntryDiv.length, el.id.length) * 1.0;
+	aEl = divEl.all(g_HLMenuEntry + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenuLink(el, highlight) 
+{
+	var divEl = null;
+	var aEl = el;
+
+	var ID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	divEl = frmDrawing.document.all(g_HLMenuEntryDiv + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenu(divEl, aEl, highlight)
+{
+	if (highlight)
+	{
+	  divEl.className="highlightItem";
+	  aEl.className="highlightItem";
+	} 
+	else 
+	{
+	  divEl.className="menuItem";
+	  aEl.className="menuItem";
+	}
+}
+
+function showMenu(pageID, shapeID)
+{
+	var shapeXML = FindShapeXML (pageID, shapeID);
+	if (shapeXML != null)
+	{
+		CreateHLMenu (shapeXML);
+		var menu = frmDrawing.document.all("menu1");
+		if (menu != null)
+		{
+			menu.style.visibility = "hidden";
+			menu.style.display = "inline";
+
+			var e = window.frmDrawing.event;
+			var elem = e.srcElement;
+
+			var clientWidth = frmDrawing.document.body.clientWidth;
+			var clientHeight = frmDrawing.document.body.clientHeight;
+
+			var menuWidth = menu.clientWidth;
+			var menuHeight = menu.clientHeight;
+
+			var menuLeft = e.x;
+			var menuTop = e.y;
+			
+			var doc = frmDrawing.document;
+			var img = doc.all("ConvertedImage");
+			
+			if( (menuLeft + doc.body.scrollLeft < elem.offsetLeft) || (menuLeft + doc.body.scrollLeft > elem.offsetLeft + elem.offsetWidth + img.offsetLeft) )
+			{
+				menuLeft = elem.offsetLeft + img.offsetLeft + elem.offsetWidth/2;
+			}
+			
+			if( (menuTop + doc.body.scrollTop < elem.offsetTop) || (menuTop + doc.body.scrollTop > elem.offsetTop + elem.offsetHeight + img.offsetTop) )
+			{
+				menuTop = elem.offsetTop + img.offsetTop + elem.offsetHeight/2;
+			}
+
+			var scrollBarSize = 20;
+			if (menuLeft + menuWidth > clientWidth - scrollBarSize)
+			{
+				menuLeft = clientWidth - menuWidth - scrollBarSize;
+			}
+
+			if (menuTop + menuHeight > clientHeight - scrollBarSize)
+			{
+				menuTop = clientHeight - menuHeight - scrollBarSize;
+			}
+
+			menu.style.posLeft = menuLeft + frmDrawing.document.body.scrollLeft;
+			menu.style.posTop = menuTop + frmDrawing.document.body.scrollTop;
+			menu.style.visibility = "visible";
+
+			var firstLink = menu.all(g_HLMenuEntry + "0");
+			firstLink.focus ();
+			
+			if (e.keyCode == 13)
+			{
+				toggleMenuLink(firstLink, true);
+			}
+
+			e.cancelBubble = true;
+		}
+	}
+}
+
+function MenuKeyDown ()
+{
+	var e = window.frmDrawing.event;
+	var el = e.srcElement;
+
+	if (e.keyCode == 27)	// 27 == ESC
+	{
+		clickMenu();
+		e.cancelBubble = true;
+		return;
+	}
+
+	var curSelID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	var newSelID = -1;
+
+	if (e.keyCode == 40)	// 40 == down arrow
+	{
+		newSelID = curSelID + 1;
+	}
+	else if (e.keyCode == 38) // 38 == up arrow
+	{
+		newSelID = curSelID - 1;
+	}
+
+	var newSelEntry = frmDrawing.document.all(g_HLMenuEntry + newSelID);
+
+	if (newSelEntry)
+	{
+		newSelEntry.focus();
+
+		var curSelEntry = frmDrawing.document.all(g_HLMenuEntry + curSelID);
+		toggleMenuLink (curSelEntry, false);
+		toggleMenuLink (newSelEntry, true);
+	}
+
+	e.cancelBubble = true;
+}
+
+function CreateHLMenu (shapeNode)
+{
+	var strHLMenuHTML = "";
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		strHLMenuHTML = "<div class='innerhlMenu'>";
+
+		var hlCount = hlColl.length;
+		for (var count = 0; count < hlCount; count++)
+		{
+			var hlObj = CreateHLObj (hlColl.item(count));
+			if (hlObj != null)
+			{
+				if (hlObj.Desc.length > 0)
+				{
+					strHLMenuHTML += "<div id='" + (g_HLMenuEntryDiv + count) + "' class='menuItem' onmouseover='toggleMenuDiv(this, true)' onmouseout='toggleMenuDiv(this, false)' onclick='" + (g_HLMenuEntry + count) + ".click()'>";
+					strHLMenuHTML += "<a href=";
+
+					if (hlObj.DoFunction.length > 0)
+					{
+						strHLMenuHTML += "'javascript:" + hlObj.DoFunction + "'";
+					}
+					else
+					{
+						var targetVal = "_top";
+						if (hlObj.NewWindow)
+						{
+							targetVal = "_blank";
+						}
+						strHLMenuHTML += "'" + hlObj.Hyperlink + "' target='" + targetVal + "'";
+					}
+
+					strHLMenuHTML += " class='menuItem' id='" + (g_HLMenuEntry + count) + "' onkeydown='parent.MenuKeyDown();' onmouseover='toggleMenuLink(this, true)' onmouseout='toggleMenuLink(this, false)'>";
+					strHLMenuHTML += hlObj.Desc + "</a></div>";
+				}
+			}
+		}
+		
+		strHLMenuHTML += "</div>";
+	}
+
+	frmDrawing.menu1.innerHTML = strHLMenuHTML;
+}
+
+function CreateHLObj (hlNode)
+{
+	var strAddress = "";
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (hlNode != null)
+	{
+		var hlAddress = hlNode.selectSingleNode("HLURL:Address/textnode()");
+		if (hlAddress != null && hlAddress.text.length > 0)
+		{
+			var absoluteURL = hlNode.selectSingleNode("HLURL:AbsoluteURL/textnode()");
+			var strAbsURL = absoluteURL.text;
+			var strAddr = hlAddress.text;
+
+			if (strAbsURL.indexOf (g_FileProtocol) == 0)
+			{
+				var strAbsPath = strAbsURL.substring (g_FileProtocol.length, strAbsURL.length);
+				strAbsPath.toLowerCase ();
+				strAddr.toLowerCase ();
+				if (strAbsPath == strAddr)
+				{
+					strAddress = strAbsPath;
+				}
+				else
+				{
+					strAddress = strAddr;
+					
+					var hlSubAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+					if (hlSubAddress != null && hlSubAddress.text.length > 0)
+					{
+						strAddress += '#';
+						strAddress += hlSubAddress.text;
+					}
+
+					var hlExtraInfo = hlNode.selectSingleNode("HLURL:ExtraInfo/textnode()");
+					if (hlExtraInfo != null && hlExtraInfo.text.length > 0)
+					{
+						strAddress += '?';
+						strAddress += hlExtraInfo.text;
+					}
+				}
+			}
+			else
+			{
+				strAddress = strAbsURL;
+			}		
+
+			strAddress = HTMLEscape (strAddress);
+			hlObj.Hyperlink += strAddress;
+		}
+		else
+		{
+			hlAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+			if (hlAddress != null && hlAddress.text.length > 0)
+			{
+				strAddress = hlAddress.text;
+
+				var pageShapeSep = strAddress.lastIndexOf ('/');
+				if (pageShapeSep > 0)
+				{
+					if (PageIndexFromName (strAddress) < 0)
+					{
+						strAddress = unescape (strAddress);
+						if (PageIndexFromName (strAddress) < 0)
+						{
+							strAddress = strAddress.substring (0, strAddress.lastIndexOf ('/'));
+						}
+					}
+				}
+
+				var pageIndex = PageIndexFromName (strAddress);
+
+				hlObj.DoFunction = "GoToPage (" + pageIndex + ");";
+				strAddress = HTMLEscape (strAddress);
+				hlObj.Desc = strAddress;
+			}
+		}
+
+		hlDesc = hlNode.selectSingleNode("HLURL:Description/textnode()");
+		if (hlDesc != null && hlDesc.text.length > 0)
+		{
+			hlObj.Desc = HTMLEscape (hlDesc.text);
+		}
+		else
+		{
+			hlObj.Desc = strAddress;
+		}
+	
+		var hlNewWindow = hlNode.selectSingleNode("HLURL:NewWindow/textnode()");
+		if (hlNewWindow != null && hlNewWindow.text.length > 0)
+		{
+			hlObj.NewWindow = (hlNewWindow.text == "1");
+		}		
+	}
+
+	return hlObj;
+}
+
+
+		</script>
+	</head>
+	
+	<frameset id="frmstOuter" cols="237,*" title="drbl_mode">
+		<frame src="drbl_mode.files/toolbar.htm" name="frmToolbar" id="frmToolbar" title="此框架包含管理您繪圖的工具。" frameborder="6" bordercolor="#999999" scrolling="no" marginheight="0" marginwidth="0" >
+		<frame src="drbl_mode.files/gif_1.htm" name="frmDrawing" title="此框架包含您繪圖的頁面。" marginheight="10" marginwidth="10" onload="if (parent.isUpLevel) FramePageLoaded()" >
+
+		<noframes>
+			<body>
+
+				<h1>drbl_mode</h1>
+				<ul>
+				<li><a href="drbl_mode.files/gif_1.htm">頁-1</a></li>
+
+				</ul>
+			</body>
+		</noframes>
+	</frameset>
+	
+</html>
+
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/data.xml
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/data.xml	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/data.xml	(revision 21)
@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisioDocument>
+	<DocumentProperties>
+		<Title></Title>
+		<HyperlinkBase href=""></HyperlinkBase>
+	</DocumentProperties>
+	<Pages>
+		<Page ID="0" Name="頁-1" NameU="Page-1">
+			<Layer IX="0">
+				<Name>流程圖</Name>
+				<NameUniv>Flowchart</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Layer IX="1">
+				<Name>連接器</Name>
+				<NameUniv>Connector</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Shapes>
+				<Shape ID="1" UniqueID="{74DFBF56-6897-4F20-8A9F-E1DFF5355862}" Name="終端子" NameU="Terminator" Master="0">
+					<Text>start</Text>
+					<XForm>
+						<PinX Unit="MM">2.362204724409449</PinX>
+						<PinY Unit="MM">9.486249124724198</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="2" UniqueID="{FE984CB8-5549-4FAF-A365-0B1DDC680DDD}" Name="決策" NameU="Decision" Master="2">
+					<Text>Normal login</Text>
+					<XForm>
+						<PinX Unit="MM">2.362204724409449</PinX>
+						<PinY Unit="MM">8.537487531652916</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="4" UniqueID="{A7FBF913-B4E1-46EA-855F-A8F96F6BD5B3}" Name="動態連接器" NameU="Dynamic connector" Master="3">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">2.362204724409449</PinX>
+						<PinY Unit="MM">7.910476049291025</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="6" UniqueID="{4A46CEBC-38C4-445C-ACBB-691CD8BC97E4}" Name="動態連接器.6" NameU="Dynamic connector.6" Master="3">
+					<Text>yes</Text>
+					<XForm>
+						<PinX Unit="MM">2.362204724409448</PinX>
+						<PinY Unit="MM">4.711754409894036</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="7" UniqueID="{EAB73B58-DA5B-47F2-A3B8-0FF3A203D08B}" Name="動態連接器.7" NameU="Dynamic connector.7" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.362204724409449</PinX>
+						<PinY Unit="MM">9.092548337322626</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="8" UniqueID="{D69827FF-42CC-4561-A3F4-FC7F34A4BDE4}" Name="動態連接器.8" NameU="Dynamic connector.8" Master="3">
+					<XForm>
+						<PinX Unit="MM">1.840551181102362</PinX>
+						<PinY Unit="MM">6.078797462046826</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="10" UniqueID="{C1F08EBD-1969-4CEE-8E8D-B44A7FD243F5}" Name="終端子.41" NameU="Terminator.41" Master="0">
+					<Text>end</Text>
+					<XForm>
+						<PinX Unit="MM">2.362204724409449</PinX>
+						<PinY Unit="MM">1.931073709921467</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="3" UniqueID="{DFA46D5F-BB91-4D38-8124-055AE7F17DF3}" Name="程序" NameU="Process" Master="4">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">2.362204724409449</PinX>
+						<PinY Unit="MM">3.620107392440736</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="13" UniqueID="{34AF1380-724C-49EB-8172-D4660A759A2A}" Name="動態連接器.13" NameU="Dynamic connector.13" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.362204724409449</PinX>
+						<PinY Unit="MM">2.694910542047035</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="14" UniqueID="{297802FA-9BFD-4D72-924F-1592F1C8C69D}" Name="決策.14" NameU="Decision.14" Master="2">
+					<Text>選擇 clients</Text>
+					<XForm>
+						<PinX Unit="MM">4.239551158325611</PinX>
+						<PinY Unit="MM">5.785656239631010</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="15" UniqueID="{E8E65D57-68AD-4A1C-AF45-347053708D9A}" Name="儲存的資料" NameU="Stored data" Master="7">
+					<Text>讀取
+ ip_list or
+ MAC list</Text>
+					<XForm>
+						<PinX Unit="MM">5.523045082912127</PinX>
+						<PinY Unit="MM">5.785656239631010</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="16" UniqueID="{31875D79-33EB-4AFF-8DD6-621EC20D37D2}" Name="動態連接器.16" NameU="Dynamic connector.16" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.881298120618869</PinX>
+						<PinY Unit="MM">5.785656239631010</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="17" UniqueID="{7A424B4B-457D-4114-9951-447176417566}" Name="動態連接器.17" NameU="Dynamic connector.17" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.521734012535020</PinX>
+						<PinY Unit="MM">5.785558981390204</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="18" UniqueID="{F3177F5F-5AA4-4577-8228-0F059DA42BAD}" Name="動態連接器.18" NameU="Dynamic connector.18" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.240062412373559</PinX>
+						<PinY Unit="MM">5.252414841466742</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="19" UniqueID="{690CA24F-8F1C-4600-B3AF-813011341F82}" Name="決策.19" NameU="Decision.19" Master="2">
+					<Text>While client in CLEINTS is true</Text>
+					<XForm>
+						<PinX Unit="MM">4.240573666421508</PinX>
+						<PinY Unit="MM">4.701233739104538</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="20" UniqueID="{8C7851BD-CC5E-410C-A7F8-BFED34DCEE8E}" Name="動態連接器.20" NameU="Dynamic connector.20" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.262290203022578</PinX>
+						<PinY Unit="MM">3.316153724513002</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="21" UniqueID="{5E56EF15-A991-4435-B751-C902BB8DEF9F}" Name="程序.21" NameU="Process.21" Master="4">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">4.240573666421508</PinX>
+						<PinY Unit="MM">3.441391219419499</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="22" UniqueID="{71D9E315-4DF1-4185-9CAD-482F7AA120DC}" Name="動態連接器.22" NameU="Dynamic connector.22" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.240573666421508</PinX>
+						<PinY Unit="MM">4.071312479262018</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="24" UniqueID="{09645129-1AAA-4EC9-9FDE-DA3C28176A3A}" Name="動態連接器.24" NameU="Dynamic connector.24" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.732699650673476</PinX>
+						<PinY Unit="MM">4.071312479262018</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="5" UniqueID="{4A7B75F9-18A5-42C4-805E-4DB57A6E98F2}" Name="決策.5" NameU="Decision.5" Master="2">
+					<Text>Auto login</Text>
+					<XForm>
+						<PinX Unit="MM">2.362204724409449</PinX>
+						<PinY Unit="MM">7.283464566929134</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="9" UniqueID="{0564F7F0-16BC-47BA-B8A7-C9C2205C8D33}" Name="決策.12" NameU="Decision.12" Master="2">
+					<Text>是否選擇全部
+clients</Text>
+					<XForm>
+						<PinX Unit="MM">2.362204724409448</PinX>
+						<PinY Unit="MM">5.785461723149397</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="11" UniqueID="{5206D6B9-0166-43BE-881E-B78729C4614F}" Name="動態連接器.11" NameU="Dynamic connector.11" Master="3">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">2.362204724409448</PinX>
+						<PinY Unit="MM">6.525493292940296</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="23" UniqueID="{F7151166-8FD1-4B0A-8410-4D35488BEC14}" Name="動態連接器.23" NameU="Dynamic connector.23" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.608267716535432</PinX>
+						<PinY Unit="MM">6.811023622047244</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+			</Shapes>
+		</Page>
+	</Pages>
+</VisioDocument>
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/filelist.xml
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/filelist.xml	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/filelist.xml	(revision 21)
@@ -0,0 +1,32 @@
+<xml xmlns:o="urn:schemas-microsoft-com:office:office">
+ <o:File HRef="arrow.gif"/>
+ <o:File HRef="minimize.gif"/>
+ <o:File HRef="maximize.gif"/>
+ <o:File HRef="go.gif"/>
+ <o:File HRef="fullpage.gif"/>
+ <o:File HRef="plus.gif"/>
+ <o:File HRef="minus.gif"/>
+ <o:File HRef="panminus.gif"/>
+ <o:File HRef="panplus.gif"/>
+ <o:File HRef="tick-foc.gif"/>
+ <o:File HRef="tick-off.gif"/>
+ <o:File HRef="tick-on.gif"/>
+ <o:File HRef="toc.gif"/>
+ <o:File HRef="toc2.gif"/>
+ <o:File HRef="data.xml"/>
+ <o:File HRef="frameset.js"/>
+ <o:File HRef="keys.js"/>
+ <o:File HRef="visio.css"/>
+ <o:File HRef="vml_1.emz"/>
+ <o:File HRef="gif_1.gif"/>
+ <o:File HRef="vml_1.js"/>
+ <o:File HRef="vml_1.htm"/>
+ <o:File HRef="gif_1.js"/>
+ <o:File HRef="gif_1.htm"/>
+ <o:File HRef="zoom.htm"/>
+ <o:File HRef="find.js"/>
+ <o:File HRef="widgets.htm"/>
+ <o:File HRef="toolbar.htm"/>
+ <o:MainFile HRef="../login_switch_flow_chart.htm"/>
+ <o:File HRef="filelist.xml"/>
+</xml>
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/find.js
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/find.js	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/find.js	(revision 21)
@@ -0,0 +1,499 @@
+
+var strShapeName	= "圖形名稱";
+var strShapeText	= "圖形文字";
+var strProps		= "圖形資料";
+var strResults		= "搜尋結果關於:";
+
+var strShape	= "圖形名稱:";
+var strNoCustomPropertiesToDisplayText = "CTRL+按一下繪圖中的圖形以檢視詳細資料。";
+
+var FindShapeXML = parent.FindShapeXML;
+var Unquote = parent.Unquote;
+var put_Location = parent.put_Location;
+
+
+var strChkBox		= "Chkbox";
+var strPropChkBox	= "PropChkbox";
+
+function doExpando(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = up.src;
+	}else{
+		xxx.style.display = "none"
+		yyy.src = down.src;
+	}
+}
+
+function doExp(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = "minus.gif";
+	}else{
+		xxx.style.display = "none"
+		yyy.src = "plus.gif";
+	}
+}
+
+
+function FindOnClick()
+{
+	var count, indexOfString;
+	
+	var fieldsToSearchArray = new Array();
+	if (parent.xmlData != null && document.theForm[strProps + strChkBox].checked)
+	{
+		for( count=0; count < document.theForm.length; count++ )
+		{
+			indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+			if( -1 != indexOfString && document.theForm[count].checked )
+			{
+				fieldsToSearchArray[ fieldsToSearchArray.length ] = document.theForm[count].name.slice(0, indexOfString);
+			}
+		}
+	}
+
+	var searchTokensArray = CreateSearchTokens (document.theForm.findString.value);
+
+	if (searchTokensArray.length > 0)
+	{
+		var findArray = Find(searchTokensArray, fieldsToSearchArray);
+		var ArrayLength = findArray.length;
+		var strResultsHTML = "找不到相符項目。";
+		var lastPageID = null;
+		var shapeID;
+		
+		
+		if(ArrayLength > 0)
+		{
+			strResultsHTML = strResults + ' <b>'+ parent.HTMLEscape(document.theForm.findString.value) +'</b>';
+			for ( count = 0; count < ArrayLength; count++)
+			{
+			
+				if( lastPageID != findArray[count].PageID )
+				{
+					lastPageID = findArray[count].PageID;
+				}
+
+				shapeID = findArray[count].ShapeID;
+				strResultsHTML += '<p class="results"><a href="javascript:populateSearchResultDetails(\'results_'+ lastPageID +'_'+ shapeID +'\', '+ lastPageID +','+ shapeID +'); TogglePlus(results_' + lastPageID + '_' + shapeID + ',\'img_' + lastPageID + '_' + shapeID + '\', hideResults)"><img src="plus.gif" alt="顯示/隱藏圖形詳細資料" width="13" height="9" border="0" id="img_'+ lastPageID +'_'+ shapeID +'"></a>\n'
+				strResultsHTML += '<a  class="blu1" href="JavaScript:FindQuerySelect(';
+
+				strResultsHTML += findArray[count].PageID + ",";
+				strResultsHTML += findArray[count].ShapeID + ",";
+				strResultsHTML += findArray[count].PinX + ",";
+				strResultsHTML += findArray[count].PinY;
+
+				strResultsHTML += ')">'+ findArray[count].Title +'</a></p>\n'
+
+				strResultsHTML += '</div>\n';
+				strResultsHTML += '<div class="indent" id="results_'+ lastPageID +'_'+ shapeID +'" style="display:none;width:100%;"></div>\n'
+			}
+
+		}
+		var divAdvSrch = document.all("hideAdvSrch");
+		var imgAS0 = document.all("as0");
+		
+		var tmpObj = document.all("hideResults");
+		if( tmpObj != null )
+		{
+			tmpObj.innerHTML = strResultsHTML;
+			tmpObj.open = "true";
+			tmpObj.style.display = "block";
+		}
+	}
+}
+
+function CreateSearchTokens (strUserString)
+{
+	var searchTokensArray = new Array();
+
+	var strToken = "";
+	var chCurChar;
+
+	for (var count = 0; count < strUserString.length; count++)
+	{
+		chCurChar = strUserString.charAt(count);
+		if (chCurChar == '"')
+		{
+			var nNextQuote = strUserString.indexOf('"', count + 1);
+			if (nNextQuote >= 0)
+			{
+				strToken = strUserString.slice(count + 1, nNextQuote);
+				searchTokensArray[searchTokensArray.length] = strToken;
+				strToken = "";
+				count = nNextQuote;
+			}
+		}
+		else if (chCurChar == ' ')
+		{
+			if (strToken.length > 0)
+			{
+				searchTokensArray[searchTokensArray.length] = strToken;
+			}
+
+			strToken = "";
+		}
+		else
+		{
+			strToken += chCurChar;
+		}
+	}
+
+	if (strToken.length > 0)
+	{
+		searchTokensArray[searchTokensArray.length] = strToken;
+	}
+
+	return searchTokensArray;
+}
+
+function populateSearchResultDetails( divID, pageID, shapeID )
+{
+	var tmpShape = FindShapeXML (pageID, shapeID);
+	var strOutput = CreatePropTable( tmpShape );
+	
+	var tmpObj = document.all(divID);
+	if( tmpObj != null )
+	{
+		tmpObj.innerHTML = strOutput;
+	}
+}
+
+function makeAdvancedFindCheckboxes(div)
+{
+	if (parent.xmlData)
+	{
+		var strOutput = "";
+
+		strOutput += "<INPUT type='checkbox' name='" + strShapeName + strChkBox + "' id='" + strShapeName + strChkBox + "' checked><label for='" + strShapeName + strChkBox + "'>" + strShapeName + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strShapeText + strChkBox + "' id='" + strShapeText + strChkBox + "' checked><label for='" + strShapeText + strChkBox + "'>" + strShapeText + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strProps + strChkBox + "' id='" + strProps + strChkBox + "' onclick='AdvSearchCustomPropCheck ()'checked ><label for='" + strProps + strChkBox + "'>" + strProps +"</label><br>\n";
+		strOutput += "<div id='divCPBoxes' style='margin-left:1em;'>";
+		
+		var objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label");
+		var filter = "";
+		var boolFirstPass = true;
+		var tmpPropName;
+		while( objNodes.length > 0)
+		{
+			tmpPropName = objNodes.item( 0 ).text;
+			var escapedPropName = parent.EscapeString(tmpPropName);
+			if( true == boolFirstPass )
+			{
+				filter = ". != '" + escapedPropName + "'";
+				boolFirstPass = false;
+			}
+			else
+			{
+				filter += " and . != '" + escapedPropName + "'";
+			}
+
+			tmpPropName = parent.HTMLEscape (tmpPropName);
+			strOutput += "<INPUT type='checkbox' name='" + tmpPropName + strPropChkBox + "' id='"+ tmpPropName + strPropChkBox + "' checked><label for='"+ tmpPropName + strPropChkBox + "'>" + tmpPropName +"</label><br>\n";
+
+			objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label["+ filter + "]");
+		}
+		strOutput += "</div>"
+		div.innerHTML = strOutput;
+	}
+}
+
+function AdvSearchCustomPropCheck ()
+{
+	for( count=0; count < document.theForm.length; count++ )
+	{
+		indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+		if( -1 != indexOfString )
+		{
+			document.theForm[count].disabled = !document.theForm[strProps + strChkBox].checked;
+		}
+	}
+}
+
+
+function CResultItem(title, pageID, shapeID, pinX, pinY)
+{
+	 this["Title"] = title;
+	 this["PageID"] = pageID;
+	 this["ShapeID"] = shapeID;
+	 this["PinX"] = pinX;
+	 this["PinY"] = pinY;
+}
+
+function FindParentPage(nodeObject)
+{
+	if(nodeObject == null)
+	{
+		return null;
+	}
+	if(nodeObject.baseName == "Page")
+		return nodeObject;
+	else
+		return FindParentPage(nodeObject.parentNode);
+}
+
+function QueryStringForMatch(shapeNode, regTextForFind, filterString)
+{
+	if (filterString.length > 0)
+	{
+		var nodesToCheck = shapeNode.selectNodes(filterString);
+
+		var nodeCount = nodesToCheck.length;
+		var stringToParse;
+		for(var ncount = 0; ncount < nodeCount; ncount++)
+		{
+			stringToParse = nodesToCheck.item(ncount).text;
+			stringToParse = stringToParse.toLowerCase ();
+			if(stringToParse.indexOf(regTextForFind) > -1)
+			{
+				return true;
+			}
+		}
+	}
+}
+
+function GetShapeTitle(shapeNode)
+{
+	var objTempName = null;
+	var objTempTextElement = shapeNode.selectSingleNode("./Text");
+	if(objTempTextElement != null)
+	{
+		var objTextNode = objTempTextElement.selectSingleNode("textnode()");
+		if (objTextNode != null)
+		{
+			return parent.HTMLEscape (objTextNode.text);
+		}
+	}
+
+	objTempName = shapeNode.selectSingleNode("./@Name");
+	if(objTempName != null)
+	{
+		return parent.HTMLEscape (objTempName.text);
+	}
+
+	return "";
+}
+
+function GetPageTitle(pageID)
+{
+	var pagesObj = parent.xmlData.selectSingleNode("VisioDocument/Pages");
+	if(!pagesObj)
+	{
+		return "";
+	}
+
+	var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+	var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+	if(!pageObj)
+	{
+		return "";
+	}
+
+	var pageNameNode = pageObj.selectSingleNode("@Name");
+	if(!pageNameNode)
+	{
+		return "";
+	}
+	return pageNameNode.text;
+}
+
+function Find(searchTokensArray, propsToSearchArray)
+{
+	var bXMLNotValid = false;
+	var findArray = new Array();
+	var findIndex = 0;
+
+	if (parent.xmlData != null && searchTokensArray.length > 0)
+	{
+		var fieldsToSearchArray = new Array();
+		var filterString = "";
+		if( null != propsToSearchArray &&
+			propsToSearchArray.length > 0 )
+		{
+			var propFilterString = "";
+			for( var count=0; count< propsToSearchArray.length; count++ )
+			{
+				if( count == 0 )
+				{
+					propFilterString = "[. = '" + parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+				else
+				{
+					propFilterString += " or . = '"+ parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+			}
+			propFilterString += "]";
+
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Prop[Label"+ propFilterString +"]/Value";
+		}
+
+		if (document.theForm[strShapeText + strChkBox].checked)
+		{
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Text";
+		}
+
+		if (fieldsToSearchArray.length > 0)
+		{
+			filterString = "(.//(";
+
+			for (var fieldCount = 0; fieldCount < fieldsToSearchArray.length; fieldCount++)
+			{
+				if (fieldCount != 0)
+				{
+					filterString += " | ";
+				}
+
+				filterString += fieldsToSearchArray[fieldCount];
+			}
+
+			filterString += ")/textnode())";
+		}
+
+		var objShapeNodes;
+
+		if (document.theForm[strShapeName + strChkBox].checked)
+		{
+			if (filterString.length > 0)
+			{
+				filterString += " | ";
+			}
+			filterString += "(@Name)";
+
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape");
+		}
+		else
+		{
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape[(Prop/Value | Prop/Label | Text)]");
+		}
+
+		var shapeCount = objShapeNodes.length;
+		var objTempData = new CResultItem("A Label","PageID","ShapeID","PinX","PinY");
+		var objTempShape = null;
+
+		for (count = 0; count < shapeCount; count++)
+		{		
+			objTempShape = objShapeNodes.item(count);
+
+			var objParentPageNode = FindParentPage(objTempShape);
+			if (objParentPageNode == null)
+			{
+				continue;
+			}
+
+			var objPageIDNode = objParentPageNode.selectSingleNode("@ID/textnode()");
+			if(objPageIDNode == null)
+			{
+				continue;
+			}
+			var pageID = objPageIDNode.text;
+
+			var pageIndex = parent.PageIndexFromID (pageID);
+			if (pageIndex < 0)
+			{
+				continue;
+			}
+
+			var objLayerMember = objTempShape.selectSingleNode("LayerMem/LayerMember");
+			if (objLayerMember != null && objLayerMember.text.length > 0)
+			{
+				var layerArray = objLayerMember.text.split (';');
+				var visibleLayer = false;
+				for (var layerCount = 0; (layerCount < layerArray.length) && !visibleLayer; layerCount++)
+				{
+					var objLayerVisible = objParentPageNode.selectSingleNode("Layer[@IX=" + layerArray[layerCount] + "]/Visible");
+					if (objLayerVisible != null)
+					{
+						 visibleLayer = (objLayerVisible.text != 0);
+					}
+				}
+				
+				if (!visibleLayer)
+				{
+					continue;
+				}
+			}
+
+			for (var tokenCount = 0; tokenCount < searchTokensArray.length; tokenCount++)
+			{
+				var textToFind = searchTokensArray[tokenCount];
+				textToFind = textToFind.toLowerCase ();
+
+				if (QueryStringForMatch(objTempShape, textToFind, filterString))
+				{
+					objTempData.Title = GetShapeTitle(objTempShape);
+					objTempData.PageID = pageID;
+
+					objShapeIDNode = objTempShape.selectSingleNode("@ID/textnode()");
+					if(objShapeIDNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.ShapeID = objShapeIDNode.text;
+					objPinXNode = objTempShape.selectSingleNode("XForm/PinX/textnode()");
+					if(objPinXNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinX = objPinXNode.text;
+					objPinYNode = objTempShape.selectSingleNode("XForm/PinY/textnode()");
+					if(objPinYNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinY = objPinYNode.text;
+
+					findArray[findIndex] = new CResultItem(objTempData.Title, objTempData.PageID, objTempData.ShapeID, objTempData.PinX, objTempData.PinY);
+					findIndex++;
+					break;
+				}
+			}
+		}
+		if(bXMLNotValid)
+		{
+			findArray.length = 0;
+		}
+	}
+
+	return findArray;
+}
+
+function FindQuerySelect(pageID, shapeID, pinX, pinY)
+{
+	if ((!widgets.GoTo && parent.g_FileList.length > 1) || (widgets.GoTo && parent.g_FileList[document.all("Select1").value].PageID != pageID))
+	{
+		parent.g_callBackFunctionArray[parent.g_callBackFunctionArray.length] = function () { parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY); };
+		parent.GoToPageByID(pageID);
+	}
+	else 
+	{
+		if (parent.viewMgr != null)
+		{
+			parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY);
+		}
+	}
+}
+
+function TreeSelect(pageID, shapeID)
+{
+	var shapeNode = FindShapeXML (pageID, shapeID);
+	if (shapeNode != null)
+	{
+		var pinXNode = shapeNode.selectSingleNode("XForm/PinX/textnode()");
+		var pinYNode = shapeNode.selectSingleNode("XForm/PinY/textnode()");
+
+		if (pinXNode != null && pinYNode != null)
+		{
+			FindQuerySelect (pageID, shapeID, pinXNode.text, pinYNode.text);
+		}
+	}
+}
+
+
+var g_RowStyleList = parent.g_RowStyleList;
+var FillPropPane = parent.FillPropPane;
+var CreatePropTable = parent.CreatePropTable;
+
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/frameset.js
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/frameset.js	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/frameset.js	(revision 21)
@@ -0,0 +1,653 @@
+
+var MSIE = false;
+var ver = 0;
+var indexOfMSIE = navigator.userAgent.indexOf("MSIE"); 
+if(indexOfMSIE != -1)
+{
+	MSIE = true;
+	ver = parseFloat(navigator.userAgent.substring(indexOfMSIE + 5, navigator.userAgent.indexOf(";", indexOfMSIE)));
+}
+
+var isMac = (navigator.appVersion.indexOf("Macintosh") >= 0);
+var isUpLevel = (MSIE && ver >= 5 && !isMac);
+
+var xmlData = XMLData("login_switch_flow_chart.files/data.xml");
+
+var g_RowStyleList = new  Array(
+ "propViewerEvenRow",
+ "propViewerOddRow"
+);
+
+
+var strShape	= "圖形名稱:";
+
+
+
+function XMLData(file)
+{
+	var temp = null;
+	if(isUpLevel)
+	{
+		temp = CreateObject("Microsoft.XMLDOM");
+		if (temp == null)
+		{
+			temp = CreateObject("MSXML2.DOMDocument");
+		}
+
+		if (temp != null)
+		{
+			temp.async = false;
+		
+			temp.load(file);
+			if (temp.parseError.errorCode != 0)
+			{
+				temp = null;
+			}
+		}
+	}
+
+	return temp;
+}
+
+function CreateObject (strObj)
+{
+	var obj = null;
+	eval ("try { obj = new ActiveXObject(strObj); } catch (e) {}");
+	return obj;
+}
+
+function doVersion()
+{
+	if(isUpLevel)
+	{
+		frmToolbar.divDownLevel.innerHTML = "";
+		frmToolbar.divUpLevel.innerHTML = frmWidgets.divData.innerHTML;
+	}
+}	
+	
+	
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData != null)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(pageObj == null)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function OnShapeKey(pageID, shapeID)
+{
+	var e = window.frmDrawing.event;
+	
+	if(e.keyCode == 13 && e.ctrlKey)		//ctrl + enter
+	{
+		UpdateProps (pageID, shapeID);
+	}
+	else if (e.keyCode == 13)
+	{
+		OnShapeClick (pageID, shapeID);
+	}
+}
+
+function OnShapeClick (pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var e = frmDrawing.window.event;
+		var elem = e.srcElement;
+
+		if (e != null && e.ctrlKey && frmToolbar.widgets && frmToolbar.widgets.Details)
+		{
+			UpdateProps (pageID, shapeID);
+		}
+		else
+		{
+			var shapeNode = FindShapeXML (pageID, shapeID);
+			var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+			if (hlObj != null)
+			{
+				if (hlObj.DoFunction.length > 0)
+				{
+					eval (hlObj.DoFunction);
+				}
+				else if (hlObj.Hyperlink.length > 0)
+				{
+					if (hlObj.NewWindow)
+					{
+						window.open (hlObj.Hyperlink);
+					}
+					else
+					{
+						top.location.href = hlObj.Hyperlink.substr (0, 510);
+					}
+				}
+				else if (elem != null)
+				{
+					var href = elem.origHref;
+					if (href == null)
+					{
+						href = elem.href;
+					}
+
+					var target = elem.origTarget;
+					if (target == null)
+					{
+						target = elem.target;
+					}
+
+					if (href && href.length > 0)
+					{
+						href = HTMLEscape (href);
+						if (target && target == "_blank")
+						{
+							window.open (href);
+						}
+						else
+						{
+							top.location.href = href.substr (0, 510);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return (!isUpLevel);
+}
+
+function UpdateProps(pageID, shapeID)
+{
+	var shape = FindShapeXML (pageID, shapeID);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function UpdatePropsByShapeName(pageName, shapeName)
+{
+	var shape = FindShapeXMLByName (pageName, shapeName);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function FillPropPane (shapeNode, outputDivObj )
+{
+	if (shapeNode != null && outputDivObj != null)
+	{
+		if(outputDivObj.style.display == "none")
+		{
+			frmToolbar.ToggleWidget(outputDivObj);
+		}
+	
+		var strCPHTML = "";
+		
+		var shapeNameAttr = shapeNode.attributes.getNamedItem ("Name");
+		if (shapeNameAttr)
+		{
+			strCPHTML += "<span class='p2' style='padding-left:2px;'>" + strShape + " " + HTMLEscape(shapeNameAttr.text) + "</span>";
+		}
+
+		var strTableHTML = CreatePropTable (shapeNode);
+		if(strTableHTML.indexOf("<table") == -1)
+		{
+			strTableHTML = "<p class='p2' style='margin-left:1em;margin-top:0em;'>" + strTableHTML + "</p>";
+		}
+
+		if (strTableHTML.length > 0)
+		{
+			strCPHTML += strTableHTML;
+		}
+		else
+		{
+			strCPHTML = strNoCustomPropertiesToDisplayText;
+		}
+		
+		outputDivObj.innerHTML = strCPHTML;
+		outputDivObj.minHeight = 75;
+	}
+}
+
+function CreatePropTable (shapeNode)
+{
+	var strCPHTML = "";
+	var strStartTable = "<table class='propViewerTABLE' borderColor='#999999' cellPadding='2' width='95%' border='1' summary='此表格包含圖形詳細資料'>";
+		strStartTable += "<THEAD class='propViewerTHEAD'><TH>標籤</TH><TH>值</TH></THEAD>";
+	var strEndTable = "</TABLE>";
+
+	if (shapeNode != null)
+	{
+		var propColl = shapeNode.selectNodes ("Prop");
+
+		var propCount = propColl.length;
+		for (var count = 0; count < propCount; count++)
+		{
+			strCPHTML += "<TR class='" + g_RowStyleList[count % 2] + "'>";
+			
+			var strLabelText = "";
+			oPropLabel = propColl.item(count).selectSingleNode("Label/textnode()");
+			if (oPropLabel != null)
+			{
+				strLabelText = HTMLEscape (oPropLabel.text);
+			}
+			else
+			{
+				oPropName = propColl.item(count).attributes.getNamedItem ("Name");
+				if (oPropName)
+				{
+					strLabelText = HTMLEscape (oPropName.text);
+				}
+			}
+
+			if (strLabelText.length > 0)
+			{
+				strCPHTML += "<TD class='propViewerTD'>" + strLabelText + "</TD>";
+				strCPHTML += "<TD class='propViewerTD'>"
+
+				var strValueText = "&nbsp;";
+				oPropValue = propColl.item(count).selectSingleNode("Value/textnode()");
+				if (oPropValue)
+				{
+					strValueText = HTMLEscape (oPropValue.text);
+				}
+
+				strCPHTML += strValueText + "</TD></TR>";
+			}
+		}
+
+		if(strCPHTML != "")
+		{
+			strCPHTML = strStartTable + strCPHTML + strEndTable;
+		}
+		else
+		{
+			strCPHTML = "沒有可使用的詳細資料。";
+		}
+	}
+
+	return strCPHTML;
+}
+
+function keyHandler()
+{
+	var e = frmDrawing.window.event;
+	if(e.keyCode == 13) //enter
+	{
+		e.srcElement.click();
+	}
+}
+
+function GoToPage(index)
+{
+	if (viewMgr)
+	{
+		viewMgr.loadPage (index);
+	}
+	else
+	{
+		DefPageLoad (index);
+	}
+}
+
+function GoToPageByID(pageID)
+{
+	var pageIndex = PageIndexFromID (pageID);
+	if (pageIndex >= 0)
+	{
+		GoToPage (pageIndex);
+	}
+}
+
+function PageIndexFromID (pageID)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageID == g_FileList[count].PageID)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromName (strPageName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strPageNameLower = strPageName;
+		strPageNameLower = strPageNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListPageName = g_FileList[count].PageName;
+			strFileListPageName = HTMLUnescape (strFileListPageName);
+			strFileListPageName = strFileListPageName.toLowerCase ();
+			if (strPageNameLower == strFileListPageName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromFileName (strFileName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strFileNameLower = strFileName;
+		strFileNameLower = strFileNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListFileName = g_FileList[count].PriImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+
+			strFileListFileName = g_FileList[count].SecImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromVisioPageIndex (pageIndex)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageIndex == g_FileList[count].PageIndex)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function FindShapeXMLByName (pageName, shapeName)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@Name $ieq$ "' + EscapeString (pageName) + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@Name $ieq$ "' + EscapeString (shapeName) + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function Unquote (str)
+{
+	var nStartIndex = 0;
+	var nEndIndex = str.length;
+
+	if (str.charAt (0) == '"')
+	{
+		nStartIndex = 1;
+	}
+
+	if (str.charAt (nEndIndex - 1) == '"')
+	{
+		nEndIndex -= 1;
+	}
+
+	return str.substring (nStartIndex, nEndIndex);
+}
+
+function ConvertXorYCoordinate(PosValue, OldMin, OldMax, NewMin, NewMax, MapBackwards)
+{
+	var OldMid = (OldMax - OldMin) / 2;
+	var NewMid = (NewMax - NewMin) / 2;
+	var ConvertResult = 1 * PosValue;
+	ConvertResult = ConvertResult - (OldMin + OldMid);
+	ConvertResult = ConvertResult / OldMid;
+	if(MapBackwards != 0)
+	{
+		ConvertResult = 0 - ConvertResult;
+	}
+	ConvertResult = ConvertResult * NewMid;
+	ConvertResult = ConvertResult + (NewMin + NewMid);
+	return ConvertResult;
+}
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.display = "";
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+		divObject.style.display = "none";
+	}
+	return divObject;
+}
+
+function EscapeString (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "\\\\";
+		}
+		else if (curChar == "\"")
+		{
+			strResult += "\\\"";
+		}
+		else if (curChar == "\'")
+		{
+			strResult += "\\\'";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLEscape (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "&#92;";
+		}
+		else if (curChar == '\"')
+		{
+			strResult += "&#34;";
+		}
+		else if (curChar == '\'')
+		{
+			strResult += "&#39;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#60;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#62;";
+		}
+		else if (curChar == '&')
+		{
+			strResult += "&#38;";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLUnescape (str)
+{
+	var strResult = "";
+	var strEscapePattern = "&#xx;";
+
+	for (var i = 0 ; i < str.length - strEscapePattern.length + 1; i++)
+	{
+		if (str.charAt(i) == '&' && 
+			str.charAt(i + 1) == '#' &&
+			str.charAt(i + 4) == ';')
+		{
+			var charCode = str.charAt(i + 2);
+			charCode += str.charAt(i + 3);
+
+			if (charCode == "34")
+			{
+				strResult += '"';
+			}
+			else if (charCode == "39")
+			{
+				strResult += '\'';
+			}
+			else if (charCode == "60")
+			{
+				strResult += '<';
+			}
+			else if (charCode == "62")
+			{
+				strResult += '>';
+			}
+			else if (charCode == "92")
+			{
+				strResult += '\\';
+			}
+			else if (charCode == "38")
+			{
+				strResult += '&';
+			}
+			
+			i = i + strEscapePattern.length - 1;
+		}
+		else
+		{
+			strResult += str.charAt(i);
+		}
+	}
+
+	strResult += str.substring (i, str.length);
+
+	return strResult;
+}
+
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/gif_1.htm
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/gif_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/gif_1.htm	(revision 21)
@@ -0,0 +1,139 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>
+login_switch_flow_chart
+</title>
+<script type="text/javascript" language="javascript">
+function UpdateTooltip(){};
+function OnShapeClick(){};
+</script>
+
+<script src="gif_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+	}
+</script>
+
+
+
+<script type="text/jscript" language="jscript">
+
+var pageID = 0;
+
+var isUpLevel = parent.isUpLevel;
+var OnShapeClick = null;
+if (!parent.isMac)
+{
+	OnShapeClick = parent.OnShapeClick;
+}
+
+var OnShapeKey = parent.OnShapeKey;
+var UpdateTooltip = parent.UpdateTooltip;
+var clickMenu = parent.clickMenu;
+var toggleMenuDiv = parent.toggleMenuDiv;
+var toggleMenuLink = parent.toggleMenuLink;
+var GoToPage = parent.GoToPage;
+
+
+if (parent.isUpLevel)
+{
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			var fileEntry = parent.g_FileList[parent.g_CurPageIndex];
+			var fileToLoad = fileToLoad = fileEntry.PriImage;
+			if (fileEntry.SecImage.length > 0)
+			{
+				fileToLoad = fileEntry.SecImage;
+			}
+
+			location.replace(fileToLoad);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+
+	var viewMgr = new parent.CViewMgr();
+	parent.viewMgr = viewMgr;
+
+	viewMgr.SupportsDetails = true;
+	viewMgr.SupportsSearch = true;
+
+	viewMgr.put_Location = ViewMgrSetRasterLocation;
+	viewMgr.visBBoxLeft = 1.105617;
+	viewMgr.visBBoxRight = 5.974524;
+	viewMgr.visBBoxBottom = 1.795491;
+	viewMgr.visBBoxTop = 9.621831;
+	viewMgr.highlightDiv = null;
+}
+
+function load ()
+{
+	if(isUpLevel)
+	{
+		arrowdiv.innerHTML = '<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>';
+
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.CurPageUpdate (pageIndex);
+	}
+}
+
+function unload()
+{
+	if(isUpLevel)
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+}
+
+window.onload = load;
+window.onunload = unload;
+document.onclick = clickMenu;
+
+</script>
+</head>
+
+<body class="pageView" bgcolor="#FFFFFF">
+
+<div id=arrowdiv style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+<DIV id=RasterDiv>
+
+
+<center>
+  <IMG id="ConvertedImage" SRC="gif_1.gif" ALT="頁-1" name=RasterImage BORDER="0" USEMAP="#visImageMap">
+</center>
+
+<MAP NAME="visImageMap">
+  <AREA shape="POLYGON" tabindex="1" ALT="是否選擇全部 clients" origTitle="是否選擇全部 clients" TITLE="是否選擇全部 clients"  target="_top" COORDS="28,294,96,315,165,294,96,273,28,294" onmouseover="UpdateTooltip(this,0,9)" onfocus="UpdateTooltip(this,0,9)" onclick="return OnShapeClick(0,9);" onkeyup="OnShapeKey(0,9);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Auto login" origTitle="Auto login" TITLE="Auto login"  target="_top" COORDS="59,179,96,202,134,179,96,157,59,179" onmouseover="UpdateTooltip(this,0,5)" onfocus="UpdateTooltip(this,0,5)" onclick="return OnShapeClick(0,5);" onkeyup="OnShapeKey(0,5);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="202,496,278,496,278,451,202,451,202,496" onmouseover="UpdateTooltip(this,0,21)" onfocus="UpdateTooltip(this,0,21)" onclick="return OnShapeClick(0,21);" onkeyup="OnShapeKey(0,21);">
+  <AREA shape="POLYGON" tabindex="1" ALT="While client in CLEINTS is true" origTitle="While client in CLEINTS is true" TITLE="While client in CLEINTS is true"  target="_top" COORDS="268,383,278,377,266,370,266,366,259,366,240,355,222,366,216,366,216,369,202,377,213,383,213,387,219,387,240,400,261,387,268,387,268,383" onmouseover="UpdateTooltip(this,0,19)" onfocus="UpdateTooltip(this,0,19)" onclick="return OnShapeClick(0,19);" onkeyup="OnShapeKey(0,19);">
+  <AREA shape="POLYGON" tabindex="1" ALT="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list" TITLE="讀取  ip_list or  MAC list"  target="_top" COORDS="309,273,309,274,308,274,308,275,308,276,307,277,307,278,307,279,306,279,306,280,306,281,306,282,305,283,305,284,305,285,305,286,305,286,304,287,304,288,304,289,304,290,304,291,304,292,304,293,304,294,304,295,304,295,304,296,304,297,304,298,304,299,304,300,304,301,305,302,305,303,305,304,305,304,305,305,306,306,306,307,306,308,306,309,307,310,307,310,307,311,308,312,308,313,308,314,309,315,309,315,373,315,372,315,372,314,372,313,371,312,371,311,371,310,370,310,370,309,370,308,369,307,369,306,369,305,369,304,369,304,368,303,368,302,368,301,368,300,368,299,368,298,368,297,368,296,368,295,368,295,368,294,368,293,368,292,368,291,368,290,368,289,368,288,368,287,368,286,368,286,369,285,369,284,369,283,369,282,369,281,370,280,370,279,370,279,371,278,371,277,371,276,372,275,372,274,372,274,373,273,309,273" onmouseover="UpdateTooltip(this,0,15)" onfocus="UpdateTooltip(this,0,15)" onclick="return OnShapeClick(0,15);" onkeyup="OnShapeKey(0,15);">
+  <AREA shape="POLYGON" tabindex="1" ALT="選擇 clients" origTitle="選擇 clients" TITLE="選擇 clients"  target="_top" COORDS="262,286,240,273,219,286,215,286,215,288,206,294,215,300,215,300,216,300,240,315,264,300,265,300,265,300,275,294,265,288,265,286,262,286" onmouseover="UpdateTooltip(this,0,14)" onfocus="UpdateTooltip(this,0,14)" onclick="return OnShapeClick(0,14);" onkeyup="OnShapeKey(0,14);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="59,483,134,483,134,437,59,437,59,483" onmouseover="UpdateTooltip(this,0,3)" onfocus="UpdateTooltip(this,0,3)" onclick="return OnShapeClick(0,3);" onkeyup="OnShapeKey(0,3);">
+  <AREA shape="POLYGON" tabindex="1" ALT="end" origTitle="end" TITLE="end"  target="_top" COORDS="75,600,118,600,118,600,119,600,119,600,119,600,120,600,120,600,121,599,121,599,121,599,122,599,122,599,123,599,123,598,123,598,124,598,124,598,124,597,125,597,125,597,125,596,126,596,126,596,126,595,126,595,127,595,127,594,127,594,127,594,127,593,127,593,128,592,128,592,128,592,128,591,128,591,128,590,128,590,128,589,128,589,128,589,128,588,128,588,128,587,128,587,127,586,127,586,127,586,127,585,127,585,127,584,126,584,126,584,126,583,126,583,125,583,125,582,125,582,124,582,124,582,124,581,123,581,123,581,123,581,122,580,122,580,121,580,121,580,121,580,120,580,120,580,119,579,119,579,119,579,118,579,118,579,75,579,74,579,74,579,74,579,73,579,73,580,72,580,72,580,71,580,71,580,71,580,70,580,70,581,69,581,69,581,69,581,68,582,68,582,68,582,67,582,67,583,67,583,67,583,66,584,66,584,66,584,66,585,66,585,65,586,65,586,65,586,65,587,65,587,65,588,65,588,65,589,65,589,65,589,65,590,65,590,65,591,65,591,65,592,65,592,65,592,65,593,65,593,65,594,66,594,66,594,66,595,66,595,66,595,67,596,67,596,67,596,67,597,68,597,68,597,68,598,69,598,69,598,69,598,70,599,70,599,71,599,71,599,71,599,72,599,72,600,73,600,73,600,74,600,74,600,74,600,75,600" onmouseover="UpdateTooltip(this,0,10)" onfocus="UpdateTooltip(this,0,10)" onclick="return OnShapeClick(0,10);" onkeyup="OnShapeKey(0,10);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Normal login" origTitle="Normal login" TITLE="Normal login"  target="_top" COORDS="54,83,96,106,138,83,96,60,54,83" onmouseover="UpdateTooltip(this,0,2)" onfocus="UpdateTooltip(this,0,2)" onclick="return OnShapeClick(0,2);" onkeyup="OnShapeKey(0,2);">
+  <AREA shape="POLYGON" tabindex="1" ALT="start" origTitle="start" TITLE="start"  target="_top" COORDS="75,21,118,21,118,21,119,21,119,21,119,21,120,20,120,20,121,20,121,20,121,20,122,20,122,20,123,19,123,19,123,19,124,19,124,18,124,18,125,18,125,18,125,17,126,17,126,17,126,16,126,16,127,16,127,15,127,15,127,14,127,14,127,14,128,13,128,13,128,12,128,12,128,11,128,11,128,11,128,10,128,10,128,9,128,9,128,8,128,8,128,8,127,7,127,7,127,6,127,6,127,6,127,5,126,5,126,5,126,4,126,4,125,4,125,3,125,3,124,3,124,2,124,2,123,2,123,2,123,1,122,1,122,1,121,1,121,1,121,1,120,0,120,0,119,0,119,0,119,0,118,0,118,0,75,0,74,0,74,0,74,0,73,0,73,0,72,0,72,1,71,1,71,1,71,1,70,1,70,1,69,2,69,2,69,2,68,2,68,3,68,3,67,3,67,4,67,4,67,4,66,5,66,5,66,5,66,6,66,6,65,6,65,7,65,7,65,8,65,8,65,8,65,9,65,9,65,10,65,10,65,11,65,11,65,11,65,12,65,12,65,13,65,13,65,14,65,14,65,14,66,15,66,15,66,16,66,16,66,16,67,17,67,17,67,17,67,18,68,18,68,18,68,18,69,19,69,19,69,19,70,19,70,20,71,20,71,20,71,20,72,20,72,20,73,20,73,21,74,21,74,21,74,21,75,21" onmouseover="UpdateTooltip(this,0,1)" onfocus="UpdateTooltip(this,0,1)" onclick="return OnShapeClick(0,1);" onkeyup="OnShapeKey(0,1);">
+</MAP>
+
+
+
+</DIV>
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/gif_1.js
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/gif_1.js	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/gif_1.js	(revision 21)
@@ -0,0 +1,64 @@
+function ViewMgrSetRasterLocation(pageID, shapeID, pinX, pinY)
+{
+	clickMenu ();
+
+	var rasterImage = document.images("RasterImage");
+
+	var imageLeft = 0;
+	var imageRight = imageLeft + rasterImage.offsetWidth;
+	var imageTop = 0;
+	var imageBottom = imageTop + rasterImage.offsetHeight;
+	
+	var xLong = parent.ConvertXorYCoordinate(pinX, viewMgr.visBBoxLeft, viewMgr.visBBoxRight, imageLeft, imageRight, 0);
+	var yLong = parent.ConvertXorYCoordinate(pinY, viewMgr.visBBoxBottom, viewMgr.visBBoxTop, imageTop, imageBottom, 1);
+	
+	var pixelWidth = document.body.scrollWidth;
+	var pixelHeight = document.body.scrollHeight;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+	var halfClientWidth = clientWidth;
+	var halfClientHeight = clientHeight;
+
+	xLong = xLong + rasterImage.offsetLeft;
+	yLong = yLong + rasterImage.offsetTop;
+	var xScrollAmount = 0;
+	var yScrollAmount = 0;
+
+	var xPrevScrollAmount = document.body.scrollLeft;
+	var yPrevScrollAmount = document.body.scrollTop;
+
+	var arrowHalfWidth = arrowdiv.clientWidth / 2;
+	var arrowHeight = arrowdiv.clientHeight;
+
+	if ((xLong - arrowHalfWidth) < xPrevScrollAmount)
+	{
+		// X off left of screen.
+		document.body.scrollLeft = xLong - arrowHalfWidth;
+	}
+	else if ((xLong + arrowHalfWidth) > (clientWidth + xPrevScrollAmount))
+	{
+		// X off right of screen. 
+		document.body.scrollLeft = xLong - clientWidth + xPrevScrollAmount + arrowHalfWidth;
+	}
+
+	if (yLong < yPrevScrollAmount)
+	{
+		// Y off top of screen.
+		document.body.scrollTop = yLong;
+	}
+	else if ((yLong + arrowHeight) > (clientHeight + yPrevScrollAmount))
+	{
+		// Y off bottom of screen. 
+		document.body.scrollTop = yLong - clientHeight + yPrevScrollAmount + arrowHeight;
+	}
+
+	arrowdiv.style.posLeft = xLong - arrowHalfWidth;
+	arrowdiv.style.posTop = yLong;
+	arrowdiv.style.visibility = "visible";
+
+	setTimeout( "parent.hideObject(arrowdiv)", 0 );
+	setTimeout( "parent.showObject(arrowdiv)", 1 );
+	setTimeout( "parent.hideObject(arrowdiv)", 2000 );
+}
+
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/keys.js
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/keys.js	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/keys.js	(revision 21)
@@ -0,0 +1,14 @@
+
+function keyHandler()
+{
+	var e = window.event;
+	var tag = e.srcElement.tagName;
+	var override = !(tag == "A" || tag == "INPUT" || tag == "SELECT" || tag == "FORM" || tag == "SUBMIT");
+	
+	if(override && e.keyCode == 13) //13 is <enter> key
+	{
+		e.srcElement.click();
+	}
+}
+
+document.onkeypress = keyHandler;
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/toolbar.htm
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/toolbar.htm	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/toolbar.htm	(revision 21)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<title></title>
+<style type="text/css">
+body
+{
+	font-family: Verdana, Sans-Serif;
+	font-size: small;
+}
+
+.toc
+{
+	font-size: medium;
+}
+</style>
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace("widgets.htm");
+	}
+</script>
+</head>
+
+
+<body leftmargin="0" topmargin="0" class="nav" dir=ltr>
+	<table id="tabToc" width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#999999" height="20">
+	<tr>
+	<td>&nbsp;</td>
+	</tr>
+	</table>
+
+<h1 class="toc">login_switch_flow_chart</h1>
+	<ul>
+		<li><a href="gif_1.htm" target="frmDrawing">頁-1</a></li>
+
+	</ul>
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/visio.css
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/visio.css	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/visio.css	(revision 21)
@@ -0,0 +1,263 @@
+﻿td {vertical-align: top;}
+
+.fillcolor
+{	vertical-align: top;
+	padding: 0pt;
+	background-color:#5C85EF;
+	filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#5C85EF', EndColorStr='#90B6FF');
+}
+
+A.blu1
+{
+	color: #3366CC;
+	text-decoration: none;
+	font-size: 95%;
+}
+
+A.blu1:visited
+{
+	color: #3366CC;
+	text-decoration: none
+}
+
+A.blu1:hover
+{
+	text-decoration: underline
+}
+
+.visrptTitle
+{
+	color:Black;
+	font-style:normal;
+}
+
+.visrptSummryLabel
+{
+	color:black;
+	font-weight:bold;
+}
+
+.visrptGrandTotalRow
+{	
+	color:Black;
+	font-weight:bold;
+}
+
+.visrptHeader
+{
+	color:White;
+	font-style:normal;
+	background-color:#5C85EF;
+}
+
+.visrptRowItem
+{
+	background-color:#DDDDDD;
+}
+
+.a1
+{	color: #ffffff;
+	text-decoration:none;
+}
+
+.p1
+{	font-family: PMingLiu, verdana, san-serif;
+	font-size: 60%;
+	COLOR: #ffffff;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: .8em;
+}
+
+.p2
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: 1.3em;
+}
+
+.label
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: bold;
+	font-size: 70%;
+	COLOR: #FFFFFF;
+	Margin: .2em,0pt,2pt,2pt;
+	line-height: 1em;
+	text-decoration:none;
+}
+
+.gobutton
+{
+	padding: 0pt, 2pt, 0pt, 0pt;
+	vertical-align: bottom;
+}
+
+.formText
+{
+	font-size: 70%;
+	width: 99%;
+	margin: 0;
+	padding: 0;
+}
+
+.holderTable
+{
+	padding-left:1px;
+	padding-right:1px;
+}
+
+.detsPara
+{
+	margin:2pt;
+	font-size:60%;
+}
+
+.navTocColor
+{
+	background-color:#999999;
+}
+
+.indent
+{
+	margin-left:15px;
+	margin-right:15px;
+	padding-top:0px;
+	margin-top:0px;
+}
+
+.results
+{	
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,10pt;
+	text-indent: -10pt;
+	line-height: 1.1em;
+}
+
+.propViewer 
+{
+	background-Color:white;
+	color: black;
+	font-family: PMingLiu, verdana, san-serif;
+	font-style: italic;
+	font-weight: bold;
+	font-size: 70%;
+	text-align: center;
+}
+
+.propViewerTABLE 
+{
+	margin: 2pt;
+	border-collapse:collapse;
+	border:solid 1px #999999;	
+}
+
+.propViewerTHEAD 
+{
+	border: 2px;
+	font-size: 60%;
+}
+
+.propViewerTD 
+{
+	font-family: PMingLiu, Verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #000000;
+	Margin: 0pt;
+	line-height: 1.1em;
+}
+
+.propViewerEvenRow 
+{
+	background-Color: #E7E7E7;
+}
+
+.propViewerOddRow 
+{
+	background-Color: #FFFFFF; 
+}
+
+BODY
+{
+	font-family: PMingLiu, Verdana, Sans-Serif;
+	font-size: medium;
+}
+
+DIV
+{
+	margin:0;
+	padding:0;
+}
+
+FORM
+{
+	margin:0;
+}
+
+.hiderScroll
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+	overflow:auto;
+}
+
+.hider
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+}
+
+.nav
+{
+	width: 100%;
+	height: 100%;
+	overflow: auto;	
+}
+
+.menuItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-color:white;
+	color:black;
+	cursor:hand;
+}
+
+.highlightItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-Color:highlight; 
+	color:white;
+	cursor:hand;
+}
+
+.hlMenu 
+{
+	border:black 2px outset; 
+	display:none; 
+	z-index:10; 
+	position:absolute; 
+	background-Color:white;
+}
+
+.innerhlMenu 
+{
+	padding-left:2pt;
+	padding-right:2pt;
+	background-Color:white;
+}
+
+.svgmessage
+{     FONT-FAMILY: PMingLiu, verdana, san-serif;
+      FONT-WEIGHT: normal;
+      font-size: 80%;
+      COLOR: #333333;
+      Margin: 1em;
+      line-height: 1.1em;
+}
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/vml_1.htm
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/vml_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/vml_1.htm	(revision 21)
@@ -0,0 +1,193 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" 
+ xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>login_switch_flow_chart</title>
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script src="vml_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+
+	var pageID = 0;
+	var viewMgr = null;
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+	function getPNZ()
+	{
+		var rawHTML = VMLDiv.innerHTML;
+		var strReturn = ""
+		
+		strReturn = rawHTML.slice( rawHTML.indexOf( '<v:group' ), rawHTML.indexOf( "</v:shape>" ) );
+		strReturn += "</v:shape></v:group>\n";
+				
+		return strReturn;
+	}
+	
+	function load()
+	{
+		viewMgr = new parent.CViewMgr("ConvertedImage", "arrowDiv");
+
+		viewMgr.put_Location = ViewMgrSetVMLLocation;
+
+
+		viewMgr.visBBoxLeft = 1.105617;
+		viewMgr.visBBoxRight = 5.974524;
+		viewMgr.visBBoxBottom = 1.795491;
+		viewMgr.visBBoxTop = 9.621831;
+
+		viewMgr.Zoom = VMLZoomChange;
+		viewMgr.setView= VMLSetView;
+
+		viewMgr.SupportsDetails = true;
+		viewMgr.SupportsSearch = true;
+
+		parent.viewMgr = viewMgr;
+
+		fit();
+	}
+
+	function unload()
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+
+	function fit()
+	{
+		if(parent.frmToolbar)
+		{
+			if (parent.g_WidgetsLoaded)
+			{
+				var zoom100 = parent.frmToolbar.document.all('a100');
+				if (zoom100)
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					zoom100.click();
+				}
+				else
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					viewMgr.Zoom(100);
+				}
+			}
+			else
+			{
+				window.setTimeout("fit()", 500);
+			}
+		}	
+		else
+		{
+			parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+			viewMgr.Zoom(100);
+		}
+	}
+
+	function PostZoomProcessing (newZoomLevel)
+	{
+		parent.viewMgr.PostZoomProcessing = null;
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.viewMgr.getPNZ = getPNZ;
+		parent.CurPageUpdate (pageIndex);
+	}
+
+
+	
+	var isUpLevel = parent.isUpLevel;
+	var OnShapeClick = parent.OnShapeClick;
+	var OnShapeKey = parent.OnShapeKey;
+	var UpdateTooltip = parent.UpdateTooltip;
+	var clickMenu = parent.clickMenu;
+	var toggleMenuDiv = parent.toggleMenuDiv;
+	var toggleMenuLink = parent.toggleMenuLink;
+	var GoToPage = parent.GoToPage;
+
+	window.onload = load;
+	window.onunload = unload;
+	document.onclick = clickMenu;
+
+
+
+
+</script>
+
+</head>
+
+<body style="MARGIN:10px" onresize="VMLOnResize();" onscroll="VMLOnScroll();">
+
+<div id="arrowdiv" style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+
+
+
+<div id="VMLDiv" >
+
+
+<v:group  id="ConvertedImage" style="width:2.488472in;height:4.000000in;position:absolute;visibility=hidden;" coordSize="1244,2000" coordOrigin="-1000,-1000" >
+
+<v:shapetype 
+  id="VISSHAPE"
+  target="_parent"
+  coordsize="1244,2000"
+  coordorigin="-1000,-1000"
+  stroked="f"
+  strokecolor="red"
+  filled="t"
+>
+<v:fill opacity="0.0"/>
+</v:shapetype>
+
+
+<v:shape style="top:-1000.0;left:-1000.0;width:1244.2;height:2000.0;position:absolute" coordSize="1244,2000" coordOrigin="-1000,-1000" >
+<v:imagedata src="vml_1.emz"/>
+</v:shape>
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="start" origTitle="start"  style="top:-1000;left:-1000;width:1244;height:2000;position:absolute" path=" m -748,-927 l -606,-927 l -604,-927 l -603,-928 l -602,-928 l -600,-928 l -599,-928 l -597,-928 l -596,-929 l -595,-929 l -593,-930 l -592,-930 l -591,-931 l -589,-932 l -588,-932 l -587,-933 l -586,-934 l -585,-935 l -584,-936 l -583,-937 l -582,-938 l -581,-939 l -580,-940 l -579,-941 l -578,-942 l -577,-943 l -576,-944 l -576,-946 l -575,-947 l -575,-948 l -574,-950 l -574,-951 l -573,-952 l -573,-954 l -572,-955 l -572,-957 l -572,-958 l -572,-959 l -572,-961 l -572,-962 l -572,-964 l -572,-965 l -572,-966 l -572,-968 l -573,-969 l -573,-971 l -574,-972 l -574,-973 l -575,-975 l -575,-976 l -576,-977 l -576,-979 l -577,-980 l -578,-981 l -579,-982 l -580,-983 l -581,-984 l -582,-985 l -583,-986 l -584,-987 l -585,-988 l -586,-989 l -587,-990 l -588,-991 l -589,-991 l -591,-992 l -592,-993 l -593,-993 l -595,-994 l -596,-994 l -597,-995 l -599,-995 l -600,-995 l -602,-995 l -603,-995 l -604,-996 l -606,-996 l -748,-996 l -749,-996 l -751,-995 l -752,-995 l -754,-995 l -755,-995 l -757,-995 l -758,-994 l -759,-994 l -761,-993 l -762,-993 l -763,-992 l -764,-991 l -766,-991 l -767,-990 l -768,-989 l -769,-988 l -770,-987 l -771,-986 l -772,-985 l -773,-984 l -774,-983 l -775,-982 l -776,-981 l -777,-980 l -778,-979 l -778,-977 l -779,-976 l -779,-975 l -780,-973 l -780,-972 l -781,-971 l -781,-969 l -781,-968 l -782,-966 l -782,-965 l -782,-964 l -782,-962 l -782,-961 l -782,-959 l -782,-958 l -782,-957 l -781,-955 l -781,-954 l -781,-952 l -780,-951 l -780,-950 l -779,-948 l -779,-947 l -778,-946 l -778,-944 l -777,-943 l -776,-942 l -775,-941 l -774,-940 l -773,-939 l -772,-938 l -771,-937 l -770,-936 l -769,-935 l -768,-934 l -767,-933 l -766,-932 l -764,-932 l -763,-931 l -762,-930 l -761,-930 l -759,-929 l -758,-929 l -757,-928 l -755,-928 l -754,-928 l -752,-928 l -751,-928 l -749,-927 l -748,-927xe" onmouseover="UpdateTooltip(this,0,1)" onclick="OnShapeClick(0,1)" onfocus="UpdateTooltip(this,0,1);" onkeyup="OnShapeKey(0,1)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Normal login" origTitle="Normal login"  style="top:-1000;left:-1000;width:1244;height:2000;position:absolute" path=" m -817,-720 l -677,-645 l -537,-720 l -677,-795 l -817,-720xe" onmouseover="UpdateTooltip(this,0,2)" onclick="OnShapeClick(0,2)" onfocus="UpdateTooltip(this,0,2);" onkeyup="OnShapeKey(0,2)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="end" origTitle="end"  style="top:-1000;left:-1000;width:1244;height:2000;position:absolute" path=" m -748,996 l -606,996 l -604,996 l -603,995 l -602,995 l -600,995 l -599,995 l -597,995 l -596,994 l -595,994 l -593,993 l -592,993 l -591,992 l -589,991 l -588,991 l -587,990 l -586,989 l -585,988 l -584,987 l -583,986 l -582,985 l -581,984 l -580,983 l -579,982 l -578,981 l -577,980 l -576,979 l -576,977 l -575,976 l -575,975 l -574,973 l -574,972 l -573,971 l -573,969 l -572,968 l -572,966 l -572,965 l -572,964 l -572,962 l -572,961 l -572,959 l -572,958 l -572,957 l -572,955 l -573,954 l -573,952 l -574,951 l -574,950 l -575,948 l -575,947 l -576,946 l -576,944 l -577,943 l -578,942 l -579,941 l -580,940 l -581,939 l -582,938 l -583,937 l -584,936 l -585,935 l -586,934 l -587,933 l -588,932 l -589,932 l -591,931 l -592,930 l -593,930 l -595,929 l -596,929 l -597,928 l -599,928 l -600,928 l -602,928 l -603,928 l -604,927 l -606,927 l -748,927 l -749,927 l -751,928 l -752,928 l -754,928 l -755,928 l -757,928 l -758,929 l -759,929 l -761,930 l -762,930 l -763,931 l -764,932 l -766,932 l -767,933 l -768,934 l -769,935 l -770,936 l -771,937 l -772,938 l -773,939 l -774,940 l -775,941 l -776,942 l -777,943 l -778,944 l -778,946 l -779,947 l -779,948 l -780,950 l -780,951 l -781,952 l -781,954 l -781,955 l -782,957 l -782,958 l -782,959 l -782,961 l -782,962 l -782,964 l -782,965 l -782,966 l -781,968 l -781,969 l -781,971 l -780,972 l -780,973 l -779,975 l -779,976 l -778,977 l -778,979 l -777,980 l -776,981 l -775,982 l -774,983 l -773,984 l -772,985 l -771,986 l -770,987 l -769,988 l -768,989 l -767,990 l -766,991 l -764,991 l -763,992 l -762,993 l -761,993 l -759,994 l -758,994 l -757,995 l -755,995 l -754,995 l -752,995 l -751,995 l -749,996 l -748,996xe" onmouseover="UpdateTooltip(this,0,10)" onclick="OnShapeClick(0,10)" onfocus="UpdateTooltip(this,0,10);" onkeyup="OnShapeKey(0,10)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:1244;height:2000;position:absolute" path=" m -802,607 l -552,607 l -552,456 l -802,456 l -802,607xe" onmouseover="UpdateTooltip(this,0,3)" onclick="OnShapeClick(0,3)" onfocus="UpdateTooltip(this,0,3);" onkeyup="OnShapeKey(0,3)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選擇 clients" origTitle="選擇 clients"  style="top:-1000;left:-1000;width:1244;height:2000;position:absolute" path=" m -129,-46 l -200,-90 l -272,-46 l -283,-46 l -283,-39 l -314,-20 l -283,0 l -283,2 l -280,2 l -200,51 l -120,2 l -117,2 l -117,0 l -86,-20 l -117,-39 l -117,-46 l -129,-46xe" onmouseover="UpdateTooltip(this,0,14)" onclick="OnShapeClick(0,14)" onfocus="UpdateTooltip(this,0,14);" onkeyup="OnShapeKey(0,14)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list"  style="top:-1000;left:-1000;width:1244;height:2000;position:absolute" path=" m 29,-90 l 28,-88 l 26,-85 l 25,-82 l 24,-79 l 23,-77 l 22,-74 l 20,-71 l 19,-68 l 19,-65 l 18,-62 l 17,-60 l 16,-57 l 15,-54 l 15,-51 l 14,-48 l 14,-45 l 13,-42 l 13,-39 l 12,-36 l 12,-33 l 12,-30 l 12,-27 l 11,-24 l 11,-21 l 11,-18 l 11,-15 l 12,-12 l 12,-9 l 12,-6 l 12,-3 l 13,0 l 13,3 l 14,6 l 14,9 l 15,12 l 15,15 l 16,18 l 17,20 l 18,23 l 19,26 l 19,29 l 20,32 l 22,35 l 23,37 l 24,40 l 25,43 l 26,46 l 28,48 l 29,51 l 240,51 l 238,48 l 237,46 l 236,43 l 235,40 l 233,37 l 232,35 l 231,32 l 230,29 l 229,26 l 228,23 l 228,20 l 227,18 l 226,15 l 226,12 l 225,9 l 224,6 l 224,3 l 224,0 l 223,-3 l 223,-6 l 223,-9 l 222,-12 l 222,-15 l 222,-18 l 222,-21 l 222,-24 l 222,-27 l 223,-30 l 223,-33 l 223,-36 l 224,-39 l 224,-42 l 224,-45 l 225,-48 l 226,-51 l 226,-54 l 227,-57 l 228,-60 l 228,-62 l 229,-65 l 230,-68 l 231,-71 l 232,-74 l 233,-77 l 235,-79 l 236,-82 l 237,-85 l 238,-88 l 240,-90 l 29,-90xe" onmouseover="UpdateTooltip(this,0,15)" onclick="OnShapeClick(0,15)" onfocus="UpdateTooltip(this,0,15);" onkeyup="OnShapeKey(0,15)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="While client in CLEINTS is true" origTitle="While client in CLEINTS is true"  style="top:-1000;left:-1000;width:1244;height:2000;position:absolute" path=" m -109,277 l -75,256 l -113,233 l -113,218 l -139,218 l -200,181 l -261,218 l -279,218 l -279,229 l -325,256 l -291,277 l -291,290 l -269,290 l -200,332 l -131,290 l -109,290 l -109,277xe" onmouseover="UpdateTooltip(this,0,19)" onclick="OnShapeClick(0,19)" onfocus="UpdateTooltip(this,0,19);" onkeyup="OnShapeKey(0,19)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:1244;height:2000;position:absolute" path=" m -325,652 l -75,652 l -75,502 l -325,502 l -325,652xe" onmouseover="UpdateTooltip(this,0,21)" onclick="OnShapeClick(0,21)" onfocus="UpdateTooltip(this,0,21);" onkeyup="OnShapeKey(0,21)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Auto login" origTitle="Auto login"  style="top:-1000;left:-1000;width:1244;height:2000;position:absolute" path=" m -802,-401 l -677,-326 l -552,-401 l -677,-476 l -802,-401xe" onmouseover="UpdateTooltip(this,0,5)" onclick="OnShapeClick(0,5)" onfocus="UpdateTooltip(this,0,5);" onkeyup="OnShapeKey(0,5)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="是否選擇全部 clients" origTitle="是否選擇全部 clients"  style="top:-1000;left:-1000;width:1244;height:2000;position:absolute" path=" m -903,-20 l -677,51 l -451,-20 l -677,-90 l -903,-20xe" onmouseover="UpdateTooltip(this,0,9)" onclick="OnShapeClick(0,9)" onfocus="UpdateTooltip(this,0,9);" onkeyup="OnShapeKey(0,9)"/> 
+
+</v:group>
+
+
+
+</div>
+
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/vml_1.js
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/vml_1.js	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/vml_1.js	(revision 21)
@@ -0,0 +1,221 @@
+
+function ViewMgrSetVMLLocation(pageID, shapeID, pinX, pinY)
+{
+	doc = parent.frmDrawing.document;
+	if (this.highlightDiv != null)
+	{
+		clickMenu ();
+
+		var VMLImage = this.s;
+
+		var imageLeft = 0;
+		var imageRight = imageLeft + VMLImage.pixelWidth;
+		var imageTop = 0;
+		var imageBottom = imageTop + VMLImage.pixelHeight;
+
+		var xLong = parent.ConvertXorYCoordinate(pinX, this.visBBoxLeft, this.visBBoxRight, imageLeft, imageRight, 0);
+		var yLong = parent.ConvertXorYCoordinate(pinY, this.visBBoxBottom, this.visBBoxTop, imageTop, imageBottom, 1);
+
+		xLong += doc.all['ConvertedImage'].style.posLeft;
+		yLong += doc.all['ConvertedImage'].style.posTop;
+
+		var arrowHalfWidth = viewMgr.highlightDiv.clientWidth / 2;
+		var arrowHeight = viewMgr.highlightDiv.clientHeight;
+
+		var boolNeedToScroll = false;
+
+		if( !( (xLong - arrowHalfWidth) > doc.body.scrollLeft && (xLong + arrowHalfWidth) < (doc.body.scrollLeft + doc.body.clientWidth) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( !( (yLong - arrowHeight) > doc.body.scrollTop && (yLong + arrowHeight) < (doc.body.scrollTop + doc.body.clientHeight) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( boolNeedToScroll == true )
+		{
+			window.scrollTo( xLong - doc.body.clientWidth / 2, yLong - doc.body.clientHeight / 2);
+		}
+		
+		this.highlightDiv.style.posLeft = xLong - arrowHalfWidth;
+		this.highlightDiv.style.posTop = yLong;
+		this.highlightDiv.style.visibility = "visible";
+
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 0 );
+		setTimeout( "parent.showObject(viewMgr.highlightDiv)", 1 );
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 2500 );
+	}
+}
+
+function VMLZoomChange(size)
+{
+	if(size)
+	{
+		if(size == "up")
+		{
+			size = zoomLast + 50;
+		}
+		else if(size == "down")
+		{
+			size = zoomLast - 50;
+		}
+		
+		size = parseInt(size);
+		if(typeof(size) != "number")
+			size = 100;
+	}
+	else
+	{
+		size = 100;
+	}
+
+	clickMenu ();
+
+	viewMgr.zoomLast = size;
+
+	var zoomFactor = size/100;
+
+	var width = this.s.pixelWidth;
+	var height = this.s.pixelHeight;
+
+	var margin = parseInt(document.body.style.margin) * 2;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+
+	var newScrollLeft = document.body.scrollLeft;
+	var newScrollTop = document.body.scrollTop;
+
+	var winwidth = clientWidth - margin;
+	var winheight = clientHeight - margin;
+
+	var widthRatio = winwidth / width;
+	var heightRatio = winheight / height;
+
+	if (widthRatio < heightRatio)
+	{
+		width = zoomFactor * winwidth;
+		height = width / this.origWH;
+	}
+	else
+	{
+		height = zoomFactor * winheight;
+		width = height * this.origWH;
+	}
+
+	this.s.pixelWidth = Math.max(width,1);
+	this.s.pixelHeight = Math.max(height,1);
+
+	this.sizeLast = size;
+
+	var centerX = (zoomFactor / viewMgr.zoomFactor) * (newScrollLeft + (clientWidth / 2) - this.s.posLeft);
+	var centerY = (zoomFactor / viewMgr.zoomFactor) * (newScrollTop + (clientHeight / 2) - this.s.posTop);
+
+	viewMgr.zoomFactor = zoomFactor;
+
+	if (width <= clientWidth)
+	{
+		this.s.posLeft = Math.max( 0, (clientWidth / 2) - (width / 2));
+	}
+	else
+	{
+		var left = centerX - (clientWidth / 2);
+		if ( left >= 0 )
+		{
+			this.s.posLeft = 0;
+			newScrollLeft = left;
+		}
+		else
+		{
+			this.s.posLeft = -left;
+			newScrollLeft = 0;
+		}
+	}
+
+	if (height <= clientHeight)
+	{
+		this.s.posTop = Math.max( 0, (clientHeight / 2) - (height / 2));
+	}
+	else
+	{
+		var top = centerY - (clientHeight / 2);
+		if ( top >= 0 )
+		{
+			this.s.posTop = 0;
+			newScrollTop = top;
+		}
+		else
+		{
+			this.s.posTop = -top;
+			newScrollTop = 0;
+		}
+	}
+
+	window.scrollTo(newScrollLeft, newScrollTop);
+
+	this.s.visibility = "visible";
+
+	var newXOffsetPercent = document.body.scrollLeft / this.s.pixelWidth;
+	var newYOffsetPercent = document.body.scrollTop / this.s.pixelHeight;
+	var newWidthPercent = document.body.clientWidth / this.s.pixelWidth;
+	var newHeightPercent = document.body.clientHeight / this.s.pixelHeight;
+
+	if (viewMgr.viewChanged)
+	{
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, newWidthPercent, newHeightPercent);
+	}
+
+	if (viewMgr.PostZoomProcessing)
+	{
+		viewMgr.PostZoomProcessing(size);
+	}
+}
+
+function VMLSetView (xOffsetPercent, yOffsetPercent)
+{
+	var leftPixelOffset = xOffsetPercent * this.s.pixelWidth;
+	var topPixelOffset = yOffsetPercent * this.s.pixelHeight;
+
+	window.scrollTo (leftPixelOffset - this.s.posLeft, topPixelOffset - this.s.posTop);
+
+	if (viewMgr.PostSetViewProcessing)
+	{
+		viewMgr.PostSetViewProcessing();
+	}
+}
+
+function VMLOnResize ()
+{
+	if (viewMgr.zoomLast == 100)
+	{
+		viewMgr.Zoom(100);
+	}
+
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newWidthPercent = document.body.clientWidth / image.style.pixelWidth;
+		var newHeightPercent = document.body.clientHeight / image.style.pixelHeight;
+
+		viewMgr.viewChanged (null, null, newWidthPercent, newHeightPercent);
+	}
+}
+
+function VMLOnScroll ()
+{
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newXOffsetPercent = document.body.scrollLeft / image.style.pixelWidth;
+		var newYOffsetPercent = document.body.scrollTop / image.style.pixelHeight;
+
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, null, null);
+	}
+}
+
+
+
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/widgets.htm
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/widgets.htm	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/widgets.htm	(revision 21)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>login_switch_flow_chart</title>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link href="visio.css" rel="stylesheet">
+<script src="keys.js" type="text/jscript" language="jscript"></script>
+<script src="find.js" type="text/jscript" language="jscript"></script>
+<script type="text/jscript" language="jscript">
+	
+	var imgMin = new Image();
+	imgMin.src = "minimize.gif";
+	
+	var imgMax = new Image();
+	imgMax.src = "maximize.gif";
+
+	var fileList = parent.g_FileList;
+	
+	function Widgets()
+	{
+		this.GoTo = null;
+		this.Search = null;
+		this.Details = null;
+		this.PNZ = null;
+
+		this.divCount = 0;
+		
+		this.OpenText = "全部摺疊";
+		this.OpenAlt = "全部摺疊";
+		this.ClosedText = "全部展開";
+		this.ClosedAlt = "全部展開";
+
+		this.Display = "";
+		this.Img = imgMin;
+		this.Text = this.OpenText;
+		this.Alt = this.OpenAlt;
+		
+		this.ToggleAll = ToggleAll;
+		this.ToggleWidget = ToggleWidget;
+		this.Add = Add;
+	}		
+
+	function Add(div, name)
+	{
+		tmpStr = "this." + name + " = new Widget(div);"
+		eval(tmpStr);
+		var thisWidget = eval("this." + name);
+	}
+
+	function Widget(div)
+	{
+		return div;
+	}	
+
+	function ToggleAll()
+	{
+		var OpenCloseFunc = Widget;
+
+		if(this.Display == "")
+		{
+			this.Display = "none";
+			this.Img = imgMax;
+			this.Text = this.ClosedText;
+			this.Alt = this.ClosedAlt;
+			expparent00.title = this.ClosedAlt;
+			OpenCloseFunc = CloseWidget;
+		}
+		else
+		{
+			this.Display = "";
+			this.Img = imgMin;
+			this.Text = this.OpenText;
+			this.Alt = this.OpenAlt;
+			expparent00.title = this.OpenAlt;
+			OpenCloseFunc = OpenWidget;
+		}
+		exp00.src = this.Img.src;	
+		textExp.innerText = this.Text;
+		exp00.alt = this.Alt;
+	
+		if(this.GoTo)
+		{
+			OpenCloseFunc(this.GoTo)
+		}
+		if(this.Search)
+		{
+			OpenCloseFunc(this.Search)
+		}
+		if(this.Details)
+		{
+			OpenCloseFunc(this.Details)
+		}
+		if(this.PNZ)
+		{
+			OpenCloseFunc(this.PNZ)
+		}
+	}
+
+	function ToggleNav()
+	{
+		if(divCollapsedNav.style.display == "none")
+		{
+			divCollapsedNav.style.display = "";
+			divOpenNav.style.display = "none";
+			parent.frmstOuter.cols = "20,*"
+			parent.document.all ('frmToolbar').noResize = true;
+		}
+		else
+		{
+			divOpenNav.style.display = "";
+			divCollapsedNav.style.display = "none";
+			parent.frmstOuter.cols = "237,*"
+			parent.document.all ('frmToolbar').noResize = false;
+		}
+	}
+	
+	function ToggleWidget(div)
+	{
+		if(div.style.display == "none")
+		{
+			OpenWidget(div);
+		}
+		else
+		{
+			CloseWidget(div);
+		}
+	}
+
+	function OpenWidget(div)
+	{
+		document.all(div.img).src = imgMin.src;
+		div.style.display = "";
+		document.all(div.img).alt = div.openAlt;
+		document.all(div.img + "1").title = div.openAlt;
+		document.all(div.img + "2").title = div.openAlt;
+	}
+
+	function CloseWidget(div)
+	{
+		document.all(div.img).src = imgMax.src;
+		div.style.display = "none";
+		document.all(div.img).alt = div.closedAlt;
+		document.all(div.img + "1").title = div.closedAlt;
+		document.all(div.img + "2").title = div.closedAlt;
+	}
+
+	function load()
+	{
+		parent.g_WidgetsLoaded = true;
+
+		if (parent.g_LoadingWidgets)
+		{
+			parent.g_LoadingWidgets = false;
+			parent.location.reload();
+		}
+	}
+
+	function unload()
+	{
+		parent.g_LoadingWidgets = true;
+	}
+	
+		
+	var widgets = new Widgets();
+
+</script>
+
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divOpenNav" class="nav">
+
+	<table id="tabToc" width="100%" class="navTocColor" style="margin-bottom:1px;" cellspacing="0" cellpadding="0" border="0" height="20" dir=ltr>
+	<tr>
+	<td width="2"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" id="linkNavOpen"><img src="toc.gif" alt="摺疊巡覽框架" width="22" height="17" border="0"></a></td>
+	<td><p class="p1"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" class="a1">隱藏</a></p></td>
+	<td align="right"><p class="p1"><a href="javascript:widgets.ToggleAll()" id="textExp" class="a1">全部摺疊</a></p></td>
+	<td width="2">
+		<div style="padding:2pt,1.5pt,0pt,0pt"><a href="javascript:widgets.ToggleAll()" title="全部摺疊" id="expparent00"><img id="exp00" alt="全部摺疊" src="minimize.gif" width="15" height="15" border="0"></a></div>
+	</td>
+	</tr>
+	</table>
+	
+	
+
+	
+	<div id="divPNZ" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp41" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><p class="label">全景和縮放</p></a></td>
+				<td width="15"><a id="exp42" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><img id="exp4" alt="摺疊全景和縮放" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hidePNZ" style="text-align:right;" img="exp4" class="hiderScroll" openAlt="摺疊全景和縮放" closedAlt="展開全景和縮放">
+				<table width="220" border="0" cellpadding="0" cellspacing="0">
+				<tr>
+				<td align="center" valign="middle">
+					<iframe title="全景和縮放視窗" longdesc="全景和縮放視窗" id="ifrmPNZ" src="zoom.htm" width="170" height="170" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="border: #cccccc 1px solid;"></iframe>
+				</td>
+					
+				<td>
+					<table id="tabScale" width="17" cellspacing="0" cellpadding="0" border="0">
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放頁面至 100%"><img src="fullpage.gif" alt="縮放頁面至 100%" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(1);" title="拉近"><img src="panplus.gif" alt="拉近" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(500);" title="縮放成 500%"><img id="t500" src="tick-off.gif" alt="縮放成 500%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(450);" title="縮放成 450%"><img id="t450" src="tick-off.gif" alt="縮放成 450%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(400);" title="縮放成 400%"><img id="t400" src="tick-off.gif" alt="縮放成 400%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(350);" title="縮放成 350%"><img id="t350" src="tick-off.gif" alt="縮放成 350%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(300);" title="縮放成 300%"><img id="t300" src="tick-off.gif" alt="縮放成 300%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(250);" title="縮放成 250%"><img id="t250" src="tick-off.gif" alt="縮放成 250%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(200);" title="縮放成 200%"><img id="t200" src="tick-off.gif" alt="縮放成 200%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(150);" title="縮放成 150%"><img id="t150" src="tick-off.gif" alt="縮放成 150%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放成 100%" id="a100"><img id="t100" src="tick-on.gif" alt="縮放成 100%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(50);" title="縮放成 50%"><img id="t50" src="tick-off.gif" alt="縮放成 50%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(10);" title="縮放成 10%"><img id="t10" src="tick-off.gif" alt="縮放成 10%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(-1);" title="拉遠"><img src="panminus.gif" alt="拉遠" border="0"></a></td></tr>
+					</table>
+				</td>
+				</tr>
+				</table>
+			</div>			
+		</td></tr>
+		</table>
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hidePNZ, "PNZ");
+
+			var zoomLevels = new Array(10, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500);
+
+			var tickOff = new Image();
+			tickOff.src = "tick-off.gif";
+			
+			var tickFoc = new Image();
+			tickFoc.src = "tick-foc.gif";
+			
+			var tickOn = new Image();
+			tickOn.src = "tick-on.gif";
+
+			function tickFocus()
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickFoc.src;
+				}
+			}			
+			
+			function tickBlur(percentZoom)
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickOff.src;
+				}
+			}
+
+			function tickSelect(percentZoom)
+			{
+				if (parent.viewMgr &&
+					parent.viewMgr.Zoom)
+				{
+					changeTick(percentZoom);
+					parent.viewMgr.Zoom(percentZoom);					
+				}
+
+				if(frames.item(0).zoomRectDiv)
+				{
+					frames.item(0).g_width = parseInt(frames.item(0).zoomRectDiv.style.pixelWidth) 
+					frames.item(0).g_height = parseInt(frames.item(0).zoomRectDiv.style.pixelHeight)
+					frames.item(0).g_newLeft = parseInt(frames.item(0).zoomRectDiv.style.left)
+					frames.item(0).g_newTop = parseInt(frames.item(0).zoomRectDiv.style.top)
+				}
+			}
+
+			function changeTick(percentZoom)
+			{
+				img = elemScale.all("t" + percentZoom);
+									
+				img.src = tickOn.src;
+				
+				if(elemScale.tickSelected && elemScale.tickSelected != img)
+				{
+					elemScale.tickSelected.src = tickOff.src;
+				}
+				elemScale.tickSelected = img;
+			}
+			
+			function ZoomUpDown(increment)
+			{
+				if (elemScale.tickSelected)
+				{
+					var curZoomLevel = elemScale.tickSelected.id.substring (1);
+					var newZoomLevelIndex = IndexFromLevel (curZoomLevel * 1.0);
+					if (newZoomLevelIndex >= 0)
+					{
+						var img = elemScale.all("t" + zoomLevels[newZoomLevelIndex + increment]);
+						if (img)
+						{
+							tickSelect(img.id.substring(1));
+						}
+					}
+				}
+				else
+				{
+					tickSelect (100);
+				}
+			}
+
+			function IndexFromLevel (zoomLevel)
+			{
+				for (var count = 0; count < zoomLevels.length; count++)
+				{
+					if (zoomLevels[count] == zoomLevel)
+					{
+						return count;
+					}
+				}
+
+				return -1;
+			}
+			
+			elemScale = document.all("tabScale");
+			if(elemScale)
+			{
+				elemScale.onmouseover = tickFocus;
+				elemScale.onmouseout = tickBlur;
+			}
+		</script>
+	</div>
+
+	
+	<div id="divDetails" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp21" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><p class="label">詳細資料</p></a></td>
+				<td width="15"><a id="exp22" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><img id="exp2" alt="摺疊詳細資料" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hideDetails" class="hiderScroll" img="exp2" openAlt="摺疊詳細資料" closedAlt="展開詳細資料">
+				<P class="p2" class="detsPara">CTRL+按一下繪圖中的圖形以檢視詳細資料。</P>
+			</div>
+		</td></tr>
+		</table>		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideDetails, "Details");
+			widgets.divCount++;
+		
+		</script>
+	</div>
+
+	
+	<div id="divSearch" class="holder">
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor" dir=ltr>
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp11" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><p class="label">搜尋頁</p></a></td>
+				<td width="15"><a id="exp12" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><img src="minimize.gif" id="exp1" alt="摺疊搜尋頁面" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+
+		</td></tr>
+		<tr><td>	
+
+			<div id="hideSearch" img="exp1" class="hiderScroll" openAlt="摺疊搜尋頁面" closedAlt="展開搜尋頁面">
+								<form name=theForm onsubmit="FindOnClick(); return false;" ID="Form1">
+									<table width="100%" cellspacing="0" cellpadding="3" border="0">
+									<tr>
+									<td width="100%">
+										<input class="formText" type="text" name="findString" maxlength="255" size="26" title="輸入要搜尋的文字。按 Enter 開始搜尋。">
+									</td>
+									<td width="18" class="gobutton">
+										<input type="image" src="go.gif" alt="開始搜尋" width="18" height="18" ID="GoButton" NAME="GoButton">
+									</td>
+									</tr>
+									<tr>
+									<td colspan="2" class="p2">
+										<a href="javascript:{};" tabindex="0" onclick="TogglePlus(hideAdvSrch,as0);" class="blu1"><img src="plus.gif" alt="顯示/隱藏進階搜尋選項" border="0" id="as0">進階</a>
+											<div id="hideAdvSrch" class="hiderScroll" style="display:none;">
+												<b>搜尋依據:</b>
+												<div id="divS"></div>
+											</div>
+										<hr width="100%" size="1" color="#cccccc">
+										<div id="hideResults" class="hiderScroll" style="display:none;"></div>
+									</td>
+									</tr>
+									</table>
+								</form>
+			</div>					
+
+		</td></tr>
+		</table>
+		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideSearch, "Search");
+			widgets.divCount += 2;
+			
+			makeAdvancedFindCheckboxes(divS);
+			
+			
+			var imgPlus = new Image();
+			imgPlus.src = "plus.gif";
+	
+			var imgMinus = new Image();
+			imgMinus.src = "minus.gif";
+			
+			function TogglePlus(div, img, container)
+			{
+				if(typeof(img) == "string")	
+					img = document.all(img)
+				if(typeof(div) == "string")
+					div = document.all(div)
+					
+				widget = widgets.Search;
+				if(div && img)
+				{
+					if(div.style.display == "none")
+					{
+						div.style.display = "";
+						img.src = imgMinus.src;
+						div.open = "true";
+					}
+					else
+					{
+						div.style.display = "none";
+						img.src = imgPlus.src;
+						
+						div.open = "false";
+					}
+				}
+			}
+		
+		</script>
+	</div>
+
+
+</div>
+
+<div id="divCollapsedNav" class="navTocColor" style="display:none;width:100%;height:100%;">
+	<a href="javascript:ToggleNav();" title="展開巡覽框架" id="linkNavClosed"><img src="toc2.gif" alt="展開巡覽框架" border="0"></a>
+</div>	
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/login_switch_flow_chart.files/zoom.htm
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.files/zoom.htm	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.files/zoom.htm	(revision 21)
@@ -0,0 +1,990 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script type="text/jscript" language="jscript">
+
+var BUFFER = 1;
+
+function zoomObject()
+{
+	this.PZImgRatio			= null;
+	
+	this.zoomWinHeight		= null;
+	this.zoomWinWidth		= null;
+	this.zoomWinTop			= null;
+	this.zoomWinLeft		= null;
+	
+	this.scaleFactor		= null;
+	
+	this.updateContent		= zObj_updateContent;
+	this.doOnBodyResize		= zObj_doOnBodyResize;
+	this.clipZoomRect		= zObj_clipZoomRect;
+}
+
+var g_thumbHeight = window.clientHeight;
+var g_thumbWidth = window.clientWidth;
+zoomObj = new zoomObject();
+
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+	}
+	return divObject;
+}
+
+function zObj_updateContent( win_width, win_height, VMLDiv_left, VMLDiv_top, VMLDiv_width, VMLDiv_height )
+{
+	this.mainWinWidth		= win_width;
+	this.mainWinHeight		= win_height;
+
+	this.mainImgRatio = VMLDiv_height / VMLDiv_width;
+	this.doOnBodyResize();
+}
+
+function zObj_doOnBodyResize()
+{
+	return;
+}
+
+function zObj_clipZoomRect( objectToClip )
+{
+	if( objectToClip == null )
+	{
+		objectToClip = zoomRectObj;
+	}
+	
+	var clipTop		= ( objectToClip.style.posTop < (g_thumbTop) )	? (g_thumbTop - objectToClip.style.posTop)	: 0;
+	var clipLeft	= ( objectToClip.style.posLeft < (g_thumbLeft) )	? (g_thumbLeft - objectToClip.style.posLeft)	: 0;
+	var clipBottom	= ( (objectToClip.style.posHeight - clipTop) > (g_thumbTop + g_thumbHeight + 2 * BUFFER) ) ? (g_thumbHeight + clipTop + BUFFER) : objectToClip.style.posHeight;
+	var clipRight	= 0;
+	if( (this.zoomWinWidth - clipLeft) > (g_thumbLeft + g_thumbWidth) )
+	{
+		if( clipLeft == 0 )
+		{
+			clipRight = g_thumbWidth - objectToClip.style.posLeft + 2 * BUFFER;
+		}
+		else
+		{
+			clipRight = (g_thumbWidth + clipLeft + BUFFER);
+		}
+	}
+	else
+	{
+		clipRight = objectToClip.style.posWidth;
+	}
+	clipTo( objectToClip, clipTop, clipRight, clipBottom, clipLeft);
+}
+
+function findContent()
+{
+	zoomRectDiv.style.display = "none";
+	newZoomWindowDiv.style.display = "none";
+
+	if (parent.parent.frmDrawing && parent.parent.viewMgr)
+	{
+		var viewMgr = parent.parent.viewMgr;
+
+		var getPNZ = parent.parent.viewMgr.getPNZ;
+		if (getPNZ)
+		{
+			var tmp = parent.parent.frmDrawing;
+
+			divThumb = document.all("divThumbnail");
+
+			if (divThumb.innerHTML.length == 0)
+			{
+				divThumb.innerHTML = getPNZ();
+			}
+			else
+			{
+				var pnzInfo = getPNZ();
+				var idIndex = pnzInfo.indexOf("ConvertedImage");
+				if (idIndex >= 0)
+				{
+					var test = pnzInfo;
+					pnzInfo = test.substring (0, idIndex);
+					pnzInfo += "Temp";
+					pnzInfo += test.substring (idIndex, test.length);
+
+					divTempThumbnail.innerHTML = pnzInfo;
+
+					var vmlGroup = divThumbnail.childNodes(0);
+					var vmlTempGroup = divTempThumbnail.childNodes(0);
+					CopyVMLAttrs(vmlGroup, vmlTempGroup);
+					
+					var vmlShape = vmlGroup.childNodes(1);
+					var vmlTempShape = vmlTempGroup.childNodes(1);
+					CopyVMLAttrs(vmlShape, vmlTempShape);
+
+					CopyVMLAttrs(vmlGroup.childNodes(0), vmlTempGroup.childNodes(0));
+					
+					var vmlImageData = vmlShape.childNodes(0);
+					var vmlTempImageData = vmlTempShape.childNodes(0);
+					CopyVMLImageData(vmlImageData, vmlTempImageData);
+				}
+			}
+
+			zoomRectObj = document.all("zoomRectDiv");
+			showObject( zoomRectObj );
+
+			PNZimg = document.all("ConvertedImage");
+			if (PNZimg)
+			{
+				PNZimg.style.left = 0;
+				PNZimg.style.top = 0;
+
+				if (PNZimg.style.pixelWidth > PNZimg.style.pixelHeight)
+				{
+					var oldWidth = PNZimg.style.pixelWidth;
+					PNZimg.style.width = document.body.clientWidth;
+					PNZimg.style.height = (document.body.clientWidth / oldWidth) * PNZimg.style.pixelHeight;
+
+					divThumb.style.top = (document.body.clientHeight - parseInt(PNZimg.style.height)) / 2;
+					divThumb.style.left = 0;
+				}
+				else
+				{
+					var oldHeight = PNZimg.style.pixelHeight;
+					PNZimg.style.height = document.body.clientHeight;
+					PNZimg.style.width = (document.body.clientHeight / oldHeight) * PNZimg.style.pixelWidth;
+
+					divThumb.style.left = (document.body.clientWidth - parseInt(PNZimg.style.width)) / 2;
+					divThumb.style.top = 0;
+				}
+
+				PNZimg.style.visibility = "visible";
+
+				var strOutput = divThumb.innerHTML;
+				if (strOutput.length > 0)
+				{
+					var tmp2 = document.all['ConvertedImage'];
+					zoomObj.updateContent( tmp.document.body.clientWidth, tmp.document.body.clientHeight, parseInt(tmp2.style.left), parseInt(tmp2.style.top), parseInt(tmp2.clientWidth), parseInt(tmp2.clientHeight) );
+
+					viewMgr.viewChanged = PageViewChanged;
+				}
+			}
+		}
+	}
+}
+
+function CopyVMLAttrs(vmlObjDst, vmlObjSrc)
+{
+	if (vmlObjDst != null && vmlObjSrc != null)
+	{
+		vmlObjDst.style.cssText = vmlObjSrc.style.cssText;
+	}
+}
+
+function CopyVMLImageData(vmlImageDataDst, vmlImageDataSrc)
+{
+	if (vmlImageDataDst != null && vmlImageDataSrc != null)
+	{
+		vmlImageDataDst.src = vmlImageDataSrc.src;
+	}
+}
+
+function setZoomRectCursor()
+{
+	var x = getMouseXcoord() - zoomObj.zoomWinLeft;
+	var y = getMouseYcoord() - zoomObj.zoomWinTop;
+
+	var rbw = 5;
+
+	var newCursor	= "";
+	if( y > (zoomObj.zoomWinHeight - rbw) )
+		newCursor = "s"
+	else if( y < rbw )
+		newCursor = "n";
+		
+	if( x < rbw )
+		newCursor += "w";
+	else if( x > (zoomObj.zoomWinWidth - rbw) )
+		newCursor += "e";
+
+	if( newCursor != "" )
+		zoomRectObj.style.cursor = newCursor + "-resize";
+	else
+		zoomRectObj.style.cursor = "move";
+}
+
+function startZoomRectDrag()
+{
+	var currentCursor = zoomRectObj.style.cursor;
+
+	if( currentCursor.indexOf( '-' ) != -1 )
+	{
+		g_resizeDirection = currentCursor.split( '-' )[0];
+		startDrag( 'zoomRectDiv', doResizeZoomRectDrag, stopResizeZoomRectDrag );
+	}
+	else
+	{
+		startDrag( 'zoomRectDiv', doZoomRectDrag, stopZoomRectDrag );
+	}
+}
+
+function doZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var rectLeft = parseInt(dragObj.divObject.style.left);
+	var rectTop = parseInt(dragObj.divObject.style.top);
+	var rectWidth = parseInt(dragObj.divObject.style.width);
+	var rectHeight = parseInt(dragObj.divObject.style.height);
+
+	var xOffset = 0;
+	var yOffset = 0;
+
+	var xPercent = 0;
+	var yPercent = 0;
+
+	var pnzImgLeft = parseInt(divThumbnail.style.left);
+	var pnzImgTop = parseInt(divThumbnail.style.top);
+	var pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+	var pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+		
+	xOffset = x + dragObj.xOffset - pnzImgLeft;
+	xPercent = xOffset / pnzImgWidth;
+
+	yOffset = y + dragObj.yOffset - pnzImgTop;
+	yPercent = yOffset / pnzImgHeight;
+
+	if (xOffset < 0)
+	{
+		xPercent = 0;
+		xOffset = pnzImgLeft - BUFFER;
+	}
+	else if (xOffset + rectWidth > pnzImgWidth)
+	{
+		xPercent = 1;
+		xOffset = pnzImgLeft + pnzImgWidth - rectWidth + BUFFER;
+	}
+	else
+	{
+		xOffset = x + dragObj.xOffset;
+	}
+
+	if (yOffset < 0)
+	{
+		yPercent = 0;
+		yOffset = pnzImgTop - BUFFER;
+	}
+	else if (yOffset + rectHeight > pnzImgHeight)
+	{
+		yPercent = 1;
+		yOffset = pnzImgTop + pnzImgHeight - rectHeight + BUFFER;
+	}
+	else
+	{
+		yOffset = y + dragObj.yOffset;
+	}
+
+	if (parent.parent.viewMgr.setView)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	setZWinSize (null, null, xOffset, yOffset);
+}
+
+function stopZoomRectDrag(dragObj, x, y)
+{
+	var el = window.event.srcElement;
+	g_newLeft = parseInt(el.style.left);
+	g_newTop = parseInt(el.style.top);
+}
+
+function setZWinSize( newWidth, newHeight, newLeft, newTop )
+{
+	if( newWidth != null && newWidth >= 0 ) 
+	{
+		zoomObj.zoomWinWidth = newWidth;
+		zoomRectObj.style.width = newWidth;
+	}
+
+	if( newHeight != null && newHeight >= 0 ) 
+	{
+		zoomObj.zoomWinHeight = newHeight;
+		zoomRectObj.style.height = newHeight;
+	}
+
+	if( newLeft != null && newLeft >= 0 )
+	{
+		zoomObj.zoomWinLeft = newLeft;
+		zoomRectObj.style.left = newLeft;
+	}
+
+	if( newTop != null && newTop >= 0 )
+	{
+		zoomObj.zoomWinTop = newTop;
+		zoomRectObj.style.top= newTop;
+	}
+}
+
+function doResizeZoomRectDrag(dragObj, x, y)
+{
+	var newWidth	= null;
+	var newHeight	= null;
+	var newLeft		= null;
+	var newTop		= null;
+		
+	var tmp = parent.parent.frmDrawing;
+	if (tmp)
+	{
+		zoomObj.mainWinWidth		= tmp.document.body.clientWidth;
+		zoomObj.mainWinHeight		= tmp.document.body.clientHeight;
+	}
+
+	var widthHeightRatio = zoomObj.mainWinWidth / zoomObj.mainWinHeight;
+	
+	var minimumSize = 10;
+	if( g_resizeDirection == 'e' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'w' )
+	{
+		newWidth	= zoomObj.zoomWinWidth + zoomObj.zoomWinLeft - x;
+		if( newWidth > minimumSize )
+		{
+			newHeight	= newWidth / widthHeightRatio;
+			newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+			newLeft		= x;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+
+	if( g_resizeDirection == 'se' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 's' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'sw' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+	
+	if( g_resizeDirection == 'n' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'ne' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'nw' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+}
+
+function stopResizeZoomRectDrag(dragObj, x, y)
+{
+	PNZimg = document.all("ConvertedImage");
+
+	var xWidthPercent = parseInt(zoomRectDiv.style.width) / PNZimg.style.pixelWidth;
+	var yHeightPercent = parseInt(zoomRectDiv.style.height) / PNZimg.style.pixelHeight;
+
+	var newZoomLevel = GetZoomLevel (xWidthPercent, yHeightPercent);
+
+	if (parent.parent.viewMgr.Zoom)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostZoomProcessing = PostZoomProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.Zoom (newZoomLevel);
+	}
+
+	g_width = parseInt(zoomRectDiv.style.pixelWidth);
+	g_height = parseInt(zoomRectDiv.style.pixelHeight);
+	g_newLeft = parseInt(zoomRectDiv.style.left);
+	g_newTop = parseInt(zoomRectDiv.style.top);
+}
+
+function GetZoomLevel (xWidthPercent, yHeightPercent)
+{
+	var newZoomLevel;
+	if (xWidthPercent < yHeightPercent)
+	{
+		newZoomLevel = 100 / xWidthPercent;
+	}
+	else
+	{
+		newZoomLevel = 100 / yHeightPercent;
+	}
+
+	return newZoomLevel;
+}
+
+function PostZoomProcessing (newZoomLevel)
+{
+	var xOffset = parseInt(zoomRectDiv.style.left) - parseInt(divThumbnail.style.left);
+	var yOffset = parseInt(zoomRectDiv.style.top) - parseInt(divThumbnail.style.top);
+
+	var xPercent = xOffset / PNZimg.style.pixelWidth;
+	var yPercent = yOffset / PNZimg.style.pixelHeight;
+
+	var viewMgr = parent.parent.viewMgr;
+	viewMgr.ChangingView = true;
+
+	if (viewMgr.setView)
+	{
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	SetCorrectTick (newZoomLevel);
+
+	viewMgr.PostZoomProcessing = null;
+}
+
+function SetCorrectTick (newZoomLevel)
+{
+	var zoomLevels = parent.zoomLevels;
+	if (newZoomLevel <= zoomLevels[0])
+	{
+		parent.changeTick(zoomLevels[0]);
+	}
+	else if (newZoomLevel >= zoomLevels[zoomLevels.length - 1])
+	{
+		parent.changeTick(zoomLevels[zoomLevels.length - 1]);
+	}
+	else
+	{
+		for (var count = 0; count < zoomLevels.length - 1; count++)
+		{
+			var deltaDown = newZoomLevel - zoomLevels[count];
+			var deltaUp = newZoomLevel - zoomLevels[count + 1];
+			if (deltaDown >= 0 && deltaUp <= 0)
+			{
+				if (Math.abs(deltaDown) < Math.abs(deltaUp))
+				{
+					parent.changeTick(zoomLevels[count]);
+					break;
+				}
+				else
+				{
+					parent.changeTick(zoomLevels[count + 1]);
+					break;
+				}
+			}
+		}
+	}
+}
+
+function PostSetViewProcessing ()
+{
+	parent.parent.viewMgr.ChangingView = false;
+	parent.parent.viewMgr.PostSetViewProcessing = null;
+}
+
+function startNewZoomRectDrag()
+{
+	var x = getMouseXcoord();
+	var y = getMouseYcoord();
+	zoomObj.newZWinStartX = x;
+	zoomObj.newZWinStartY = y;
+	
+	g_newZWinObjRef = document.all("newZoomWindowDiv");
+	g_newZWinObjRef.style.display = "";
+
+	startDrag( 'zoomRectDiv', doNewZoomRectDrag, stopNewZoomRectDrag );
+}
+
+function doNewZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var width	= Math.abs( zoomObj.newZWinStartX - x );
+	var height	= Math.abs( zoomObj.newZWinStartY - y );
+
+	var aspectRatio = parent.parent.viewMgr.docDrawing.body.clientWidth / parent.parent.viewMgr.docDrawing.body.clientHeight;
+
+	if( width < (aspectRatio * height))
+	{
+		width = (aspectRatio) * height;
+	}
+	else
+	{
+		height = width / (aspectRatio);
+	}
+
+	width = Math.min (width, parseInt(PNZimg.style.pixelWidth));
+	height = Math.min (height, parseInt(PNZimg.style.pixelHeight));
+
+	var left = (x > zoomObj.newZWinStartX) ? zoomObj.newZWinStartX : zoomObj.newZWinStartX - width;
+	var top  = (y > zoomObj.newZWinStartY) ? zoomObj.newZWinStartY : zoomObj.newZWinStartY - height;
+
+	newZoomWindowDiv.style.top = top;
+	newZoomWindowDiv.style.left = left;
+	newZoomWindowDiv.style.height = height;
+	newZoomWindowDiv.style.width = width;
+	newZoomWindowDiv.style.visibility = "visible";
+
+	zoomObj.zoomWinLeft		= left;
+	zoomObj.zoomWinWidth	= width;
+	zoomObj.zoomWinTop		= top;
+	zoomObj.zoomWinHeight	= height;
+}
+
+function stopNewZoomRectDrag(dragObj, x, y)
+{
+	newZoomWindowDiv.style.visibility = "hidden";
+
+	if (parseInt (newZoomWindowDiv.style.width) > 10 && 
+		parseInt (newZoomWindowDiv.style.height) > 10)
+	{
+		zoomRectDiv.style.top = newZoomWindowDiv.style.top;
+		zoomRectDiv.style.left = newZoomWindowDiv.style.left;
+		zoomRectDiv.style.height = newZoomWindowDiv.style.height;
+		zoomRectDiv.style.width = newZoomWindowDiv.style.width;
+
+		stopResizeZoomRectDrag(dragObj,x,y);
+		zoomRectDiv.style.display = "inline";
+		zoomRectDiv.style.visibility = "visible";
+	}
+	else
+	{
+		zoomObj.zoomWinLeft		= parseInt(zoomRectDiv.style.left);
+		zoomObj.zoomWinWidth	= parseInt(zoomRectDiv.style.width);
+		zoomObj.zoomWinTop		= parseInt(zoomRectDiv.style.top);
+		zoomObj.zoomWinHeight	= parseInt(zoomRectDiv.style.height);
+	}
+
+	newZoomWindowDiv.style.height = "0px";
+	newZoomWindowDiv.style.width = "0px";
+
+	newZoomWindowDiv.style.display = "none";
+}
+
+var g_lastX = 0;
+var g_lastY = 0;
+
+document.onmousedown = mouseDown;
+document.onmousemove = mouseMove;
+document.onmouseup = mouseUp;
+document.onmouseout = mouseOut;
+
+function mouseDown()
+{
+	return true;
+}
+
+function mouseMove()
+{
+	var x = event.clientX + document.body.scrollLeft;
+	var y = event.clientY + document.body.scrollTop;
+
+	g_lastX = x;
+	g_lastY = y;
+	
+	doDrag( x, y );
+	return true;
+}
+
+function mouseUp() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+	
+	stopDrag(null,x,y);
+	return true;
+}
+
+function mouseOut() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+
+	if( x < 0 ) x = -1;
+	if( x >= document.body.clientWidth ) x = -1;
+		
+	if( y < 0 ) y = -1;
+	if( y >= document.body.clientHeight ) y = -1;
+
+	if( x == -1 || y == -1 )
+	{
+		x = -1;
+		y = -1;
+	}
+	
+
+	if( x == -1 )
+		stopDrag( null, x, y );
+	return true;
+}
+
+function getMouseXcoord()
+{
+	return event.x + document.body.scrollLeft;
+}
+
+function getMouseYcoord()
+{
+	return event.y + document.body.scrollTop;
+}
+
+var g_width		= -1;
+var g_height	= -1;
+var g_newLeft	= -1;	
+var g_newTop	= -1;
+		
+var g_pnzImgWidth = -1;
+var g_pnzImgHeight = -1;
+var g_pnzImgLeft = -1;
+var g_pnzImgTop = -1;
+
+function keydown()
+{
+	var key = window.event.keyCode;
+	var el = window.event.srcElement;
+
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{
+		if(g_width == -1)
+			g_width		= parseInt(el.style.pixelWidth);
+			
+		if(g_height == -1)
+			g_height		= parseInt(el.style.pixelHeight);
+			
+		if(g_newLeft == -1)
+			g_newLeft		= parseInt(el.style.left);	
+		
+		if(g_newTop == -1)
+			g_newTop		= parseInt(el.style.top);
+		
+		if(g_pnzImgWidth == -1)
+			g_pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+			
+		if(g_pnzImgHeight == -1)
+			g_pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+			
+		if(g_pnzImgLeft == -1)
+			g_pnzImgLeft = parseInt(divThumbnail.style.left);
+			
+		if(g_pnzImgTop == -1)
+			g_pnzImgTop = parseInt(divThumbnail.style.top);
+	
+
+		if(key == 37)	
+		{
+			g_newLeft -= 1;
+			if(g_newLeft < g_pnzImgLeft)
+			{
+				g_newLeft = g_pnzImgLeft;
+			}	
+		}
+		else if(key == 38)	
+		{
+			g_newTop -= 1;
+			if(g_newTop < g_pnzImgTop)
+			{
+				g_newTop = g_pnzImgTop;
+			}	
+		}
+		else if(key == 39)	
+		{
+			g_newLeft += 1;
+			if(g_newLeft + g_width > g_pnzImgLeft + g_pnzImgWidth)
+			{
+				g_newLeft = g_pnzImgLeft + g_pnzImgWidth - g_width;		
+			}
+		}
+		
+		else if(key == 40)	
+		{
+			g_newTop += 1;
+			if(g_newTop + g_height > g_pnzImgTop + g_pnzImgHeight)
+			{
+				g_newTop = g_pnzImgTop + g_pnzImgHeight - g_height;		
+			}
+		}
+		
+		setZoomRectCursor();
+
+		var xOffset = g_newLeft - g_pnzImgLeft;
+		var yOffset = g_newTop - g_pnzImgTop;
+		
+		var xPercent = xPercent = xOffset / g_pnzImgWidth;
+		var yPercent = yPercent = yOffset / g_pnzImgHeight;
+
+		if (xOffset < 0)
+		{
+			xPercent = 0;
+			xOffset = g_pnzImgLeft;
+		}
+		else if (xOffset + g_width > g_pnzImgWidth)
+		{
+			xPercent = 1;
+			xOffset = g_pnzImgLeft + g_pnzImgWidth - g_width;
+		}
+
+		if (yOffset < 0)
+		{
+			yPercent = 0;
+			yOffset = g_pnzImgTop;
+		}
+		else if (yOffset + g_height > g_pnzImgHeight)
+		{
+			yPercent = 1;
+			yOffset = g_pnzImgTop + g_pnzImgHeight - g_height;
+		}
+
+		if (parent.parent.viewMgr.setView)
+		{
+			var viewMgr = parent.parent.viewMgr;
+			viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+			viewMgr.ChangingView = true;
+			viewMgr.setView (xPercent, yPercent);
+		}	
+		setZWinSize (null, null, g_newLeft, g_newTop);
+	}
+}
+
+function keyup()
+{
+	var key = window.event.keyCode;
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{		
+		el = window.event.srcElement;
+	}
+}
+
+function dragObject( divID, divObject, xOffset, yOffset, dragFunctionPointer, dragStopFunctionPointer )
+{
+	this.divID			= divID;
+	this.divObject		= divObject;
+	this.xOffset		= xOffset;
+	this.yOffset		= yOffset;
+	this.dragFPtr		= dragFunctionPointer;
+	this.dragStopFPtr	= dragStopFunctionPointer;
+}
+
+var dragList = new Array();
+
+
+function startDrag( divID, dragFunctionPtr, dragStopFunctionPointer, xOffset, yOffset ) 
+{
+	var divObject = document.all(divID);
+	if( divObject != null ) 
+	{
+		document.selection.empty();
+		
+		if( xOffset == null )
+		{
+			xOffset = parseInt(divObject.style.left) - g_lastX;
+		}
+		
+		if( yOffset == null )
+		{
+			yOffset = parseInt(divObject.style.top)  - g_lastY;
+		}
+
+		dragList[ dragList.length ] = new dragObject( divID, divObject, xOffset, yOffset, dragFunctionPtr, dragStopFunctionPointer );
+		return true;
+	} 
+	else 
+	{
+		return false;
+	}
+}
+
+function doDrag( x, y ) 
+{
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].dragFPtr != null )
+			dragList[i].dragFPtr( dragList[i], x, y );
+	}
+	if( dragList.length )
+	{
+		document.selection.empty();
+	}
+}
+
+function stopDrag( divID, x, y ) 
+{ 
+	var tmpDragObject;
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].divID == divID || divID == null ) 
+		{
+			tmpDragObject = dragList[i];
+			
+			dragList[i] = dragList[ dragList.length - 1 ];
+			dragList.length = dragList.length - 1;
+			
+			if( tmpDragObject.dragStopFPtr != null )
+			{
+				tmpDragObject.dragStopFPtr( tmpDragObject, x, y );
+			}
+			
+		}
+	}
+}
+
+function PageViewChanged(newLeftPercent, newTopPercent, newWidthPercent, newHeightPercent)
+{
+	if (dragList.length == 0 && !parent.parent.viewMgr.ChangingView)
+	{
+		var newLeft		= null;
+		var newTop		= null;
+		var newWidth	= null;
+		var newHeight	= null;
+
+		var PNZimg = document.all("ConvertedImage");
+
+		if (newLeftPercent != null)
+		{
+			newLeft = (newLeftPercent * PNZimg.style.pixelWidth) + parseInt(divThumbnail.style.left);
+		}
+		
+		if (newTopPercent != null)
+		{
+			newTop = (newTopPercent * PNZimg.style.pixelHeight) + parseInt(divThumbnail.style.top);
+		}
+		
+		if (newWidthPercent != null)
+		{
+			newWidth = newWidthPercent * PNZimg.style.pixelWidth;
+		}
+		
+		if (newHeightPercent != null)
+		{
+			newHeight = newHeightPercent * PNZimg.style.pixelHeight;
+		}
+
+		setZWinSize (newWidth, newHeight, newLeft, newTop);
+
+		if (newLeftPercent <= 0 && newTopPercent <= 0 && newWidthPercent >= 1 && newHeightPercent >= 1)
+		{
+			zoomRectDiv.style.display = "none";
+			zoomRectDiv.style.visibility = "hidden";
+		}
+		else
+		{
+			zoomRectDiv.style.display = "inline";
+			zoomRectDiv.style.visibility = "visible";
+		}
+
+		if (newWidthPercent != null && newHeightPercent != null)
+		{
+			var newZoomLevel = GetZoomLevel (newWidthPercent, newHeightPercent);
+			SetCorrectTick (newZoomLevel);
+		}
+	}
+}
+
+function load()
+{
+	parent.parent.g_ZoomLoaded = true;
+
+	if (parent.parent.g_LoadingWidgets)
+	{
+		parent.parent.g_LoadingWidgets = false;
+		parent.parent.location.reload();
+	}
+}
+
+function unload()
+{
+	if (parent.parent.viewMgr)
+	{
+		parent.parent.viewMgr.viewChanged = null;
+	}
+
+	parent.parent.g_LoadingWidgets = true;
+}
+
+
+</script>
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divPZWindow" style="width: 100%; height: 100%;" >
+	<div id="divThumbnail" style="position: absolute; " onmousedown="startNewZoomRectDrag();"></div>
+</div>
+<div id="divTempThumbnail" style="position: absolute; visibility:hidden; display:none;" ></div>
+
+<div id="zoomRectDiv" tabindex="1" title="可見的區域。使用滑鼠或方向鍵來移動。" onkeydown="keydown()" onkeyup="keyup()" style="display:none;position: absolute; border: solid red thin; z-index: 3;" onmousedown="startZoomRectDrag();" onmouseover="setZoomRectCursor();" onmousemove="setZoomRectCursor();"></div>
+<div id="newZoomWindowDiv" style="position: absolute; border: solid blue thin; z-index: 4; visibility: hidden;"></div>
+
+</body>
+</html>
+
+
+
+
+
+
Index: /drbl_ui/flow_chart/login_switch_flow_chart.htm
===================================================================
--- /drbl_ui/flow_chart/login_switch_flow_chart.htm	(revision 21)
+++ /drbl_ui/flow_chart/login_switch_flow_chart.htm	(revision 21)
@@ -0,0 +1,718 @@
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+		<meta name="標題" content=""/>
+		<meta name="主旨" content=""/>
+		<meta name="類別" content=""/>
+		<meta name="關鍵字" content=""/>
+		<meta name="描述" content=""/>
+		<meta name="作者" content=" "/>
+		<meta name="主管" content=""/>
+		<meta name="公司" content=""/>
+
+		<title>login_switch_flow_chart</title>
+		<script src="login_switch_flow_chart.files/frameset.js" type="text/jscript" language="jscript"></script>
+		<script type="text/jscript" language="jscript" >
+
+function FileEntry (pageIndex, pageID, pageName, priImage, secImage) 
+{
+	this.PageIndex = pageIndex;
+	this.PageID	  = pageID;
+	this.PageName = pageName;
+	this.PriImage = priImage;
+	this.SecImage = secImage;
+}
+
+var viewMgr = null;
+
+var g_FileList = new  Array(
+ new FileEntry (1, 0, "頁-1", "vml_1.htm", "gif_1.htm")
+
+);
+
+var g_CurPageIndex = 0;
+var g_ZoomLoaded = false;
+var g_WidgetsLoaded = false;
+var g_FileProtocol = "file://";
+
+var g_HLMenuEntry = "menuEntry";
+var g_HLMenuEntryDiv = "menuEntryDiv";
+
+var g_LoadingWidgets = false;
+
+
+function CViewMgr(convertedImgID, highlightDivID)
+{
+	this.onResize = null;
+	this.ApplyZoom = null;
+	this.ChangingView = false;
+
+	this.put_Location = ViewMgrDefaultFind;
+	this.Zoom = ViewMgrDefaultResize;
+	this.PostZoomProcessing = null;
+	this.setView = null;
+	this.PostSetViewProcessing = null;
+	this.viewChanged = null;
+
+	this.SupportsDetails = false;
+	this.SupportsSearch = false;
+
+	this.visBBoxLeft = 0.0;
+	this.visBBoxRight = 0.0;
+	this.visBBoxBottom = 0.0;
+	this.visBBoxTop = 0.0;
+
+	this.highlightDiv = null;
+	this.stepWidth = 10;
+
+	this.id = convertedImgID;
+	this.zoomFactor = -1;
+	this.zoomLast = -1;
+	this.origWH = 1;
+	this.origWidth = 100;	
+	this.aspectRatio = 1;
+
+	this.docDrawing = null;
+	var docDrawing = frmDrawing.document;
+	if(docDrawing)
+	{
+		this.docDrawing = docDrawing;
+		var docEl = docDrawing.all(this.id);
+		if (docEl)
+		{
+			this.s = docEl.style;
+			this.origWidth = this.s.pixelWidth;
+			this.origWH = this.s.pixelWidth / this.s.pixelHeight;
+		}
+		this.highlightDiv = docDrawing.all(highlightDivID);
+	}
+
+	this.loadPage = DefPageLoad;
+	this.getPNZ	= null;
+}
+
+function DefPageLoad (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+        if (fileDelim == -1)
+            fileDelim = curPath.lastIndexOf ('\\');
+		var newPath = curPath.substring (0, fileDelim + 1);
+		newPath += g_FileList[pageIndex].PriImage;
+		frmDrawing.location.href = newPath;
+
+		SetPNZDisplay (pageIndex);
+	}
+}
+
+function CurPageUpdate (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		g_CurPageIndex = pageIndex;
+
+		SetCurPageInGoto (pageIndex);
+
+		var divDetails = frmToolbar.document.all("divDetails");
+		if (divDetails)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsDetails)
+			{
+				displayStatus = "none";
+			}
+
+			divDetails.style.display = displayStatus;
+		}
+
+		var divSearch = frmToolbar.document.all("divSearch");
+		if (divSearch)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsSearch)
+			{
+				displayStatus = "none";
+			}
+
+			divSearch.style.display = displayStatus;
+		}
+
+		SetPNZDisplay (pageIndex);
+
+		LoadZoom ();
+	}
+}
+
+function FramePageLoaded ()
+{
+	if (isUpLevel && viewMgr == null)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+		if (fileDelim >= 0)
+		{
+			var fileName = curPath.substring (fileDelim + 1, curPath.length);
+			var pageIndex = PageIndexFromFileName (fileName);
+			SetCurPageInGoto (pageIndex);
+			SetPNZDisplay (pageIndex);
+		}
+	}
+}
+
+function LoadZoom ()
+{
+	var zoomWidget = frmToolbar.ifrmPNZ;
+	if (zoomWidget)
+	{
+		if (g_ZoomLoaded)
+		{
+			zoomWidget.findContent();
+			PageLoadedDoCallback ();
+		}
+		else
+		{
+			window.setTimeout("LoadZoom()", 500);
+		}
+	}
+	else
+	{
+		PageLoadedDoCallback ();
+	}
+}
+
+function SetCurPageInGoto (pageIndex)
+{
+	var gotoPageSelect = frmToolbar.document.all("Select1");
+	if (gotoPageSelect != null)
+	{
+		gotoPageSelect.value = pageIndex;
+	}
+}
+
+function SetPNZDisplay (pageIndex)
+{
+	var divPNZ = frmToolbar.document.all("divPNZ");
+	if (divPNZ)
+	{
+		var displayStatus = "block";
+		if (g_FileList[pageIndex].PageID < 0)
+		{
+			displayStatus = "none";
+		}
+
+		divPNZ.style.display = displayStatus;
+	}
+}
+
+function ViewMgrDefaultFind()
+{
+	return;
+}
+
+function ViewMgrDefaultResize(size)
+{
+	return;
+}
+
+
+
+g_callBackFunctionArray = new Array();
+function PageLoadedDoCallback()
+{
+	if (g_WidgetsLoaded)	
+	{
+		for( var i=0; i < g_callBackFunctionArray.length; i++ )
+		{
+			g_callBackFunctionArray[i]();
+		}
+		g_callBackFunctionArray = new Array();
+	}
+	else
+	{
+		window.setTimeout("PageLoadedDoCallback()", 500);
+	}
+}
+
+
+function ParseParams (strRawParams)
+{
+	strRawParams = strRawParams.substring(1);
+
+	var arrayParamTokens = strRawParams.split('&');
+	for (var count = 0; count < arrayParamTokens.length; count++)
+	{
+		arrayParamTokens[count] = unescape(arrayParamTokens[count]);
+		this[count] = arrayParamTokens[count].substring(0, arrayParamTokens[count].indexOf('='));
+		this[this[count]] = arrayParamTokens[count].substring(arrayParamTokens[count].indexOf('=') + 1);
+	}
+
+	return this;
+}
+
+var gParams = ParseParams (location.search);
+
+var g_PageParamValue = gParams['page'];
+if (g_PageParamValue != null && 
+	g_PageParamValue.length > 0)
+{
+	var pageIndex = PageIndexFromName (g_PageParamValue);
+	if (pageIndex > 0 && pageIndex < g_FileList.length)
+	{
+		g_CurPageIndex = pageIndex;
+	}
+}
+else
+{
+	g_PageParamValue = null;
+}
+
+var g_FirstPageToLoad = g_PageParamValue;
+
+var g_ZoomParamValue = gParams['zoom'];
+if (g_ZoomParamValue != null && g_ZoomParamValue.length > 0)
+{
+	g_ZoomParamValue = 1.0 * g_ZoomParamValue;
+	if (g_ZoomParamValue >= 10 && g_ZoomParamValue <= 500)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (viewMgr && viewMgr.Zoom) { viewMgr.Zoom(g_ZoomParamValue); } };
+	}
+}
+
+var g_ShapeParamValue = gParams['shape'];
+if (g_ShapeParamValue != null && g_ShapeParamValue.length > 0)
+{
+	if (g_PageParamValue != null && g_PageParamValue.length > 0)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var shapeNode = FindShapeXMLByName (g_PageParamValue, g_ShapeParamValue); if (shapeNode) { frmToolbar.TreeSelect (g_FileList[g_CurPageIndex].PageID, shapeNode.attributes.getNamedItem ("ID").text); } };
+	}
+	else
+	{
+		g_ShapeParamValue = null;
+	}
+}
+
+var g_SearchParamValue = gParams['search'];
+if (g_SearchParamValue != null && g_SearchParamValue.length > 0)
+{
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (frmToolbar.theForm) { frmToolbar.theForm.findString.value = g_SearchParamValue; } };
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var goButton = frmToolbar.document.all('GoButton'); if(goButton) { goButton.click(); } };
+}
+
+
+var strHLTooltipText = "按一下以跟隨超連結。";
+var strPropsTooltipText = "Ctrl + 按一下以檢視詳細資料。";
+
+var strFocusHLTooltipText = "按下 Enter 以追蹤超連結。";
+var strFocusPropsTooltipText = "Ctrl + Enter 以檢視詳細資料。";
+
+
+function UpdateTooltip (element, pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var strHL, strProps;
+	
+		if(frmDrawing.event.type == "focus")
+		{
+			strHL = strFocusHLTooltipText;
+			strProps = strFocusPropsTooltipText;
+		}
+		else
+		{
+			strHL = strHLTooltipText;
+			strProps = strPropsTooltipText;
+		}
+
+		var strTooltip = "";
+		if (element.origTitle)
+		{
+			strTooltip = element.origTitle.toString();
+		}
+			
+		var shapeNode = FindShapeXML (pageID, shapeID);
+
+		if( shapeNode != null )
+		{
+			var propColl = shapeNode.selectNodes ("Prop");
+			if (propColl != null && propColl.length > 0)
+			{
+				if (strTooltip.length > 0)
+				{
+					strTooltip += "\n";
+				} 
+				strTooltip += strProps;
+			}
+		}
+
+		var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+		if (hlObj != null && (hlObj.DoFunction.length > 0 || hlObj.Hyperlink.length > 0))
+		{
+			if (strTooltip.length > 0)
+			{
+				strTooltip += "\n";
+			}	
+			strTooltip += strHL;
+		}
+
+		element.title = strTooltip;
+		if (element.alt != null)
+		{
+			element.alt = strTooltip;
+		}
+	}
+}
+
+
+function GetHLAction (shapeNode, pageID, shapeID)
+{
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		if (hlColl.length > 1)
+		{
+			hlObj.DoFunction = "showMenu(" + pageID + ", " + shapeID + ");"
+		}
+		else if (hlColl.length == 1)
+		{
+			hlObj = CreateHLObj (hlColl.item(0));
+		}
+	}
+
+	return hlObj;
+}
+
+function HLObj (strHyperlink, strDoFunction, strDesc, newWindow) 
+{
+	this.Hyperlink = strHyperlink;
+	this.DoFunction = strDoFunction;
+	this.Desc = strDesc;
+	this.NewWindow = newWindow;
+}
+
+function clickMenu()
+{
+	var e = window.frmDrawing.event;
+	var menu = frmDrawing.document.all("menu1")
+	
+	if (menu != null && menu.style.display != "none")
+	{
+		menu.style.display="none";
+
+		if (e && e.srcElement && e.srcElement.doFunction != null)
+		{
+			eval(e.srcElement.doFunction);
+		}
+	}
+}
+
+function toggleMenuDiv(el, highlight) 
+{
+	var divEl = el;
+	var aEl = null;
+
+	var ID = el.id.substring (g_HLMenuEntryDiv.length, el.id.length) * 1.0;
+	aEl = divEl.all(g_HLMenuEntry + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenuLink(el, highlight) 
+{
+	var divEl = null;
+	var aEl = el;
+
+	var ID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	divEl = frmDrawing.document.all(g_HLMenuEntryDiv + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenu(divEl, aEl, highlight)
+{
+	if (highlight)
+	{
+	  divEl.className="highlightItem";
+	  aEl.className="highlightItem";
+	} 
+	else 
+	{
+	  divEl.className="menuItem";
+	  aEl.className="menuItem";
+	}
+}
+
+function showMenu(pageID, shapeID)
+{
+	var shapeXML = FindShapeXML (pageID, shapeID);
+	if (shapeXML != null)
+	{
+		CreateHLMenu (shapeXML);
+		var menu = frmDrawing.document.all("menu1");
+		if (menu != null)
+		{
+			menu.style.visibility = "hidden";
+			menu.style.display = "inline";
+
+			var e = window.frmDrawing.event;
+			var elem = e.srcElement;
+
+			var clientWidth = frmDrawing.document.body.clientWidth;
+			var clientHeight = frmDrawing.document.body.clientHeight;
+
+			var menuWidth = menu.clientWidth;
+			var menuHeight = menu.clientHeight;
+
+			var menuLeft = e.x;
+			var menuTop = e.y;
+			
+			var doc = frmDrawing.document;
+			var img = doc.all("ConvertedImage");
+			
+			if( (menuLeft + doc.body.scrollLeft < elem.offsetLeft) || (menuLeft + doc.body.scrollLeft > elem.offsetLeft + elem.offsetWidth + img.offsetLeft) )
+			{
+				menuLeft = elem.offsetLeft + img.offsetLeft + elem.offsetWidth/2;
+			}
+			
+			if( (menuTop + doc.body.scrollTop < elem.offsetTop) || (menuTop + doc.body.scrollTop > elem.offsetTop + elem.offsetHeight + img.offsetTop) )
+			{
+				menuTop = elem.offsetTop + img.offsetTop + elem.offsetHeight/2;
+			}
+
+			var scrollBarSize = 20;
+			if (menuLeft + menuWidth > clientWidth - scrollBarSize)
+			{
+				menuLeft = clientWidth - menuWidth - scrollBarSize;
+			}
+
+			if (menuTop + menuHeight > clientHeight - scrollBarSize)
+			{
+				menuTop = clientHeight - menuHeight - scrollBarSize;
+			}
+
+			menu.style.posLeft = menuLeft + frmDrawing.document.body.scrollLeft;
+			menu.style.posTop = menuTop + frmDrawing.document.body.scrollTop;
+			menu.style.visibility = "visible";
+
+			var firstLink = menu.all(g_HLMenuEntry + "0");
+			firstLink.focus ();
+			
+			if (e.keyCode == 13)
+			{
+				toggleMenuLink(firstLink, true);
+			}
+
+			e.cancelBubble = true;
+		}
+	}
+}
+
+function MenuKeyDown ()
+{
+	var e = window.frmDrawing.event;
+	var el = e.srcElement;
+
+	if (e.keyCode == 27)	// 27 == ESC
+	{
+		clickMenu();
+		e.cancelBubble = true;
+		return;
+	}
+
+	var curSelID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	var newSelID = -1;
+
+	if (e.keyCode == 40)	// 40 == down arrow
+	{
+		newSelID = curSelID + 1;
+	}
+	else if (e.keyCode == 38) // 38 == up arrow
+	{
+		newSelID = curSelID - 1;
+	}
+
+	var newSelEntry = frmDrawing.document.all(g_HLMenuEntry + newSelID);
+
+	if (newSelEntry)
+	{
+		newSelEntry.focus();
+
+		var curSelEntry = frmDrawing.document.all(g_HLMenuEntry + curSelID);
+		toggleMenuLink (curSelEntry, false);
+		toggleMenuLink (newSelEntry, true);
+	}
+
+	e.cancelBubble = true;
+}
+
+function CreateHLMenu (shapeNode)
+{
+	var strHLMenuHTML = "";
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		strHLMenuHTML = "<div class='innerhlMenu'>";
+
+		var hlCount = hlColl.length;
+		for (var count = 0; count < hlCount; count++)
+		{
+			var hlObj = CreateHLObj (hlColl.item(count));
+			if (hlObj != null)
+			{
+				if (hlObj.Desc.length > 0)
+				{
+					strHLMenuHTML += "<div id='" + (g_HLMenuEntryDiv + count) + "' class='menuItem' onmouseover='toggleMenuDiv(this, true)' onmouseout='toggleMenuDiv(this, false)' onclick='" + (g_HLMenuEntry + count) + ".click()'>";
+					strHLMenuHTML += "<a href=";
+
+					if (hlObj.DoFunction.length > 0)
+					{
+						strHLMenuHTML += "'javascript:" + hlObj.DoFunction + "'";
+					}
+					else
+					{
+						var targetVal = "_top";
+						if (hlObj.NewWindow)
+						{
+							targetVal = "_blank";
+						}
+						strHLMenuHTML += "'" + hlObj.Hyperlink + "' target='" + targetVal + "'";
+					}
+
+					strHLMenuHTML += " class='menuItem' id='" + (g_HLMenuEntry + count) + "' onkeydown='parent.MenuKeyDown();' onmouseover='toggleMenuLink(this, true)' onmouseout='toggleMenuLink(this, false)'>";
+					strHLMenuHTML += hlObj.Desc + "</a></div>";
+				}
+			}
+		}
+		
+		strHLMenuHTML += "</div>";
+	}
+
+	frmDrawing.menu1.innerHTML = strHLMenuHTML;
+}
+
+function CreateHLObj (hlNode)
+{
+	var strAddress = "";
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (hlNode != null)
+	{
+		var hlAddress = hlNode.selectSingleNode("HLURL:Address/textnode()");
+		if (hlAddress != null && hlAddress.text.length > 0)
+		{
+			var absoluteURL = hlNode.selectSingleNode("HLURL:AbsoluteURL/textnode()");
+			var strAbsURL = absoluteURL.text;
+			var strAddr = hlAddress.text;
+
+			if (strAbsURL.indexOf (g_FileProtocol) == 0)
+			{
+				var strAbsPath = strAbsURL.substring (g_FileProtocol.length, strAbsURL.length);
+				strAbsPath.toLowerCase ();
+				strAddr.toLowerCase ();
+				if (strAbsPath == strAddr)
+				{
+					strAddress = strAbsPath;
+				}
+				else
+				{
+					strAddress = strAddr;
+					
+					var hlSubAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+					if (hlSubAddress != null && hlSubAddress.text.length > 0)
+					{
+						strAddress += '#';
+						strAddress += hlSubAddress.text;
+					}
+
+					var hlExtraInfo = hlNode.selectSingleNode("HLURL:ExtraInfo/textnode()");
+					if (hlExtraInfo != null && hlExtraInfo.text.length > 0)
+					{
+						strAddress += '?';
+						strAddress += hlExtraInfo.text;
+					}
+				}
+			}
+			else
+			{
+				strAddress = strAbsURL;
+			}		
+
+			strAddress = HTMLEscape (strAddress);
+			hlObj.Hyperlink += strAddress;
+		}
+		else
+		{
+			hlAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+			if (hlAddress != null && hlAddress.text.length > 0)
+			{
+				strAddress = hlAddress.text;
+
+				var pageShapeSep = strAddress.lastIndexOf ('/');
+				if (pageShapeSep > 0)
+				{
+					if (PageIndexFromName (strAddress) < 0)
+					{
+						strAddress = unescape (strAddress);
+						if (PageIndexFromName (strAddress) < 0)
+						{
+							strAddress = strAddress.substring (0, strAddress.lastIndexOf ('/'));
+						}
+					}
+				}
+
+				var pageIndex = PageIndexFromName (strAddress);
+
+				hlObj.DoFunction = "GoToPage (" + pageIndex + ");";
+				strAddress = HTMLEscape (strAddress);
+				hlObj.Desc = strAddress;
+			}
+		}
+
+		hlDesc = hlNode.selectSingleNode("HLURL:Description/textnode()");
+		if (hlDesc != null && hlDesc.text.length > 0)
+		{
+			hlObj.Desc = HTMLEscape (hlDesc.text);
+		}
+		else
+		{
+			hlObj.Desc = strAddress;
+		}
+	
+		var hlNewWindow = hlNode.selectSingleNode("HLURL:NewWindow/textnode()");
+		if (hlNewWindow != null && hlNewWindow.text.length > 0)
+		{
+			hlObj.NewWindow = (hlNewWindow.text == "1");
+		}		
+	}
+
+	return hlObj;
+}
+
+
+		</script>
+	</head>
+	
+	<frameset id="frmstOuter" cols="237,*" title="login_switch_flow_chart">
+		<frame src="login_switch_flow_chart.files/toolbar.htm" name="frmToolbar" id="frmToolbar" title="此框架包含管理您繪圖的工具。" frameborder="6" bordercolor="#999999" scrolling="no" marginheight="0" marginwidth="0" >
+		<frame src="login_switch_flow_chart.files/gif_1.htm" name="frmDrawing" title="此框架包含您繪圖的頁面。" marginheight="10" marginwidth="10" onload="if (parent.isUpLevel) FramePageLoaded()" >
+
+		<noframes>
+			<body>
+
+				<h1>login_switch_flow_chart</h1>
+				<ul>
+				<li><a href="login_switch_flow_chart.files/gif_1.htm">頁-1</a></li>
+
+				</ul>
+			</body>
+		</noframes>
+	</frameset>
+	
+</html>
+
Index: /drbl_ui/flow_chart/remote_flow_chart.files/data.xml
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/data.xml	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/data.xml	(revision 21)
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisioDocument>
+	<DocumentProperties>
+		<Title></Title>
+		<HyperlinkBase href=""></HyperlinkBase>
+	</DocumentProperties>
+	<Pages>
+		<Page ID="0" Name="頁-1" NameU="Page-1">
+			<Layer IX="0">
+				<Name>流程圖</Name>
+				<NameUniv>Flowchart</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Layer IX="1">
+				<Name>連接器</Name>
+				<NameUniv>Connector</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Shapes>
+				<Shape ID="2" UniqueID="{15400A7F-700C-46F6-8FF6-A4C6B700CF2D}" Name="終端子" NameU="Terminator" Master="2">
+					<Text>start</Text>
+					<XForm>
+						<PinX Unit="MM">1.279527559055118</PinX>
+						<PinY Unit="MM">10.629921259842519</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="1" UniqueID="{F433678E-0E81-4507-8C37-00BBF6D27A6D}" Name="決策" NameU="Decision" Master="3">
+					<Text>是否選擇全部
+clients</Text>
+					<XForm>
+						<PinX Unit="MM">1.279527559055118</PinX>
+						<PinY Unit="MM">9.547244094488187</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="3" UniqueID="{3E9ABF68-5CA9-4F5F-95F0-EE70E507B67B}" Name="動態連接器" NameU="Dynamic connector" Master="4">
+					<XForm>
+						<PinX Unit="MM">1.279527559055118</PinX>
+						<PinY Unit="MM">10.137795275590550</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="4" UniqueID="{DB30703D-EE4A-4E92-9E82-D6451980FD90}" Name="程序" NameU="Process" Master="0">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">1.279527559055118</PinX>
+						<PinY Unit="MM">7.677165354330706</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="6" UniqueID="{FA8454A8-C5B2-49AB-8CAC-29E04F6A3CAA}" Name="動態連接器.6" NameU="Dynamic connector.6" Master="4">
+					<XForm>
+						<PinX Unit="MM">2.322834645669291</PinX>
+						<PinY Unit="MM">9.547244094488187</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="7" UniqueID="{7FE16453-DF74-43AE-92DE-5C42A0576BF4}" Name="動態連接器.7" NameU="Dynamic connector.7" Master="4">
+					<Text>yes</Text>
+					<XForm>
+						<PinX Unit="MM">1.279527559055118</PinX>
+						<PinY Unit="MM">8.612204724409446</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="8" UniqueID="{8727C399-B09F-4372-AE54-93054888DAD7}" Name="儲存的資料" NameU="Stored data" Master="5">
+					<Text>讀取
+ ip_list or
+ MAC list</Text>
+					<XForm>
+						<PinX Unit="MM">4.625984251968504</PinX>
+						<PinY Unit="MM">9.547244094488187</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="9" UniqueID="{78498E47-1159-43D8-AB76-B0B9A590A78B}" Name="動態連接器.9" NameU="Dynamic connector.9" Master="4">
+					<XForm>
+						<PinX Unit="MM">3.858267716535432</PinX>
+						<PinY Unit="MM">9.547244094488187</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="11" UniqueID="{EF47510C-A5C8-4329-8E81-BF002EEA6C3D}" Name="動態連接器.11" NameU="Dynamic connector.11" Master="4">
+					<Text>ok</Text>
+					<XForm>
+						<PinX Unit="MM">2.431102362204724</PinX>
+						<PinY Unit="MM">8.464566929133856</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="10" UniqueID="{89AAE140-FC7D-4CC2-95D1-6E21DA75E8DB}" Name="終端子.10" NameU="Terminator.10" Master="2">
+					<Text>end</Text>
+					<XForm>
+						<PinX Unit="MM">1.279527559055118</PinX>
+						<PinY Unit="MM">6.692913385826770</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="12" UniqueID="{F162102D-BD0F-40FB-BCC8-6F544AF95589}" Name="動態連接器.12" NameU="Dynamic connector.12" Master="4">
+					<XForm>
+						<PinX Unit="MM">1.279527559055118</PinX>
+						<PinY Unit="MM">7.135826771653541</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="5" UniqueID="{D5D0A327-ABF4-4ABB-87F5-D3BDFE1C5640}" Name="決策.5" NameU="Decision.5" Master="3">
+					<Text>選擇 clients</Text>
+					<XForm>
+						<PinX Unit="MM">3.090551181102362</PinX>
+						<PinY Unit="MM">9.547244094488187</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+			</Shapes>
+		</Page>
+	</Pages>
+</VisioDocument>
Index: /drbl_ui/flow_chart/remote_flow_chart.files/filelist.xml
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/filelist.xml	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/filelist.xml	(revision 21)
@@ -0,0 +1,32 @@
+<xml xmlns:o="urn:schemas-microsoft-com:office:office">
+ <o:File HRef="arrow.gif"/>
+ <o:File HRef="minimize.gif"/>
+ <o:File HRef="maximize.gif"/>
+ <o:File HRef="go.gif"/>
+ <o:File HRef="fullpage.gif"/>
+ <o:File HRef="plus.gif"/>
+ <o:File HRef="minus.gif"/>
+ <o:File HRef="panminus.gif"/>
+ <o:File HRef="panplus.gif"/>
+ <o:File HRef="tick-foc.gif"/>
+ <o:File HRef="tick-off.gif"/>
+ <o:File HRef="tick-on.gif"/>
+ <o:File HRef="toc.gif"/>
+ <o:File HRef="toc2.gif"/>
+ <o:File HRef="data.xml"/>
+ <o:File HRef="frameset.js"/>
+ <o:File HRef="keys.js"/>
+ <o:File HRef="visio.css"/>
+ <o:File HRef="vml_1.emz"/>
+ <o:File HRef="gif_1.gif"/>
+ <o:File HRef="vml_1.js"/>
+ <o:File HRef="vml_1.htm"/>
+ <o:File HRef="gif_1.js"/>
+ <o:File HRef="gif_1.htm"/>
+ <o:File HRef="zoom.htm"/>
+ <o:File HRef="find.js"/>
+ <o:File HRef="widgets.htm"/>
+ <o:File HRef="toolbar.htm"/>
+ <o:MainFile HRef="../remote_flow_chart.htm"/>
+ <o:File HRef="filelist.xml"/>
+</xml>
Index: /drbl_ui/flow_chart/remote_flow_chart.files/find.js
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/find.js	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/find.js	(revision 21)
@@ -0,0 +1,499 @@
+
+var strShapeName	= "圖形名稱";
+var strShapeText	= "圖形文字";
+var strProps		= "圖形資料";
+var strResults		= "搜尋結果關於:";
+
+var strShape	= "圖形名稱:";
+var strNoCustomPropertiesToDisplayText = "CTRL+按一下繪圖中的圖形以檢視詳細資料。";
+
+var FindShapeXML = parent.FindShapeXML;
+var Unquote = parent.Unquote;
+var put_Location = parent.put_Location;
+
+
+var strChkBox		= "Chkbox";
+var strPropChkBox	= "PropChkbox";
+
+function doExpando(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = up.src;
+	}else{
+		xxx.style.display = "none"
+		yyy.src = down.src;
+	}
+}
+
+function doExp(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = "minus.gif";
+	}else{
+		xxx.style.display = "none"
+		yyy.src = "plus.gif";
+	}
+}
+
+
+function FindOnClick()
+{
+	var count, indexOfString;
+	
+	var fieldsToSearchArray = new Array();
+	if (parent.xmlData != null && document.theForm[strProps + strChkBox].checked)
+	{
+		for( count=0; count < document.theForm.length; count++ )
+		{
+			indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+			if( -1 != indexOfString && document.theForm[count].checked )
+			{
+				fieldsToSearchArray[ fieldsToSearchArray.length ] = document.theForm[count].name.slice(0, indexOfString);
+			}
+		}
+	}
+
+	var searchTokensArray = CreateSearchTokens (document.theForm.findString.value);
+
+	if (searchTokensArray.length > 0)
+	{
+		var findArray = Find(searchTokensArray, fieldsToSearchArray);
+		var ArrayLength = findArray.length;
+		var strResultsHTML = "找不到相符項目。";
+		var lastPageID = null;
+		var shapeID;
+		
+		
+		if(ArrayLength > 0)
+		{
+			strResultsHTML = strResults + ' <b>'+ parent.HTMLEscape(document.theForm.findString.value) +'</b>';
+			for ( count = 0; count < ArrayLength; count++)
+			{
+			
+				if( lastPageID != findArray[count].PageID )
+				{
+					lastPageID = findArray[count].PageID;
+				}
+
+				shapeID = findArray[count].ShapeID;
+				strResultsHTML += '<p class="results"><a href="javascript:populateSearchResultDetails(\'results_'+ lastPageID +'_'+ shapeID +'\', '+ lastPageID +','+ shapeID +'); TogglePlus(results_' + lastPageID + '_' + shapeID + ',\'img_' + lastPageID + '_' + shapeID + '\', hideResults)"><img src="plus.gif" alt="顯示/隱藏圖形詳細資料" width="13" height="9" border="0" id="img_'+ lastPageID +'_'+ shapeID +'"></a>\n'
+				strResultsHTML += '<a  class="blu1" href="JavaScript:FindQuerySelect(';
+
+				strResultsHTML += findArray[count].PageID + ",";
+				strResultsHTML += findArray[count].ShapeID + ",";
+				strResultsHTML += findArray[count].PinX + ",";
+				strResultsHTML += findArray[count].PinY;
+
+				strResultsHTML += ')">'+ findArray[count].Title +'</a></p>\n'
+
+				strResultsHTML += '</div>\n';
+				strResultsHTML += '<div class="indent" id="results_'+ lastPageID +'_'+ shapeID +'" style="display:none;width:100%;"></div>\n'
+			}
+
+		}
+		var divAdvSrch = document.all("hideAdvSrch");
+		var imgAS0 = document.all("as0");
+		
+		var tmpObj = document.all("hideResults");
+		if( tmpObj != null )
+		{
+			tmpObj.innerHTML = strResultsHTML;
+			tmpObj.open = "true";
+			tmpObj.style.display = "block";
+		}
+	}
+}
+
+function CreateSearchTokens (strUserString)
+{
+	var searchTokensArray = new Array();
+
+	var strToken = "";
+	var chCurChar;
+
+	for (var count = 0; count < strUserString.length; count++)
+	{
+		chCurChar = strUserString.charAt(count);
+		if (chCurChar == '"')
+		{
+			var nNextQuote = strUserString.indexOf('"', count + 1);
+			if (nNextQuote >= 0)
+			{
+				strToken = strUserString.slice(count + 1, nNextQuote);
+				searchTokensArray[searchTokensArray.length] = strToken;
+				strToken = "";
+				count = nNextQuote;
+			}
+		}
+		else if (chCurChar == ' ')
+		{
+			if (strToken.length > 0)
+			{
+				searchTokensArray[searchTokensArray.length] = strToken;
+			}
+
+			strToken = "";
+		}
+		else
+		{
+			strToken += chCurChar;
+		}
+	}
+
+	if (strToken.length > 0)
+	{
+		searchTokensArray[searchTokensArray.length] = strToken;
+	}
+
+	return searchTokensArray;
+}
+
+function populateSearchResultDetails( divID, pageID, shapeID )
+{
+	var tmpShape = FindShapeXML (pageID, shapeID);
+	var strOutput = CreatePropTable( tmpShape );
+	
+	var tmpObj = document.all(divID);
+	if( tmpObj != null )
+	{
+		tmpObj.innerHTML = strOutput;
+	}
+}
+
+function makeAdvancedFindCheckboxes(div)
+{
+	if (parent.xmlData)
+	{
+		var strOutput = "";
+
+		strOutput += "<INPUT type='checkbox' name='" + strShapeName + strChkBox + "' id='" + strShapeName + strChkBox + "' checked><label for='" + strShapeName + strChkBox + "'>" + strShapeName + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strShapeText + strChkBox + "' id='" + strShapeText + strChkBox + "' checked><label for='" + strShapeText + strChkBox + "'>" + strShapeText + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strProps + strChkBox + "' id='" + strProps + strChkBox + "' onclick='AdvSearchCustomPropCheck ()'checked ><label for='" + strProps + strChkBox + "'>" + strProps +"</label><br>\n";
+		strOutput += "<div id='divCPBoxes' style='margin-left:1em;'>";
+		
+		var objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label");
+		var filter = "";
+		var boolFirstPass = true;
+		var tmpPropName;
+		while( objNodes.length > 0)
+		{
+			tmpPropName = objNodes.item( 0 ).text;
+			var escapedPropName = parent.EscapeString(tmpPropName);
+			if( true == boolFirstPass )
+			{
+				filter = ". != '" + escapedPropName + "'";
+				boolFirstPass = false;
+			}
+			else
+			{
+				filter += " and . != '" + escapedPropName + "'";
+			}
+
+			tmpPropName = parent.HTMLEscape (tmpPropName);
+			strOutput += "<INPUT type='checkbox' name='" + tmpPropName + strPropChkBox + "' id='"+ tmpPropName + strPropChkBox + "' checked><label for='"+ tmpPropName + strPropChkBox + "'>" + tmpPropName +"</label><br>\n";
+
+			objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label["+ filter + "]");
+		}
+		strOutput += "</div>"
+		div.innerHTML = strOutput;
+	}
+}
+
+function AdvSearchCustomPropCheck ()
+{
+	for( count=0; count < document.theForm.length; count++ )
+	{
+		indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+		if( -1 != indexOfString )
+		{
+			document.theForm[count].disabled = !document.theForm[strProps + strChkBox].checked;
+		}
+	}
+}
+
+
+function CResultItem(title, pageID, shapeID, pinX, pinY)
+{
+	 this["Title"] = title;
+	 this["PageID"] = pageID;
+	 this["ShapeID"] = shapeID;
+	 this["PinX"] = pinX;
+	 this["PinY"] = pinY;
+}
+
+function FindParentPage(nodeObject)
+{
+	if(nodeObject == null)
+	{
+		return null;
+	}
+	if(nodeObject.baseName == "Page")
+		return nodeObject;
+	else
+		return FindParentPage(nodeObject.parentNode);
+}
+
+function QueryStringForMatch(shapeNode, regTextForFind, filterString)
+{
+	if (filterString.length > 0)
+	{
+		var nodesToCheck = shapeNode.selectNodes(filterString);
+
+		var nodeCount = nodesToCheck.length;
+		var stringToParse;
+		for(var ncount = 0; ncount < nodeCount; ncount++)
+		{
+			stringToParse = nodesToCheck.item(ncount).text;
+			stringToParse = stringToParse.toLowerCase ();
+			if(stringToParse.indexOf(regTextForFind) > -1)
+			{
+				return true;
+			}
+		}
+	}
+}
+
+function GetShapeTitle(shapeNode)
+{
+	var objTempName = null;
+	var objTempTextElement = shapeNode.selectSingleNode("./Text");
+	if(objTempTextElement != null)
+	{
+		var objTextNode = objTempTextElement.selectSingleNode("textnode()");
+		if (objTextNode != null)
+		{
+			return parent.HTMLEscape (objTextNode.text);
+		}
+	}
+
+	objTempName = shapeNode.selectSingleNode("./@Name");
+	if(objTempName != null)
+	{
+		return parent.HTMLEscape (objTempName.text);
+	}
+
+	return "";
+}
+
+function GetPageTitle(pageID)
+{
+	var pagesObj = parent.xmlData.selectSingleNode("VisioDocument/Pages");
+	if(!pagesObj)
+	{
+		return "";
+	}
+
+	var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+	var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+	if(!pageObj)
+	{
+		return "";
+	}
+
+	var pageNameNode = pageObj.selectSingleNode("@Name");
+	if(!pageNameNode)
+	{
+		return "";
+	}
+	return pageNameNode.text;
+}
+
+function Find(searchTokensArray, propsToSearchArray)
+{
+	var bXMLNotValid = false;
+	var findArray = new Array();
+	var findIndex = 0;
+
+	if (parent.xmlData != null && searchTokensArray.length > 0)
+	{
+		var fieldsToSearchArray = new Array();
+		var filterString = "";
+		if( null != propsToSearchArray &&
+			propsToSearchArray.length > 0 )
+		{
+			var propFilterString = "";
+			for( var count=0; count< propsToSearchArray.length; count++ )
+			{
+				if( count == 0 )
+				{
+					propFilterString = "[. = '" + parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+				else
+				{
+					propFilterString += " or . = '"+ parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+			}
+			propFilterString += "]";
+
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Prop[Label"+ propFilterString +"]/Value";
+		}
+
+		if (document.theForm[strShapeText + strChkBox].checked)
+		{
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Text";
+		}
+
+		if (fieldsToSearchArray.length > 0)
+		{
+			filterString = "(.//(";
+
+			for (var fieldCount = 0; fieldCount < fieldsToSearchArray.length; fieldCount++)
+			{
+				if (fieldCount != 0)
+				{
+					filterString += " | ";
+				}
+
+				filterString += fieldsToSearchArray[fieldCount];
+			}
+
+			filterString += ")/textnode())";
+		}
+
+		var objShapeNodes;
+
+		if (document.theForm[strShapeName + strChkBox].checked)
+		{
+			if (filterString.length > 0)
+			{
+				filterString += " | ";
+			}
+			filterString += "(@Name)";
+
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape");
+		}
+		else
+		{
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape[(Prop/Value | Prop/Label | Text)]");
+		}
+
+		var shapeCount = objShapeNodes.length;
+		var objTempData = new CResultItem("A Label","PageID","ShapeID","PinX","PinY");
+		var objTempShape = null;
+
+		for (count = 0; count < shapeCount; count++)
+		{		
+			objTempShape = objShapeNodes.item(count);
+
+			var objParentPageNode = FindParentPage(objTempShape);
+			if (objParentPageNode == null)
+			{
+				continue;
+			}
+
+			var objPageIDNode = objParentPageNode.selectSingleNode("@ID/textnode()");
+			if(objPageIDNode == null)
+			{
+				continue;
+			}
+			var pageID = objPageIDNode.text;
+
+			var pageIndex = parent.PageIndexFromID (pageID);
+			if (pageIndex < 0)
+			{
+				continue;
+			}
+
+			var objLayerMember = objTempShape.selectSingleNode("LayerMem/LayerMember");
+			if (objLayerMember != null && objLayerMember.text.length > 0)
+			{
+				var layerArray = objLayerMember.text.split (';');
+				var visibleLayer = false;
+				for (var layerCount = 0; (layerCount < layerArray.length) && !visibleLayer; layerCount++)
+				{
+					var objLayerVisible = objParentPageNode.selectSingleNode("Layer[@IX=" + layerArray[layerCount] + "]/Visible");
+					if (objLayerVisible != null)
+					{
+						 visibleLayer = (objLayerVisible.text != 0);
+					}
+				}
+				
+				if (!visibleLayer)
+				{
+					continue;
+				}
+			}
+
+			for (var tokenCount = 0; tokenCount < searchTokensArray.length; tokenCount++)
+			{
+				var textToFind = searchTokensArray[tokenCount];
+				textToFind = textToFind.toLowerCase ();
+
+				if (QueryStringForMatch(objTempShape, textToFind, filterString))
+				{
+					objTempData.Title = GetShapeTitle(objTempShape);
+					objTempData.PageID = pageID;
+
+					objShapeIDNode = objTempShape.selectSingleNode("@ID/textnode()");
+					if(objShapeIDNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.ShapeID = objShapeIDNode.text;
+					objPinXNode = objTempShape.selectSingleNode("XForm/PinX/textnode()");
+					if(objPinXNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinX = objPinXNode.text;
+					objPinYNode = objTempShape.selectSingleNode("XForm/PinY/textnode()");
+					if(objPinYNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinY = objPinYNode.text;
+
+					findArray[findIndex] = new CResultItem(objTempData.Title, objTempData.PageID, objTempData.ShapeID, objTempData.PinX, objTempData.PinY);
+					findIndex++;
+					break;
+				}
+			}
+		}
+		if(bXMLNotValid)
+		{
+			findArray.length = 0;
+		}
+	}
+
+	return findArray;
+}
+
+function FindQuerySelect(pageID, shapeID, pinX, pinY)
+{
+	if ((!widgets.GoTo && parent.g_FileList.length > 1) || (widgets.GoTo && parent.g_FileList[document.all("Select1").value].PageID != pageID))
+	{
+		parent.g_callBackFunctionArray[parent.g_callBackFunctionArray.length] = function () { parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY); };
+		parent.GoToPageByID(pageID);
+	}
+	else 
+	{
+		if (parent.viewMgr != null)
+		{
+			parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY);
+		}
+	}
+}
+
+function TreeSelect(pageID, shapeID)
+{
+	var shapeNode = FindShapeXML (pageID, shapeID);
+	if (shapeNode != null)
+	{
+		var pinXNode = shapeNode.selectSingleNode("XForm/PinX/textnode()");
+		var pinYNode = shapeNode.selectSingleNode("XForm/PinY/textnode()");
+
+		if (pinXNode != null && pinYNode != null)
+		{
+			FindQuerySelect (pageID, shapeID, pinXNode.text, pinYNode.text);
+		}
+	}
+}
+
+
+var g_RowStyleList = parent.g_RowStyleList;
+var FillPropPane = parent.FillPropPane;
+var CreatePropTable = parent.CreatePropTable;
+
Index: /drbl_ui/flow_chart/remote_flow_chart.files/frameset.js
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/frameset.js	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/frameset.js	(revision 21)
@@ -0,0 +1,653 @@
+
+var MSIE = false;
+var ver = 0;
+var indexOfMSIE = navigator.userAgent.indexOf("MSIE"); 
+if(indexOfMSIE != -1)
+{
+	MSIE = true;
+	ver = parseFloat(navigator.userAgent.substring(indexOfMSIE + 5, navigator.userAgent.indexOf(";", indexOfMSIE)));
+}
+
+var isMac = (navigator.appVersion.indexOf("Macintosh") >= 0);
+var isUpLevel = (MSIE && ver >= 5 && !isMac);
+
+var xmlData = XMLData("remote_flow_chart.files/data.xml");
+
+var g_RowStyleList = new  Array(
+ "propViewerEvenRow",
+ "propViewerOddRow"
+);
+
+
+var strShape	= "圖形名稱:";
+
+
+
+function XMLData(file)
+{
+	var temp = null;
+	if(isUpLevel)
+	{
+		temp = CreateObject("Microsoft.XMLDOM");
+		if (temp == null)
+		{
+			temp = CreateObject("MSXML2.DOMDocument");
+		}
+
+		if (temp != null)
+		{
+			temp.async = false;
+		
+			temp.load(file);
+			if (temp.parseError.errorCode != 0)
+			{
+				temp = null;
+			}
+		}
+	}
+
+	return temp;
+}
+
+function CreateObject (strObj)
+{
+	var obj = null;
+	eval ("try { obj = new ActiveXObject(strObj); } catch (e) {}");
+	return obj;
+}
+
+function doVersion()
+{
+	if(isUpLevel)
+	{
+		frmToolbar.divDownLevel.innerHTML = "";
+		frmToolbar.divUpLevel.innerHTML = frmWidgets.divData.innerHTML;
+	}
+}	
+	
+	
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData != null)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(pageObj == null)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function OnShapeKey(pageID, shapeID)
+{
+	var e = window.frmDrawing.event;
+	
+	if(e.keyCode == 13 && e.ctrlKey)		//ctrl + enter
+	{
+		UpdateProps (pageID, shapeID);
+	}
+	else if (e.keyCode == 13)
+	{
+		OnShapeClick (pageID, shapeID);
+	}
+}
+
+function OnShapeClick (pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var e = frmDrawing.window.event;
+		var elem = e.srcElement;
+
+		if (e != null && e.ctrlKey && frmToolbar.widgets && frmToolbar.widgets.Details)
+		{
+			UpdateProps (pageID, shapeID);
+		}
+		else
+		{
+			var shapeNode = FindShapeXML (pageID, shapeID);
+			var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+			if (hlObj != null)
+			{
+				if (hlObj.DoFunction.length > 0)
+				{
+					eval (hlObj.DoFunction);
+				}
+				else if (hlObj.Hyperlink.length > 0)
+				{
+					if (hlObj.NewWindow)
+					{
+						window.open (hlObj.Hyperlink);
+					}
+					else
+					{
+						top.location.href = hlObj.Hyperlink.substr (0, 510);
+					}
+				}
+				else if (elem != null)
+				{
+					var href = elem.origHref;
+					if (href == null)
+					{
+						href = elem.href;
+					}
+
+					var target = elem.origTarget;
+					if (target == null)
+					{
+						target = elem.target;
+					}
+
+					if (href && href.length > 0)
+					{
+						href = HTMLEscape (href);
+						if (target && target == "_blank")
+						{
+							window.open (href);
+						}
+						else
+						{
+							top.location.href = href.substr (0, 510);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return (!isUpLevel);
+}
+
+function UpdateProps(pageID, shapeID)
+{
+	var shape = FindShapeXML (pageID, shapeID);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function UpdatePropsByShapeName(pageName, shapeName)
+{
+	var shape = FindShapeXMLByName (pageName, shapeName);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function FillPropPane (shapeNode, outputDivObj )
+{
+	if (shapeNode != null && outputDivObj != null)
+	{
+		if(outputDivObj.style.display == "none")
+		{
+			frmToolbar.ToggleWidget(outputDivObj);
+		}
+	
+		var strCPHTML = "";
+		
+		var shapeNameAttr = shapeNode.attributes.getNamedItem ("Name");
+		if (shapeNameAttr)
+		{
+			strCPHTML += "<span class='p2' style='padding-left:2px;'>" + strShape + " " + HTMLEscape(shapeNameAttr.text) + "</span>";
+		}
+
+		var strTableHTML = CreatePropTable (shapeNode);
+		if(strTableHTML.indexOf("<table") == -1)
+		{
+			strTableHTML = "<p class='p2' style='margin-left:1em;margin-top:0em;'>" + strTableHTML + "</p>";
+		}
+
+		if (strTableHTML.length > 0)
+		{
+			strCPHTML += strTableHTML;
+		}
+		else
+		{
+			strCPHTML = strNoCustomPropertiesToDisplayText;
+		}
+		
+		outputDivObj.innerHTML = strCPHTML;
+		outputDivObj.minHeight = 75;
+	}
+}
+
+function CreatePropTable (shapeNode)
+{
+	var strCPHTML = "";
+	var strStartTable = "<table class='propViewerTABLE' borderColor='#999999' cellPadding='2' width='95%' border='1' summary='此表格包含圖形詳細資料'>";
+		strStartTable += "<THEAD class='propViewerTHEAD'><TH>標籤</TH><TH>值</TH></THEAD>";
+	var strEndTable = "</TABLE>";
+
+	if (shapeNode != null)
+	{
+		var propColl = shapeNode.selectNodes ("Prop");
+
+		var propCount = propColl.length;
+		for (var count = 0; count < propCount; count++)
+		{
+			strCPHTML += "<TR class='" + g_RowStyleList[count % 2] + "'>";
+			
+			var strLabelText = "";
+			oPropLabel = propColl.item(count).selectSingleNode("Label/textnode()");
+			if (oPropLabel != null)
+			{
+				strLabelText = HTMLEscape (oPropLabel.text);
+			}
+			else
+			{
+				oPropName = propColl.item(count).attributes.getNamedItem ("Name");
+				if (oPropName)
+				{
+					strLabelText = HTMLEscape (oPropName.text);
+				}
+			}
+
+			if (strLabelText.length > 0)
+			{
+				strCPHTML += "<TD class='propViewerTD'>" + strLabelText + "</TD>";
+				strCPHTML += "<TD class='propViewerTD'>"
+
+				var strValueText = "&nbsp;";
+				oPropValue = propColl.item(count).selectSingleNode("Value/textnode()");
+				if (oPropValue)
+				{
+					strValueText = HTMLEscape (oPropValue.text);
+				}
+
+				strCPHTML += strValueText + "</TD></TR>";
+			}
+		}
+
+		if(strCPHTML != "")
+		{
+			strCPHTML = strStartTable + strCPHTML + strEndTable;
+		}
+		else
+		{
+			strCPHTML = "沒有可使用的詳細資料。";
+		}
+	}
+
+	return strCPHTML;
+}
+
+function keyHandler()
+{
+	var e = frmDrawing.window.event;
+	if(e.keyCode == 13) //enter
+	{
+		e.srcElement.click();
+	}
+}
+
+function GoToPage(index)
+{
+	if (viewMgr)
+	{
+		viewMgr.loadPage (index);
+	}
+	else
+	{
+		DefPageLoad (index);
+	}
+}
+
+function GoToPageByID(pageID)
+{
+	var pageIndex = PageIndexFromID (pageID);
+	if (pageIndex >= 0)
+	{
+		GoToPage (pageIndex);
+	}
+}
+
+function PageIndexFromID (pageID)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageID == g_FileList[count].PageID)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromName (strPageName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strPageNameLower = strPageName;
+		strPageNameLower = strPageNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListPageName = g_FileList[count].PageName;
+			strFileListPageName = HTMLUnescape (strFileListPageName);
+			strFileListPageName = strFileListPageName.toLowerCase ();
+			if (strPageNameLower == strFileListPageName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromFileName (strFileName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strFileNameLower = strFileName;
+		strFileNameLower = strFileNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListFileName = g_FileList[count].PriImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+
+			strFileListFileName = g_FileList[count].SecImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromVisioPageIndex (pageIndex)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageIndex == g_FileList[count].PageIndex)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function FindShapeXMLByName (pageName, shapeName)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@Name $ieq$ "' + EscapeString (pageName) + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@Name $ieq$ "' + EscapeString (shapeName) + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function Unquote (str)
+{
+	var nStartIndex = 0;
+	var nEndIndex = str.length;
+
+	if (str.charAt (0) == '"')
+	{
+		nStartIndex = 1;
+	}
+
+	if (str.charAt (nEndIndex - 1) == '"')
+	{
+		nEndIndex -= 1;
+	}
+
+	return str.substring (nStartIndex, nEndIndex);
+}
+
+function ConvertXorYCoordinate(PosValue, OldMin, OldMax, NewMin, NewMax, MapBackwards)
+{
+	var OldMid = (OldMax - OldMin) / 2;
+	var NewMid = (NewMax - NewMin) / 2;
+	var ConvertResult = 1 * PosValue;
+	ConvertResult = ConvertResult - (OldMin + OldMid);
+	ConvertResult = ConvertResult / OldMid;
+	if(MapBackwards != 0)
+	{
+		ConvertResult = 0 - ConvertResult;
+	}
+	ConvertResult = ConvertResult * NewMid;
+	ConvertResult = ConvertResult + (NewMin + NewMid);
+	return ConvertResult;
+}
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.display = "";
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+		divObject.style.display = "none";
+	}
+	return divObject;
+}
+
+function EscapeString (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "\\\\";
+		}
+		else if (curChar == "\"")
+		{
+			strResult += "\\\"";
+		}
+		else if (curChar == "\'")
+		{
+			strResult += "\\\'";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLEscape (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "&#92;";
+		}
+		else if (curChar == '\"')
+		{
+			strResult += "&#34;";
+		}
+		else if (curChar == '\'')
+		{
+			strResult += "&#39;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#60;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#62;";
+		}
+		else if (curChar == '&')
+		{
+			strResult += "&#38;";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLUnescape (str)
+{
+	var strResult = "";
+	var strEscapePattern = "&#xx;";
+
+	for (var i = 0 ; i < str.length - strEscapePattern.length + 1; i++)
+	{
+		if (str.charAt(i) == '&' && 
+			str.charAt(i + 1) == '#' &&
+			str.charAt(i + 4) == ';')
+		{
+			var charCode = str.charAt(i + 2);
+			charCode += str.charAt(i + 3);
+
+			if (charCode == "34")
+			{
+				strResult += '"';
+			}
+			else if (charCode == "39")
+			{
+				strResult += '\'';
+			}
+			else if (charCode == "60")
+			{
+				strResult += '<';
+			}
+			else if (charCode == "62")
+			{
+				strResult += '>';
+			}
+			else if (charCode == "92")
+			{
+				strResult += '\\';
+			}
+			else if (charCode == "38")
+			{
+				strResult += '&';
+			}
+			
+			i = i + strEscapePattern.length - 1;
+		}
+		else
+		{
+			strResult += str.charAt(i);
+		}
+	}
+
+	strResult += str.substring (i, str.length);
+
+	return strResult;
+}
+
Index: /drbl_ui/flow_chart/remote_flow_chart.files/gif_1.htm
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/gif_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/gif_1.htm	(revision 21)
@@ -0,0 +1,135 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>
+remote_flow_chart
+</title>
+<script type="text/javascript" language="javascript">
+function UpdateTooltip(){};
+function OnShapeClick(){};
+</script>
+
+<script src="gif_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+	}
+</script>
+
+
+
+<script type="text/jscript" language="jscript">
+
+var pageID = 0;
+
+var isUpLevel = parent.isUpLevel;
+var OnShapeClick = null;
+if (!parent.isMac)
+{
+	OnShapeClick = parent.OnShapeClick;
+}
+
+var OnShapeKey = parent.OnShapeKey;
+var UpdateTooltip = parent.UpdateTooltip;
+var clickMenu = parent.clickMenu;
+var toggleMenuDiv = parent.toggleMenuDiv;
+var toggleMenuLink = parent.toggleMenuLink;
+var GoToPage = parent.GoToPage;
+
+
+if (parent.isUpLevel)
+{
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			var fileEntry = parent.g_FileList[parent.g_CurPageIndex];
+			var fileToLoad = fileToLoad = fileEntry.PriImage;
+			if (fileEntry.SecImage.length > 0)
+			{
+				fileToLoad = fileEntry.SecImage;
+			}
+
+			location.replace(fileToLoad);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+
+	var viewMgr = new parent.CViewMgr();
+	parent.viewMgr = viewMgr;
+
+	viewMgr.SupportsDetails = true;
+	viewMgr.SupportsSearch = true;
+
+	viewMgr.put_Location = ViewMgrSetRasterLocation;
+	viewMgr.visBBoxLeft = 0.510144;
+	viewMgr.visBBoxRight = 5.119777;
+	viewMgr.visBBoxBottom = 6.494396;
+	viewMgr.visBBoxTop = 10.828438;
+	viewMgr.highlightDiv = null;
+}
+
+function load ()
+{
+	if(isUpLevel)
+	{
+		arrowdiv.innerHTML = '<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>';
+
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.CurPageUpdate (pageIndex);
+	}
+}
+
+function unload()
+{
+	if(isUpLevel)
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+}
+
+window.onload = load;
+window.onunload = unload;
+document.onclick = clickMenu;
+
+</script>
+</head>
+
+<body class="pageView" bgcolor="#FFFFFF">
+
+<div id=arrowdiv style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+<DIV id=RasterDiv>
+
+
+<center>
+  <IMG id="ConvertedImage" SRC="gif_1.gif" ALT="頁-1" name=RasterImage BORDER="0" USEMAP="#visImageMap">
+</center>
+
+<MAP NAME="visImageMap">
+  <AREA shape="POLYGON" tabindex="1" ALT="選擇 clients" origTitle="選擇 clients" TITLE="選擇 clients"  target="_top" COORDS="271,138,295,123,272,109,272,98,267,98,253,98,248,95,243,98,229,98,229,106,201,123,225,138,225,145,238,145,248,151,258,145,271,145,271,138" onmouseover="UpdateTooltip(this,0,5)" onfocus="UpdateTooltip(this,0,5)" onclick="return OnShapeClick(0,5);" onkeyup="OnShapeKey(0,5);">
+  <AREA shape="POLYGON" tabindex="1" ALT="end" origTitle="end" TITLE="end"  target="_top" COORDS="46,416,102,416,103,416,104,416,104,416,105,416,106,416,106,415,107,415,108,415,108,415,109,415,109,414,110,414,111,414,111,414,112,413,112,413,113,413,113,412,114,412,114,411,115,411,115,411,116,410,116,410,117,409,117,409,118,408,118,408,118,407,119,406,119,406,119,405,120,405,120,404,120,403,120,403,121,402,121,402,121,401,121,400,121,400,121,399,121,398,121,398,121,397,121,396,121,396,121,395,121,394,121,394,121,393,121,392,121,392,120,391,120,390,120,390,120,389,119,389,119,388,119,387,118,387,118,386,118,386,117,385,117,385,116,384,116,384,115,383,115,383,114,382,114,382,113,382,113,381,112,381,112,381,111,380,111,380,110,380,109,379,109,379,108,379,108,379,107,379,106,378,106,378,105,378,104,378,104,378,103,378,102,378,46,378,45,378,44,378,44,378,43,378,42,378,42,378,41,379,40,379,40,379,39,379,38,379,38,380,37,380,37,380,36,381,36,381,35,381,34,382,34,382,33,382,33,383,32,383,32,384,32,384,31,385,31,385,30,386,30,386,30,387,29,387,29,388,29,389,28,389,28,390,28,390,28,391,27,392,27,392,27,393,27,394,27,394,27,395,27,396,27,396,27,397,27,398,27,398,27,399,27,400,27,400,27,401,27,402,27,402,28,403,28,403,28,404,28,405,29,405,29,406,29,406,30,407,30,408,30,408,31,409,31,409,32,410,32,410,32,411,33,411,33,411,34,412,34,412,35,413,36,413,36,413,37,414,37,414,38,414,38,414,39,415,40,415,40,415,41,415,42,415,42,416,43,416,44,416,44,416,45,416,46,416" onmouseover="UpdateTooltip(this,0,10)" onfocus="UpdateTooltip(this,0,10)" onclick="return OnShapeClick(0,10);" onkeyup="OnShapeKey(0,10);">
+  <AREA shape="POLYGON" tabindex="1" ALT="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list" TITLE="讀取  ip_list or  MAC list"  target="_top" COORDS="426,151,443,151,442,150,442,149,441,148,441,147,440,146,440,145,440,144,439,143,439,142,438,141,438,140,438,138,437,137,437,136,437,135,437,134,437,133,436,132,436,130,436,129,436,128,436,127,436,126,436,125,436,124,436,122,436,121,436,120,436,119,436,118,436,117,436,115,436,114,437,113,437,112,437,111,437,110,437,109,438,108,438,106,438,105,439,104,439,103,440,102,440,101,440,100,441,99,441,98,442,97,442,96,443,95,412,95,412,92,380,92,380,95,355,95,355,96,354,97,354,98,353,99,353,100,352,101,352,102,352,103,351,104,351,105,351,106,350,108,350,109,350,110,349,111,349,112,349,113,349,114,349,115,349,117,348,118,348,119,348,120,348,121,348,122,348,124,348,125,348,126,348,127,348,128,349,129,349,130,349,132,349,133,349,134,349,135,350,136,350,137,350,138,351,140,351,141,351,142,352,143,352,144,352,145,353,146,353,147,354,148,354,149,355,150,355,151,365,151,365,152,369,152,426,152,426,151" onmouseover="UpdateTooltip(this,0,8)" onfocus="UpdateTooltip(this,0,8)" onclick="return OnShapeClick(0,8);" onkeyup="OnShapeKey(0,8);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="27,331,121,331,121,274,27,274,27,331" onmouseover="UpdateTooltip(this,0,4)" onfocus="UpdateTooltip(this,0,4)" onclick="return OnShapeClick(0,4);" onkeyup="OnShapeKey(0,4);">
+  <AREA shape="POLYGON" tabindex="1" ALT="是否選擇全部 clients" origTitle="是否選擇全部 clients" TITLE="是否選擇全部 clients"  target="_top" COORDS="101,105,74,95,47,105,34,105,34,110,0,123,74,151,148,123,114,110,114,105,101,105" onmouseover="UpdateTooltip(this,0,1)" onfocus="UpdateTooltip(this,0,1)" onclick="return OnShapeClick(0,1);" onkeyup="OnShapeKey(0,1);">
+  <AREA shape="POLYGON" tabindex="1" ALT="start" origTitle="start" TITLE="start"  target="_top" COORDS="46,38,102,38,103,38,104,38,104,38,105,38,106,38,106,38,107,37,108,37,108,37,109,37,109,37,110,36,111,36,111,36,112,35,112,35,113,35,113,34,114,34,114,34,115,33,115,33,116,32,116,32,117,31,117,31,118,30,118,30,118,29,119,29,119,28,119,27,120,27,120,26,120,26,120,25,121,24,121,24,121,23,121,22,121,22,121,21,121,20,121,20,121,19,121,18,121,18,121,17,121,16,121,16,121,15,121,14,121,14,120,13,120,13,120,12,120,11,119,11,119,10,119,10,118,9,118,8,118,8,117,7,117,7,116,6,116,6,115,5,115,5,114,5,114,4,113,4,113,3,112,3,112,3,111,2,111,2,110,2,109,2,109,1,108,1,108,1,107,1,106,1,106,0,105,0,104,0,104,0,103,0,102,0,46,0,45,0,44,0,44,0,43,0,42,0,42,1,41,1,40,1,40,1,39,1,38,2,38,2,37,2,37,2,36,3,36,3,35,3,34,4,34,4,33,5,33,5,32,5,32,6,32,6,31,7,31,7,30,8,30,8,30,9,29,10,29,10,29,11,28,11,28,12,28,13,28,13,27,14,27,14,27,15,27,16,27,16,27,17,27,18,27,18,27,19,27,20,27,20,27,21,27,22,27,22,27,23,27,24,27,24,28,25,28,26,28,26,28,27,29,27,29,28,29,29,30,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,36,35,36,35,37,36,37,36,38,36,38,37,39,37,40,37,40,37,41,37,42,38,42,38,43,38,44,38,44,38,45,38,46,38" onmouseover="UpdateTooltip(this,0,2)" onfocus="UpdateTooltip(this,0,2)" onclick="return OnShapeClick(0,2);" onkeyup="OnShapeKey(0,2);">
+</MAP>
+
+
+
+</DIV>
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/remote_flow_chart.files/gif_1.js
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/gif_1.js	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/gif_1.js	(revision 21)
@@ -0,0 +1,64 @@
+function ViewMgrSetRasterLocation(pageID, shapeID, pinX, pinY)
+{
+	clickMenu ();
+
+	var rasterImage = document.images("RasterImage");
+
+	var imageLeft = 0;
+	var imageRight = imageLeft + rasterImage.offsetWidth;
+	var imageTop = 0;
+	var imageBottom = imageTop + rasterImage.offsetHeight;
+	
+	var xLong = parent.ConvertXorYCoordinate(pinX, viewMgr.visBBoxLeft, viewMgr.visBBoxRight, imageLeft, imageRight, 0);
+	var yLong = parent.ConvertXorYCoordinate(pinY, viewMgr.visBBoxBottom, viewMgr.visBBoxTop, imageTop, imageBottom, 1);
+	
+	var pixelWidth = document.body.scrollWidth;
+	var pixelHeight = document.body.scrollHeight;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+	var halfClientWidth = clientWidth;
+	var halfClientHeight = clientHeight;
+
+	xLong = xLong + rasterImage.offsetLeft;
+	yLong = yLong + rasterImage.offsetTop;
+	var xScrollAmount = 0;
+	var yScrollAmount = 0;
+
+	var xPrevScrollAmount = document.body.scrollLeft;
+	var yPrevScrollAmount = document.body.scrollTop;
+
+	var arrowHalfWidth = arrowdiv.clientWidth / 2;
+	var arrowHeight = arrowdiv.clientHeight;
+
+	if ((xLong - arrowHalfWidth) < xPrevScrollAmount)
+	{
+		// X off left of screen.
+		document.body.scrollLeft = xLong - arrowHalfWidth;
+	}
+	else if ((xLong + arrowHalfWidth) > (clientWidth + xPrevScrollAmount))
+	{
+		// X off right of screen. 
+		document.body.scrollLeft = xLong - clientWidth + xPrevScrollAmount + arrowHalfWidth;
+	}
+
+	if (yLong < yPrevScrollAmount)
+	{
+		// Y off top of screen.
+		document.body.scrollTop = yLong;
+	}
+	else if ((yLong + arrowHeight) > (clientHeight + yPrevScrollAmount))
+	{
+		// Y off bottom of screen. 
+		document.body.scrollTop = yLong - clientHeight + yPrevScrollAmount + arrowHeight;
+	}
+
+	arrowdiv.style.posLeft = xLong - arrowHalfWidth;
+	arrowdiv.style.posTop = yLong;
+	arrowdiv.style.visibility = "visible";
+
+	setTimeout( "parent.hideObject(arrowdiv)", 0 );
+	setTimeout( "parent.showObject(arrowdiv)", 1 );
+	setTimeout( "parent.hideObject(arrowdiv)", 2000 );
+}
+
Index: /drbl_ui/flow_chart/remote_flow_chart.files/keys.js
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/keys.js	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/keys.js	(revision 21)
@@ -0,0 +1,14 @@
+
+function keyHandler()
+{
+	var e = window.event;
+	var tag = e.srcElement.tagName;
+	var override = !(tag == "A" || tag == "INPUT" || tag == "SELECT" || tag == "FORM" || tag == "SUBMIT");
+	
+	if(override && e.keyCode == 13) //13 is <enter> key
+	{
+		e.srcElement.click();
+	}
+}
+
+document.onkeypress = keyHandler;
Index: /drbl_ui/flow_chart/remote_flow_chart.files/toolbar.htm
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/toolbar.htm	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/toolbar.htm	(revision 21)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<title></title>
+<style type="text/css">
+body
+{
+	font-family: Verdana, Sans-Serif;
+	font-size: small;
+}
+
+.toc
+{
+	font-size: medium;
+}
+</style>
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace("widgets.htm");
+	}
+</script>
+</head>
+
+
+<body leftmargin="0" topmargin="0" class="nav" dir=ltr>
+	<table id="tabToc" width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#999999" height="20">
+	<tr>
+	<td>&nbsp;</td>
+	</tr>
+	</table>
+
+<h1 class="toc">remote_flow_chart</h1>
+	<ul>
+		<li><a href="gif_1.htm" target="frmDrawing">頁-1</a></li>
+
+	</ul>
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/remote_flow_chart.files/visio.css
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/visio.css	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/visio.css	(revision 21)
@@ -0,0 +1,263 @@
+﻿td {vertical-align: top;}
+
+.fillcolor
+{	vertical-align: top;
+	padding: 0pt;
+	background-color:#5C85EF;
+	filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#5C85EF', EndColorStr='#90B6FF');
+}
+
+A.blu1
+{
+	color: #3366CC;
+	text-decoration: none;
+	font-size: 95%;
+}
+
+A.blu1:visited
+{
+	color: #3366CC;
+	text-decoration: none
+}
+
+A.blu1:hover
+{
+	text-decoration: underline
+}
+
+.visrptTitle
+{
+	color:Black;
+	font-style:normal;
+}
+
+.visrptSummryLabel
+{
+	color:black;
+	font-weight:bold;
+}
+
+.visrptGrandTotalRow
+{	
+	color:Black;
+	font-weight:bold;
+}
+
+.visrptHeader
+{
+	color:White;
+	font-style:normal;
+	background-color:#5C85EF;
+}
+
+.visrptRowItem
+{
+	background-color:#DDDDDD;
+}
+
+.a1
+{	color: #ffffff;
+	text-decoration:none;
+}
+
+.p1
+{	font-family: PMingLiu, verdana, san-serif;
+	font-size: 60%;
+	COLOR: #ffffff;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: .8em;
+}
+
+.p2
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: 1.3em;
+}
+
+.label
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: bold;
+	font-size: 70%;
+	COLOR: #FFFFFF;
+	Margin: .2em,0pt,2pt,2pt;
+	line-height: 1em;
+	text-decoration:none;
+}
+
+.gobutton
+{
+	padding: 0pt, 2pt, 0pt, 0pt;
+	vertical-align: bottom;
+}
+
+.formText
+{
+	font-size: 70%;
+	width: 99%;
+	margin: 0;
+	padding: 0;
+}
+
+.holderTable
+{
+	padding-left:1px;
+	padding-right:1px;
+}
+
+.detsPara
+{
+	margin:2pt;
+	font-size:60%;
+}
+
+.navTocColor
+{
+	background-color:#999999;
+}
+
+.indent
+{
+	margin-left:15px;
+	margin-right:15px;
+	padding-top:0px;
+	margin-top:0px;
+}
+
+.results
+{	
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,10pt;
+	text-indent: -10pt;
+	line-height: 1.1em;
+}
+
+.propViewer 
+{
+	background-Color:white;
+	color: black;
+	font-family: PMingLiu, verdana, san-serif;
+	font-style: italic;
+	font-weight: bold;
+	font-size: 70%;
+	text-align: center;
+}
+
+.propViewerTABLE 
+{
+	margin: 2pt;
+	border-collapse:collapse;
+	border:solid 1px #999999;	
+}
+
+.propViewerTHEAD 
+{
+	border: 2px;
+	font-size: 60%;
+}
+
+.propViewerTD 
+{
+	font-family: PMingLiu, Verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #000000;
+	Margin: 0pt;
+	line-height: 1.1em;
+}
+
+.propViewerEvenRow 
+{
+	background-Color: #E7E7E7;
+}
+
+.propViewerOddRow 
+{
+	background-Color: #FFFFFF; 
+}
+
+BODY
+{
+	font-family: PMingLiu, Verdana, Sans-Serif;
+	font-size: medium;
+}
+
+DIV
+{
+	margin:0;
+	padding:0;
+}
+
+FORM
+{
+	margin:0;
+}
+
+.hiderScroll
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+	overflow:auto;
+}
+
+.hider
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+}
+
+.nav
+{
+	width: 100%;
+	height: 100%;
+	overflow: auto;	
+}
+
+.menuItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-color:white;
+	color:black;
+	cursor:hand;
+}
+
+.highlightItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-Color:highlight; 
+	color:white;
+	cursor:hand;
+}
+
+.hlMenu 
+{
+	border:black 2px outset; 
+	display:none; 
+	z-index:10; 
+	position:absolute; 
+	background-Color:white;
+}
+
+.innerhlMenu 
+{
+	padding-left:2pt;
+	padding-right:2pt;
+	background-Color:white;
+}
+
+.svgmessage
+{     FONT-FAMILY: PMingLiu, verdana, san-serif;
+      FONT-WEIGHT: normal;
+      font-size: 80%;
+      COLOR: #333333;
+      Margin: 1em;
+      line-height: 1.1em;
+}
Index: /drbl_ui/flow_chart/remote_flow_chart.files/vml_1.htm
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/vml_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/vml_1.htm	(revision 21)
@@ -0,0 +1,185 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" 
+ xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>remote_flow_chart</title>
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script src="vml_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+
+	var pageID = 0;
+	var viewMgr = null;
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+	function getPNZ()
+	{
+		var rawHTML = VMLDiv.innerHTML;
+		var strReturn = ""
+		
+		strReturn = rawHTML.slice( rawHTML.indexOf( '<v:group' ), rawHTML.indexOf( "</v:shape>" ) );
+		strReturn += "</v:shape></v:group>\n";
+				
+		return strReturn;
+	}
+	
+	function load()
+	{
+		viewMgr = new parent.CViewMgr("ConvertedImage", "arrowDiv");
+
+		viewMgr.put_Location = ViewMgrSetVMLLocation;
+
+
+		viewMgr.visBBoxLeft = 0.510144;
+		viewMgr.visBBoxRight = 5.119777;
+		viewMgr.visBBoxBottom = 6.494396;
+		viewMgr.visBBoxTop = 10.828438;
+
+		viewMgr.Zoom = VMLZoomChange;
+		viewMgr.setView= VMLSetView;
+
+		viewMgr.SupportsDetails = true;
+		viewMgr.SupportsSearch = true;
+
+		parent.viewMgr = viewMgr;
+
+		fit();
+	}
+
+	function unload()
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+
+	function fit()
+	{
+		if(parent.frmToolbar)
+		{
+			if (parent.g_WidgetsLoaded)
+			{
+				var zoom100 = parent.frmToolbar.document.all('a100');
+				if (zoom100)
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					zoom100.click();
+				}
+				else
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					viewMgr.Zoom(100);
+				}
+			}
+			else
+			{
+				window.setTimeout("fit()", 500);
+			}
+		}	
+		else
+		{
+			parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+			viewMgr.Zoom(100);
+		}
+	}
+
+	function PostZoomProcessing (newZoomLevel)
+	{
+		parent.viewMgr.PostZoomProcessing = null;
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.viewMgr.getPNZ = getPNZ;
+		parent.CurPageUpdate (pageIndex);
+	}
+
+
+	
+	var isUpLevel = parent.isUpLevel;
+	var OnShapeClick = parent.OnShapeClick;
+	var OnShapeKey = parent.OnShapeKey;
+	var UpdateTooltip = parent.UpdateTooltip;
+	var clickMenu = parent.clickMenu;
+	var toggleMenuDiv = parent.toggleMenuDiv;
+	var toggleMenuLink = parent.toggleMenuLink;
+	var GoToPage = parent.GoToPage;
+
+	window.onload = load;
+	window.onunload = unload;
+	document.onclick = clickMenu;
+
+
+
+
+</script>
+
+</head>
+
+<body style="MARGIN:10px" onresize="VMLOnResize();" onscroll="VMLOnScroll();">
+
+<div id="arrowdiv" style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+
+
+
+<div id="VMLDiv" >
+
+
+<v:group  id="ConvertedImage" style="width:4.254350in;height:4.000000in;position:absolute;visibility=hidden;" coordSize="2127,2000" coordOrigin="-1000,-1000" >
+
+<v:shapetype 
+  id="VISSHAPE"
+  target="_parent"
+  coordsize="2127,2000"
+  coordorigin="-1000,-1000"
+  stroked="f"
+  strokecolor="red"
+  filled="t"
+>
+<v:fill opacity="0.0"/>
+</v:shapetype>
+
+
+<v:shape style="top:-1000.0;left:-1000.0;width:2127.2;height:2000.0;position:absolute" coordSize="2127,2000" coordOrigin="-1000,-1000" >
+<v:imagedata src="vml_1.emz"/>
+</v:shape>
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="start" origTitle="start"  style="top:-1000;left:-1000;width:2127;height:2000;position:absolute" path=" m -776,-812 l -505,-812 l -502,-812 l -499,-812 l -495,-812 l -492,-813 l -489,-813 l -486,-814 l -483,-814 l -480,-815 l -477,-816 l -474,-817 l -471,-818 l -468,-819 l -465,-821 l -462,-822 l -460,-824 l -457,-825 l -454,-827 l -452,-829 l -449,-831 l -447,-833 l -444,-835 l -442,-837 l -440,-839 l -438,-842 l -436,-844 l -434,-846 l -432,-849 l -430,-851 l -428,-854 l -427,-857 l -425,-860 l -424,-862 l -422,-865 l -421,-868 l -420,-871 l -419,-874 l -418,-877 l -417,-880 l -417,-883 l -416,-886 l -415,-889 l -415,-892 l -415,-896 l -415,-899 l -415,-902 l -415,-905 l -415,-908 l -415,-911 l -415,-914 l -416,-918 l -417,-921 l -417,-924 l -418,-927 l -419,-930 l -420,-933 l -421,-936 l -422,-939 l -424,-941 l -425,-944 l -427,-947 l -428,-950 l -430,-952 l -432,-955 l -434,-957 l -436,-960 l -438,-962 l -440,-965 l -442,-967 l -444,-969 l -447,-971 l -449,-973 l -452,-975 l -454,-977 l -457,-978 l -460,-980 l -462,-982 l -465,-983 l -468,-984 l -471,-986 l -474,-987 l -477,-988 l -480,-989 l -483,-989 l -486,-990 l -489,-991 l -492,-991 l -495,-992 l -499,-992 l -502,-992 l -505,-992 l -776,-992 l -779,-992 l -782,-992 l -785,-992 l -788,-991 l -791,-991 l -794,-990 l -797,-989 l -800,-989 l -803,-988 l -806,-987 l -809,-986 l -812,-984 l -815,-983 l -818,-982 l -821,-980 l -823,-978 l -826,-977 l -829,-975 l -831,-973 l -834,-971 l -836,-969 l -838,-967 l -840,-965 l -843,-962 l -845,-960 l -847,-957 l -849,-955 l -850,-952 l -852,-950 l -854,-947 l -855,-944 l -857,-941 l -858,-939 l -859,-936 l -860,-933 l -861,-930 l -862,-927 l -863,-924 l -864,-921 l -864,-918 l -865,-914 l -865,-911 l -866,-908 l -866,-905 l -866,-902 l -866,-899 l -866,-896 l -865,-892 l -865,-889 l -864,-886 l -864,-883 l -863,-880 l -862,-877 l -861,-874 l -860,-871 l -859,-868 l -858,-865 l -857,-862 l -855,-860 l -854,-857 l -852,-854 l -850,-851 l -849,-849 l -847,-846 l -845,-844 l -843,-842 l -840,-839 l -838,-837 l -836,-835 l -834,-833 l -831,-831 l -829,-829 l -826,-827 l -823,-825 l -821,-824 l -818,-822 l -815,-821 l -812,-819 l -809,-818 l -806,-817 l -803,-816 l -800,-815 l -797,-814 l -794,-814 l -791,-813 l -788,-813 l -785,-812 l -782,-812 l -779,-812 l -776,-812xe" onmouseover="UpdateTooltip(this,0,2)" onclick="OnShapeClick(0,2)" onfocus="UpdateTooltip(this,0,2);" onkeyup="OnShapeKey(0,2)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="是否選擇全部 clients" origTitle="是否選擇全部 clients"  style="top:-1000;left:-1000;width:2127;height:2000;position:absolute" path=" m -512,-492 l -640,-541 l -769,-492 l -831,-492 l -831,-468 l -992,-406 l -640,-271 l -288,-406 l -449,-468 l -449,-492 l -512,-492xe" onmouseover="UpdateTooltip(this,0,1)" onclick="OnShapeClick(0,1)" onfocus="UpdateTooltip(this,0,1);" onkeyup="OnShapeKey(0,1)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:2127;height:2000;position:absolute" path=" m -866,586 l -415,586 l -415,316 l -866,316 l -866,586xe" onmouseover="UpdateTooltip(this,0,4)" onclick="OnShapeClick(0,4)" onfocus="UpdateTooltip(this,0,4);" onkeyup="OnShapeKey(0,4)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list"  style="top:-1000;left:-1000;width:2127;height:2000;position:absolute" path=" m 1039,-271 l 1119,-271 l 1117,-275 l 1114,-280 l 1112,-285 l 1110,-290 l 1107,-296 l 1105,-301 l 1103,-306 l 1102,-311 l 1100,-316 l 1098,-321 l 1097,-327 l 1095,-332 l 1094,-337 l 1092,-343 l 1091,-348 l 1090,-354 l 1089,-359 l 1088,-365 l 1088,-370 l 1087,-376 l 1086,-381 l 1086,-387 l 1086,-392 l 1086,-398 l 1085,-403 l 1085,-409 l 1086,-414 l 1086,-420 l 1086,-425 l 1086,-431 l 1087,-436 l 1088,-442 l 1088,-447 l 1089,-453 l 1090,-458 l 1091,-463 l 1092,-469 l 1094,-474 l 1095,-480 l 1097,-485 l 1098,-490 l 1100,-495 l 1102,-501 l 1103,-506 l 1105,-511 l 1107,-516 l 1110,-521 l 1112,-526 l 1114,-531 l 1117,-536 l 1119,-541 l 970,-541 l 970,-555 l 817,-555 l 817,-541 l 702,-541 l 699,-536 l 697,-531 l 695,-526 l 692,-521 l 690,-516 l 688,-511 l 686,-506 l 684,-501 l 682,-495 l 681,-490 l 679,-485 l 678,-480 l 676,-474 l 675,-469 l 674,-463 l 673,-458 l 672,-453 l 671,-447 l 670,-442 l 670,-436 l 669,-431 l 669,-425 l 668,-420 l 668,-414 l 668,-409 l 668,-403 l 668,-398 l 668,-392 l 669,-387 l 669,-381 l 670,-376 l 670,-370 l 671,-365 l 672,-359 l 673,-354 l 674,-348 l 675,-343 l 676,-337 l 678,-332 l 679,-327 l 681,-321 l 682,-316 l 684,-311 l 686,-306 l 688,-301 l 690,-296 l 692,-290 l 695,-285 l 697,-280 l 699,-275 l 702,-271 l 748,-271 l 748,-268 l 768,-268 l 1039,-268 l 1039,-271xe" onmouseover="UpdateTooltip(this,0,8)" onclick="OnShapeClick(0,8)" onfocus="UpdateTooltip(this,0,8);" onkeyup="OnShapeKey(0,8)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="end" origTitle="end"  style="top:-1000;left:-1000;width:2127;height:2000;position:absolute" path=" m -776,992 l -505,992 l -502,992 l -499,992 l -495,992 l -492,991 l -489,991 l -486,990 l -483,989 l -480,989 l -477,988 l -474,987 l -471,986 l -468,984 l -465,983 l -462,982 l -460,980 l -457,978 l -454,977 l -452,975 l -449,973 l -447,971 l -444,969 l -442,967 l -440,965 l -438,962 l -436,960 l -434,957 l -432,955 l -430,952 l -428,950 l -427,947 l -425,944 l -424,941 l -422,939 l -421,936 l -420,933 l -419,930 l -418,927 l -417,924 l -417,921 l -416,918 l -415,914 l -415,911 l -415,908 l -415,905 l -415,902 l -415,899 l -415,896 l -415,892 l -415,889 l -416,886 l -417,883 l -417,880 l -418,877 l -419,874 l -420,871 l -421,868 l -422,865 l -424,862 l -425,860 l -427,857 l -428,854 l -430,851 l -432,849 l -434,846 l -436,844 l -438,842 l -440,839 l -442,837 l -444,835 l -447,833 l -449,831 l -452,829 l -454,827 l -457,825 l -460,824 l -462,822 l -465,821 l -468,819 l -471,818 l -474,817 l -477,816 l -480,815 l -483,814 l -486,814 l -489,813 l -492,813 l -495,812 l -499,812 l -502,812 l -505,812 l -776,812 l -779,812 l -782,812 l -785,812 l -788,813 l -791,813 l -794,814 l -797,814 l -800,815 l -803,816 l -806,817 l -809,818 l -812,819 l -815,821 l -818,822 l -821,824 l -823,825 l -826,827 l -829,829 l -831,831 l -834,833 l -836,835 l -838,837 l -840,839 l -843,842 l -845,844 l -847,846 l -849,849 l -850,851 l -852,854 l -854,857 l -855,860 l -857,862 l -858,865 l -859,868 l -860,871 l -861,874 l -862,877 l -863,880 l -864,883 l -864,886 l -865,889 l -865,892 l -866,896 l -866,899 l -866,902 l -866,905 l -866,908 l -865,911 l -865,914 l -864,918 l -864,921 l -863,924 l -862,927 l -861,930 l -860,933 l -859,936 l -858,939 l -857,941 l -855,944 l -854,947 l -852,950 l -850,952 l -849,955 l -847,957 l -845,960 l -843,962 l -840,965 l -838,967 l -836,969 l -834,971 l -831,973 l -829,975 l -826,977 l -823,978 l -821,980 l -818,982 l -815,983 l -812,984 l -809,986 l -806,987 l -803,988 l -800,989 l -797,989 l -794,990 l -791,991 l -788,991 l -785,992 l -782,992 l -779,992 l -776,992xe" onmouseover="UpdateTooltip(this,0,10)" onclick="OnShapeClick(0,10)" onfocus="UpdateTooltip(this,0,10);" onkeyup="OnShapeKey(0,10)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選擇 clients" origTitle="選擇 clients"  style="top:-1000;left:-1000;width:2127;height:2000;position:absolute" path=" m 299,-336 l 415,-406 l 302,-474 l 302,-526 l 279,-526 l 215,-526 l 190,-541 l 165,-526 l 101,-526 l 101,-488 l -36,-406 l 81,-336 l 81,-299 l 143,-299 l 190,-271 l 237,-299 l 299,-299 l 299,-336xe" onmouseover="UpdateTooltip(this,0,5)" onclick="OnShapeClick(0,5)" onfocus="UpdateTooltip(this,0,5);" onkeyup="OnShapeKey(0,5)"/> 
+
+</v:group>
+
+
+
+</div>
+
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/remote_flow_chart.files/vml_1.js
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/vml_1.js	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/vml_1.js	(revision 21)
@@ -0,0 +1,221 @@
+
+function ViewMgrSetVMLLocation(pageID, shapeID, pinX, pinY)
+{
+	doc = parent.frmDrawing.document;
+	if (this.highlightDiv != null)
+	{
+		clickMenu ();
+
+		var VMLImage = this.s;
+
+		var imageLeft = 0;
+		var imageRight = imageLeft + VMLImage.pixelWidth;
+		var imageTop = 0;
+		var imageBottom = imageTop + VMLImage.pixelHeight;
+
+		var xLong = parent.ConvertXorYCoordinate(pinX, this.visBBoxLeft, this.visBBoxRight, imageLeft, imageRight, 0);
+		var yLong = parent.ConvertXorYCoordinate(pinY, this.visBBoxBottom, this.visBBoxTop, imageTop, imageBottom, 1);
+
+		xLong += doc.all['ConvertedImage'].style.posLeft;
+		yLong += doc.all['ConvertedImage'].style.posTop;
+
+		var arrowHalfWidth = viewMgr.highlightDiv.clientWidth / 2;
+		var arrowHeight = viewMgr.highlightDiv.clientHeight;
+
+		var boolNeedToScroll = false;
+
+		if( !( (xLong - arrowHalfWidth) > doc.body.scrollLeft && (xLong + arrowHalfWidth) < (doc.body.scrollLeft + doc.body.clientWidth) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( !( (yLong - arrowHeight) > doc.body.scrollTop && (yLong + arrowHeight) < (doc.body.scrollTop + doc.body.clientHeight) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( boolNeedToScroll == true )
+		{
+			window.scrollTo( xLong - doc.body.clientWidth / 2, yLong - doc.body.clientHeight / 2);
+		}
+		
+		this.highlightDiv.style.posLeft = xLong - arrowHalfWidth;
+		this.highlightDiv.style.posTop = yLong;
+		this.highlightDiv.style.visibility = "visible";
+
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 0 );
+		setTimeout( "parent.showObject(viewMgr.highlightDiv)", 1 );
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 2500 );
+	}
+}
+
+function VMLZoomChange(size)
+{
+	if(size)
+	{
+		if(size == "up")
+		{
+			size = zoomLast + 50;
+		}
+		else if(size == "down")
+		{
+			size = zoomLast - 50;
+		}
+		
+		size = parseInt(size);
+		if(typeof(size) != "number")
+			size = 100;
+	}
+	else
+	{
+		size = 100;
+	}
+
+	clickMenu ();
+
+	viewMgr.zoomLast = size;
+
+	var zoomFactor = size/100;
+
+	var width = this.s.pixelWidth;
+	var height = this.s.pixelHeight;
+
+	var margin = parseInt(document.body.style.margin) * 2;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+
+	var newScrollLeft = document.body.scrollLeft;
+	var newScrollTop = document.body.scrollTop;
+
+	var winwidth = clientWidth - margin;
+	var winheight = clientHeight - margin;
+
+	var widthRatio = winwidth / width;
+	var heightRatio = winheight / height;
+
+	if (widthRatio < heightRatio)
+	{
+		width = zoomFactor * winwidth;
+		height = width / this.origWH;
+	}
+	else
+	{
+		height = zoomFactor * winheight;
+		width = height * this.origWH;
+	}
+
+	this.s.pixelWidth = Math.max(width,1);
+	this.s.pixelHeight = Math.max(height,1);
+
+	this.sizeLast = size;
+
+	var centerX = (zoomFactor / viewMgr.zoomFactor) * (newScrollLeft + (clientWidth / 2) - this.s.posLeft);
+	var centerY = (zoomFactor / viewMgr.zoomFactor) * (newScrollTop + (clientHeight / 2) - this.s.posTop);
+
+	viewMgr.zoomFactor = zoomFactor;
+
+	if (width <= clientWidth)
+	{
+		this.s.posLeft = Math.max( 0, (clientWidth / 2) - (width / 2));
+	}
+	else
+	{
+		var left = centerX - (clientWidth / 2);
+		if ( left >= 0 )
+		{
+			this.s.posLeft = 0;
+			newScrollLeft = left;
+		}
+		else
+		{
+			this.s.posLeft = -left;
+			newScrollLeft = 0;
+		}
+	}
+
+	if (height <= clientHeight)
+	{
+		this.s.posTop = Math.max( 0, (clientHeight / 2) - (height / 2));
+	}
+	else
+	{
+		var top = centerY - (clientHeight / 2);
+		if ( top >= 0 )
+		{
+			this.s.posTop = 0;
+			newScrollTop = top;
+		}
+		else
+		{
+			this.s.posTop = -top;
+			newScrollTop = 0;
+		}
+	}
+
+	window.scrollTo(newScrollLeft, newScrollTop);
+
+	this.s.visibility = "visible";
+
+	var newXOffsetPercent = document.body.scrollLeft / this.s.pixelWidth;
+	var newYOffsetPercent = document.body.scrollTop / this.s.pixelHeight;
+	var newWidthPercent = document.body.clientWidth / this.s.pixelWidth;
+	var newHeightPercent = document.body.clientHeight / this.s.pixelHeight;
+
+	if (viewMgr.viewChanged)
+	{
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, newWidthPercent, newHeightPercent);
+	}
+
+	if (viewMgr.PostZoomProcessing)
+	{
+		viewMgr.PostZoomProcessing(size);
+	}
+}
+
+function VMLSetView (xOffsetPercent, yOffsetPercent)
+{
+	var leftPixelOffset = xOffsetPercent * this.s.pixelWidth;
+	var topPixelOffset = yOffsetPercent * this.s.pixelHeight;
+
+	window.scrollTo (leftPixelOffset - this.s.posLeft, topPixelOffset - this.s.posTop);
+
+	if (viewMgr.PostSetViewProcessing)
+	{
+		viewMgr.PostSetViewProcessing();
+	}
+}
+
+function VMLOnResize ()
+{
+	if (viewMgr.zoomLast == 100)
+	{
+		viewMgr.Zoom(100);
+	}
+
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newWidthPercent = document.body.clientWidth / image.style.pixelWidth;
+		var newHeightPercent = document.body.clientHeight / image.style.pixelHeight;
+
+		viewMgr.viewChanged (null, null, newWidthPercent, newHeightPercent);
+	}
+}
+
+function VMLOnScroll ()
+{
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newXOffsetPercent = document.body.scrollLeft / image.style.pixelWidth;
+		var newYOffsetPercent = document.body.scrollTop / image.style.pixelHeight;
+
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, null, null);
+	}
+}
+
+
+
Index: /drbl_ui/flow_chart/remote_flow_chart.files/widgets.htm
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/widgets.htm	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/widgets.htm	(revision 21)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>remote_flow_chart</title>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link href="visio.css" rel="stylesheet">
+<script src="keys.js" type="text/jscript" language="jscript"></script>
+<script src="find.js" type="text/jscript" language="jscript"></script>
+<script type="text/jscript" language="jscript">
+	
+	var imgMin = new Image();
+	imgMin.src = "minimize.gif";
+	
+	var imgMax = new Image();
+	imgMax.src = "maximize.gif";
+
+	var fileList = parent.g_FileList;
+	
+	function Widgets()
+	{
+		this.GoTo = null;
+		this.Search = null;
+		this.Details = null;
+		this.PNZ = null;
+
+		this.divCount = 0;
+		
+		this.OpenText = "全部摺疊";
+		this.OpenAlt = "全部摺疊";
+		this.ClosedText = "全部展開";
+		this.ClosedAlt = "全部展開";
+
+		this.Display = "";
+		this.Img = imgMin;
+		this.Text = this.OpenText;
+		this.Alt = this.OpenAlt;
+		
+		this.ToggleAll = ToggleAll;
+		this.ToggleWidget = ToggleWidget;
+		this.Add = Add;
+	}		
+
+	function Add(div, name)
+	{
+		tmpStr = "this." + name + " = new Widget(div);"
+		eval(tmpStr);
+		var thisWidget = eval("this." + name);
+	}
+
+	function Widget(div)
+	{
+		return div;
+	}	
+
+	function ToggleAll()
+	{
+		var OpenCloseFunc = Widget;
+
+		if(this.Display == "")
+		{
+			this.Display = "none";
+			this.Img = imgMax;
+			this.Text = this.ClosedText;
+			this.Alt = this.ClosedAlt;
+			expparent00.title = this.ClosedAlt;
+			OpenCloseFunc = CloseWidget;
+		}
+		else
+		{
+			this.Display = "";
+			this.Img = imgMin;
+			this.Text = this.OpenText;
+			this.Alt = this.OpenAlt;
+			expparent00.title = this.OpenAlt;
+			OpenCloseFunc = OpenWidget;
+		}
+		exp00.src = this.Img.src;	
+		textExp.innerText = this.Text;
+		exp00.alt = this.Alt;
+	
+		if(this.GoTo)
+		{
+			OpenCloseFunc(this.GoTo)
+		}
+		if(this.Search)
+		{
+			OpenCloseFunc(this.Search)
+		}
+		if(this.Details)
+		{
+			OpenCloseFunc(this.Details)
+		}
+		if(this.PNZ)
+		{
+			OpenCloseFunc(this.PNZ)
+		}
+	}
+
+	function ToggleNav()
+	{
+		if(divCollapsedNav.style.display == "none")
+		{
+			divCollapsedNav.style.display = "";
+			divOpenNav.style.display = "none";
+			parent.frmstOuter.cols = "20,*"
+			parent.document.all ('frmToolbar').noResize = true;
+		}
+		else
+		{
+			divOpenNav.style.display = "";
+			divCollapsedNav.style.display = "none";
+			parent.frmstOuter.cols = "237,*"
+			parent.document.all ('frmToolbar').noResize = false;
+		}
+	}
+	
+	function ToggleWidget(div)
+	{
+		if(div.style.display == "none")
+		{
+			OpenWidget(div);
+		}
+		else
+		{
+			CloseWidget(div);
+		}
+	}
+
+	function OpenWidget(div)
+	{
+		document.all(div.img).src = imgMin.src;
+		div.style.display = "";
+		document.all(div.img).alt = div.openAlt;
+		document.all(div.img + "1").title = div.openAlt;
+		document.all(div.img + "2").title = div.openAlt;
+	}
+
+	function CloseWidget(div)
+	{
+		document.all(div.img).src = imgMax.src;
+		div.style.display = "none";
+		document.all(div.img).alt = div.closedAlt;
+		document.all(div.img + "1").title = div.closedAlt;
+		document.all(div.img + "2").title = div.closedAlt;
+	}
+
+	function load()
+	{
+		parent.g_WidgetsLoaded = true;
+
+		if (parent.g_LoadingWidgets)
+		{
+			parent.g_LoadingWidgets = false;
+			parent.location.reload();
+		}
+	}
+
+	function unload()
+	{
+		parent.g_LoadingWidgets = true;
+	}
+	
+		
+	var widgets = new Widgets();
+
+</script>
+
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divOpenNav" class="nav">
+
+	<table id="tabToc" width="100%" class="navTocColor" style="margin-bottom:1px;" cellspacing="0" cellpadding="0" border="0" height="20" dir=ltr>
+	<tr>
+	<td width="2"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" id="linkNavOpen"><img src="toc.gif" alt="摺疊巡覽框架" width="22" height="17" border="0"></a></td>
+	<td><p class="p1"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" class="a1">隱藏</a></p></td>
+	<td align="right"><p class="p1"><a href="javascript:widgets.ToggleAll()" id="textExp" class="a1">全部摺疊</a></p></td>
+	<td width="2">
+		<div style="padding:2pt,1.5pt,0pt,0pt"><a href="javascript:widgets.ToggleAll()" title="全部摺疊" id="expparent00"><img id="exp00" alt="全部摺疊" src="minimize.gif" width="15" height="15" border="0"></a></div>
+	</td>
+	</tr>
+	</table>
+	
+	
+
+	
+	<div id="divPNZ" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp41" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><p class="label">全景和縮放</p></a></td>
+				<td width="15"><a id="exp42" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><img id="exp4" alt="摺疊全景和縮放" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hidePNZ" style="text-align:right;" img="exp4" class="hiderScroll" openAlt="摺疊全景和縮放" closedAlt="展開全景和縮放">
+				<table width="220" border="0" cellpadding="0" cellspacing="0">
+				<tr>
+				<td align="center" valign="middle">
+					<iframe title="全景和縮放視窗" longdesc="全景和縮放視窗" id="ifrmPNZ" src="zoom.htm" width="170" height="170" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="border: #cccccc 1px solid;"></iframe>
+				</td>
+					
+				<td>
+					<table id="tabScale" width="17" cellspacing="0" cellpadding="0" border="0">
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放頁面至 100%"><img src="fullpage.gif" alt="縮放頁面至 100%" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(1);" title="拉近"><img src="panplus.gif" alt="拉近" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(500);" title="縮放成 500%"><img id="t500" src="tick-off.gif" alt="縮放成 500%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(450);" title="縮放成 450%"><img id="t450" src="tick-off.gif" alt="縮放成 450%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(400);" title="縮放成 400%"><img id="t400" src="tick-off.gif" alt="縮放成 400%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(350);" title="縮放成 350%"><img id="t350" src="tick-off.gif" alt="縮放成 350%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(300);" title="縮放成 300%"><img id="t300" src="tick-off.gif" alt="縮放成 300%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(250);" title="縮放成 250%"><img id="t250" src="tick-off.gif" alt="縮放成 250%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(200);" title="縮放成 200%"><img id="t200" src="tick-off.gif" alt="縮放成 200%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(150);" title="縮放成 150%"><img id="t150" src="tick-off.gif" alt="縮放成 150%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放成 100%" id="a100"><img id="t100" src="tick-on.gif" alt="縮放成 100%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(50);" title="縮放成 50%"><img id="t50" src="tick-off.gif" alt="縮放成 50%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(10);" title="縮放成 10%"><img id="t10" src="tick-off.gif" alt="縮放成 10%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(-1);" title="拉遠"><img src="panminus.gif" alt="拉遠" border="0"></a></td></tr>
+					</table>
+				</td>
+				</tr>
+				</table>
+			</div>			
+		</td></tr>
+		</table>
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hidePNZ, "PNZ");
+
+			var zoomLevels = new Array(10, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500);
+
+			var tickOff = new Image();
+			tickOff.src = "tick-off.gif";
+			
+			var tickFoc = new Image();
+			tickFoc.src = "tick-foc.gif";
+			
+			var tickOn = new Image();
+			tickOn.src = "tick-on.gif";
+
+			function tickFocus()
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickFoc.src;
+				}
+			}			
+			
+			function tickBlur(percentZoom)
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickOff.src;
+				}
+			}
+
+			function tickSelect(percentZoom)
+			{
+				if (parent.viewMgr &&
+					parent.viewMgr.Zoom)
+				{
+					changeTick(percentZoom);
+					parent.viewMgr.Zoom(percentZoom);					
+				}
+
+				if(frames.item(0).zoomRectDiv)
+				{
+					frames.item(0).g_width = parseInt(frames.item(0).zoomRectDiv.style.pixelWidth) 
+					frames.item(0).g_height = parseInt(frames.item(0).zoomRectDiv.style.pixelHeight)
+					frames.item(0).g_newLeft = parseInt(frames.item(0).zoomRectDiv.style.left)
+					frames.item(0).g_newTop = parseInt(frames.item(0).zoomRectDiv.style.top)
+				}
+			}
+
+			function changeTick(percentZoom)
+			{
+				img = elemScale.all("t" + percentZoom);
+									
+				img.src = tickOn.src;
+				
+				if(elemScale.tickSelected && elemScale.tickSelected != img)
+				{
+					elemScale.tickSelected.src = tickOff.src;
+				}
+				elemScale.tickSelected = img;
+			}
+			
+			function ZoomUpDown(increment)
+			{
+				if (elemScale.tickSelected)
+				{
+					var curZoomLevel = elemScale.tickSelected.id.substring (1);
+					var newZoomLevelIndex = IndexFromLevel (curZoomLevel * 1.0);
+					if (newZoomLevelIndex >= 0)
+					{
+						var img = elemScale.all("t" + zoomLevels[newZoomLevelIndex + increment]);
+						if (img)
+						{
+							tickSelect(img.id.substring(1));
+						}
+					}
+				}
+				else
+				{
+					tickSelect (100);
+				}
+			}
+
+			function IndexFromLevel (zoomLevel)
+			{
+				for (var count = 0; count < zoomLevels.length; count++)
+				{
+					if (zoomLevels[count] == zoomLevel)
+					{
+						return count;
+					}
+				}
+
+				return -1;
+			}
+			
+			elemScale = document.all("tabScale");
+			if(elemScale)
+			{
+				elemScale.onmouseover = tickFocus;
+				elemScale.onmouseout = tickBlur;
+			}
+		</script>
+	</div>
+
+	
+	<div id="divDetails" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp21" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><p class="label">詳細資料</p></a></td>
+				<td width="15"><a id="exp22" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><img id="exp2" alt="摺疊詳細資料" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hideDetails" class="hiderScroll" img="exp2" openAlt="摺疊詳細資料" closedAlt="展開詳細資料">
+				<P class="p2" class="detsPara">CTRL+按一下繪圖中的圖形以檢視詳細資料。</P>
+			</div>
+		</td></tr>
+		</table>		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideDetails, "Details");
+			widgets.divCount++;
+		
+		</script>
+	</div>
+
+	
+	<div id="divSearch" class="holder">
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor" dir=ltr>
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp11" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><p class="label">搜尋頁</p></a></td>
+				<td width="15"><a id="exp12" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><img src="minimize.gif" id="exp1" alt="摺疊搜尋頁面" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+
+		</td></tr>
+		<tr><td>	
+
+			<div id="hideSearch" img="exp1" class="hiderScroll" openAlt="摺疊搜尋頁面" closedAlt="展開搜尋頁面">
+								<form name=theForm onsubmit="FindOnClick(); return false;" ID="Form1">
+									<table width="100%" cellspacing="0" cellpadding="3" border="0">
+									<tr>
+									<td width="100%">
+										<input class="formText" type="text" name="findString" maxlength="255" size="26" title="輸入要搜尋的文字。按 Enter 開始搜尋。">
+									</td>
+									<td width="18" class="gobutton">
+										<input type="image" src="go.gif" alt="開始搜尋" width="18" height="18" ID="GoButton" NAME="GoButton">
+									</td>
+									</tr>
+									<tr>
+									<td colspan="2" class="p2">
+										<a href="javascript:{};" tabindex="0" onclick="TogglePlus(hideAdvSrch,as0);" class="blu1"><img src="plus.gif" alt="顯示/隱藏進階搜尋選項" border="0" id="as0">進階</a>
+											<div id="hideAdvSrch" class="hiderScroll" style="display:none;">
+												<b>搜尋依據:</b>
+												<div id="divS"></div>
+											</div>
+										<hr width="100%" size="1" color="#cccccc">
+										<div id="hideResults" class="hiderScroll" style="display:none;"></div>
+									</td>
+									</tr>
+									</table>
+								</form>
+			</div>					
+
+		</td></tr>
+		</table>
+		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideSearch, "Search");
+			widgets.divCount += 2;
+			
+			makeAdvancedFindCheckboxes(divS);
+			
+			
+			var imgPlus = new Image();
+			imgPlus.src = "plus.gif";
+	
+			var imgMinus = new Image();
+			imgMinus.src = "minus.gif";
+			
+			function TogglePlus(div, img, container)
+			{
+				if(typeof(img) == "string")	
+					img = document.all(img)
+				if(typeof(div) == "string")
+					div = document.all(div)
+					
+				widget = widgets.Search;
+				if(div && img)
+				{
+					if(div.style.display == "none")
+					{
+						div.style.display = "";
+						img.src = imgMinus.src;
+						div.open = "true";
+					}
+					else
+					{
+						div.style.display = "none";
+						img.src = imgPlus.src;
+						
+						div.open = "false";
+					}
+				}
+			}
+		
+		</script>
+	</div>
+
+
+</div>
+
+<div id="divCollapsedNav" class="navTocColor" style="display:none;width:100%;height:100%;">
+	<a href="javascript:ToggleNav();" title="展開巡覽框架" id="linkNavClosed"><img src="toc2.gif" alt="展開巡覽框架" border="0"></a>
+</div>	
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/remote_flow_chart.files/zoom.htm
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.files/zoom.htm	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.files/zoom.htm	(revision 21)
@@ -0,0 +1,990 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script type="text/jscript" language="jscript">
+
+var BUFFER = 1;
+
+function zoomObject()
+{
+	this.PZImgRatio			= null;
+	
+	this.zoomWinHeight		= null;
+	this.zoomWinWidth		= null;
+	this.zoomWinTop			= null;
+	this.zoomWinLeft		= null;
+	
+	this.scaleFactor		= null;
+	
+	this.updateContent		= zObj_updateContent;
+	this.doOnBodyResize		= zObj_doOnBodyResize;
+	this.clipZoomRect		= zObj_clipZoomRect;
+}
+
+var g_thumbHeight = window.clientHeight;
+var g_thumbWidth = window.clientWidth;
+zoomObj = new zoomObject();
+
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+	}
+	return divObject;
+}
+
+function zObj_updateContent( win_width, win_height, VMLDiv_left, VMLDiv_top, VMLDiv_width, VMLDiv_height )
+{
+	this.mainWinWidth		= win_width;
+	this.mainWinHeight		= win_height;
+
+	this.mainImgRatio = VMLDiv_height / VMLDiv_width;
+	this.doOnBodyResize();
+}
+
+function zObj_doOnBodyResize()
+{
+	return;
+}
+
+function zObj_clipZoomRect( objectToClip )
+{
+	if( objectToClip == null )
+	{
+		objectToClip = zoomRectObj;
+	}
+	
+	var clipTop		= ( objectToClip.style.posTop < (g_thumbTop) )	? (g_thumbTop - objectToClip.style.posTop)	: 0;
+	var clipLeft	= ( objectToClip.style.posLeft < (g_thumbLeft) )	? (g_thumbLeft - objectToClip.style.posLeft)	: 0;
+	var clipBottom	= ( (objectToClip.style.posHeight - clipTop) > (g_thumbTop + g_thumbHeight + 2 * BUFFER) ) ? (g_thumbHeight + clipTop + BUFFER) : objectToClip.style.posHeight;
+	var clipRight	= 0;
+	if( (this.zoomWinWidth - clipLeft) > (g_thumbLeft + g_thumbWidth) )
+	{
+		if( clipLeft == 0 )
+		{
+			clipRight = g_thumbWidth - objectToClip.style.posLeft + 2 * BUFFER;
+		}
+		else
+		{
+			clipRight = (g_thumbWidth + clipLeft + BUFFER);
+		}
+	}
+	else
+	{
+		clipRight = objectToClip.style.posWidth;
+	}
+	clipTo( objectToClip, clipTop, clipRight, clipBottom, clipLeft);
+}
+
+function findContent()
+{
+	zoomRectDiv.style.display = "none";
+	newZoomWindowDiv.style.display = "none";
+
+	if (parent.parent.frmDrawing && parent.parent.viewMgr)
+	{
+		var viewMgr = parent.parent.viewMgr;
+
+		var getPNZ = parent.parent.viewMgr.getPNZ;
+		if (getPNZ)
+		{
+			var tmp = parent.parent.frmDrawing;
+
+			divThumb = document.all("divThumbnail");
+
+			if (divThumb.innerHTML.length == 0)
+			{
+				divThumb.innerHTML = getPNZ();
+			}
+			else
+			{
+				var pnzInfo = getPNZ();
+				var idIndex = pnzInfo.indexOf("ConvertedImage");
+				if (idIndex >= 0)
+				{
+					var test = pnzInfo;
+					pnzInfo = test.substring (0, idIndex);
+					pnzInfo += "Temp";
+					pnzInfo += test.substring (idIndex, test.length);
+
+					divTempThumbnail.innerHTML = pnzInfo;
+
+					var vmlGroup = divThumbnail.childNodes(0);
+					var vmlTempGroup = divTempThumbnail.childNodes(0);
+					CopyVMLAttrs(vmlGroup, vmlTempGroup);
+					
+					var vmlShape = vmlGroup.childNodes(1);
+					var vmlTempShape = vmlTempGroup.childNodes(1);
+					CopyVMLAttrs(vmlShape, vmlTempShape);
+
+					CopyVMLAttrs(vmlGroup.childNodes(0), vmlTempGroup.childNodes(0));
+					
+					var vmlImageData = vmlShape.childNodes(0);
+					var vmlTempImageData = vmlTempShape.childNodes(0);
+					CopyVMLImageData(vmlImageData, vmlTempImageData);
+				}
+			}
+
+			zoomRectObj = document.all("zoomRectDiv");
+			showObject( zoomRectObj );
+
+			PNZimg = document.all("ConvertedImage");
+			if (PNZimg)
+			{
+				PNZimg.style.left = 0;
+				PNZimg.style.top = 0;
+
+				if (PNZimg.style.pixelWidth > PNZimg.style.pixelHeight)
+				{
+					var oldWidth = PNZimg.style.pixelWidth;
+					PNZimg.style.width = document.body.clientWidth;
+					PNZimg.style.height = (document.body.clientWidth / oldWidth) * PNZimg.style.pixelHeight;
+
+					divThumb.style.top = (document.body.clientHeight - parseInt(PNZimg.style.height)) / 2;
+					divThumb.style.left = 0;
+				}
+				else
+				{
+					var oldHeight = PNZimg.style.pixelHeight;
+					PNZimg.style.height = document.body.clientHeight;
+					PNZimg.style.width = (document.body.clientHeight / oldHeight) * PNZimg.style.pixelWidth;
+
+					divThumb.style.left = (document.body.clientWidth - parseInt(PNZimg.style.width)) / 2;
+					divThumb.style.top = 0;
+				}
+
+				PNZimg.style.visibility = "visible";
+
+				var strOutput = divThumb.innerHTML;
+				if (strOutput.length > 0)
+				{
+					var tmp2 = document.all['ConvertedImage'];
+					zoomObj.updateContent( tmp.document.body.clientWidth, tmp.document.body.clientHeight, parseInt(tmp2.style.left), parseInt(tmp2.style.top), parseInt(tmp2.clientWidth), parseInt(tmp2.clientHeight) );
+
+					viewMgr.viewChanged = PageViewChanged;
+				}
+			}
+		}
+	}
+}
+
+function CopyVMLAttrs(vmlObjDst, vmlObjSrc)
+{
+	if (vmlObjDst != null && vmlObjSrc != null)
+	{
+		vmlObjDst.style.cssText = vmlObjSrc.style.cssText;
+	}
+}
+
+function CopyVMLImageData(vmlImageDataDst, vmlImageDataSrc)
+{
+	if (vmlImageDataDst != null && vmlImageDataSrc != null)
+	{
+		vmlImageDataDst.src = vmlImageDataSrc.src;
+	}
+}
+
+function setZoomRectCursor()
+{
+	var x = getMouseXcoord() - zoomObj.zoomWinLeft;
+	var y = getMouseYcoord() - zoomObj.zoomWinTop;
+
+	var rbw = 5;
+
+	var newCursor	= "";
+	if( y > (zoomObj.zoomWinHeight - rbw) )
+		newCursor = "s"
+	else if( y < rbw )
+		newCursor = "n";
+		
+	if( x < rbw )
+		newCursor += "w";
+	else if( x > (zoomObj.zoomWinWidth - rbw) )
+		newCursor += "e";
+
+	if( newCursor != "" )
+		zoomRectObj.style.cursor = newCursor + "-resize";
+	else
+		zoomRectObj.style.cursor = "move";
+}
+
+function startZoomRectDrag()
+{
+	var currentCursor = zoomRectObj.style.cursor;
+
+	if( currentCursor.indexOf( '-' ) != -1 )
+	{
+		g_resizeDirection = currentCursor.split( '-' )[0];
+		startDrag( 'zoomRectDiv', doResizeZoomRectDrag, stopResizeZoomRectDrag );
+	}
+	else
+	{
+		startDrag( 'zoomRectDiv', doZoomRectDrag, stopZoomRectDrag );
+	}
+}
+
+function doZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var rectLeft = parseInt(dragObj.divObject.style.left);
+	var rectTop = parseInt(dragObj.divObject.style.top);
+	var rectWidth = parseInt(dragObj.divObject.style.width);
+	var rectHeight = parseInt(dragObj.divObject.style.height);
+
+	var xOffset = 0;
+	var yOffset = 0;
+
+	var xPercent = 0;
+	var yPercent = 0;
+
+	var pnzImgLeft = parseInt(divThumbnail.style.left);
+	var pnzImgTop = parseInt(divThumbnail.style.top);
+	var pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+	var pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+		
+	xOffset = x + dragObj.xOffset - pnzImgLeft;
+	xPercent = xOffset / pnzImgWidth;
+
+	yOffset = y + dragObj.yOffset - pnzImgTop;
+	yPercent = yOffset / pnzImgHeight;
+
+	if (xOffset < 0)
+	{
+		xPercent = 0;
+		xOffset = pnzImgLeft - BUFFER;
+	}
+	else if (xOffset + rectWidth > pnzImgWidth)
+	{
+		xPercent = 1;
+		xOffset = pnzImgLeft + pnzImgWidth - rectWidth + BUFFER;
+	}
+	else
+	{
+		xOffset = x + dragObj.xOffset;
+	}
+
+	if (yOffset < 0)
+	{
+		yPercent = 0;
+		yOffset = pnzImgTop - BUFFER;
+	}
+	else if (yOffset + rectHeight > pnzImgHeight)
+	{
+		yPercent = 1;
+		yOffset = pnzImgTop + pnzImgHeight - rectHeight + BUFFER;
+	}
+	else
+	{
+		yOffset = y + dragObj.yOffset;
+	}
+
+	if (parent.parent.viewMgr.setView)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	setZWinSize (null, null, xOffset, yOffset);
+}
+
+function stopZoomRectDrag(dragObj, x, y)
+{
+	var el = window.event.srcElement;
+	g_newLeft = parseInt(el.style.left);
+	g_newTop = parseInt(el.style.top);
+}
+
+function setZWinSize( newWidth, newHeight, newLeft, newTop )
+{
+	if( newWidth != null && newWidth >= 0 ) 
+	{
+		zoomObj.zoomWinWidth = newWidth;
+		zoomRectObj.style.width = newWidth;
+	}
+
+	if( newHeight != null && newHeight >= 0 ) 
+	{
+		zoomObj.zoomWinHeight = newHeight;
+		zoomRectObj.style.height = newHeight;
+	}
+
+	if( newLeft != null && newLeft >= 0 )
+	{
+		zoomObj.zoomWinLeft = newLeft;
+		zoomRectObj.style.left = newLeft;
+	}
+
+	if( newTop != null && newTop >= 0 )
+	{
+		zoomObj.zoomWinTop = newTop;
+		zoomRectObj.style.top= newTop;
+	}
+}
+
+function doResizeZoomRectDrag(dragObj, x, y)
+{
+	var newWidth	= null;
+	var newHeight	= null;
+	var newLeft		= null;
+	var newTop		= null;
+		
+	var tmp = parent.parent.frmDrawing;
+	if (tmp)
+	{
+		zoomObj.mainWinWidth		= tmp.document.body.clientWidth;
+		zoomObj.mainWinHeight		= tmp.document.body.clientHeight;
+	}
+
+	var widthHeightRatio = zoomObj.mainWinWidth / zoomObj.mainWinHeight;
+	
+	var minimumSize = 10;
+	if( g_resizeDirection == 'e' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'w' )
+	{
+		newWidth	= zoomObj.zoomWinWidth + zoomObj.zoomWinLeft - x;
+		if( newWidth > minimumSize )
+		{
+			newHeight	= newWidth / widthHeightRatio;
+			newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+			newLeft		= x;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+
+	if( g_resizeDirection == 'se' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 's' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'sw' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+	
+	if( g_resizeDirection == 'n' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'ne' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'nw' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+}
+
+function stopResizeZoomRectDrag(dragObj, x, y)
+{
+	PNZimg = document.all("ConvertedImage");
+
+	var xWidthPercent = parseInt(zoomRectDiv.style.width) / PNZimg.style.pixelWidth;
+	var yHeightPercent = parseInt(zoomRectDiv.style.height) / PNZimg.style.pixelHeight;
+
+	var newZoomLevel = GetZoomLevel (xWidthPercent, yHeightPercent);
+
+	if (parent.parent.viewMgr.Zoom)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostZoomProcessing = PostZoomProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.Zoom (newZoomLevel);
+	}
+
+	g_width = parseInt(zoomRectDiv.style.pixelWidth);
+	g_height = parseInt(zoomRectDiv.style.pixelHeight);
+	g_newLeft = parseInt(zoomRectDiv.style.left);
+	g_newTop = parseInt(zoomRectDiv.style.top);
+}
+
+function GetZoomLevel (xWidthPercent, yHeightPercent)
+{
+	var newZoomLevel;
+	if (xWidthPercent < yHeightPercent)
+	{
+		newZoomLevel = 100 / xWidthPercent;
+	}
+	else
+	{
+		newZoomLevel = 100 / yHeightPercent;
+	}
+
+	return newZoomLevel;
+}
+
+function PostZoomProcessing (newZoomLevel)
+{
+	var xOffset = parseInt(zoomRectDiv.style.left) - parseInt(divThumbnail.style.left);
+	var yOffset = parseInt(zoomRectDiv.style.top) - parseInt(divThumbnail.style.top);
+
+	var xPercent = xOffset / PNZimg.style.pixelWidth;
+	var yPercent = yOffset / PNZimg.style.pixelHeight;
+
+	var viewMgr = parent.parent.viewMgr;
+	viewMgr.ChangingView = true;
+
+	if (viewMgr.setView)
+	{
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	SetCorrectTick (newZoomLevel);
+
+	viewMgr.PostZoomProcessing = null;
+}
+
+function SetCorrectTick (newZoomLevel)
+{
+	var zoomLevels = parent.zoomLevels;
+	if (newZoomLevel <= zoomLevels[0])
+	{
+		parent.changeTick(zoomLevels[0]);
+	}
+	else if (newZoomLevel >= zoomLevels[zoomLevels.length - 1])
+	{
+		parent.changeTick(zoomLevels[zoomLevels.length - 1]);
+	}
+	else
+	{
+		for (var count = 0; count < zoomLevels.length - 1; count++)
+		{
+			var deltaDown = newZoomLevel - zoomLevels[count];
+			var deltaUp = newZoomLevel - zoomLevels[count + 1];
+			if (deltaDown >= 0 && deltaUp <= 0)
+			{
+				if (Math.abs(deltaDown) < Math.abs(deltaUp))
+				{
+					parent.changeTick(zoomLevels[count]);
+					break;
+				}
+				else
+				{
+					parent.changeTick(zoomLevels[count + 1]);
+					break;
+				}
+			}
+		}
+	}
+}
+
+function PostSetViewProcessing ()
+{
+	parent.parent.viewMgr.ChangingView = false;
+	parent.parent.viewMgr.PostSetViewProcessing = null;
+}
+
+function startNewZoomRectDrag()
+{
+	var x = getMouseXcoord();
+	var y = getMouseYcoord();
+	zoomObj.newZWinStartX = x;
+	zoomObj.newZWinStartY = y;
+	
+	g_newZWinObjRef = document.all("newZoomWindowDiv");
+	g_newZWinObjRef.style.display = "";
+
+	startDrag( 'zoomRectDiv', doNewZoomRectDrag, stopNewZoomRectDrag );
+}
+
+function doNewZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var width	= Math.abs( zoomObj.newZWinStartX - x );
+	var height	= Math.abs( zoomObj.newZWinStartY - y );
+
+	var aspectRatio = parent.parent.viewMgr.docDrawing.body.clientWidth / parent.parent.viewMgr.docDrawing.body.clientHeight;
+
+	if( width < (aspectRatio * height))
+	{
+		width = (aspectRatio) * height;
+	}
+	else
+	{
+		height = width / (aspectRatio);
+	}
+
+	width = Math.min (width, parseInt(PNZimg.style.pixelWidth));
+	height = Math.min (height, parseInt(PNZimg.style.pixelHeight));
+
+	var left = (x > zoomObj.newZWinStartX) ? zoomObj.newZWinStartX : zoomObj.newZWinStartX - width;
+	var top  = (y > zoomObj.newZWinStartY) ? zoomObj.newZWinStartY : zoomObj.newZWinStartY - height;
+
+	newZoomWindowDiv.style.top = top;
+	newZoomWindowDiv.style.left = left;
+	newZoomWindowDiv.style.height = height;
+	newZoomWindowDiv.style.width = width;
+	newZoomWindowDiv.style.visibility = "visible";
+
+	zoomObj.zoomWinLeft		= left;
+	zoomObj.zoomWinWidth	= width;
+	zoomObj.zoomWinTop		= top;
+	zoomObj.zoomWinHeight	= height;
+}
+
+function stopNewZoomRectDrag(dragObj, x, y)
+{
+	newZoomWindowDiv.style.visibility = "hidden";
+
+	if (parseInt (newZoomWindowDiv.style.width) > 10 && 
+		parseInt (newZoomWindowDiv.style.height) > 10)
+	{
+		zoomRectDiv.style.top = newZoomWindowDiv.style.top;
+		zoomRectDiv.style.left = newZoomWindowDiv.style.left;
+		zoomRectDiv.style.height = newZoomWindowDiv.style.height;
+		zoomRectDiv.style.width = newZoomWindowDiv.style.width;
+
+		stopResizeZoomRectDrag(dragObj,x,y);
+		zoomRectDiv.style.display = "inline";
+		zoomRectDiv.style.visibility = "visible";
+	}
+	else
+	{
+		zoomObj.zoomWinLeft		= parseInt(zoomRectDiv.style.left);
+		zoomObj.zoomWinWidth	= parseInt(zoomRectDiv.style.width);
+		zoomObj.zoomWinTop		= parseInt(zoomRectDiv.style.top);
+		zoomObj.zoomWinHeight	= parseInt(zoomRectDiv.style.height);
+	}
+
+	newZoomWindowDiv.style.height = "0px";
+	newZoomWindowDiv.style.width = "0px";
+
+	newZoomWindowDiv.style.display = "none";
+}
+
+var g_lastX = 0;
+var g_lastY = 0;
+
+document.onmousedown = mouseDown;
+document.onmousemove = mouseMove;
+document.onmouseup = mouseUp;
+document.onmouseout = mouseOut;
+
+function mouseDown()
+{
+	return true;
+}
+
+function mouseMove()
+{
+	var x = event.clientX + document.body.scrollLeft;
+	var y = event.clientY + document.body.scrollTop;
+
+	g_lastX = x;
+	g_lastY = y;
+	
+	doDrag( x, y );
+	return true;
+}
+
+function mouseUp() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+	
+	stopDrag(null,x,y);
+	return true;
+}
+
+function mouseOut() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+
+	if( x < 0 ) x = -1;
+	if( x >= document.body.clientWidth ) x = -1;
+		
+	if( y < 0 ) y = -1;
+	if( y >= document.body.clientHeight ) y = -1;
+
+	if( x == -1 || y == -1 )
+	{
+		x = -1;
+		y = -1;
+	}
+	
+
+	if( x == -1 )
+		stopDrag( null, x, y );
+	return true;
+}
+
+function getMouseXcoord()
+{
+	return event.x + document.body.scrollLeft;
+}
+
+function getMouseYcoord()
+{
+	return event.y + document.body.scrollTop;
+}
+
+var g_width		= -1;
+var g_height	= -1;
+var g_newLeft	= -1;	
+var g_newTop	= -1;
+		
+var g_pnzImgWidth = -1;
+var g_pnzImgHeight = -1;
+var g_pnzImgLeft = -1;
+var g_pnzImgTop = -1;
+
+function keydown()
+{
+	var key = window.event.keyCode;
+	var el = window.event.srcElement;
+
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{
+		if(g_width == -1)
+			g_width		= parseInt(el.style.pixelWidth);
+			
+		if(g_height == -1)
+			g_height		= parseInt(el.style.pixelHeight);
+			
+		if(g_newLeft == -1)
+			g_newLeft		= parseInt(el.style.left);	
+		
+		if(g_newTop == -1)
+			g_newTop		= parseInt(el.style.top);
+		
+		if(g_pnzImgWidth == -1)
+			g_pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+			
+		if(g_pnzImgHeight == -1)
+			g_pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+			
+		if(g_pnzImgLeft == -1)
+			g_pnzImgLeft = parseInt(divThumbnail.style.left);
+			
+		if(g_pnzImgTop == -1)
+			g_pnzImgTop = parseInt(divThumbnail.style.top);
+	
+
+		if(key == 37)	
+		{
+			g_newLeft -= 1;
+			if(g_newLeft < g_pnzImgLeft)
+			{
+				g_newLeft = g_pnzImgLeft;
+			}	
+		}
+		else if(key == 38)	
+		{
+			g_newTop -= 1;
+			if(g_newTop < g_pnzImgTop)
+			{
+				g_newTop = g_pnzImgTop;
+			}	
+		}
+		else if(key == 39)	
+		{
+			g_newLeft += 1;
+			if(g_newLeft + g_width > g_pnzImgLeft + g_pnzImgWidth)
+			{
+				g_newLeft = g_pnzImgLeft + g_pnzImgWidth - g_width;		
+			}
+		}
+		
+		else if(key == 40)	
+		{
+			g_newTop += 1;
+			if(g_newTop + g_height > g_pnzImgTop + g_pnzImgHeight)
+			{
+				g_newTop = g_pnzImgTop + g_pnzImgHeight - g_height;		
+			}
+		}
+		
+		setZoomRectCursor();
+
+		var xOffset = g_newLeft - g_pnzImgLeft;
+		var yOffset = g_newTop - g_pnzImgTop;
+		
+		var xPercent = xPercent = xOffset / g_pnzImgWidth;
+		var yPercent = yPercent = yOffset / g_pnzImgHeight;
+
+		if (xOffset < 0)
+		{
+			xPercent = 0;
+			xOffset = g_pnzImgLeft;
+		}
+		else if (xOffset + g_width > g_pnzImgWidth)
+		{
+			xPercent = 1;
+			xOffset = g_pnzImgLeft + g_pnzImgWidth - g_width;
+		}
+
+		if (yOffset < 0)
+		{
+			yPercent = 0;
+			yOffset = g_pnzImgTop;
+		}
+		else if (yOffset + g_height > g_pnzImgHeight)
+		{
+			yPercent = 1;
+			yOffset = g_pnzImgTop + g_pnzImgHeight - g_height;
+		}
+
+		if (parent.parent.viewMgr.setView)
+		{
+			var viewMgr = parent.parent.viewMgr;
+			viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+			viewMgr.ChangingView = true;
+			viewMgr.setView (xPercent, yPercent);
+		}	
+		setZWinSize (null, null, g_newLeft, g_newTop);
+	}
+}
+
+function keyup()
+{
+	var key = window.event.keyCode;
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{		
+		el = window.event.srcElement;
+	}
+}
+
+function dragObject( divID, divObject, xOffset, yOffset, dragFunctionPointer, dragStopFunctionPointer )
+{
+	this.divID			= divID;
+	this.divObject		= divObject;
+	this.xOffset		= xOffset;
+	this.yOffset		= yOffset;
+	this.dragFPtr		= dragFunctionPointer;
+	this.dragStopFPtr	= dragStopFunctionPointer;
+}
+
+var dragList = new Array();
+
+
+function startDrag( divID, dragFunctionPtr, dragStopFunctionPointer, xOffset, yOffset ) 
+{
+	var divObject = document.all(divID);
+	if( divObject != null ) 
+	{
+		document.selection.empty();
+		
+		if( xOffset == null )
+		{
+			xOffset = parseInt(divObject.style.left) - g_lastX;
+		}
+		
+		if( yOffset == null )
+		{
+			yOffset = parseInt(divObject.style.top)  - g_lastY;
+		}
+
+		dragList[ dragList.length ] = new dragObject( divID, divObject, xOffset, yOffset, dragFunctionPtr, dragStopFunctionPointer );
+		return true;
+	} 
+	else 
+	{
+		return false;
+	}
+}
+
+function doDrag( x, y ) 
+{
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].dragFPtr != null )
+			dragList[i].dragFPtr( dragList[i], x, y );
+	}
+	if( dragList.length )
+	{
+		document.selection.empty();
+	}
+}
+
+function stopDrag( divID, x, y ) 
+{ 
+	var tmpDragObject;
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].divID == divID || divID == null ) 
+		{
+			tmpDragObject = dragList[i];
+			
+			dragList[i] = dragList[ dragList.length - 1 ];
+			dragList.length = dragList.length - 1;
+			
+			if( tmpDragObject.dragStopFPtr != null )
+			{
+				tmpDragObject.dragStopFPtr( tmpDragObject, x, y );
+			}
+			
+		}
+	}
+}
+
+function PageViewChanged(newLeftPercent, newTopPercent, newWidthPercent, newHeightPercent)
+{
+	if (dragList.length == 0 && !parent.parent.viewMgr.ChangingView)
+	{
+		var newLeft		= null;
+		var newTop		= null;
+		var newWidth	= null;
+		var newHeight	= null;
+
+		var PNZimg = document.all("ConvertedImage");
+
+		if (newLeftPercent != null)
+		{
+			newLeft = (newLeftPercent * PNZimg.style.pixelWidth) + parseInt(divThumbnail.style.left);
+		}
+		
+		if (newTopPercent != null)
+		{
+			newTop = (newTopPercent * PNZimg.style.pixelHeight) + parseInt(divThumbnail.style.top);
+		}
+		
+		if (newWidthPercent != null)
+		{
+			newWidth = newWidthPercent * PNZimg.style.pixelWidth;
+		}
+		
+		if (newHeightPercent != null)
+		{
+			newHeight = newHeightPercent * PNZimg.style.pixelHeight;
+		}
+
+		setZWinSize (newWidth, newHeight, newLeft, newTop);
+
+		if (newLeftPercent <= 0 && newTopPercent <= 0 && newWidthPercent >= 1 && newHeightPercent >= 1)
+		{
+			zoomRectDiv.style.display = "none";
+			zoomRectDiv.style.visibility = "hidden";
+		}
+		else
+		{
+			zoomRectDiv.style.display = "inline";
+			zoomRectDiv.style.visibility = "visible";
+		}
+
+		if (newWidthPercent != null && newHeightPercent != null)
+		{
+			var newZoomLevel = GetZoomLevel (newWidthPercent, newHeightPercent);
+			SetCorrectTick (newZoomLevel);
+		}
+	}
+}
+
+function load()
+{
+	parent.parent.g_ZoomLoaded = true;
+
+	if (parent.parent.g_LoadingWidgets)
+	{
+		parent.parent.g_LoadingWidgets = false;
+		parent.parent.location.reload();
+	}
+}
+
+function unload()
+{
+	if (parent.parent.viewMgr)
+	{
+		parent.parent.viewMgr.viewChanged = null;
+	}
+
+	parent.parent.g_LoadingWidgets = true;
+}
+
+
+</script>
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divPZWindow" style="width: 100%; height: 100%;" >
+	<div id="divThumbnail" style="position: absolute; " onmousedown="startNewZoomRectDrag();"></div>
+</div>
+<div id="divTempThumbnail" style="position: absolute; visibility:hidden; display:none;" ></div>
+
+<div id="zoomRectDiv" tabindex="1" title="可見的區域。使用滑鼠或方向鍵來移動。" onkeydown="keydown()" onkeyup="keyup()" style="display:none;position: absolute; border: solid red thin; z-index: 3;" onmousedown="startZoomRectDrag();" onmouseover="setZoomRectCursor();" onmousemove="setZoomRectCursor();"></div>
+<div id="newZoomWindowDiv" style="position: absolute; border: solid blue thin; z-index: 4; visibility: hidden;"></div>
+
+</body>
+</html>
+
+
+
+
+
+
Index: /drbl_ui/flow_chart/remote_flow_chart.htm
===================================================================
--- /drbl_ui/flow_chart/remote_flow_chart.htm	(revision 21)
+++ /drbl_ui/flow_chart/remote_flow_chart.htm	(revision 21)
@@ -0,0 +1,718 @@
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+		<meta name="標題" content=""/>
+		<meta name="主旨" content=""/>
+		<meta name="類別" content=""/>
+		<meta name="關鍵字" content=""/>
+		<meta name="描述" content=""/>
+		<meta name="作者" content=" "/>
+		<meta name="主管" content=""/>
+		<meta name="公司" content=""/>
+
+		<title>remote_flow_chart</title>
+		<script src="remote_flow_chart.files/frameset.js" type="text/jscript" language="jscript"></script>
+		<script type="text/jscript" language="jscript" >
+
+function FileEntry (pageIndex, pageID, pageName, priImage, secImage) 
+{
+	this.PageIndex = pageIndex;
+	this.PageID	  = pageID;
+	this.PageName = pageName;
+	this.PriImage = priImage;
+	this.SecImage = secImage;
+}
+
+var viewMgr = null;
+
+var g_FileList = new  Array(
+ new FileEntry (1, 0, "頁-1", "vml_1.htm", "gif_1.htm")
+
+);
+
+var g_CurPageIndex = 0;
+var g_ZoomLoaded = false;
+var g_WidgetsLoaded = false;
+var g_FileProtocol = "file://";
+
+var g_HLMenuEntry = "menuEntry";
+var g_HLMenuEntryDiv = "menuEntryDiv";
+
+var g_LoadingWidgets = false;
+
+
+function CViewMgr(convertedImgID, highlightDivID)
+{
+	this.onResize = null;
+	this.ApplyZoom = null;
+	this.ChangingView = false;
+
+	this.put_Location = ViewMgrDefaultFind;
+	this.Zoom = ViewMgrDefaultResize;
+	this.PostZoomProcessing = null;
+	this.setView = null;
+	this.PostSetViewProcessing = null;
+	this.viewChanged = null;
+
+	this.SupportsDetails = false;
+	this.SupportsSearch = false;
+
+	this.visBBoxLeft = 0.0;
+	this.visBBoxRight = 0.0;
+	this.visBBoxBottom = 0.0;
+	this.visBBoxTop = 0.0;
+
+	this.highlightDiv = null;
+	this.stepWidth = 10;
+
+	this.id = convertedImgID;
+	this.zoomFactor = -1;
+	this.zoomLast = -1;
+	this.origWH = 1;
+	this.origWidth = 100;	
+	this.aspectRatio = 1;
+
+	this.docDrawing = null;
+	var docDrawing = frmDrawing.document;
+	if(docDrawing)
+	{
+		this.docDrawing = docDrawing;
+		var docEl = docDrawing.all(this.id);
+		if (docEl)
+		{
+			this.s = docEl.style;
+			this.origWidth = this.s.pixelWidth;
+			this.origWH = this.s.pixelWidth / this.s.pixelHeight;
+		}
+		this.highlightDiv = docDrawing.all(highlightDivID);
+	}
+
+	this.loadPage = DefPageLoad;
+	this.getPNZ	= null;
+}
+
+function DefPageLoad (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+        if (fileDelim == -1)
+            fileDelim = curPath.lastIndexOf ('\\');
+		var newPath = curPath.substring (0, fileDelim + 1);
+		newPath += g_FileList[pageIndex].PriImage;
+		frmDrawing.location.href = newPath;
+
+		SetPNZDisplay (pageIndex);
+	}
+}
+
+function CurPageUpdate (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		g_CurPageIndex = pageIndex;
+
+		SetCurPageInGoto (pageIndex);
+
+		var divDetails = frmToolbar.document.all("divDetails");
+		if (divDetails)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsDetails)
+			{
+				displayStatus = "none";
+			}
+
+			divDetails.style.display = displayStatus;
+		}
+
+		var divSearch = frmToolbar.document.all("divSearch");
+		if (divSearch)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsSearch)
+			{
+				displayStatus = "none";
+			}
+
+			divSearch.style.display = displayStatus;
+		}
+
+		SetPNZDisplay (pageIndex);
+
+		LoadZoom ();
+	}
+}
+
+function FramePageLoaded ()
+{
+	if (isUpLevel && viewMgr == null)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+		if (fileDelim >= 0)
+		{
+			var fileName = curPath.substring (fileDelim + 1, curPath.length);
+			var pageIndex = PageIndexFromFileName (fileName);
+			SetCurPageInGoto (pageIndex);
+			SetPNZDisplay (pageIndex);
+		}
+	}
+}
+
+function LoadZoom ()
+{
+	var zoomWidget = frmToolbar.ifrmPNZ;
+	if (zoomWidget)
+	{
+		if (g_ZoomLoaded)
+		{
+			zoomWidget.findContent();
+			PageLoadedDoCallback ();
+		}
+		else
+		{
+			window.setTimeout("LoadZoom()", 500);
+		}
+	}
+	else
+	{
+		PageLoadedDoCallback ();
+	}
+}
+
+function SetCurPageInGoto (pageIndex)
+{
+	var gotoPageSelect = frmToolbar.document.all("Select1");
+	if (gotoPageSelect != null)
+	{
+		gotoPageSelect.value = pageIndex;
+	}
+}
+
+function SetPNZDisplay (pageIndex)
+{
+	var divPNZ = frmToolbar.document.all("divPNZ");
+	if (divPNZ)
+	{
+		var displayStatus = "block";
+		if (g_FileList[pageIndex].PageID < 0)
+		{
+			displayStatus = "none";
+		}
+
+		divPNZ.style.display = displayStatus;
+	}
+}
+
+function ViewMgrDefaultFind()
+{
+	return;
+}
+
+function ViewMgrDefaultResize(size)
+{
+	return;
+}
+
+
+
+g_callBackFunctionArray = new Array();
+function PageLoadedDoCallback()
+{
+	if (g_WidgetsLoaded)	
+	{
+		for( var i=0; i < g_callBackFunctionArray.length; i++ )
+		{
+			g_callBackFunctionArray[i]();
+		}
+		g_callBackFunctionArray = new Array();
+	}
+	else
+	{
+		window.setTimeout("PageLoadedDoCallback()", 500);
+	}
+}
+
+
+function ParseParams (strRawParams)
+{
+	strRawParams = strRawParams.substring(1);
+
+	var arrayParamTokens = strRawParams.split('&');
+	for (var count = 0; count < arrayParamTokens.length; count++)
+	{
+		arrayParamTokens[count] = unescape(arrayParamTokens[count]);
+		this[count] = arrayParamTokens[count].substring(0, arrayParamTokens[count].indexOf('='));
+		this[this[count]] = arrayParamTokens[count].substring(arrayParamTokens[count].indexOf('=') + 1);
+	}
+
+	return this;
+}
+
+var gParams = ParseParams (location.search);
+
+var g_PageParamValue = gParams['page'];
+if (g_PageParamValue != null && 
+	g_PageParamValue.length > 0)
+{
+	var pageIndex = PageIndexFromName (g_PageParamValue);
+	if (pageIndex > 0 && pageIndex < g_FileList.length)
+	{
+		g_CurPageIndex = pageIndex;
+	}
+}
+else
+{
+	g_PageParamValue = null;
+}
+
+var g_FirstPageToLoad = g_PageParamValue;
+
+var g_ZoomParamValue = gParams['zoom'];
+if (g_ZoomParamValue != null && g_ZoomParamValue.length > 0)
+{
+	g_ZoomParamValue = 1.0 * g_ZoomParamValue;
+	if (g_ZoomParamValue >= 10 && g_ZoomParamValue <= 500)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (viewMgr && viewMgr.Zoom) { viewMgr.Zoom(g_ZoomParamValue); } };
+	}
+}
+
+var g_ShapeParamValue = gParams['shape'];
+if (g_ShapeParamValue != null && g_ShapeParamValue.length > 0)
+{
+	if (g_PageParamValue != null && g_PageParamValue.length > 0)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var shapeNode = FindShapeXMLByName (g_PageParamValue, g_ShapeParamValue); if (shapeNode) { frmToolbar.TreeSelect (g_FileList[g_CurPageIndex].PageID, shapeNode.attributes.getNamedItem ("ID").text); } };
+	}
+	else
+	{
+		g_ShapeParamValue = null;
+	}
+}
+
+var g_SearchParamValue = gParams['search'];
+if (g_SearchParamValue != null && g_SearchParamValue.length > 0)
+{
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (frmToolbar.theForm) { frmToolbar.theForm.findString.value = g_SearchParamValue; } };
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var goButton = frmToolbar.document.all('GoButton'); if(goButton) { goButton.click(); } };
+}
+
+
+var strHLTooltipText = "按一下以跟隨超連結。";
+var strPropsTooltipText = "Ctrl + 按一下以檢視詳細資料。";
+
+var strFocusHLTooltipText = "按下 Enter 以追蹤超連結。";
+var strFocusPropsTooltipText = "Ctrl + Enter 以檢視詳細資料。";
+
+
+function UpdateTooltip (element, pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var strHL, strProps;
+	
+		if(frmDrawing.event.type == "focus")
+		{
+			strHL = strFocusHLTooltipText;
+			strProps = strFocusPropsTooltipText;
+		}
+		else
+		{
+			strHL = strHLTooltipText;
+			strProps = strPropsTooltipText;
+		}
+
+		var strTooltip = "";
+		if (element.origTitle)
+		{
+			strTooltip = element.origTitle.toString();
+		}
+			
+		var shapeNode = FindShapeXML (pageID, shapeID);
+
+		if( shapeNode != null )
+		{
+			var propColl = shapeNode.selectNodes ("Prop");
+			if (propColl != null && propColl.length > 0)
+			{
+				if (strTooltip.length > 0)
+				{
+					strTooltip += "\n";
+				} 
+				strTooltip += strProps;
+			}
+		}
+
+		var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+		if (hlObj != null && (hlObj.DoFunction.length > 0 || hlObj.Hyperlink.length > 0))
+		{
+			if (strTooltip.length > 0)
+			{
+				strTooltip += "\n";
+			}	
+			strTooltip += strHL;
+		}
+
+		element.title = strTooltip;
+		if (element.alt != null)
+		{
+			element.alt = strTooltip;
+		}
+	}
+}
+
+
+function GetHLAction (shapeNode, pageID, shapeID)
+{
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		if (hlColl.length > 1)
+		{
+			hlObj.DoFunction = "showMenu(" + pageID + ", " + shapeID + ");"
+		}
+		else if (hlColl.length == 1)
+		{
+			hlObj = CreateHLObj (hlColl.item(0));
+		}
+	}
+
+	return hlObj;
+}
+
+function HLObj (strHyperlink, strDoFunction, strDesc, newWindow) 
+{
+	this.Hyperlink = strHyperlink;
+	this.DoFunction = strDoFunction;
+	this.Desc = strDesc;
+	this.NewWindow = newWindow;
+}
+
+function clickMenu()
+{
+	var e = window.frmDrawing.event;
+	var menu = frmDrawing.document.all("menu1")
+	
+	if (menu != null && menu.style.display != "none")
+	{
+		menu.style.display="none";
+
+		if (e && e.srcElement && e.srcElement.doFunction != null)
+		{
+			eval(e.srcElement.doFunction);
+		}
+	}
+}
+
+function toggleMenuDiv(el, highlight) 
+{
+	var divEl = el;
+	var aEl = null;
+
+	var ID = el.id.substring (g_HLMenuEntryDiv.length, el.id.length) * 1.0;
+	aEl = divEl.all(g_HLMenuEntry + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenuLink(el, highlight) 
+{
+	var divEl = null;
+	var aEl = el;
+
+	var ID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	divEl = frmDrawing.document.all(g_HLMenuEntryDiv + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenu(divEl, aEl, highlight)
+{
+	if (highlight)
+	{
+	  divEl.className="highlightItem";
+	  aEl.className="highlightItem";
+	} 
+	else 
+	{
+	  divEl.className="menuItem";
+	  aEl.className="menuItem";
+	}
+}
+
+function showMenu(pageID, shapeID)
+{
+	var shapeXML = FindShapeXML (pageID, shapeID);
+	if (shapeXML != null)
+	{
+		CreateHLMenu (shapeXML);
+		var menu = frmDrawing.document.all("menu1");
+		if (menu != null)
+		{
+			menu.style.visibility = "hidden";
+			menu.style.display = "inline";
+
+			var e = window.frmDrawing.event;
+			var elem = e.srcElement;
+
+			var clientWidth = frmDrawing.document.body.clientWidth;
+			var clientHeight = frmDrawing.document.body.clientHeight;
+
+			var menuWidth = menu.clientWidth;
+			var menuHeight = menu.clientHeight;
+
+			var menuLeft = e.x;
+			var menuTop = e.y;
+			
+			var doc = frmDrawing.document;
+			var img = doc.all("ConvertedImage");
+			
+			if( (menuLeft + doc.body.scrollLeft < elem.offsetLeft) || (menuLeft + doc.body.scrollLeft > elem.offsetLeft + elem.offsetWidth + img.offsetLeft) )
+			{
+				menuLeft = elem.offsetLeft + img.offsetLeft + elem.offsetWidth/2;
+			}
+			
+			if( (menuTop + doc.body.scrollTop < elem.offsetTop) || (menuTop + doc.body.scrollTop > elem.offsetTop + elem.offsetHeight + img.offsetTop) )
+			{
+				menuTop = elem.offsetTop + img.offsetTop + elem.offsetHeight/2;
+			}
+
+			var scrollBarSize = 20;
+			if (menuLeft + menuWidth > clientWidth - scrollBarSize)
+			{
+				menuLeft = clientWidth - menuWidth - scrollBarSize;
+			}
+
+			if (menuTop + menuHeight > clientHeight - scrollBarSize)
+			{
+				menuTop = clientHeight - menuHeight - scrollBarSize;
+			}
+
+			menu.style.posLeft = menuLeft + frmDrawing.document.body.scrollLeft;
+			menu.style.posTop = menuTop + frmDrawing.document.body.scrollTop;
+			menu.style.visibility = "visible";
+
+			var firstLink = menu.all(g_HLMenuEntry + "0");
+			firstLink.focus ();
+			
+			if (e.keyCode == 13)
+			{
+				toggleMenuLink(firstLink, true);
+			}
+
+			e.cancelBubble = true;
+		}
+	}
+}
+
+function MenuKeyDown ()
+{
+	var e = window.frmDrawing.event;
+	var el = e.srcElement;
+
+	if (e.keyCode == 27)	// 27 == ESC
+	{
+		clickMenu();
+		e.cancelBubble = true;
+		return;
+	}
+
+	var curSelID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	var newSelID = -1;
+
+	if (e.keyCode == 40)	// 40 == down arrow
+	{
+		newSelID = curSelID + 1;
+	}
+	else if (e.keyCode == 38) // 38 == up arrow
+	{
+		newSelID = curSelID - 1;
+	}
+
+	var newSelEntry = frmDrawing.document.all(g_HLMenuEntry + newSelID);
+
+	if (newSelEntry)
+	{
+		newSelEntry.focus();
+
+		var curSelEntry = frmDrawing.document.all(g_HLMenuEntry + curSelID);
+		toggleMenuLink (curSelEntry, false);
+		toggleMenuLink (newSelEntry, true);
+	}
+
+	e.cancelBubble = true;
+}
+
+function CreateHLMenu (shapeNode)
+{
+	var strHLMenuHTML = "";
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		strHLMenuHTML = "<div class='innerhlMenu'>";
+
+		var hlCount = hlColl.length;
+		for (var count = 0; count < hlCount; count++)
+		{
+			var hlObj = CreateHLObj (hlColl.item(count));
+			if (hlObj != null)
+			{
+				if (hlObj.Desc.length > 0)
+				{
+					strHLMenuHTML += "<div id='" + (g_HLMenuEntryDiv + count) + "' class='menuItem' onmouseover='toggleMenuDiv(this, true)' onmouseout='toggleMenuDiv(this, false)' onclick='" + (g_HLMenuEntry + count) + ".click()'>";
+					strHLMenuHTML += "<a href=";
+
+					if (hlObj.DoFunction.length > 0)
+					{
+						strHLMenuHTML += "'javascript:" + hlObj.DoFunction + "'";
+					}
+					else
+					{
+						var targetVal = "_top";
+						if (hlObj.NewWindow)
+						{
+							targetVal = "_blank";
+						}
+						strHLMenuHTML += "'" + hlObj.Hyperlink + "' target='" + targetVal + "'";
+					}
+
+					strHLMenuHTML += " class='menuItem' id='" + (g_HLMenuEntry + count) + "' onkeydown='parent.MenuKeyDown();' onmouseover='toggleMenuLink(this, true)' onmouseout='toggleMenuLink(this, false)'>";
+					strHLMenuHTML += hlObj.Desc + "</a></div>";
+				}
+			}
+		}
+		
+		strHLMenuHTML += "</div>";
+	}
+
+	frmDrawing.menu1.innerHTML = strHLMenuHTML;
+}
+
+function CreateHLObj (hlNode)
+{
+	var strAddress = "";
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (hlNode != null)
+	{
+		var hlAddress = hlNode.selectSingleNode("HLURL:Address/textnode()");
+		if (hlAddress != null && hlAddress.text.length > 0)
+		{
+			var absoluteURL = hlNode.selectSingleNode("HLURL:AbsoluteURL/textnode()");
+			var strAbsURL = absoluteURL.text;
+			var strAddr = hlAddress.text;
+
+			if (strAbsURL.indexOf (g_FileProtocol) == 0)
+			{
+				var strAbsPath = strAbsURL.substring (g_FileProtocol.length, strAbsURL.length);
+				strAbsPath.toLowerCase ();
+				strAddr.toLowerCase ();
+				if (strAbsPath == strAddr)
+				{
+					strAddress = strAbsPath;
+				}
+				else
+				{
+					strAddress = strAddr;
+					
+					var hlSubAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+					if (hlSubAddress != null && hlSubAddress.text.length > 0)
+					{
+						strAddress += '#';
+						strAddress += hlSubAddress.text;
+					}
+
+					var hlExtraInfo = hlNode.selectSingleNode("HLURL:ExtraInfo/textnode()");
+					if (hlExtraInfo != null && hlExtraInfo.text.length > 0)
+					{
+						strAddress += '?';
+						strAddress += hlExtraInfo.text;
+					}
+				}
+			}
+			else
+			{
+				strAddress = strAbsURL;
+			}		
+
+			strAddress = HTMLEscape (strAddress);
+			hlObj.Hyperlink += strAddress;
+		}
+		else
+		{
+			hlAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+			if (hlAddress != null && hlAddress.text.length > 0)
+			{
+				strAddress = hlAddress.text;
+
+				var pageShapeSep = strAddress.lastIndexOf ('/');
+				if (pageShapeSep > 0)
+				{
+					if (PageIndexFromName (strAddress) < 0)
+					{
+						strAddress = unescape (strAddress);
+						if (PageIndexFromName (strAddress) < 0)
+						{
+							strAddress = strAddress.substring (0, strAddress.lastIndexOf ('/'));
+						}
+					}
+				}
+
+				var pageIndex = PageIndexFromName (strAddress);
+
+				hlObj.DoFunction = "GoToPage (" + pageIndex + ");";
+				strAddress = HTMLEscape (strAddress);
+				hlObj.Desc = strAddress;
+			}
+		}
+
+		hlDesc = hlNode.selectSingleNode("HLURL:Description/textnode()");
+		if (hlDesc != null && hlDesc.text.length > 0)
+		{
+			hlObj.Desc = HTMLEscape (hlDesc.text);
+		}
+		else
+		{
+			hlObj.Desc = strAddress;
+		}
+	
+		var hlNewWindow = hlNode.selectSingleNode("HLURL:NewWindow/textnode()");
+		if (hlNewWindow != null && hlNewWindow.text.length > 0)
+		{
+			hlObj.NewWindow = (hlNewWindow.text == "1");
+		}		
+	}
+
+	return hlObj;
+}
+
+
+		</script>
+	</head>
+	
+	<frameset id="frmstOuter" cols="237,*" title="remote_flow_chart">
+		<frame src="remote_flow_chart.files/toolbar.htm" name="frmToolbar" id="frmToolbar" title="此框架包含管理您繪圖的工具。" frameborder="6" bordercolor="#999999" scrolling="no" marginheight="0" marginwidth="0" >
+		<frame src="remote_flow_chart.files/gif_1.htm" name="frmDrawing" title="此框架包含您繪圖的頁面。" marginheight="10" marginwidth="10" onload="if (parent.isUpLevel) FramePageLoaded()" >
+
+		<noframes>
+			<body>
+
+				<h1>remote_flow_chart</h1>
+				<ul>
+				<li><a href="remote_flow_chart.files/gif_1.htm">頁-1</a></li>
+
+				</ul>
+			</body>
+		</noframes>
+	</frameset>
+	
+</html>
+
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/data.xml
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/data.xml	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/data.xml	(revision 21)
@@ -0,0 +1,718 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisioDocument>
+	<DocumentProperties>
+		<Title></Title>
+		<HyperlinkBase href=""></HyperlinkBase>
+	</DocumentProperties>
+	<Pages>
+		<Page ID="0" Name="頁-1" NameU="Page-1">
+			<Layer IX="0">
+				<Name>流程圖</Name>
+				<NameUniv>Flowchart</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Layer IX="1">
+				<Name>連接器</Name>
+				<NameUniv>Connector</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Shapes>
+				<Shape ID="1" UniqueID="{3E727989-D1D4-466B-8A52-27B30728CAFF}" Name="終端子" NameU="Terminator" Master="0">
+					<Text>start</Text>
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">9.516171045356616</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="2" UniqueID="{AEFDE419-61FC-4068-BEF4-31660E637019}" Name="決策" NameU="Decision" Master="2">
+					<Text>是否選擇全部
+clients</Text>
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">8.980508756224422</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="3" UniqueID="{A5B020A8-6963-47AF-BF6D-2981292825F8}" Name="動態連接器.3" NameU="Dynamic connector.3" Master="3">
+					<Text>No</Text>
+					<XForm>
+						<PinX Unit="MM">5.294107833978389</PinX>
+						<PinY Unit="MM">8.980508756224424</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="4" UniqueID="{4553F898-093B-47BE-915A-CB996D15BE80}" Name="決策.5" NameU="Decision.5" Master="2">
+					<Text>選擇 clients</Text>
+					<XForm>
+						<PinX Unit="MM">6.030795409048457</PinX>
+						<PinY Unit="MM">8.980508756224422</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="5" UniqueID="{7FE9B2DE-958F-4B8E-B07C-68893953A41D}" Name="儲存的資料" NameU="Stored data" Master="4">
+					<Text>讀取
+ ip_list or
+ MAC list</Text>
+					<XForm>
+						<PinX Unit="MM">7.355365007340193</PinX>
+						<PinY Unit="MM">8.980508756224422</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="6" UniqueID="{C4E274F5-138F-4681-A520-3C7FB298293C}" Name="動態連接器.6" NameU="Dynamic connector.6" Master="3">
+					<XForm>
+						<PinX Unit="MM">6.676523088215680</PinX>
+						<PinY Unit="MM">8.980508756224420</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="7" UniqueID="{1B81B4D8-0371-4318-8855-152BF368FA2E}" Name="動態連接器" NameU="Dynamic connector" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">9.281818793861284</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="9" UniqueID="{BD9AF486-1660-4D03-AABC-553737648D1A}" Name="動態連接器.53" NameU="Dynamic connector.53" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.424270986253846</PinX>
+						<PinY Unit="MM">8.344409787879943</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="8" UniqueID="{BA16D755-5395-46EA-AE50-FFC082CF492D}" Name="決策.8" NameU="Decision.8" Master="2">
+					<Text>Hide pxe menus</Text>
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">6.829442138420104</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="11" UniqueID="{E92B4FF7-AC46-4A03-A5F2-4E24AC72DE45}" Name="決策.11" NameU="Decision.11" Master="2">
+					<Text>Reveal pxe menus</Text>
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">5.609755902045373</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="12" UniqueID="{6966BDAA-33D5-41DD-A08F-8906A0CEE1C0}" Name="動態連接器.12" NameU="Dynamic connector.12" Master="3">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">6.219599020232739</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="14" UniqueID="{F52F95FB-40E1-4AE5-AAE9-0580EB607EC2}" Name="動態連接器.14" NameU="Dynamic connector.14" Master="3">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">5.018220468974507</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="15" UniqueID="{86F0E76F-D75A-4524-93D8-D0EDF43E0EC5}" Name="儲存的資料.15" NameU="Stored data.15" Master="4">
+					<Text>labels</Text>
+					<XForm>
+						<PinX Unit="MM">0.522320832777260</PinX>
+						<PinY Unit="MM">6.829442138420104</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="16" UniqueID="{C482E5E0-A83D-4E71-AE65-6BDCA29C0FDC}" Name="資料" NameU="Data" Master="5">
+					<Text>Revealed labels</Text>
+					<XForm>
+						<PinX Unit="MM">2.804450820766045</PinX>
+						<PinY Unit="MM">6.829442138420104</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="17" UniqueID="{045CEF58-DCA8-4884-B20A-06F857ECC5E3}" Name="動態連接器.17" NameU="Dynamic connector.17" Master="3">
+					<XForm>
+						<PinX Unit="MM">3.565035699986655</PinX>
+						<PinY Unit="MM">6.829442138420104</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="18" UniqueID="{5AE430C2-804E-4430-BE9C-DA0DED731C30}" Name="動態連接器.18" NameU="Dynamic connector.18" Master="3">
+					<XForm>
+						<PinX Unit="MM">1.107617109302016</PinX>
+						<PinY Unit="MM">6.829442138420104</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="19" UniqueID="{A3E9A36B-AA4A-48AC-820A-7B4D6203BEC1}" Name="儲存的資料.19" NameU="Stored data.19" Master="4">
+					<Text>labels</Text>
+					<XForm>
+						<PinX Unit="MM">7.749065794741768</PinX>
+						<PinY Unit="MM">5.609755902045372</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="20" UniqueID="{23018A47-BE17-4989-991C-407D45932579}" Name="資料.20" NameU="Data.20" Master="5">
+					<Text>Hidden labels</Text>
+					<XForm>
+						<PinX Unit="MM">5.807086614173228</PinX>
+						<PinY Unit="MM">5.609755902045373</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="21" UniqueID="{442CA960-AF53-4409-80B3-E106C0686CCF}" Name="動態連接器.21" NameU="Dynamic connector.21" Master="3">
+					<XForm>
+						<PinX Unit="MM">6.407480314960630</PinX>
+						<PinY Unit="MM">5.609755902045372</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="22" UniqueID="{1B63A200-B3AC-4DC7-AEC1-4F9B82A4C363}" Name="動態連接器.22" NameU="Dynamic connector.22" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.066353596690247</PinX>
+						<PinY Unit="MM">5.609755902045373</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="23" UniqueID="{80DD3E74-522A-46DF-946A-B8F63342273A}" Name="儲存的資料.23" NameU="Stored data.23" Master="4">
+					<Text>labels</Text>
+					<XForm>
+						<PinX Unit="MM">0.916021620178835</PinX>
+						<PinY Unit="MM">4.426685035903640</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="24" UniqueID="{AEB683BD-9CE2-49E9-B3CD-635BE55612CD}" Name="資料.24" NameU="Data.24" Master="5">
+					<Text>All labels</Text>
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">4.426685035903641</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="27" UniqueID="{397281A7-2B9C-4E26-9B4C-A370AB1FA9FD}" Name="程序" NameU="Process" Master="6">
+					<Text>將選擇的 ip 位址轉換為 16進位表示</Text>
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">7.909184177960034</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="28" UniqueID="{7102E312-EA7C-4F83-A324-A2F3F44DFFA2}" Name="動態連接器.28" NameU="Dynamic connector.28" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">8.492047583155532</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="10" UniqueID="{0C62ACFA-5FFA-468C-BAF2-1096790F7853}" Name="動態連接器.10" NameU="Dynamic connector.10" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">7.369313158190069</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="29" UniqueID="{26B66B63-169E-4191-B70A-E584E0247383}" Name="程序.29" NameU="Process.29" Master="6">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">3.149606299212598</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="30" UniqueID="{BD14ECFB-1902-486B-BCB1-530F9F46868D}" Name="動態連接器.30" NameU="Dynamic connector.30" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">3.788145667558120</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="32" UniqueID="{9A234745-68D0-4818-BB3D-EDFAE50586CC}" Name="動態連接器.32" NameU="Dynamic connector.32" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.804450820766045</PinX>
+						<PinY Unit="MM">6.170626581021075</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="13" UniqueID="{54B3657C-02F7-4BB7-BE24-6D3C02DC8B2E}" Name="動態連接器.13" NameU="Dynamic connector.13" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.807086614173228</PinX>
+						<PinY Unit="MM">4.802909447085678</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="26" UniqueID="{596FFBA2-22B0-4B06-9981-D31538F29969}" Name="終端子.41" NameU="Terminator.41" Master="0">
+					<Text>end</Text>
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">1.926627731337125</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="31" UniqueID="{07614286-9C79-4254-A281-D3F152B64C34}" Name="動態連接器.31" NameU="Dynamic connector.31" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.325620579207266</PinX>
+						<PinY Unit="MM">2.457437006140795</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="33" UniqueID="{3B41D1BF-EC22-4C43-A42C-10A2D846BFAD}" Name="程序.33" NameU="Process.33" Master="6">
+					<Text>Parser default 檔裡的 label</Text>
+					<XForm>
+						<PinX Unit="MM">1.663385826771654</PinX>
+						<PinY Unit="MM">6.829442138420104</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="34" UniqueID="{1CAB1D7E-3D71-4791-991F-96C4CB05969D}" Name="動態連接器.34" NameU="Dynamic connector.34" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.140414386760976</PinX>
+						<PinY Unit="MM">6.829442138420104</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="35" UniqueID="{DC5E3491-57A3-4DB8-BED5-933BDA99937D}" Name="程序.35" NameU="Process.35" Master="6">
+					<Text>Parser default 檔裡的 label</Text>
+					<XForm>
+						<PinX Unit="MM">6.820866141732283</PinX>
+						<PinY Unit="MM">5.609755902045372</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="36" UniqueID="{63D98B90-DB86-47D7-871E-2702C8BA3550}" Name="動態連接器.36" NameU="Dynamic connector.36" Master="3">
+					<XForm>
+						<PinX Unit="MM">7.240674629654349</PinX>
+						<PinY Unit="MM">5.609755902045372</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="38" UniqueID="{0D644377-5C63-46DC-B079-8A0AFCA0A5EB}" Name="動態連接器.38" NameU="Dynamic connector.38" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.542080942212736</PinX>
+						<PinY Unit="MM">4.426685035903640</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="39" UniqueID="{77CD58FC-067A-47BC-9660-A7962F3CF50A}" Name="程序.39" NameU="Process.39" Master="6">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">5.807086614173228</PinX>
+						<PinY Unit="MM">3.149606299212598</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="40" UniqueID="{9DC15FE9-14ED-4A16-8C30-82AFDD061545}" Name="決策.40" NameU="Decision.40" Master="2">
+					<Text>While client in CLIENTS is true</Text>
+					<XForm>
+						<PinX Unit="MM">5.807086614173228</PinX>
+						<PinY Unit="MM">3.996062992125984</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="41" UniqueID="{08B17107-E12B-4201-9037-F6B89A195E3C}" Name="動態連接器.41" NameU="Dynamic connector.41" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.807086614173228</PinX>
+						<PinY Unit="MM">3.572834645669292</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="43" UniqueID="{79A3A3D4-DE6C-4274-9D08-35D40AD0428A}" Name="動態連接器.43" NameU="Dynamic connector.43" Master="3">
+					<XForm>
+						<PinX Unit="MM">6.299212598425196</PinX>
+						<PinY Unit="MM">3.572834645669291</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="42" UniqueID="{1EF3FF7F-0BCC-453B-BC79-611C0086C47F}" Name="動態連接器.42" NameU="Dynamic connector.42" Master="3">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">5.027254604297347</PinX>
+						<PinY Unit="MM">2.961345361731554</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="44" UniqueID="{AF9AFF4F-8538-4643-A94D-58CF2C2BB0C8}" Name="決策.44" NameU="Decision.44" Master="2">
+					<Text>While client in CLIENTS is true</Text>
+					<XForm>
+						<PinX Unit="MM">2.804450820766045</PinX>
+						<PinY Unit="MM">5.511811023622047</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="46" UniqueID="{9722AEA7-4FB5-43C9-B50F-88C3329C0C3A}" Name="動態連接器.46" NameU="Dynamic connector.46" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.804450820766045</PinX>
+						<PinY Unit="MM">4.606299212598424</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="45" UniqueID="{4B68544E-98D9-4DE3-9003-A94D92CD246B}" Name="程序.45" NameU="Process.45" Master="6">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">2.804450820766045</PinX>
+						<PinY Unit="MM">3.700787401574803</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="47" UniqueID="{25090C86-4D3B-4A4A-8FBB-34212071C5B6}" Name="動態連接器.47" NameU="Dynamic connector.47" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.312324836514077</PinX>
+						<PinY Unit="MM">4.606299212598425</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="48" UniqueID="{9F2C85C3-0F29-4C92-A6DA-5BB366AF61D9}" Name="動態連接器.48" NameU="Dynamic connector.48" Master="3">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">3.604134692379556</PinX>
+						<PinY Unit="MM">3.719219377479585</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+			</Shapes>
+		</Page>
+	</Pages>
+</VisioDocument>
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/filelist.xml
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/filelist.xml	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/filelist.xml	(revision 21)
@@ -0,0 +1,32 @@
+<xml xmlns:o="urn:schemas-microsoft-com:office:office">
+ <o:File HRef="arrow.gif"/>
+ <o:File HRef="minimize.gif"/>
+ <o:File HRef="maximize.gif"/>
+ <o:File HRef="go.gif"/>
+ <o:File HRef="fullpage.gif"/>
+ <o:File HRef="plus.gif"/>
+ <o:File HRef="minus.gif"/>
+ <o:File HRef="panminus.gif"/>
+ <o:File HRef="panplus.gif"/>
+ <o:File HRef="tick-foc.gif"/>
+ <o:File HRef="tick-off.gif"/>
+ <o:File HRef="tick-on.gif"/>
+ <o:File HRef="toc.gif"/>
+ <o:File HRef="toc2.gif"/>
+ <o:File HRef="data.xml"/>
+ <o:File HRef="frameset.js"/>
+ <o:File HRef="keys.js"/>
+ <o:File HRef="visio.css"/>
+ <o:File HRef="vml_1.emz"/>
+ <o:File HRef="gif_1.gif"/>
+ <o:File HRef="vml_1.js"/>
+ <o:File HRef="vml_1.htm"/>
+ <o:File HRef="gif_1.js"/>
+ <o:File HRef="gif_1.htm"/>
+ <o:File HRef="zoom.htm"/>
+ <o:File HRef="find.js"/>
+ <o:File HRef="widgets.htm"/>
+ <o:File HRef="toolbar.htm"/>
+ <o:MainFile HRef="../switch_pxe_flow_chart.htm"/>
+ <o:File HRef="filelist.xml"/>
+</xml>
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/find.js
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/find.js	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/find.js	(revision 21)
@@ -0,0 +1,499 @@
+
+var strShapeName	= "圖形名稱";
+var strShapeText	= "圖形文字";
+var strProps		= "圖形資料";
+var strResults		= "搜尋結果關於:";
+
+var strShape	= "圖形名稱:";
+var strNoCustomPropertiesToDisplayText = "CTRL+按一下繪圖中的圖形以檢視詳細資料。";
+
+var FindShapeXML = parent.FindShapeXML;
+var Unquote = parent.Unquote;
+var put_Location = parent.put_Location;
+
+
+var strChkBox		= "Chkbox";
+var strPropChkBox	= "PropChkbox";
+
+function doExpando(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = up.src;
+	}else{
+		xxx.style.display = "none"
+		yyy.src = down.src;
+	}
+}
+
+function doExp(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = "minus.gif";
+	}else{
+		xxx.style.display = "none"
+		yyy.src = "plus.gif";
+	}
+}
+
+
+function FindOnClick()
+{
+	var count, indexOfString;
+	
+	var fieldsToSearchArray = new Array();
+	if (parent.xmlData != null && document.theForm[strProps + strChkBox].checked)
+	{
+		for( count=0; count < document.theForm.length; count++ )
+		{
+			indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+			if( -1 != indexOfString && document.theForm[count].checked )
+			{
+				fieldsToSearchArray[ fieldsToSearchArray.length ] = document.theForm[count].name.slice(0, indexOfString);
+			}
+		}
+	}
+
+	var searchTokensArray = CreateSearchTokens (document.theForm.findString.value);
+
+	if (searchTokensArray.length > 0)
+	{
+		var findArray = Find(searchTokensArray, fieldsToSearchArray);
+		var ArrayLength = findArray.length;
+		var strResultsHTML = "找不到相符項目。";
+		var lastPageID = null;
+		var shapeID;
+		
+		
+		if(ArrayLength > 0)
+		{
+			strResultsHTML = strResults + ' <b>'+ parent.HTMLEscape(document.theForm.findString.value) +'</b>';
+			for ( count = 0; count < ArrayLength; count++)
+			{
+			
+				if( lastPageID != findArray[count].PageID )
+				{
+					lastPageID = findArray[count].PageID;
+				}
+
+				shapeID = findArray[count].ShapeID;
+				strResultsHTML += '<p class="results"><a href="javascript:populateSearchResultDetails(\'results_'+ lastPageID +'_'+ shapeID +'\', '+ lastPageID +','+ shapeID +'); TogglePlus(results_' + lastPageID + '_' + shapeID + ',\'img_' + lastPageID + '_' + shapeID + '\', hideResults)"><img src="plus.gif" alt="顯示/隱藏圖形詳細資料" width="13" height="9" border="0" id="img_'+ lastPageID +'_'+ shapeID +'"></a>\n'
+				strResultsHTML += '<a  class="blu1" href="JavaScript:FindQuerySelect(';
+
+				strResultsHTML += findArray[count].PageID + ",";
+				strResultsHTML += findArray[count].ShapeID + ",";
+				strResultsHTML += findArray[count].PinX + ",";
+				strResultsHTML += findArray[count].PinY;
+
+				strResultsHTML += ')">'+ findArray[count].Title +'</a></p>\n'
+
+				strResultsHTML += '</div>\n';
+				strResultsHTML += '<div class="indent" id="results_'+ lastPageID +'_'+ shapeID +'" style="display:none;width:100%;"></div>\n'
+			}
+
+		}
+		var divAdvSrch = document.all("hideAdvSrch");
+		var imgAS0 = document.all("as0");
+		
+		var tmpObj = document.all("hideResults");
+		if( tmpObj != null )
+		{
+			tmpObj.innerHTML = strResultsHTML;
+			tmpObj.open = "true";
+			tmpObj.style.display = "block";
+		}
+	}
+}
+
+function CreateSearchTokens (strUserString)
+{
+	var searchTokensArray = new Array();
+
+	var strToken = "";
+	var chCurChar;
+
+	for (var count = 0; count < strUserString.length; count++)
+	{
+		chCurChar = strUserString.charAt(count);
+		if (chCurChar == '"')
+		{
+			var nNextQuote = strUserString.indexOf('"', count + 1);
+			if (nNextQuote >= 0)
+			{
+				strToken = strUserString.slice(count + 1, nNextQuote);
+				searchTokensArray[searchTokensArray.length] = strToken;
+				strToken = "";
+				count = nNextQuote;
+			}
+		}
+		else if (chCurChar == ' ')
+		{
+			if (strToken.length > 0)
+			{
+				searchTokensArray[searchTokensArray.length] = strToken;
+			}
+
+			strToken = "";
+		}
+		else
+		{
+			strToken += chCurChar;
+		}
+	}
+
+	if (strToken.length > 0)
+	{
+		searchTokensArray[searchTokensArray.length] = strToken;
+	}
+
+	return searchTokensArray;
+}
+
+function populateSearchResultDetails( divID, pageID, shapeID )
+{
+	var tmpShape = FindShapeXML (pageID, shapeID);
+	var strOutput = CreatePropTable( tmpShape );
+	
+	var tmpObj = document.all(divID);
+	if( tmpObj != null )
+	{
+		tmpObj.innerHTML = strOutput;
+	}
+}
+
+function makeAdvancedFindCheckboxes(div)
+{
+	if (parent.xmlData)
+	{
+		var strOutput = "";
+
+		strOutput += "<INPUT type='checkbox' name='" + strShapeName + strChkBox + "' id='" + strShapeName + strChkBox + "' checked><label for='" + strShapeName + strChkBox + "'>" + strShapeName + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strShapeText + strChkBox + "' id='" + strShapeText + strChkBox + "' checked><label for='" + strShapeText + strChkBox + "'>" + strShapeText + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strProps + strChkBox + "' id='" + strProps + strChkBox + "' onclick='AdvSearchCustomPropCheck ()'checked ><label for='" + strProps + strChkBox + "'>" + strProps +"</label><br>\n";
+		strOutput += "<div id='divCPBoxes' style='margin-left:1em;'>";
+		
+		var objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label");
+		var filter = "";
+		var boolFirstPass = true;
+		var tmpPropName;
+		while( objNodes.length > 0)
+		{
+			tmpPropName = objNodes.item( 0 ).text;
+			var escapedPropName = parent.EscapeString(tmpPropName);
+			if( true == boolFirstPass )
+			{
+				filter = ". != '" + escapedPropName + "'";
+				boolFirstPass = false;
+			}
+			else
+			{
+				filter += " and . != '" + escapedPropName + "'";
+			}
+
+			tmpPropName = parent.HTMLEscape (tmpPropName);
+			strOutput += "<INPUT type='checkbox' name='" + tmpPropName + strPropChkBox + "' id='"+ tmpPropName + strPropChkBox + "' checked><label for='"+ tmpPropName + strPropChkBox + "'>" + tmpPropName +"</label><br>\n";
+
+			objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label["+ filter + "]");
+		}
+		strOutput += "</div>"
+		div.innerHTML = strOutput;
+	}
+}
+
+function AdvSearchCustomPropCheck ()
+{
+	for( count=0; count < document.theForm.length; count++ )
+	{
+		indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+		if( -1 != indexOfString )
+		{
+			document.theForm[count].disabled = !document.theForm[strProps + strChkBox].checked;
+		}
+	}
+}
+
+
+function CResultItem(title, pageID, shapeID, pinX, pinY)
+{
+	 this["Title"] = title;
+	 this["PageID"] = pageID;
+	 this["ShapeID"] = shapeID;
+	 this["PinX"] = pinX;
+	 this["PinY"] = pinY;
+}
+
+function FindParentPage(nodeObject)
+{
+	if(nodeObject == null)
+	{
+		return null;
+	}
+	if(nodeObject.baseName == "Page")
+		return nodeObject;
+	else
+		return FindParentPage(nodeObject.parentNode);
+}
+
+function QueryStringForMatch(shapeNode, regTextForFind, filterString)
+{
+	if (filterString.length > 0)
+	{
+		var nodesToCheck = shapeNode.selectNodes(filterString);
+
+		var nodeCount = nodesToCheck.length;
+		var stringToParse;
+		for(var ncount = 0; ncount < nodeCount; ncount++)
+		{
+			stringToParse = nodesToCheck.item(ncount).text;
+			stringToParse = stringToParse.toLowerCase ();
+			if(stringToParse.indexOf(regTextForFind) > -1)
+			{
+				return true;
+			}
+		}
+	}
+}
+
+function GetShapeTitle(shapeNode)
+{
+	var objTempName = null;
+	var objTempTextElement = shapeNode.selectSingleNode("./Text");
+	if(objTempTextElement != null)
+	{
+		var objTextNode = objTempTextElement.selectSingleNode("textnode()");
+		if (objTextNode != null)
+		{
+			return parent.HTMLEscape (objTextNode.text);
+		}
+	}
+
+	objTempName = shapeNode.selectSingleNode("./@Name");
+	if(objTempName != null)
+	{
+		return parent.HTMLEscape (objTempName.text);
+	}
+
+	return "";
+}
+
+function GetPageTitle(pageID)
+{
+	var pagesObj = parent.xmlData.selectSingleNode("VisioDocument/Pages");
+	if(!pagesObj)
+	{
+		return "";
+	}
+
+	var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+	var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+	if(!pageObj)
+	{
+		return "";
+	}
+
+	var pageNameNode = pageObj.selectSingleNode("@Name");
+	if(!pageNameNode)
+	{
+		return "";
+	}
+	return pageNameNode.text;
+}
+
+function Find(searchTokensArray, propsToSearchArray)
+{
+	var bXMLNotValid = false;
+	var findArray = new Array();
+	var findIndex = 0;
+
+	if (parent.xmlData != null && searchTokensArray.length > 0)
+	{
+		var fieldsToSearchArray = new Array();
+		var filterString = "";
+		if( null != propsToSearchArray &&
+			propsToSearchArray.length > 0 )
+		{
+			var propFilterString = "";
+			for( var count=0; count< propsToSearchArray.length; count++ )
+			{
+				if( count == 0 )
+				{
+					propFilterString = "[. = '" + parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+				else
+				{
+					propFilterString += " or . = '"+ parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+			}
+			propFilterString += "]";
+
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Prop[Label"+ propFilterString +"]/Value";
+		}
+
+		if (document.theForm[strShapeText + strChkBox].checked)
+		{
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Text";
+		}
+
+		if (fieldsToSearchArray.length > 0)
+		{
+			filterString = "(.//(";
+
+			for (var fieldCount = 0; fieldCount < fieldsToSearchArray.length; fieldCount++)
+			{
+				if (fieldCount != 0)
+				{
+					filterString += " | ";
+				}
+
+				filterString += fieldsToSearchArray[fieldCount];
+			}
+
+			filterString += ")/textnode())";
+		}
+
+		var objShapeNodes;
+
+		if (document.theForm[strShapeName + strChkBox].checked)
+		{
+			if (filterString.length > 0)
+			{
+				filterString += " | ";
+			}
+			filterString += "(@Name)";
+
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape");
+		}
+		else
+		{
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape[(Prop/Value | Prop/Label | Text)]");
+		}
+
+		var shapeCount = objShapeNodes.length;
+		var objTempData = new CResultItem("A Label","PageID","ShapeID","PinX","PinY");
+		var objTempShape = null;
+
+		for (count = 0; count < shapeCount; count++)
+		{		
+			objTempShape = objShapeNodes.item(count);
+
+			var objParentPageNode = FindParentPage(objTempShape);
+			if (objParentPageNode == null)
+			{
+				continue;
+			}
+
+			var objPageIDNode = objParentPageNode.selectSingleNode("@ID/textnode()");
+			if(objPageIDNode == null)
+			{
+				continue;
+			}
+			var pageID = objPageIDNode.text;
+
+			var pageIndex = parent.PageIndexFromID (pageID);
+			if (pageIndex < 0)
+			{
+				continue;
+			}
+
+			var objLayerMember = objTempShape.selectSingleNode("LayerMem/LayerMember");
+			if (objLayerMember != null && objLayerMember.text.length > 0)
+			{
+				var layerArray = objLayerMember.text.split (';');
+				var visibleLayer = false;
+				for (var layerCount = 0; (layerCount < layerArray.length) && !visibleLayer; layerCount++)
+				{
+					var objLayerVisible = objParentPageNode.selectSingleNode("Layer[@IX=" + layerArray[layerCount] + "]/Visible");
+					if (objLayerVisible != null)
+					{
+						 visibleLayer = (objLayerVisible.text != 0);
+					}
+				}
+				
+				if (!visibleLayer)
+				{
+					continue;
+				}
+			}
+
+			for (var tokenCount = 0; tokenCount < searchTokensArray.length; tokenCount++)
+			{
+				var textToFind = searchTokensArray[tokenCount];
+				textToFind = textToFind.toLowerCase ();
+
+				if (QueryStringForMatch(objTempShape, textToFind, filterString))
+				{
+					objTempData.Title = GetShapeTitle(objTempShape);
+					objTempData.PageID = pageID;
+
+					objShapeIDNode = objTempShape.selectSingleNode("@ID/textnode()");
+					if(objShapeIDNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.ShapeID = objShapeIDNode.text;
+					objPinXNode = objTempShape.selectSingleNode("XForm/PinX/textnode()");
+					if(objPinXNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinX = objPinXNode.text;
+					objPinYNode = objTempShape.selectSingleNode("XForm/PinY/textnode()");
+					if(objPinYNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinY = objPinYNode.text;
+
+					findArray[findIndex] = new CResultItem(objTempData.Title, objTempData.PageID, objTempData.ShapeID, objTempData.PinX, objTempData.PinY);
+					findIndex++;
+					break;
+				}
+			}
+		}
+		if(bXMLNotValid)
+		{
+			findArray.length = 0;
+		}
+	}
+
+	return findArray;
+}
+
+function FindQuerySelect(pageID, shapeID, pinX, pinY)
+{
+	if ((!widgets.GoTo && parent.g_FileList.length > 1) || (widgets.GoTo && parent.g_FileList[document.all("Select1").value].PageID != pageID))
+	{
+		parent.g_callBackFunctionArray[parent.g_callBackFunctionArray.length] = function () { parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY); };
+		parent.GoToPageByID(pageID);
+	}
+	else 
+	{
+		if (parent.viewMgr != null)
+		{
+			parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY);
+		}
+	}
+}
+
+function TreeSelect(pageID, shapeID)
+{
+	var shapeNode = FindShapeXML (pageID, shapeID);
+	if (shapeNode != null)
+	{
+		var pinXNode = shapeNode.selectSingleNode("XForm/PinX/textnode()");
+		var pinYNode = shapeNode.selectSingleNode("XForm/PinY/textnode()");
+
+		if (pinXNode != null && pinYNode != null)
+		{
+			FindQuerySelect (pageID, shapeID, pinXNode.text, pinYNode.text);
+		}
+	}
+}
+
+
+var g_RowStyleList = parent.g_RowStyleList;
+var FillPropPane = parent.FillPropPane;
+var CreatePropTable = parent.CreatePropTable;
+
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/frameset.js
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/frameset.js	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/frameset.js	(revision 21)
@@ -0,0 +1,653 @@
+
+var MSIE = false;
+var ver = 0;
+var indexOfMSIE = navigator.userAgent.indexOf("MSIE"); 
+if(indexOfMSIE != -1)
+{
+	MSIE = true;
+	ver = parseFloat(navigator.userAgent.substring(indexOfMSIE + 5, navigator.userAgent.indexOf(";", indexOfMSIE)));
+}
+
+var isMac = (navigator.appVersion.indexOf("Macintosh") >= 0);
+var isUpLevel = (MSIE && ver >= 5 && !isMac);
+
+var xmlData = XMLData("switch_pxe_flow_chart.files/data.xml");
+
+var g_RowStyleList = new  Array(
+ "propViewerEvenRow",
+ "propViewerOddRow"
+);
+
+
+var strShape	= "圖形名稱:";
+
+
+
+function XMLData(file)
+{
+	var temp = null;
+	if(isUpLevel)
+	{
+		temp = CreateObject("Microsoft.XMLDOM");
+		if (temp == null)
+		{
+			temp = CreateObject("MSXML2.DOMDocument");
+		}
+
+		if (temp != null)
+		{
+			temp.async = false;
+		
+			temp.load(file);
+			if (temp.parseError.errorCode != 0)
+			{
+				temp = null;
+			}
+		}
+	}
+
+	return temp;
+}
+
+function CreateObject (strObj)
+{
+	var obj = null;
+	eval ("try { obj = new ActiveXObject(strObj); } catch (e) {}");
+	return obj;
+}
+
+function doVersion()
+{
+	if(isUpLevel)
+	{
+		frmToolbar.divDownLevel.innerHTML = "";
+		frmToolbar.divUpLevel.innerHTML = frmWidgets.divData.innerHTML;
+	}
+}	
+	
+	
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData != null)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(pageObj == null)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function OnShapeKey(pageID, shapeID)
+{
+	var e = window.frmDrawing.event;
+	
+	if(e.keyCode == 13 && e.ctrlKey)		//ctrl + enter
+	{
+		UpdateProps (pageID, shapeID);
+	}
+	else if (e.keyCode == 13)
+	{
+		OnShapeClick (pageID, shapeID);
+	}
+}
+
+function OnShapeClick (pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var e = frmDrawing.window.event;
+		var elem = e.srcElement;
+
+		if (e != null && e.ctrlKey && frmToolbar.widgets && frmToolbar.widgets.Details)
+		{
+			UpdateProps (pageID, shapeID);
+		}
+		else
+		{
+			var shapeNode = FindShapeXML (pageID, shapeID);
+			var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+			if (hlObj != null)
+			{
+				if (hlObj.DoFunction.length > 0)
+				{
+					eval (hlObj.DoFunction);
+				}
+				else if (hlObj.Hyperlink.length > 0)
+				{
+					if (hlObj.NewWindow)
+					{
+						window.open (hlObj.Hyperlink);
+					}
+					else
+					{
+						top.location.href = hlObj.Hyperlink.substr (0, 510);
+					}
+				}
+				else if (elem != null)
+				{
+					var href = elem.origHref;
+					if (href == null)
+					{
+						href = elem.href;
+					}
+
+					var target = elem.origTarget;
+					if (target == null)
+					{
+						target = elem.target;
+					}
+
+					if (href && href.length > 0)
+					{
+						href = HTMLEscape (href);
+						if (target && target == "_blank")
+						{
+							window.open (href);
+						}
+						else
+						{
+							top.location.href = href.substr (0, 510);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return (!isUpLevel);
+}
+
+function UpdateProps(pageID, shapeID)
+{
+	var shape = FindShapeXML (pageID, shapeID);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function UpdatePropsByShapeName(pageName, shapeName)
+{
+	var shape = FindShapeXMLByName (pageName, shapeName);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function FillPropPane (shapeNode, outputDivObj )
+{
+	if (shapeNode != null && outputDivObj != null)
+	{
+		if(outputDivObj.style.display == "none")
+		{
+			frmToolbar.ToggleWidget(outputDivObj);
+		}
+	
+		var strCPHTML = "";
+		
+		var shapeNameAttr = shapeNode.attributes.getNamedItem ("Name");
+		if (shapeNameAttr)
+		{
+			strCPHTML += "<span class='p2' style='padding-left:2px;'>" + strShape + " " + HTMLEscape(shapeNameAttr.text) + "</span>";
+		}
+
+		var strTableHTML = CreatePropTable (shapeNode);
+		if(strTableHTML.indexOf("<table") == -1)
+		{
+			strTableHTML = "<p class='p2' style='margin-left:1em;margin-top:0em;'>" + strTableHTML + "</p>";
+		}
+
+		if (strTableHTML.length > 0)
+		{
+			strCPHTML += strTableHTML;
+		}
+		else
+		{
+			strCPHTML = strNoCustomPropertiesToDisplayText;
+		}
+		
+		outputDivObj.innerHTML = strCPHTML;
+		outputDivObj.minHeight = 75;
+	}
+}
+
+function CreatePropTable (shapeNode)
+{
+	var strCPHTML = "";
+	var strStartTable = "<table class='propViewerTABLE' borderColor='#999999' cellPadding='2' width='95%' border='1' summary='此表格包含圖形詳細資料'>";
+		strStartTable += "<THEAD class='propViewerTHEAD'><TH>標籤</TH><TH>值</TH></THEAD>";
+	var strEndTable = "</TABLE>";
+
+	if (shapeNode != null)
+	{
+		var propColl = shapeNode.selectNodes ("Prop");
+
+		var propCount = propColl.length;
+		for (var count = 0; count < propCount; count++)
+		{
+			strCPHTML += "<TR class='" + g_RowStyleList[count % 2] + "'>";
+			
+			var strLabelText = "";
+			oPropLabel = propColl.item(count).selectSingleNode("Label/textnode()");
+			if (oPropLabel != null)
+			{
+				strLabelText = HTMLEscape (oPropLabel.text);
+			}
+			else
+			{
+				oPropName = propColl.item(count).attributes.getNamedItem ("Name");
+				if (oPropName)
+				{
+					strLabelText = HTMLEscape (oPropName.text);
+				}
+			}
+
+			if (strLabelText.length > 0)
+			{
+				strCPHTML += "<TD class='propViewerTD'>" + strLabelText + "</TD>";
+				strCPHTML += "<TD class='propViewerTD'>"
+
+				var strValueText = "&nbsp;";
+				oPropValue = propColl.item(count).selectSingleNode("Value/textnode()");
+				if (oPropValue)
+				{
+					strValueText = HTMLEscape (oPropValue.text);
+				}
+
+				strCPHTML += strValueText + "</TD></TR>";
+			}
+		}
+
+		if(strCPHTML != "")
+		{
+			strCPHTML = strStartTable + strCPHTML + strEndTable;
+		}
+		else
+		{
+			strCPHTML = "沒有可使用的詳細資料。";
+		}
+	}
+
+	return strCPHTML;
+}
+
+function keyHandler()
+{
+	var e = frmDrawing.window.event;
+	if(e.keyCode == 13) //enter
+	{
+		e.srcElement.click();
+	}
+}
+
+function GoToPage(index)
+{
+	if (viewMgr)
+	{
+		viewMgr.loadPage (index);
+	}
+	else
+	{
+		DefPageLoad (index);
+	}
+}
+
+function GoToPageByID(pageID)
+{
+	var pageIndex = PageIndexFromID (pageID);
+	if (pageIndex >= 0)
+	{
+		GoToPage (pageIndex);
+	}
+}
+
+function PageIndexFromID (pageID)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageID == g_FileList[count].PageID)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromName (strPageName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strPageNameLower = strPageName;
+		strPageNameLower = strPageNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListPageName = g_FileList[count].PageName;
+			strFileListPageName = HTMLUnescape (strFileListPageName);
+			strFileListPageName = strFileListPageName.toLowerCase ();
+			if (strPageNameLower == strFileListPageName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromFileName (strFileName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strFileNameLower = strFileName;
+		strFileNameLower = strFileNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListFileName = g_FileList[count].PriImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+
+			strFileListFileName = g_FileList[count].SecImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromVisioPageIndex (pageIndex)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageIndex == g_FileList[count].PageIndex)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function FindShapeXMLByName (pageName, shapeName)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@Name $ieq$ "' + EscapeString (pageName) + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@Name $ieq$ "' + EscapeString (shapeName) + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function Unquote (str)
+{
+	var nStartIndex = 0;
+	var nEndIndex = str.length;
+
+	if (str.charAt (0) == '"')
+	{
+		nStartIndex = 1;
+	}
+
+	if (str.charAt (nEndIndex - 1) == '"')
+	{
+		nEndIndex -= 1;
+	}
+
+	return str.substring (nStartIndex, nEndIndex);
+}
+
+function ConvertXorYCoordinate(PosValue, OldMin, OldMax, NewMin, NewMax, MapBackwards)
+{
+	var OldMid = (OldMax - OldMin) / 2;
+	var NewMid = (NewMax - NewMin) / 2;
+	var ConvertResult = 1 * PosValue;
+	ConvertResult = ConvertResult - (OldMin + OldMid);
+	ConvertResult = ConvertResult / OldMid;
+	if(MapBackwards != 0)
+	{
+		ConvertResult = 0 - ConvertResult;
+	}
+	ConvertResult = ConvertResult * NewMid;
+	ConvertResult = ConvertResult + (NewMin + NewMid);
+	return ConvertResult;
+}
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.display = "";
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+		divObject.style.display = "none";
+	}
+	return divObject;
+}
+
+function EscapeString (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "\\\\";
+		}
+		else if (curChar == "\"")
+		{
+			strResult += "\\\"";
+		}
+		else if (curChar == "\'")
+		{
+			strResult += "\\\'";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLEscape (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "&#92;";
+		}
+		else if (curChar == '\"')
+		{
+			strResult += "&#34;";
+		}
+		else if (curChar == '\'')
+		{
+			strResult += "&#39;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#60;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#62;";
+		}
+		else if (curChar == '&')
+		{
+			strResult += "&#38;";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLUnescape (str)
+{
+	var strResult = "";
+	var strEscapePattern = "&#xx;";
+
+	for (var i = 0 ; i < str.length - strEscapePattern.length + 1; i++)
+	{
+		if (str.charAt(i) == '&' && 
+			str.charAt(i + 1) == '#' &&
+			str.charAt(i + 4) == ';')
+		{
+			var charCode = str.charAt(i + 2);
+			charCode += str.charAt(i + 3);
+
+			if (charCode == "34")
+			{
+				strResult += '"';
+			}
+			else if (charCode == "39")
+			{
+				strResult += '\'';
+			}
+			else if (charCode == "60")
+			{
+				strResult += '<';
+			}
+			else if (charCode == "62")
+			{
+				strResult += '>';
+			}
+			else if (charCode == "92")
+			{
+				strResult += '\\';
+			}
+			else if (charCode == "38")
+			{
+				strResult += '&';
+			}
+			
+			i = i + strEscapePattern.length - 1;
+		}
+		else
+		{
+			strResult += str.charAt(i);
+		}
+	}
+
+	strResult += str.substring (i, str.length);
+
+	return strResult;
+}
+
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/gif_1.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/gif_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/gif_1.htm	(revision 21)
@@ -0,0 +1,150 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>
+switch_pxe_flow_chart
+</title>
+<script type="text/javascript" language="javascript">
+function UpdateTooltip(){};
+function OnShapeClick(){};
+</script>
+
+<script src="gif_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+	}
+</script>
+
+
+
+<script type="text/jscript" language="jscript">
+
+var pageID = 0;
+
+var isUpLevel = parent.isUpLevel;
+var OnShapeClick = null;
+if (!parent.isMac)
+{
+	OnShapeClick = parent.OnShapeClick;
+}
+
+var OnShapeKey = parent.OnShapeKey;
+var UpdateTooltip = parent.UpdateTooltip;
+var clickMenu = parent.clickMenu;
+var toggleMenuDiv = parent.toggleMenuDiv;
+var toggleMenuLink = parent.toggleMenuLink;
+var GoToPage = parent.GoToPage;
+
+
+if (parent.isUpLevel)
+{
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			var fileEntry = parent.g_FileList[parent.g_CurPageIndex];
+			var fileToLoad = fileToLoad = fileEntry.PriImage;
+			if (fileEntry.SecImage.length > 0)
+			{
+				fileToLoad = fileEntry.SecImage;
+			}
+
+			location.replace(fileToLoad);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+
+	var viewMgr = new parent.CViewMgr();
+	parent.viewMgr = viewMgr;
+
+	viewMgr.SupportsDetails = true;
+	viewMgr.SupportsSearch = true;
+
+	viewMgr.put_Location = ViewMgrSetRasterLocation;
+	viewMgr.visBBoxLeft = 0.126953;
+	viewMgr.visBBoxRight = 8.144433;
+	viewMgr.visBBoxBottom = 1.791045;
+	viewMgr.visBBoxTop = 9.651753;
+	viewMgr.highlightDiv = null;
+}
+
+function load ()
+{
+	if(isUpLevel)
+	{
+		arrowdiv.innerHTML = '<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>';
+
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.CurPageUpdate (pageIndex);
+	}
+}
+
+function unload()
+{
+	if(isUpLevel)
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+}
+
+window.onload = load;
+window.onunload = unload;
+document.onclick = clickMenu;
+
+</script>
+</head>
+
+<body class="pageView" bgcolor="#FFFFFF">
+
+<div id=arrowdiv style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+<DIV id=RasterDiv>
+
+
+<center>
+  <IMG id="ConvertedImage" SRC="gif_1.gif" ALT="頁-1" name=RasterImage BORDER="0" USEMAP="#visImageMap">
+</center>
+
+<MAP NAME="visImageMap">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="167,477,242,477,242,432,167,432,167,477" onmouseover="UpdateTooltip(this,0,45)" onfocus="UpdateTooltip(this,0,45)" onclick="return OnShapeClick(0,45);" onkeyup="OnShapeKey(0,45);">
+  <AREA shape="POLYGON" tabindex="1" ALT="While client in CLIENTS is true" origTitle="While client in CLIENTS is true" TITLE="While client in CLIENTS is true"  target="_top" COORDS="231,322,242,316,230,309,230,305,222,305,204,293,186,305,180,305,180,308,167,316,177,322,177,326,183,326,204,339,225,326,231,326,231,322" onmouseover="UpdateTooltip(this,0,44)" onfocus="UpdateTooltip(this,0,44)" onclick="return OnShapeClick(0,44);" onkeyup="OnShapeKey(0,44);">
+  <AREA shape="POLYGON" tabindex="1" ALT="While client in CLIENTS is true" origTitle="While client in CLIENTS is true" TITLE="While client in CLIENTS is true"  target="_top" COORDS="460,438,470,432,459,425,459,420,451,420,433,409,414,420,409,420,409,423,395,432,405,438,405,442,412,442,433,454,453,442,460,442,460,438" onmouseover="UpdateTooltip(this,0,40)" onfocus="UpdateTooltip(this,0,40)" onclick="return OnShapeClick(0,40);" onkeyup="OnShapeKey(0,40);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="395,519,470,519,470,474,395,474,395,519" onmouseover="UpdateTooltip(this,0,39)" onfocus="UpdateTooltip(this,0,39)" onclick="return OnShapeClick(0,39);" onkeyup="OnShapeKey(0,39);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Parser default 檔裡的 label" origTitle="Parser default 檔裡的 label" TITLE="Parser default 檔裡的 label"  target="_top" COORDS="523,322,533,322,533,295,522,295,522,292,500,292,500,295,487,295,487,322,497,322,497,324,506,324,508,324,523,324,523,322" onmouseover="UpdateTooltip(this,0,35)" onfocus="UpdateTooltip(this,0,35)" onclick="return OnShapeClick(0,35);" onkeyup="OnShapeKey(0,35);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Parser default 檔裡的 label" origTitle="Parser default 檔裡的 label" TITLE="Parser default 檔裡的 label"  target="_top" COORDS="130,229,140,229,140,201,129,201,129,199,107,199,107,201,94,201,94,229,104,229,104,231,112,231,115,231,130,231,130,229" onmouseover="UpdateTooltip(this,0,33)" onfocus="UpdateTooltip(this,0,33)" onclick="return OnShapeClick(0,33);" onkeyup="OnShapeKey(0,33);">
+  <AREA shape="POLYGON" tabindex="1" ALT="end" origTitle="end" TITLE="end"  target="_top" COORDS="299,600,341,600,342,600,342,600,343,600,343,600,343,600,344,600,344,599,345,599,345,599,345,599,346,599,346,599,347,598,347,598,347,598,348,598,348,597,348,597,349,597,349,596,349,596,349,596,350,595,350,595,350,595,350,594,351,594,351,594,351,593,351,593,351,592,351,592,351,592,351,591,351,591,351,590,352,590,352,589,351,589,351,589,351,588,351,588,351,587,351,587,351,586,351,586,351,586,351,585,350,585,350,585,350,584,350,584,349,583,349,583,349,583,349,582,348,582,348,582,348,582,347,581,347,581,347,581,346,581,346,580,345,580,345,580,345,580,344,580,344,580,343,580,343,580,343,580,342,579,342,579,341,579,299,579,298,579,298,579,297,580,297,580,297,580,296,580,296,580,295,580,295,580,294,580,294,580,294,581,293,581,293,581,293,581,292,582,292,582,292,582,291,582,291,583,291,583,291,583,290,584,290,584,290,585,290,585,289,585,289,586,289,586,289,586,289,587,289,587,289,588,289,588,288,589,288,589,288,589,288,590,288,590,288,591,289,591,289,592,289,592,289,592,289,593,289,593,289,594,289,594,290,594,290,595,290,595,290,595,291,596,291,596,291,596,291,597,292,597,292,597,292,598,293,598,293,598,293,598,294,599,294,599,294,599,295,599,295,599,296,599,296,600,297,600,297,600,297,600,298,600,298,600,299,600" onmouseover="UpdateTooltip(this,0,26)" onfocus="UpdateTooltip(this,0,26)" onclick="return OnShapeClick(0,26);" onkeyup="OnShapeKey(0,26);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="282,519,357,519,357,474,282,474,282,519" onmouseover="UpdateTooltip(this,0,29)" onfocus="UpdateTooltip(this,0,29)" onclick="return OnShapeClick(0,29);" onkeyup="OnShapeKey(0,29);">
+  <AREA shape="POLYGON" tabindex="1" ALT="將選擇的 ip 位址轉換為 16進位表示" origTitle="將選擇的 ip 位址轉換為 16進位表示" TITLE="將選擇的 ip 位址轉換為 16進位表示"  target="_top" COORDS="282,156,357,156,357,110,282,110,282,156" onmouseover="UpdateTooltip(this,0,27)" onfocus="UpdateTooltip(this,0,27)" onclick="return OnShapeClick(0,27);" onkeyup="OnShapeKey(0,27);">
+  <AREA shape="POLYGON" tabindex="1" ALT="All labels" origTitle="All labels" TITLE="All labels"  target="_top" COORDS="271,421,346,421,369,376,294,376,271,421" onmouseover="UpdateTooltip(this,0,24)" onfocus="UpdateTooltip(this,0,24)" onclick="return OnShapeClick(0,24);" onkeyup="OnShapeKey(0,24);">
+  <AREA shape="POLYGON" tabindex="1" ALT="labels" origTitle="labels" TITLE="labels"  target="_top" COORDS="35,381,34,382,34,382,34,383,33,384,33,385,33,385,32,386,32,387,32,388,32,389,31,389,31,390,31,391,31,392,31,393,31,393,30,394,30,395,30,396,30,397,30,398,30,398,30,399,30,400,30,401,30,402,30,403,30,403,31,404,31,405,31,406,31,407,31,408,31,408,32,409,32,410,32,411,32,412,33,412,33,413,33,414,34,415,34,415,34,416,35,417,90,417,90,416,89,415,89,415,89,414,88,413,88,412,88,412,88,411,87,410,87,409,87,408,87,408,86,407,86,406,86,405,86,404,86,403,86,403,86,402,86,401,86,400,86,399,86,398,86,398,86,397,86,396,86,395,86,394,86,393,86,393,86,392,86,391,87,390,87,389,87,389,87,388,88,387,88,386,88,385,88,385,89,384,89,383,89,382,90,382,90,381,35,381" onmouseover="UpdateTooltip(this,0,23)" onfocus="UpdateTooltip(this,0,23)" onclick="return OnShapeClick(0,23);" onkeyup="OnShapeKey(0,23);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Hidden labels" origTitle="Hidden labels" TITLE="Hidden labels"  target="_top" COORDS="384,331,459,331,482,286,407,286,384,331" onmouseover="UpdateTooltip(this,0,20)" onfocus="UpdateTooltip(this,0,20)" onclick="return OnShapeClick(0,20);" onkeyup="OnShapeKey(0,20);">
+  <AREA shape="POLYGON" tabindex="1" ALT="labels" origTitle="labels" TITLE="labels"  target="_top" COORDS="555,290,555,291,555,292,554,293,554,294,554,294,553,295,553,296,553,297,553,297,552,298,552,299,552,300,552,301,552,301,551,302,551,303,551,304,551,305,551,306,551,306,551,307,551,308,551,309,551,310,551,311,551,311,551,312,551,313,551,314,551,315,552,316,552,316,552,317,552,318,552,319,553,320,553,320,553,321,553,322,554,323,554,324,554,324,555,325,555,326,555,327,611,327,610,326,610,325,610,324,609,324,609,323,609,322,609,321,608,320,608,320,608,319,608,318,607,317,607,316,607,316,607,315,607,314,607,313,607,312,606,311,606,311,606,310,606,309,606,308,606,307,606,306,606,306,607,305,607,304,607,303,607,302,607,301,607,301,607,300,608,299,608,298,608,297,608,297,609,296,609,295,609,294,609,294,610,293,610,292,610,291,611,290,555,290" onmouseover="UpdateTooltip(this,0,19)" onfocus="UpdateTooltip(this,0,19)" onclick="return OnShapeClick(0,19);" onkeyup="OnShapeKey(0,19);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Revealed labels" origTitle="Revealed labels" TITLE="Revealed labels"  target="_top" COORDS="155,238,230,238,253,193,178,193,155,238" onmouseover="UpdateTooltip(this,0,16)" onfocus="UpdateTooltip(this,0,16)" onclick="return OnShapeClick(0,16);" onkeyup="OnShapeKey(0,16);">
+  <AREA shape="POLYGON" tabindex="1" ALT="labels" origTitle="labels" TITLE="labels"  target="_top" COORDS="5,197,4,198,4,199,4,200,3,200,3,201,3,202,2,203,2,204,2,204,2,205,1,206,1,207,1,208,1,208,1,209,1,210,0,211,0,212,0,213,0,213,0,214,0,215,0,216,0,217,0,218,0,218,0,219,0,220,1,221,1,222,1,222,1,223,1,224,1,225,2,226,2,227,2,227,2,228,3,229,3,230,3,230,4,231,4,232,4,233,5,233,60,233,60,233,59,232,59,231,59,230,58,230,58,229,58,228,58,227,57,227,57,226,57,225,57,224,56,223,56,222,56,222,56,221,56,220,56,219,56,218,56,218,56,217,56,216,56,215,56,214,56,213,56,213,56,212,56,211,56,210,56,209,56,208,56,208,57,207,57,206,57,205,57,204,58,204,58,203,58,202,58,201,59,200,59,200,59,199,60,198,60,197,5,197" onmouseover="UpdateTooltip(this,0,15)" onfocus="UpdateTooltip(this,0,15)" onclick="return OnShapeClick(0,15);" onkeyup="OnShapeKey(0,15);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Reveal pxe menus" origTitle="Reveal pxe menus" TITLE="Reveal pxe menus"  target="_top" COORDS="338,297,320,286,282,309,320,331,357,309,340,298,340,297,338,297" onmouseover="UpdateTooltip(this,0,11)" onfocus="UpdateTooltip(this,0,11)" onclick="return OnShapeClick(0,11);" onkeyup="OnShapeKey(0,11);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Hide pxe menus" origTitle="Hide pxe menus" TITLE="Hide pxe menus"  target="_top" COORDS="282,215,320,238,357,215,320,193,282,215" onmouseover="UpdateTooltip(this,0,8)" onfocus="UpdateTooltip(this,0,8)" onclick="return OnShapeClick(0,8);" onkeyup="OnShapeKey(0,8);">
+  <AREA shape="POLYGON" tabindex="1" ALT="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list" TITLE="讀取  ip_list or  MAC list"  target="_top" COORDS="542,36,523,36,523,37,522,37,522,38,522,39,522,39,521,40,521,41,521,42,521,42,520,43,520,44,520,44,520,45,520,46,520,47,520,47,519,48,519,49,519,50,519,50,519,51,519,52,519,53,519,54,519,54,520,55,520,56,520,57,520,57,520,58,520,59,520,60,521,60,521,61,521,62,521,62,522,63,522,64,522,65,522,65,523,66,523,67,582,67,582,66,582,65,581,65,581,64,581,63,581,62,580,62,580,61,580,60,580,60,579,59,579,58,579,57,579,57,579,56,579,55,579,54,579,54,579,53,579,52,579,51,579,50,579,50,579,49,579,48,579,47,579,47,579,46,579,45,579,44,579,44,580,43,580,42,580,42,580,41,581,40,581,39,581,39,581,38,582,37,582,37,582,36,559,36,559,35,542,35,542,36" onmouseover="UpdateTooltip(this,0,5)" onfocus="UpdateTooltip(this,0,5)" onclick="return OnShapeClick(0,5);" onkeyup="OnShapeKey(0,5);">
+  <AREA shape="POLYGON" tabindex="1" ALT="選擇 clients" origTitle="選擇 clients" TITLE="選擇 clients"  target="_top" COORDS="463,60,481,51,463,42,463,37,461,37,452,37,450,36,448,37,439,37,439,41,418,51,437,60,437,64,445,64,450,67,455,64,463,64,463,60" onmouseover="UpdateTooltip(this,0,4)" onfocus="UpdateTooltip(this,0,4)" onclick="return OnShapeClick(0,4);" onkeyup="OnShapeKey(0,4);">
+  <AREA shape="POLYGON" tabindex="1" ALT="是否選擇全部 clients" origTitle="是否選擇全部 clients" TITLE="是否選擇全部 clients"  target="_top" COORDS="332,40,320,36,308,40,295,40,295,44,271,51,320,67,369,51,345,44,345,40,332,40" onmouseover="UpdateTooltip(this,0,2)" onfocus="UpdateTooltip(this,0,2)" onclick="return OnShapeClick(0,2);" onkeyup="OnShapeKey(0,2);">
+  <AREA shape="POLYGON" tabindex="1" ALT="start" origTitle="start" TITLE="start"  target="_top" COORDS="299,21,341,21,342,21,342,21,343,20,343,20,343,20,344,20,344,20,345,20,345,20,345,20,346,20,346,19,347,19,347,19,347,19,348,18,348,18,348,18,349,18,349,17,349,17,349,17,350,16,350,16,350,15,350,15,351,15,351,14,351,14,351,14,351,13,351,13,351,12,351,12,351,11,351,11,352,11,352,10,351,10,351,9,351,9,351,8,351,8,351,8,351,7,351,7,351,6,351,6,350,6,350,5,350,5,350,5,349,4,349,4,349,4,349,3,348,3,348,3,348,2,347,2,347,2,347,2,346,1,346,1,345,1,345,1,345,1,344,1,344,0,343,0,343,0,343,0,342,0,342,0,341,0,299,0,298,0,298,0,297,0,297,0,297,0,296,0,296,1,295,1,295,1,294,1,294,1,294,1,293,2,293,2,293,2,292,2,292,3,292,3,291,3,291,4,291,4,291,4,290,5,290,5,290,5,290,6,289,6,289,6,289,7,289,7,289,8,289,8,289,8,289,9,288,9,288,10,288,10,288,11,288,11,288,11,289,12,289,12,289,13,289,13,289,14,289,14,289,14,289,15,290,15,290,15,290,16,290,16,291,17,291,17,291,17,291,18,292,18,292,18,292,18,293,19,293,19,293,19,294,19,294,20,294,20,295,20,295,20,296,20,296,20,297,20,297,20,297,20,298,21,298,21,299,21" onmouseover="UpdateTooltip(this,0,1)" onfocus="UpdateTooltip(this,0,1)" onclick="return OnShapeClick(0,1);" onkeyup="OnShapeKey(0,1);">
+</MAP>
+
+
+
+</DIV>
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/gif_1.js
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/gif_1.js	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/gif_1.js	(revision 21)
@@ -0,0 +1,64 @@
+function ViewMgrSetRasterLocation(pageID, shapeID, pinX, pinY)
+{
+	clickMenu ();
+
+	var rasterImage = document.images("RasterImage");
+
+	var imageLeft = 0;
+	var imageRight = imageLeft + rasterImage.offsetWidth;
+	var imageTop = 0;
+	var imageBottom = imageTop + rasterImage.offsetHeight;
+	
+	var xLong = parent.ConvertXorYCoordinate(pinX, viewMgr.visBBoxLeft, viewMgr.visBBoxRight, imageLeft, imageRight, 0);
+	var yLong = parent.ConvertXorYCoordinate(pinY, viewMgr.visBBoxBottom, viewMgr.visBBoxTop, imageTop, imageBottom, 1);
+	
+	var pixelWidth = document.body.scrollWidth;
+	var pixelHeight = document.body.scrollHeight;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+	var halfClientWidth = clientWidth;
+	var halfClientHeight = clientHeight;
+
+	xLong = xLong + rasterImage.offsetLeft;
+	yLong = yLong + rasterImage.offsetTop;
+	var xScrollAmount = 0;
+	var yScrollAmount = 0;
+
+	var xPrevScrollAmount = document.body.scrollLeft;
+	var yPrevScrollAmount = document.body.scrollTop;
+
+	var arrowHalfWidth = arrowdiv.clientWidth / 2;
+	var arrowHeight = arrowdiv.clientHeight;
+
+	if ((xLong - arrowHalfWidth) < xPrevScrollAmount)
+	{
+		// X off left of screen.
+		document.body.scrollLeft = xLong - arrowHalfWidth;
+	}
+	else if ((xLong + arrowHalfWidth) > (clientWidth + xPrevScrollAmount))
+	{
+		// X off right of screen. 
+		document.body.scrollLeft = xLong - clientWidth + xPrevScrollAmount + arrowHalfWidth;
+	}
+
+	if (yLong < yPrevScrollAmount)
+	{
+		// Y off top of screen.
+		document.body.scrollTop = yLong;
+	}
+	else if ((yLong + arrowHeight) > (clientHeight + yPrevScrollAmount))
+	{
+		// Y off bottom of screen. 
+		document.body.scrollTop = yLong - clientHeight + yPrevScrollAmount + arrowHeight;
+	}
+
+	arrowdiv.style.posLeft = xLong - arrowHalfWidth;
+	arrowdiv.style.posTop = yLong;
+	arrowdiv.style.visibility = "visible";
+
+	setTimeout( "parent.hideObject(arrowdiv)", 0 );
+	setTimeout( "parent.showObject(arrowdiv)", 1 );
+	setTimeout( "parent.hideObject(arrowdiv)", 2000 );
+}
+
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/keys.js
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/keys.js	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/keys.js	(revision 21)
@@ -0,0 +1,14 @@
+
+function keyHandler()
+{
+	var e = window.event;
+	var tag = e.srcElement.tagName;
+	var override = !(tag == "A" || tag == "INPUT" || tag == "SELECT" || tag == "FORM" || tag == "SUBMIT");
+	
+	if(override && e.keyCode == 13) //13 is <enter> key
+	{
+		e.srcElement.click();
+	}
+}
+
+document.onkeypress = keyHandler;
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/toolbar.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/toolbar.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/toolbar.htm	(revision 21)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<title></title>
+<style type="text/css">
+body
+{
+	font-family: Verdana, Sans-Serif;
+	font-size: small;
+}
+
+.toc
+{
+	font-size: medium;
+}
+</style>
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace("widgets.htm");
+	}
+</script>
+</head>
+
+
+<body leftmargin="0" topmargin="0" class="nav" dir=ltr>
+	<table id="tabToc" width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#999999" height="20">
+	<tr>
+	<td>&nbsp;</td>
+	</tr>
+	</table>
+
+<h1 class="toc">switch_pxe_flow_chart</h1>
+	<ul>
+		<li><a href="gif_1.htm" target="frmDrawing">頁-1</a></li>
+
+	</ul>
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/visio.css
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/visio.css	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/visio.css	(revision 21)
@@ -0,0 +1,263 @@
+﻿td {vertical-align: top;}
+
+.fillcolor
+{	vertical-align: top;
+	padding: 0pt;
+	background-color:#5C85EF;
+	filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#5C85EF', EndColorStr='#90B6FF');
+}
+
+A.blu1
+{
+	color: #3366CC;
+	text-decoration: none;
+	font-size: 95%;
+}
+
+A.blu1:visited
+{
+	color: #3366CC;
+	text-decoration: none
+}
+
+A.blu1:hover
+{
+	text-decoration: underline
+}
+
+.visrptTitle
+{
+	color:Black;
+	font-style:normal;
+}
+
+.visrptSummryLabel
+{
+	color:black;
+	font-weight:bold;
+}
+
+.visrptGrandTotalRow
+{	
+	color:Black;
+	font-weight:bold;
+}
+
+.visrptHeader
+{
+	color:White;
+	font-style:normal;
+	background-color:#5C85EF;
+}
+
+.visrptRowItem
+{
+	background-color:#DDDDDD;
+}
+
+.a1
+{	color: #ffffff;
+	text-decoration:none;
+}
+
+.p1
+{	font-family: PMingLiu, verdana, san-serif;
+	font-size: 60%;
+	COLOR: #ffffff;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: .8em;
+}
+
+.p2
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: 1.3em;
+}
+
+.label
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: bold;
+	font-size: 70%;
+	COLOR: #FFFFFF;
+	Margin: .2em,0pt,2pt,2pt;
+	line-height: 1em;
+	text-decoration:none;
+}
+
+.gobutton
+{
+	padding: 0pt, 2pt, 0pt, 0pt;
+	vertical-align: bottom;
+}
+
+.formText
+{
+	font-size: 70%;
+	width: 99%;
+	margin: 0;
+	padding: 0;
+}
+
+.holderTable
+{
+	padding-left:1px;
+	padding-right:1px;
+}
+
+.detsPara
+{
+	margin:2pt;
+	font-size:60%;
+}
+
+.navTocColor
+{
+	background-color:#999999;
+}
+
+.indent
+{
+	margin-left:15px;
+	margin-right:15px;
+	padding-top:0px;
+	margin-top:0px;
+}
+
+.results
+{	
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,10pt;
+	text-indent: -10pt;
+	line-height: 1.1em;
+}
+
+.propViewer 
+{
+	background-Color:white;
+	color: black;
+	font-family: PMingLiu, verdana, san-serif;
+	font-style: italic;
+	font-weight: bold;
+	font-size: 70%;
+	text-align: center;
+}
+
+.propViewerTABLE 
+{
+	margin: 2pt;
+	border-collapse:collapse;
+	border:solid 1px #999999;	
+}
+
+.propViewerTHEAD 
+{
+	border: 2px;
+	font-size: 60%;
+}
+
+.propViewerTD 
+{
+	font-family: PMingLiu, Verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #000000;
+	Margin: 0pt;
+	line-height: 1.1em;
+}
+
+.propViewerEvenRow 
+{
+	background-Color: #E7E7E7;
+}
+
+.propViewerOddRow 
+{
+	background-Color: #FFFFFF; 
+}
+
+BODY
+{
+	font-family: PMingLiu, Verdana, Sans-Serif;
+	font-size: medium;
+}
+
+DIV
+{
+	margin:0;
+	padding:0;
+}
+
+FORM
+{
+	margin:0;
+}
+
+.hiderScroll
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+	overflow:auto;
+}
+
+.hider
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+}
+
+.nav
+{
+	width: 100%;
+	height: 100%;
+	overflow: auto;	
+}
+
+.menuItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-color:white;
+	color:black;
+	cursor:hand;
+}
+
+.highlightItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-Color:highlight; 
+	color:white;
+	cursor:hand;
+}
+
+.hlMenu 
+{
+	border:black 2px outset; 
+	display:none; 
+	z-index:10; 
+	position:absolute; 
+	background-Color:white;
+}
+
+.innerhlMenu 
+{
+	padding-left:2pt;
+	padding-right:2pt;
+	background-Color:white;
+}
+
+.svgmessage
+{     FONT-FAMILY: PMingLiu, verdana, san-serif;
+      FONT-WEIGHT: normal;
+      font-size: 80%;
+      COLOR: #333333;
+      Margin: 1em;
+      line-height: 1.1em;
+}
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/vml_1.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/vml_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/vml_1.htm	(revision 21)
@@ -0,0 +1,215 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" 
+ xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>switch_pxe_flow_chart</title>
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script src="vml_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+
+	var pageID = 0;
+	var viewMgr = null;
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+	function getPNZ()
+	{
+		var rawHTML = VMLDiv.innerHTML;
+		var strReturn = ""
+		
+		strReturn = rawHTML.slice( rawHTML.indexOf( '<v:group' ), rawHTML.indexOf( "</v:shape>" ) );
+		strReturn += "</v:shape></v:group>\n";
+				
+		return strReturn;
+	}
+	
+	function load()
+	{
+		viewMgr = new parent.CViewMgr("ConvertedImage", "arrowDiv");
+
+		viewMgr.put_Location = ViewMgrSetVMLLocation;
+
+
+		viewMgr.visBBoxLeft = 0.126953;
+		viewMgr.visBBoxRight = 8.144433;
+		viewMgr.visBBoxBottom = 1.791045;
+		viewMgr.visBBoxTop = 9.651753;
+
+		viewMgr.Zoom = VMLZoomChange;
+		viewMgr.setView= VMLSetView;
+
+		viewMgr.SupportsDetails = true;
+		viewMgr.SupportsSearch = true;
+
+		parent.viewMgr = viewMgr;
+
+		fit();
+	}
+
+	function unload()
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+
+	function fit()
+	{
+		if(parent.frmToolbar)
+		{
+			if (parent.g_WidgetsLoaded)
+			{
+				var zoom100 = parent.frmToolbar.document.all('a100');
+				if (zoom100)
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					zoom100.click();
+				}
+				else
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					viewMgr.Zoom(100);
+				}
+			}
+			else
+			{
+				window.setTimeout("fit()", 500);
+			}
+		}	
+		else
+		{
+			parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+			viewMgr.Zoom(100);
+		}
+	}
+
+	function PostZoomProcessing (newZoomLevel)
+	{
+		parent.viewMgr.PostZoomProcessing = null;
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.viewMgr.getPNZ = getPNZ;
+		parent.CurPageUpdate (pageIndex);
+	}
+
+
+	
+	var isUpLevel = parent.isUpLevel;
+	var OnShapeClick = parent.OnShapeClick;
+	var OnShapeKey = parent.OnShapeKey;
+	var UpdateTooltip = parent.UpdateTooltip;
+	var clickMenu = parent.clickMenu;
+	var toggleMenuDiv = parent.toggleMenuDiv;
+	var toggleMenuLink = parent.toggleMenuLink;
+	var GoToPage = parent.GoToPage;
+
+	window.onload = load;
+	window.onunload = unload;
+	document.onclick = clickMenu;
+
+
+
+
+</script>
+
+</head>
+
+<body style="MARGIN:10px" onresize="VMLOnResize();" onscroll="VMLOnScroll();">
+
+<div id="arrowdiv" style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+
+
+
+<div id="VMLDiv" >
+
+
+<v:group  id="ConvertedImage" style="width:4.079775in;height:4.000000in;position:absolute;visibility=hidden;" coordSize="2040,2000" coordOrigin="-1000,-1000" >
+
+<v:shapetype 
+  id="VISSHAPE"
+  target="_parent"
+  coordsize="2040,2000"
+  coordorigin="-1000,-1000"
+  stroked="f"
+  strokecolor="red"
+  filled="t"
+>
+<v:fill opacity="0.0"/>
+</v:shapetype>
+
+
+<v:shape style="top:-1000.0;left:-1000.0;width:2039.9;height:2000.0;position:absolute" coordSize="2040,2000" coordOrigin="-1000,-1000" >
+<v:imagedata src="vml_1.emz"/>
+</v:shape>
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="start" origTitle="start"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -3,-928 l 139,-928 l 140,-928 l 142,-928 l 143,-928 l 145,-928 l 146,-928 l 147,-929 l 149,-929 l 150,-930 l 152,-930 l 153,-931 l 154,-931 l 155,-932 l 157,-933 l 158,-933 l 159,-934 l 160,-935 l 161,-936 l 162,-937 l 163,-938 l 164,-939 l 165,-940 l 166,-941 l 167,-942 l 168,-943 l 168,-945 l 169,-946 l 170,-947 l 170,-949 l 171,-950 l 171,-951 l 172,-953 l 172,-954 l 172,-955 l 173,-957 l 173,-958 l 173,-960 l 173,-961 l 173,-962 l 173,-964 l 173,-965 l 173,-967 l 172,-968 l 172,-969 l 172,-971 l 171,-972 l 171,-974 l 170,-975 l 170,-976 l 169,-977 l 168,-979 l 168,-980 l 167,-981 l 166,-982 l 165,-983 l 164,-984 l 163,-985 l 162,-986 l 161,-987 l 160,-988 l 159,-989 l 158,-990 l 157,-991 l 155,-991 l 154,-992 l 153,-993 l 152,-993 l 150,-994 l 149,-994 l 147,-995 l 146,-995 l 145,-995 l 143,-995 l 142,-995 l 140,-996 l 139,-996 l -3,-996 l -4,-996 l -6,-995 l -7,-995 l -9,-995 l -10,-995 l -11,-995 l -13,-994 l -14,-994 l -15,-993 l -17,-993 l -18,-992 l -19,-991 l -20,-991 l -22,-990 l -23,-989 l -24,-988 l -25,-987 l -26,-986 l -27,-985 l -28,-984 l -29,-983 l -30,-982 l -31,-981 l -32,-980 l -32,-979 l -33,-977 l -34,-976 l -34,-975 l -35,-974 l -35,-972 l -36,-971 l -36,-969 l -36,-968 l -36,-967 l -37,-965 l -37,-964 l -37,-962 l -37,-961 l -37,-960 l -37,-958 l -36,-957 l -36,-955 l -36,-954 l -36,-953 l -35,-951 l -35,-950 l -34,-949 l -34,-947 l -33,-946 l -32,-945 l -32,-943 l -31,-942 l -30,-941 l -29,-940 l -28,-939 l -27,-938 l -26,-937 l -25,-936 l -24,-935 l -23,-934 l -22,-933 l -20,-933 l -19,-932 l -18,-931 l -17,-931 l -15,-930 l -14,-930 l -13,-929 l -11,-929 l -10,-928 l -9,-928 l -7,-928 l -6,-928 l -4,-928 l -3,-928xe" onmouseover="UpdateTooltip(this,0,1)" onclick="OnShapeClick(0,1)" onfocus="UpdateTooltip(this,0,1);" onkeyup="OnShapeKey(0,1)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="是否選擇全部 clients" origTitle="是否選擇全部 clients"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m 110,-864 l 68,-877 l 27,-864 l -16,-864 l -16,-851 l -96,-826 l 68,-775 l 232,-826 l 153,-851 l 153,-864 l 110,-864xe" onmouseover="UpdateTooltip(this,0,2)" onclick="OnShapeClick(0,2)" onfocus="UpdateTooltip(this,0,2);" onkeyup="OnShapeKey(0,2)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選擇 clients" origTitle="選擇 clients"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m 543,-796 l 605,-826 l 545,-855 l 545,-873 l 535,-873 l 507,-873 l 500,-877 l 493,-873 l 465,-873 l 465,-860 l 395,-826 l 457,-796 l 457,-784 l 482,-784 l 500,-775 l 518,-784 l 543,-784 l 543,-796xe" onmouseover="UpdateTooltip(this,0,4)" onclick="OnShapeClick(0,4)" onfocus="UpdateTooltip(this,0,4);" onkeyup="OnShapeKey(0,4)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m 808,-877 l 744,-877 l 743,-875 l 741,-872 l 740,-870 l 739,-868 l 738,-865 l 738,-863 l 737,-861 l 736,-858 l 735,-856 l 735,-853 l 734,-851 l 733,-848 l 733,-846 l 732,-844 l 732,-841 l 732,-839 l 732,-836 l 731,-833 l 731,-831 l 731,-828 l 731,-826 l 731,-823 l 731,-821 l 731,-818 l 732,-816 l 732,-813 l 732,-811 l 732,-808 l 733,-806 l 733,-803 l 734,-801 l 735,-798 l 735,-796 l 736,-794 l 737,-791 l 738,-789 l 738,-786 l 739,-784 l 740,-782 l 741,-780 l 743,-777 l 744,-775 l 941,-775 l 940,-777 l 939,-780 l 938,-782 l 937,-784 l 936,-786 l 935,-789 l 934,-791 l 933,-794 l 932,-796 l 932,-798 l 931,-801 l 930,-803 l 930,-806 l 930,-808 l 929,-811 l 929,-813 l 929,-816 l 928,-818 l 928,-821 l 928,-823 l 928,-826 l 928,-828 l 928,-831 l 928,-833 l 929,-836 l 929,-839 l 929,-841 l 930,-844 l 930,-846 l 930,-848 l 931,-851 l 932,-853 l 932,-856 l 933,-858 l 934,-861 l 935,-863 l 936,-865 l 937,-868 l 938,-870 l 939,-872 l 940,-875 l 941,-877 l 864,-877 l 864,-881 l 808,-881 l 808,-877xe" onmouseover="UpdateTooltip(this,0,5)" onclick="OnShapeClick(0,5)" onfocus="UpdateTooltip(this,0,5);" onkeyup="OnShapeKey(0,5)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Hide pxe menus" origTitle="Hide pxe menus"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -57,-281 l 68,-206 l 193,-281 l 68,-356 l -57,-281xe" onmouseover="UpdateTooltip(this,0,8)" onclick="OnShapeClick(0,8)" onfocus="UpdateTooltip(this,0,8);" onkeyup="OnShapeKey(0,8)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Reveal pxe menus" origTitle="Reveal pxe menus"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m 129,-10 l 68,-47 l -57,28 l 68,103 l 193,28 l 135,-6 l 135,-10 l 129,-10xe" onmouseover="UpdateTooltip(this,0,11)" onclick="OnShapeClick(0,11)" onfocus="UpdateTooltip(this,0,11);" onkeyup="OnShapeKey(0,11)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="labels" origTitle="labels"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -981,-341 l -982,-338 l -983,-336 l -984,-333 l -985,-331 l -986,-328 l -987,-326 l -988,-323 l -989,-320 l -990,-318 l -991,-315 l -992,-312 l -992,-310 l -993,-307 l -993,-304 l -994,-301 l -994,-299 l -995,-296 l -995,-293 l -995,-290 l -995,-288 l -996,-285 l -996,-282 l -996,-279 l -996,-277 l -995,-274 l -995,-271 l -995,-268 l -995,-266 l -994,-263 l -994,-260 l -993,-257 l -993,-255 l -992,-252 l -992,-249 l -991,-247 l -990,-244 l -989,-241 l -988,-239 l -987,-236 l -986,-233 l -985,-231 l -984,-228 l -983,-226 l -982,-223 l -981,-221 l -796,-221 l -797,-223 l -799,-226 l -800,-228 l -801,-231 l -802,-233 l -803,-236 l -804,-239 l -805,-241 l -806,-244 l -806,-247 l -807,-249 l -808,-252 l -808,-255 l -809,-257 l -809,-260 l -810,-263 l -810,-266 l -810,-268 l -811,-271 l -811,-274 l -811,-277 l -811,-279 l -811,-282 l -811,-285 l -811,-288 l -811,-290 l -810,-293 l -810,-296 l -810,-299 l -809,-301 l -809,-304 l -808,-307 l -808,-310 l -807,-312 l -806,-315 l -806,-318 l -805,-320 l -804,-323 l -803,-326 l -802,-328 l -801,-331 l -800,-333 l -799,-336 l -797,-338 l -796,-341 l -981,-341xe" onmouseover="UpdateTooltip(this,0,15)" onclick="OnShapeClick(0,15)" onfocus="UpdateTooltip(this,0,15);" onkeyup="OnShapeKey(0,15)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Revealed labels" origTitle="Revealed labels"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -480,-206 l -230,-206 l -155,-356 l -405,-356 l -480,-206xe" onmouseover="UpdateTooltip(this,0,16)" onclick="OnShapeClick(0,16)" onfocus="UpdateTooltip(this,0,16);" onkeyup="OnShapeKey(0,16)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="labels" origTitle="labels"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m 851,-32 l 850,-29 l 848,-27 l 847,-24 l 846,-22 l 845,-19 l 844,-16 l 843,-14 l 842,-11 l 841,-9 l 841,-6 l 840,-3 l 839,-1 l 839,2 l 838,5 l 838,8 l 837,10 l 837,13 l 837,16 l 836,19 l 836,21 l 836,24 l 836,27 l 836,30 l 836,32 l 836,35 l 836,38 l 837,41 l 837,43 l 837,46 l 838,49 l 838,52 l 839,54 l 839,57 l 840,60 l 841,62 l 841,65 l 842,68 l 843,70 l 844,73 l 845,76 l 846,78 l 847,81 l 848,83 l 850,86 l 851,88 l 1036,88 l 1034,86 l 1033,83 l 1032,81 l 1031,78 l 1030,76 l 1029,73 l 1028,70 l 1027,68 l 1026,65 l 1025,62 l 1025,60 l 1024,57 l 1023,54 l 1023,52 l 1022,49 l 1022,46 l 1021,43 l 1021,41 l 1021,38 l 1021,35 l 1021,32 l 1021,30 l 1021,27 l 1021,24 l 1021,21 l 1021,19 l 1021,16 l 1021,13 l 1022,10 l 1022,8 l 1023,5 l 1023,2 l 1024,-1 l 1025,-3 l 1025,-6 l 1026,-9 l 1027,-11 l 1028,-14 l 1029,-16 l 1030,-19 l 1031,-22 l 1032,-24 l 1033,-27 l 1034,-29 l 1036,-32 l 851,-32xe" onmouseover="UpdateTooltip(this,0,19)" onclick="OnShapeClick(0,19)" onfocus="UpdateTooltip(this,0,19);" onkeyup="OnShapeKey(0,19)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Hidden labels" origTitle="Hidden labels"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m 281,103 l 531,103 l 606,-47 l 356,-47 l 281,103xe" onmouseover="UpdateTooltip(this,0,20)" onclick="OnShapeClick(0,20)" onfocus="UpdateTooltip(this,0,20);" onkeyup="OnShapeKey(0,20)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="labels" origTitle="labels"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -881,268 l -882,271 l -883,273 l -885,276 l -886,278 l -887,281 l -888,283 l -889,286 l -890,289 l -890,291 l -891,294 l -892,297 l -893,299 l -893,302 l -894,305 l -894,307 l -895,310 l -895,313 l -895,316 l -895,318 l -896,321 l -896,324 l -896,327 l -896,329 l -896,332 l -896,335 l -895,338 l -895,341 l -895,343 l -895,346 l -894,349 l -894,352 l -893,354 l -893,357 l -892,360 l -891,362 l -890,365 l -890,368 l -889,370 l -888,373 l -887,375 l -886,378 l -885,381 l -883,383 l -882,386 l -881,388 l -696,388 l -698,386 l -699,383 l -700,381 l -701,378 l -702,375 l -703,373 l -704,370 l -705,368 l -706,365 l -707,362 l -707,360 l -708,357 l -709,354 l -709,352 l -710,349 l -710,346 l -710,343 l -711,341 l -711,338 l -711,335 l -711,332 l -711,329 l -711,327 l -711,324 l -711,321 l -711,318 l -711,316 l -710,313 l -710,310 l -710,307 l -709,305 l -709,302 l -708,299 l -707,297 l -707,294 l -706,291 l -705,289 l -704,286 l -703,283 l -702,281 l -701,278 l -700,276 l -699,273 l -698,271 l -696,268 l -881,268xe" onmouseover="UpdateTooltip(this,0,23)" onclick="OnShapeClick(0,23)" onfocus="UpdateTooltip(this,0,23);" onkeyup="OnShapeKey(0,23)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="All labels" origTitle="All labels"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -94,403 l 155,403 l 230,253 l -19,253 l -94,403xe" onmouseover="UpdateTooltip(this,0,24)" onclick="OnShapeClick(0,24)" onfocus="UpdateTooltip(this,0,24);" onkeyup="OnShapeKey(0,24)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="將選擇的 ip 位址轉換為 16進位表示" origTitle="將選擇的 ip 位址轉換為 16進位表示"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -57,-480 l 193,-480 l 193,-629 l -57,-629 l -57,-480xe" onmouseover="UpdateTooltip(this,0,27)" onclick="OnShapeClick(0,27)" onfocus="UpdateTooltip(this,0,27);" onkeyup="OnShapeKey(0,27)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -57,727 l 193,727 l 193,577 l -57,577 l -57,727xe" onmouseover="UpdateTooltip(this,0,29)" onclick="OnShapeClick(0,29)" onfocus="UpdateTooltip(this,0,29);" onkeyup="OnShapeKey(0,29)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="end" origTitle="end"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -3,996 l 139,996 l 140,996 l 142,995 l 143,995 l 145,995 l 146,995 l 147,995 l 149,994 l 150,994 l 152,993 l 153,993 l 154,992 l 155,991 l 157,991 l 158,990 l 159,989 l 160,988 l 161,987 l 162,986 l 163,985 l 164,984 l 165,983 l 166,982 l 167,981 l 168,980 l 168,979 l 169,977 l 170,976 l 170,975 l 171,974 l 171,972 l 172,971 l 172,969 l 172,968 l 173,967 l 173,965 l 173,964 l 173,962 l 173,961 l 173,960 l 173,958 l 173,957 l 172,955 l 172,954 l 172,953 l 171,951 l 171,950 l 170,949 l 170,947 l 169,946 l 168,945 l 168,943 l 167,942 l 166,941 l 165,940 l 164,939 l 163,938 l 162,937 l 161,936 l 160,935 l 159,934 l 158,933 l 157,933 l 155,932 l 154,931 l 153,931 l 152,930 l 150,930 l 149,929 l 147,929 l 146,928 l 145,928 l 143,928 l 142,928 l 140,928 l 139,928 l -3,928 l -4,928 l -6,928 l -7,928 l -9,928 l -10,928 l -11,929 l -13,929 l -14,930 l -15,930 l -17,931 l -18,931 l -19,932 l -20,933 l -22,933 l -23,934 l -24,935 l -25,936 l -26,937 l -27,938 l -28,939 l -29,940 l -30,941 l -31,942 l -32,943 l -32,945 l -33,946 l -34,947 l -34,949 l -35,950 l -35,951 l -36,953 l -36,954 l -36,955 l -36,957 l -37,958 l -37,960 l -37,961 l -37,962 l -37,964 l -37,965 l -36,967 l -36,968 l -36,969 l -36,971 l -35,972 l -35,974 l -34,975 l -34,976 l -33,977 l -32,979 l -32,980 l -31,981 l -30,982 l -29,983 l -28,984 l -27,985 l -26,986 l -25,987 l -24,988 l -23,989 l -22,990 l -20,991 l -19,991 l -18,992 l -17,993 l -15,993 l -14,994 l -13,994 l -11,995 l -10,995 l -9,995 l -7,995 l -6,995 l -4,996 l -3,996xe" onmouseover="UpdateTooltip(this,0,26)" onclick="OnShapeClick(0,26)" onfocus="UpdateTooltip(this,0,26);" onkeyup="OnShapeKey(0,26)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Parser default 檔裡的 label" origTitle="Parser default 檔裡的 label"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -563,-234 l -529,-234 l -529,-327 l -566,-327 l -566,-336 l -640,-336 l -640,-327 l -684,-327 l -684,-234 l -650,-234 l -650,-230 l -622,-230 l -615,-230 l -563,-230 l -563,-234xe" onmouseover="UpdateTooltip(this,0,33)" onclick="OnShapeClick(0,33)" onfocus="UpdateTooltip(this,0,33);" onkeyup="OnShapeKey(0,33)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Parser default 檔裡的 label" origTitle="Parser default 檔裡的 label"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m 744,75 l 778,75 l 778,-18 l 741,-18 l 741,-27 l 667,-27 l 667,-18 l 623,-18 l 623,75 l 657,75 l 657,79 l 685,79 l 693,79 l 744,79 l 744,75xe" onmouseover="UpdateTooltip(this,0,35)" onclick="OnShapeClick(0,35)" onfocus="UpdateTooltip(this,0,35);" onkeyup="OnShapeKey(0,35)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m 319,727 l 568,727 l 568,577 l 319,577 l 319,727xe" onmouseover="UpdateTooltip(this,0,39)" onclick="OnShapeClick(0,39)" onfocus="UpdateTooltip(this,0,39);" onkeyup="OnShapeKey(0,39)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="While client in CLIENTS is true" origTitle="While client in CLIENTS is true"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m 535,457 l 568,437 l 530,414 l 530,399 l 505,399 l 444,362 l 382,399 l 364,399 l 364,410 l 319,437 l 352,457 l 352,471 l 375,471 l 444,512 l 512,471 l 535,471 l 535,457xe" onmouseover="UpdateTooltip(this,0,40)" onclick="OnShapeClick(0,40)" onfocus="UpdateTooltip(this,0,40);" onkeyup="OnShapeKey(0,40)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="While client in CLIENTS is true" origTitle="While client in CLIENTS is true"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -226,73 l -193,53 l -231,30 l -231,15 l -256,15 l -317,-22 l -379,15 l -397,15 l -397,26 l -442,53 l -409,73 l -409,87 l -386,87 l -317,128 l -249,87 l -226,87 l -226,73xe" onmouseover="UpdateTooltip(this,0,44)" onclick="OnShapeClick(0,44)" onfocus="UpdateTooltip(this,0,44);" onkeyup="OnShapeKey(0,44)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:2040;height:2000;position:absolute" path=" m -442,587 l -193,587 l -193,437 l -442,437 l -442,587xe" onmouseover="UpdateTooltip(this,0,45)" onclick="OnShapeClick(0,45)" onfocus="UpdateTooltip(this,0,45);" onkeyup="OnShapeKey(0,45)"/> 
+
+</v:group>
+
+
+
+</div>
+
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/vml_1.js
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/vml_1.js	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/vml_1.js	(revision 21)
@@ -0,0 +1,221 @@
+
+function ViewMgrSetVMLLocation(pageID, shapeID, pinX, pinY)
+{
+	doc = parent.frmDrawing.document;
+	if (this.highlightDiv != null)
+	{
+		clickMenu ();
+
+		var VMLImage = this.s;
+
+		var imageLeft = 0;
+		var imageRight = imageLeft + VMLImage.pixelWidth;
+		var imageTop = 0;
+		var imageBottom = imageTop + VMLImage.pixelHeight;
+
+		var xLong = parent.ConvertXorYCoordinate(pinX, this.visBBoxLeft, this.visBBoxRight, imageLeft, imageRight, 0);
+		var yLong = parent.ConvertXorYCoordinate(pinY, this.visBBoxBottom, this.visBBoxTop, imageTop, imageBottom, 1);
+
+		xLong += doc.all['ConvertedImage'].style.posLeft;
+		yLong += doc.all['ConvertedImage'].style.posTop;
+
+		var arrowHalfWidth = viewMgr.highlightDiv.clientWidth / 2;
+		var arrowHeight = viewMgr.highlightDiv.clientHeight;
+
+		var boolNeedToScroll = false;
+
+		if( !( (xLong - arrowHalfWidth) > doc.body.scrollLeft && (xLong + arrowHalfWidth) < (doc.body.scrollLeft + doc.body.clientWidth) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( !( (yLong - arrowHeight) > doc.body.scrollTop && (yLong + arrowHeight) < (doc.body.scrollTop + doc.body.clientHeight) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( boolNeedToScroll == true )
+		{
+			window.scrollTo( xLong - doc.body.clientWidth / 2, yLong - doc.body.clientHeight / 2);
+		}
+		
+		this.highlightDiv.style.posLeft = xLong - arrowHalfWidth;
+		this.highlightDiv.style.posTop = yLong;
+		this.highlightDiv.style.visibility = "visible";
+
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 0 );
+		setTimeout( "parent.showObject(viewMgr.highlightDiv)", 1 );
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 2500 );
+	}
+}
+
+function VMLZoomChange(size)
+{
+	if(size)
+	{
+		if(size == "up")
+		{
+			size = zoomLast + 50;
+		}
+		else if(size == "down")
+		{
+			size = zoomLast - 50;
+		}
+		
+		size = parseInt(size);
+		if(typeof(size) != "number")
+			size = 100;
+	}
+	else
+	{
+		size = 100;
+	}
+
+	clickMenu ();
+
+	viewMgr.zoomLast = size;
+
+	var zoomFactor = size/100;
+
+	var width = this.s.pixelWidth;
+	var height = this.s.pixelHeight;
+
+	var margin = parseInt(document.body.style.margin) * 2;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+
+	var newScrollLeft = document.body.scrollLeft;
+	var newScrollTop = document.body.scrollTop;
+
+	var winwidth = clientWidth - margin;
+	var winheight = clientHeight - margin;
+
+	var widthRatio = winwidth / width;
+	var heightRatio = winheight / height;
+
+	if (widthRatio < heightRatio)
+	{
+		width = zoomFactor * winwidth;
+		height = width / this.origWH;
+	}
+	else
+	{
+		height = zoomFactor * winheight;
+		width = height * this.origWH;
+	}
+
+	this.s.pixelWidth = Math.max(width,1);
+	this.s.pixelHeight = Math.max(height,1);
+
+	this.sizeLast = size;
+
+	var centerX = (zoomFactor / viewMgr.zoomFactor) * (newScrollLeft + (clientWidth / 2) - this.s.posLeft);
+	var centerY = (zoomFactor / viewMgr.zoomFactor) * (newScrollTop + (clientHeight / 2) - this.s.posTop);
+
+	viewMgr.zoomFactor = zoomFactor;
+
+	if (width <= clientWidth)
+	{
+		this.s.posLeft = Math.max( 0, (clientWidth / 2) - (width / 2));
+	}
+	else
+	{
+		var left = centerX - (clientWidth / 2);
+		if ( left >= 0 )
+		{
+			this.s.posLeft = 0;
+			newScrollLeft = left;
+		}
+		else
+		{
+			this.s.posLeft = -left;
+			newScrollLeft = 0;
+		}
+	}
+
+	if (height <= clientHeight)
+	{
+		this.s.posTop = Math.max( 0, (clientHeight / 2) - (height / 2));
+	}
+	else
+	{
+		var top = centerY - (clientHeight / 2);
+		if ( top >= 0 )
+		{
+			this.s.posTop = 0;
+			newScrollTop = top;
+		}
+		else
+		{
+			this.s.posTop = -top;
+			newScrollTop = 0;
+		}
+	}
+
+	window.scrollTo(newScrollLeft, newScrollTop);
+
+	this.s.visibility = "visible";
+
+	var newXOffsetPercent = document.body.scrollLeft / this.s.pixelWidth;
+	var newYOffsetPercent = document.body.scrollTop / this.s.pixelHeight;
+	var newWidthPercent = document.body.clientWidth / this.s.pixelWidth;
+	var newHeightPercent = document.body.clientHeight / this.s.pixelHeight;
+
+	if (viewMgr.viewChanged)
+	{
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, newWidthPercent, newHeightPercent);
+	}
+
+	if (viewMgr.PostZoomProcessing)
+	{
+		viewMgr.PostZoomProcessing(size);
+	}
+}
+
+function VMLSetView (xOffsetPercent, yOffsetPercent)
+{
+	var leftPixelOffset = xOffsetPercent * this.s.pixelWidth;
+	var topPixelOffset = yOffsetPercent * this.s.pixelHeight;
+
+	window.scrollTo (leftPixelOffset - this.s.posLeft, topPixelOffset - this.s.posTop);
+
+	if (viewMgr.PostSetViewProcessing)
+	{
+		viewMgr.PostSetViewProcessing();
+	}
+}
+
+function VMLOnResize ()
+{
+	if (viewMgr.zoomLast == 100)
+	{
+		viewMgr.Zoom(100);
+	}
+
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newWidthPercent = document.body.clientWidth / image.style.pixelWidth;
+		var newHeightPercent = document.body.clientHeight / image.style.pixelHeight;
+
+		viewMgr.viewChanged (null, null, newWidthPercent, newHeightPercent);
+	}
+}
+
+function VMLOnScroll ()
+{
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newXOffsetPercent = document.body.scrollLeft / image.style.pixelWidth;
+		var newYOffsetPercent = document.body.scrollTop / image.style.pixelHeight;
+
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, null, null);
+	}
+}
+
+
+
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/widgets.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/widgets.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/widgets.htm	(revision 21)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>switch_pxe_flow_chart</title>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link href="visio.css" rel="stylesheet">
+<script src="keys.js" type="text/jscript" language="jscript"></script>
+<script src="find.js" type="text/jscript" language="jscript"></script>
+<script type="text/jscript" language="jscript">
+	
+	var imgMin = new Image();
+	imgMin.src = "minimize.gif";
+	
+	var imgMax = new Image();
+	imgMax.src = "maximize.gif";
+
+	var fileList = parent.g_FileList;
+	
+	function Widgets()
+	{
+		this.GoTo = null;
+		this.Search = null;
+		this.Details = null;
+		this.PNZ = null;
+
+		this.divCount = 0;
+		
+		this.OpenText = "全部摺疊";
+		this.OpenAlt = "全部摺疊";
+		this.ClosedText = "全部展開";
+		this.ClosedAlt = "全部展開";
+
+		this.Display = "";
+		this.Img = imgMin;
+		this.Text = this.OpenText;
+		this.Alt = this.OpenAlt;
+		
+		this.ToggleAll = ToggleAll;
+		this.ToggleWidget = ToggleWidget;
+		this.Add = Add;
+	}		
+
+	function Add(div, name)
+	{
+		tmpStr = "this." + name + " = new Widget(div);"
+		eval(tmpStr);
+		var thisWidget = eval("this." + name);
+	}
+
+	function Widget(div)
+	{
+		return div;
+	}	
+
+	function ToggleAll()
+	{
+		var OpenCloseFunc = Widget;
+
+		if(this.Display == "")
+		{
+			this.Display = "none";
+			this.Img = imgMax;
+			this.Text = this.ClosedText;
+			this.Alt = this.ClosedAlt;
+			expparent00.title = this.ClosedAlt;
+			OpenCloseFunc = CloseWidget;
+		}
+		else
+		{
+			this.Display = "";
+			this.Img = imgMin;
+			this.Text = this.OpenText;
+			this.Alt = this.OpenAlt;
+			expparent00.title = this.OpenAlt;
+			OpenCloseFunc = OpenWidget;
+		}
+		exp00.src = this.Img.src;	
+		textExp.innerText = this.Text;
+		exp00.alt = this.Alt;
+	
+		if(this.GoTo)
+		{
+			OpenCloseFunc(this.GoTo)
+		}
+		if(this.Search)
+		{
+			OpenCloseFunc(this.Search)
+		}
+		if(this.Details)
+		{
+			OpenCloseFunc(this.Details)
+		}
+		if(this.PNZ)
+		{
+			OpenCloseFunc(this.PNZ)
+		}
+	}
+
+	function ToggleNav()
+	{
+		if(divCollapsedNav.style.display == "none")
+		{
+			divCollapsedNav.style.display = "";
+			divOpenNav.style.display = "none";
+			parent.frmstOuter.cols = "20,*"
+			parent.document.all ('frmToolbar').noResize = true;
+		}
+		else
+		{
+			divOpenNav.style.display = "";
+			divCollapsedNav.style.display = "none";
+			parent.frmstOuter.cols = "237,*"
+			parent.document.all ('frmToolbar').noResize = false;
+		}
+	}
+	
+	function ToggleWidget(div)
+	{
+		if(div.style.display == "none")
+		{
+			OpenWidget(div);
+		}
+		else
+		{
+			CloseWidget(div);
+		}
+	}
+
+	function OpenWidget(div)
+	{
+		document.all(div.img).src = imgMin.src;
+		div.style.display = "";
+		document.all(div.img).alt = div.openAlt;
+		document.all(div.img + "1").title = div.openAlt;
+		document.all(div.img + "2").title = div.openAlt;
+	}
+
+	function CloseWidget(div)
+	{
+		document.all(div.img).src = imgMax.src;
+		div.style.display = "none";
+		document.all(div.img).alt = div.closedAlt;
+		document.all(div.img + "1").title = div.closedAlt;
+		document.all(div.img + "2").title = div.closedAlt;
+	}
+
+	function load()
+	{
+		parent.g_WidgetsLoaded = true;
+
+		if (parent.g_LoadingWidgets)
+		{
+			parent.g_LoadingWidgets = false;
+			parent.location.reload();
+		}
+	}
+
+	function unload()
+	{
+		parent.g_LoadingWidgets = true;
+	}
+	
+		
+	var widgets = new Widgets();
+
+</script>
+
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divOpenNav" class="nav">
+
+	<table id="tabToc" width="100%" class="navTocColor" style="margin-bottom:1px;" cellspacing="0" cellpadding="0" border="0" height="20" dir=ltr>
+	<tr>
+	<td width="2"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" id="linkNavOpen"><img src="toc.gif" alt="摺疊巡覽框架" width="22" height="17" border="0"></a></td>
+	<td><p class="p1"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" class="a1">隱藏</a></p></td>
+	<td align="right"><p class="p1"><a href="javascript:widgets.ToggleAll()" id="textExp" class="a1">全部摺疊</a></p></td>
+	<td width="2">
+		<div style="padding:2pt,1.5pt,0pt,0pt"><a href="javascript:widgets.ToggleAll()" title="全部摺疊" id="expparent00"><img id="exp00" alt="全部摺疊" src="minimize.gif" width="15" height="15" border="0"></a></div>
+	</td>
+	</tr>
+	</table>
+	
+	
+
+	
+	<div id="divPNZ" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp41" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><p class="label">全景和縮放</p></a></td>
+				<td width="15"><a id="exp42" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><img id="exp4" alt="摺疊全景和縮放" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hidePNZ" style="text-align:right;" img="exp4" class="hiderScroll" openAlt="摺疊全景和縮放" closedAlt="展開全景和縮放">
+				<table width="220" border="0" cellpadding="0" cellspacing="0">
+				<tr>
+				<td align="center" valign="middle">
+					<iframe title="全景和縮放視窗" longdesc="全景和縮放視窗" id="ifrmPNZ" src="zoom.htm" width="170" height="170" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="border: #cccccc 1px solid;"></iframe>
+				</td>
+					
+				<td>
+					<table id="tabScale" width="17" cellspacing="0" cellpadding="0" border="0">
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放頁面至 100%"><img src="fullpage.gif" alt="縮放頁面至 100%" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(1);" title="拉近"><img src="panplus.gif" alt="拉近" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(500);" title="縮放成 500%"><img id="t500" src="tick-off.gif" alt="縮放成 500%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(450);" title="縮放成 450%"><img id="t450" src="tick-off.gif" alt="縮放成 450%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(400);" title="縮放成 400%"><img id="t400" src="tick-off.gif" alt="縮放成 400%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(350);" title="縮放成 350%"><img id="t350" src="tick-off.gif" alt="縮放成 350%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(300);" title="縮放成 300%"><img id="t300" src="tick-off.gif" alt="縮放成 300%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(250);" title="縮放成 250%"><img id="t250" src="tick-off.gif" alt="縮放成 250%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(200);" title="縮放成 200%"><img id="t200" src="tick-off.gif" alt="縮放成 200%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(150);" title="縮放成 150%"><img id="t150" src="tick-off.gif" alt="縮放成 150%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放成 100%" id="a100"><img id="t100" src="tick-on.gif" alt="縮放成 100%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(50);" title="縮放成 50%"><img id="t50" src="tick-off.gif" alt="縮放成 50%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(10);" title="縮放成 10%"><img id="t10" src="tick-off.gif" alt="縮放成 10%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(-1);" title="拉遠"><img src="panminus.gif" alt="拉遠" border="0"></a></td></tr>
+					</table>
+				</td>
+				</tr>
+				</table>
+			</div>			
+		</td></tr>
+		</table>
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hidePNZ, "PNZ");
+
+			var zoomLevels = new Array(10, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500);
+
+			var tickOff = new Image();
+			tickOff.src = "tick-off.gif";
+			
+			var tickFoc = new Image();
+			tickFoc.src = "tick-foc.gif";
+			
+			var tickOn = new Image();
+			tickOn.src = "tick-on.gif";
+
+			function tickFocus()
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickFoc.src;
+				}
+			}			
+			
+			function tickBlur(percentZoom)
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickOff.src;
+				}
+			}
+
+			function tickSelect(percentZoom)
+			{
+				if (parent.viewMgr &&
+					parent.viewMgr.Zoom)
+				{
+					changeTick(percentZoom);
+					parent.viewMgr.Zoom(percentZoom);					
+				}
+
+				if(frames.item(0).zoomRectDiv)
+				{
+					frames.item(0).g_width = parseInt(frames.item(0).zoomRectDiv.style.pixelWidth) 
+					frames.item(0).g_height = parseInt(frames.item(0).zoomRectDiv.style.pixelHeight)
+					frames.item(0).g_newLeft = parseInt(frames.item(0).zoomRectDiv.style.left)
+					frames.item(0).g_newTop = parseInt(frames.item(0).zoomRectDiv.style.top)
+				}
+			}
+
+			function changeTick(percentZoom)
+			{
+				img = elemScale.all("t" + percentZoom);
+									
+				img.src = tickOn.src;
+				
+				if(elemScale.tickSelected && elemScale.tickSelected != img)
+				{
+					elemScale.tickSelected.src = tickOff.src;
+				}
+				elemScale.tickSelected = img;
+			}
+			
+			function ZoomUpDown(increment)
+			{
+				if (elemScale.tickSelected)
+				{
+					var curZoomLevel = elemScale.tickSelected.id.substring (1);
+					var newZoomLevelIndex = IndexFromLevel (curZoomLevel * 1.0);
+					if (newZoomLevelIndex >= 0)
+					{
+						var img = elemScale.all("t" + zoomLevels[newZoomLevelIndex + increment]);
+						if (img)
+						{
+							tickSelect(img.id.substring(1));
+						}
+					}
+				}
+				else
+				{
+					tickSelect (100);
+				}
+			}
+
+			function IndexFromLevel (zoomLevel)
+			{
+				for (var count = 0; count < zoomLevels.length; count++)
+				{
+					if (zoomLevels[count] == zoomLevel)
+					{
+						return count;
+					}
+				}
+
+				return -1;
+			}
+			
+			elemScale = document.all("tabScale");
+			if(elemScale)
+			{
+				elemScale.onmouseover = tickFocus;
+				elemScale.onmouseout = tickBlur;
+			}
+		</script>
+	</div>
+
+	
+	<div id="divDetails" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp21" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><p class="label">詳細資料</p></a></td>
+				<td width="15"><a id="exp22" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><img id="exp2" alt="摺疊詳細資料" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hideDetails" class="hiderScroll" img="exp2" openAlt="摺疊詳細資料" closedAlt="展開詳細資料">
+				<P class="p2" class="detsPara">CTRL+按一下繪圖中的圖形以檢視詳細資料。</P>
+			</div>
+		</td></tr>
+		</table>		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideDetails, "Details");
+			widgets.divCount++;
+		
+		</script>
+	</div>
+
+	
+	<div id="divSearch" class="holder">
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor" dir=ltr>
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp11" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><p class="label">搜尋頁</p></a></td>
+				<td width="15"><a id="exp12" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><img src="minimize.gif" id="exp1" alt="摺疊搜尋頁面" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+
+		</td></tr>
+		<tr><td>	
+
+			<div id="hideSearch" img="exp1" class="hiderScroll" openAlt="摺疊搜尋頁面" closedAlt="展開搜尋頁面">
+								<form name=theForm onsubmit="FindOnClick(); return false;" ID="Form1">
+									<table width="100%" cellspacing="0" cellpadding="3" border="0">
+									<tr>
+									<td width="100%">
+										<input class="formText" type="text" name="findString" maxlength="255" size="26" title="輸入要搜尋的文字。按 Enter 開始搜尋。">
+									</td>
+									<td width="18" class="gobutton">
+										<input type="image" src="go.gif" alt="開始搜尋" width="18" height="18" ID="GoButton" NAME="GoButton">
+									</td>
+									</tr>
+									<tr>
+									<td colspan="2" class="p2">
+										<a href="javascript:{};" tabindex="0" onclick="TogglePlus(hideAdvSrch,as0);" class="blu1"><img src="plus.gif" alt="顯示/隱藏進階搜尋選項" border="0" id="as0">進階</a>
+											<div id="hideAdvSrch" class="hiderScroll" style="display:none;">
+												<b>搜尋依據:</b>
+												<div id="divS"></div>
+											</div>
+										<hr width="100%" size="1" color="#cccccc">
+										<div id="hideResults" class="hiderScroll" style="display:none;"></div>
+									</td>
+									</tr>
+									</table>
+								</form>
+			</div>					
+
+		</td></tr>
+		</table>
+		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideSearch, "Search");
+			widgets.divCount += 2;
+			
+			makeAdvancedFindCheckboxes(divS);
+			
+			
+			var imgPlus = new Image();
+			imgPlus.src = "plus.gif";
+	
+			var imgMinus = new Image();
+			imgMinus.src = "minus.gif";
+			
+			function TogglePlus(div, img, container)
+			{
+				if(typeof(img) == "string")	
+					img = document.all(img)
+				if(typeof(div) == "string")
+					div = document.all(div)
+					
+				widget = widgets.Search;
+				if(div && img)
+				{
+					if(div.style.display == "none")
+					{
+						div.style.display = "";
+						img.src = imgMinus.src;
+						div.open = "true";
+					}
+					else
+					{
+						div.style.display = "none";
+						img.src = imgPlus.src;
+						
+						div.open = "false";
+					}
+				}
+			}
+		
+		</script>
+	</div>
+
+
+</div>
+
+<div id="divCollapsedNav" class="navTocColor" style="display:none;width:100%;height:100%;">
+	<a href="javascript:ToggleNav();" title="展開巡覽框架" id="linkNavClosed"><img src="toc2.gif" alt="展開巡覽框架" border="0"></a>
+</div>	
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.files/zoom.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.files/zoom.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.files/zoom.htm	(revision 21)
@@ -0,0 +1,990 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script type="text/jscript" language="jscript">
+
+var BUFFER = 1;
+
+function zoomObject()
+{
+	this.PZImgRatio			= null;
+	
+	this.zoomWinHeight		= null;
+	this.zoomWinWidth		= null;
+	this.zoomWinTop			= null;
+	this.zoomWinLeft		= null;
+	
+	this.scaleFactor		= null;
+	
+	this.updateContent		= zObj_updateContent;
+	this.doOnBodyResize		= zObj_doOnBodyResize;
+	this.clipZoomRect		= zObj_clipZoomRect;
+}
+
+var g_thumbHeight = window.clientHeight;
+var g_thumbWidth = window.clientWidth;
+zoomObj = new zoomObject();
+
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+	}
+	return divObject;
+}
+
+function zObj_updateContent( win_width, win_height, VMLDiv_left, VMLDiv_top, VMLDiv_width, VMLDiv_height )
+{
+	this.mainWinWidth		= win_width;
+	this.mainWinHeight		= win_height;
+
+	this.mainImgRatio = VMLDiv_height / VMLDiv_width;
+	this.doOnBodyResize();
+}
+
+function zObj_doOnBodyResize()
+{
+	return;
+}
+
+function zObj_clipZoomRect( objectToClip )
+{
+	if( objectToClip == null )
+	{
+		objectToClip = zoomRectObj;
+	}
+	
+	var clipTop		= ( objectToClip.style.posTop < (g_thumbTop) )	? (g_thumbTop - objectToClip.style.posTop)	: 0;
+	var clipLeft	= ( objectToClip.style.posLeft < (g_thumbLeft) )	? (g_thumbLeft - objectToClip.style.posLeft)	: 0;
+	var clipBottom	= ( (objectToClip.style.posHeight - clipTop) > (g_thumbTop + g_thumbHeight + 2 * BUFFER) ) ? (g_thumbHeight + clipTop + BUFFER) : objectToClip.style.posHeight;
+	var clipRight	= 0;
+	if( (this.zoomWinWidth - clipLeft) > (g_thumbLeft + g_thumbWidth) )
+	{
+		if( clipLeft == 0 )
+		{
+			clipRight = g_thumbWidth - objectToClip.style.posLeft + 2 * BUFFER;
+		}
+		else
+		{
+			clipRight = (g_thumbWidth + clipLeft + BUFFER);
+		}
+	}
+	else
+	{
+		clipRight = objectToClip.style.posWidth;
+	}
+	clipTo( objectToClip, clipTop, clipRight, clipBottom, clipLeft);
+}
+
+function findContent()
+{
+	zoomRectDiv.style.display = "none";
+	newZoomWindowDiv.style.display = "none";
+
+	if (parent.parent.frmDrawing && parent.parent.viewMgr)
+	{
+		var viewMgr = parent.parent.viewMgr;
+
+		var getPNZ = parent.parent.viewMgr.getPNZ;
+		if (getPNZ)
+		{
+			var tmp = parent.parent.frmDrawing;
+
+			divThumb = document.all("divThumbnail");
+
+			if (divThumb.innerHTML.length == 0)
+			{
+				divThumb.innerHTML = getPNZ();
+			}
+			else
+			{
+				var pnzInfo = getPNZ();
+				var idIndex = pnzInfo.indexOf("ConvertedImage");
+				if (idIndex >= 0)
+				{
+					var test = pnzInfo;
+					pnzInfo = test.substring (0, idIndex);
+					pnzInfo += "Temp";
+					pnzInfo += test.substring (idIndex, test.length);
+
+					divTempThumbnail.innerHTML = pnzInfo;
+
+					var vmlGroup = divThumbnail.childNodes(0);
+					var vmlTempGroup = divTempThumbnail.childNodes(0);
+					CopyVMLAttrs(vmlGroup, vmlTempGroup);
+					
+					var vmlShape = vmlGroup.childNodes(1);
+					var vmlTempShape = vmlTempGroup.childNodes(1);
+					CopyVMLAttrs(vmlShape, vmlTempShape);
+
+					CopyVMLAttrs(vmlGroup.childNodes(0), vmlTempGroup.childNodes(0));
+					
+					var vmlImageData = vmlShape.childNodes(0);
+					var vmlTempImageData = vmlTempShape.childNodes(0);
+					CopyVMLImageData(vmlImageData, vmlTempImageData);
+				}
+			}
+
+			zoomRectObj = document.all("zoomRectDiv");
+			showObject( zoomRectObj );
+
+			PNZimg = document.all("ConvertedImage");
+			if (PNZimg)
+			{
+				PNZimg.style.left = 0;
+				PNZimg.style.top = 0;
+
+				if (PNZimg.style.pixelWidth > PNZimg.style.pixelHeight)
+				{
+					var oldWidth = PNZimg.style.pixelWidth;
+					PNZimg.style.width = document.body.clientWidth;
+					PNZimg.style.height = (document.body.clientWidth / oldWidth) * PNZimg.style.pixelHeight;
+
+					divThumb.style.top = (document.body.clientHeight - parseInt(PNZimg.style.height)) / 2;
+					divThumb.style.left = 0;
+				}
+				else
+				{
+					var oldHeight = PNZimg.style.pixelHeight;
+					PNZimg.style.height = document.body.clientHeight;
+					PNZimg.style.width = (document.body.clientHeight / oldHeight) * PNZimg.style.pixelWidth;
+
+					divThumb.style.left = (document.body.clientWidth - parseInt(PNZimg.style.width)) / 2;
+					divThumb.style.top = 0;
+				}
+
+				PNZimg.style.visibility = "visible";
+
+				var strOutput = divThumb.innerHTML;
+				if (strOutput.length > 0)
+				{
+					var tmp2 = document.all['ConvertedImage'];
+					zoomObj.updateContent( tmp.document.body.clientWidth, tmp.document.body.clientHeight, parseInt(tmp2.style.left), parseInt(tmp2.style.top), parseInt(tmp2.clientWidth), parseInt(tmp2.clientHeight) );
+
+					viewMgr.viewChanged = PageViewChanged;
+				}
+			}
+		}
+	}
+}
+
+function CopyVMLAttrs(vmlObjDst, vmlObjSrc)
+{
+	if (vmlObjDst != null && vmlObjSrc != null)
+	{
+		vmlObjDst.style.cssText = vmlObjSrc.style.cssText;
+	}
+}
+
+function CopyVMLImageData(vmlImageDataDst, vmlImageDataSrc)
+{
+	if (vmlImageDataDst != null && vmlImageDataSrc != null)
+	{
+		vmlImageDataDst.src = vmlImageDataSrc.src;
+	}
+}
+
+function setZoomRectCursor()
+{
+	var x = getMouseXcoord() - zoomObj.zoomWinLeft;
+	var y = getMouseYcoord() - zoomObj.zoomWinTop;
+
+	var rbw = 5;
+
+	var newCursor	= "";
+	if( y > (zoomObj.zoomWinHeight - rbw) )
+		newCursor = "s"
+	else if( y < rbw )
+		newCursor = "n";
+		
+	if( x < rbw )
+		newCursor += "w";
+	else if( x > (zoomObj.zoomWinWidth - rbw) )
+		newCursor += "e";
+
+	if( newCursor != "" )
+		zoomRectObj.style.cursor = newCursor + "-resize";
+	else
+		zoomRectObj.style.cursor = "move";
+}
+
+function startZoomRectDrag()
+{
+	var currentCursor = zoomRectObj.style.cursor;
+
+	if( currentCursor.indexOf( '-' ) != -1 )
+	{
+		g_resizeDirection = currentCursor.split( '-' )[0];
+		startDrag( 'zoomRectDiv', doResizeZoomRectDrag, stopResizeZoomRectDrag );
+	}
+	else
+	{
+		startDrag( 'zoomRectDiv', doZoomRectDrag, stopZoomRectDrag );
+	}
+}
+
+function doZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var rectLeft = parseInt(dragObj.divObject.style.left);
+	var rectTop = parseInt(dragObj.divObject.style.top);
+	var rectWidth = parseInt(dragObj.divObject.style.width);
+	var rectHeight = parseInt(dragObj.divObject.style.height);
+
+	var xOffset = 0;
+	var yOffset = 0;
+
+	var xPercent = 0;
+	var yPercent = 0;
+
+	var pnzImgLeft = parseInt(divThumbnail.style.left);
+	var pnzImgTop = parseInt(divThumbnail.style.top);
+	var pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+	var pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+		
+	xOffset = x + dragObj.xOffset - pnzImgLeft;
+	xPercent = xOffset / pnzImgWidth;
+
+	yOffset = y + dragObj.yOffset - pnzImgTop;
+	yPercent = yOffset / pnzImgHeight;
+
+	if (xOffset < 0)
+	{
+		xPercent = 0;
+		xOffset = pnzImgLeft - BUFFER;
+	}
+	else if (xOffset + rectWidth > pnzImgWidth)
+	{
+		xPercent = 1;
+		xOffset = pnzImgLeft + pnzImgWidth - rectWidth + BUFFER;
+	}
+	else
+	{
+		xOffset = x + dragObj.xOffset;
+	}
+
+	if (yOffset < 0)
+	{
+		yPercent = 0;
+		yOffset = pnzImgTop - BUFFER;
+	}
+	else if (yOffset + rectHeight > pnzImgHeight)
+	{
+		yPercent = 1;
+		yOffset = pnzImgTop + pnzImgHeight - rectHeight + BUFFER;
+	}
+	else
+	{
+		yOffset = y + dragObj.yOffset;
+	}
+
+	if (parent.parent.viewMgr.setView)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	setZWinSize (null, null, xOffset, yOffset);
+}
+
+function stopZoomRectDrag(dragObj, x, y)
+{
+	var el = window.event.srcElement;
+	g_newLeft = parseInt(el.style.left);
+	g_newTop = parseInt(el.style.top);
+}
+
+function setZWinSize( newWidth, newHeight, newLeft, newTop )
+{
+	if( newWidth != null && newWidth >= 0 ) 
+	{
+		zoomObj.zoomWinWidth = newWidth;
+		zoomRectObj.style.width = newWidth;
+	}
+
+	if( newHeight != null && newHeight >= 0 ) 
+	{
+		zoomObj.zoomWinHeight = newHeight;
+		zoomRectObj.style.height = newHeight;
+	}
+
+	if( newLeft != null && newLeft >= 0 )
+	{
+		zoomObj.zoomWinLeft = newLeft;
+		zoomRectObj.style.left = newLeft;
+	}
+
+	if( newTop != null && newTop >= 0 )
+	{
+		zoomObj.zoomWinTop = newTop;
+		zoomRectObj.style.top= newTop;
+	}
+}
+
+function doResizeZoomRectDrag(dragObj, x, y)
+{
+	var newWidth	= null;
+	var newHeight	= null;
+	var newLeft		= null;
+	var newTop		= null;
+		
+	var tmp = parent.parent.frmDrawing;
+	if (tmp)
+	{
+		zoomObj.mainWinWidth		= tmp.document.body.clientWidth;
+		zoomObj.mainWinHeight		= tmp.document.body.clientHeight;
+	}
+
+	var widthHeightRatio = zoomObj.mainWinWidth / zoomObj.mainWinHeight;
+	
+	var minimumSize = 10;
+	if( g_resizeDirection == 'e' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'w' )
+	{
+		newWidth	= zoomObj.zoomWinWidth + zoomObj.zoomWinLeft - x;
+		if( newWidth > minimumSize )
+		{
+			newHeight	= newWidth / widthHeightRatio;
+			newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+			newLeft		= x;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+
+	if( g_resizeDirection == 'se' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 's' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'sw' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+	
+	if( g_resizeDirection == 'n' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'ne' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'nw' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+}
+
+function stopResizeZoomRectDrag(dragObj, x, y)
+{
+	PNZimg = document.all("ConvertedImage");
+
+	var xWidthPercent = parseInt(zoomRectDiv.style.width) / PNZimg.style.pixelWidth;
+	var yHeightPercent = parseInt(zoomRectDiv.style.height) / PNZimg.style.pixelHeight;
+
+	var newZoomLevel = GetZoomLevel (xWidthPercent, yHeightPercent);
+
+	if (parent.parent.viewMgr.Zoom)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostZoomProcessing = PostZoomProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.Zoom (newZoomLevel);
+	}
+
+	g_width = parseInt(zoomRectDiv.style.pixelWidth);
+	g_height = parseInt(zoomRectDiv.style.pixelHeight);
+	g_newLeft = parseInt(zoomRectDiv.style.left);
+	g_newTop = parseInt(zoomRectDiv.style.top);
+}
+
+function GetZoomLevel (xWidthPercent, yHeightPercent)
+{
+	var newZoomLevel;
+	if (xWidthPercent < yHeightPercent)
+	{
+		newZoomLevel = 100 / xWidthPercent;
+	}
+	else
+	{
+		newZoomLevel = 100 / yHeightPercent;
+	}
+
+	return newZoomLevel;
+}
+
+function PostZoomProcessing (newZoomLevel)
+{
+	var xOffset = parseInt(zoomRectDiv.style.left) - parseInt(divThumbnail.style.left);
+	var yOffset = parseInt(zoomRectDiv.style.top) - parseInt(divThumbnail.style.top);
+
+	var xPercent = xOffset / PNZimg.style.pixelWidth;
+	var yPercent = yOffset / PNZimg.style.pixelHeight;
+
+	var viewMgr = parent.parent.viewMgr;
+	viewMgr.ChangingView = true;
+
+	if (viewMgr.setView)
+	{
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	SetCorrectTick (newZoomLevel);
+
+	viewMgr.PostZoomProcessing = null;
+}
+
+function SetCorrectTick (newZoomLevel)
+{
+	var zoomLevels = parent.zoomLevels;
+	if (newZoomLevel <= zoomLevels[0])
+	{
+		parent.changeTick(zoomLevels[0]);
+	}
+	else if (newZoomLevel >= zoomLevels[zoomLevels.length - 1])
+	{
+		parent.changeTick(zoomLevels[zoomLevels.length - 1]);
+	}
+	else
+	{
+		for (var count = 0; count < zoomLevels.length - 1; count++)
+		{
+			var deltaDown = newZoomLevel - zoomLevels[count];
+			var deltaUp = newZoomLevel - zoomLevels[count + 1];
+			if (deltaDown >= 0 && deltaUp <= 0)
+			{
+				if (Math.abs(deltaDown) < Math.abs(deltaUp))
+				{
+					parent.changeTick(zoomLevels[count]);
+					break;
+				}
+				else
+				{
+					parent.changeTick(zoomLevels[count + 1]);
+					break;
+				}
+			}
+		}
+	}
+}
+
+function PostSetViewProcessing ()
+{
+	parent.parent.viewMgr.ChangingView = false;
+	parent.parent.viewMgr.PostSetViewProcessing = null;
+}
+
+function startNewZoomRectDrag()
+{
+	var x = getMouseXcoord();
+	var y = getMouseYcoord();
+	zoomObj.newZWinStartX = x;
+	zoomObj.newZWinStartY = y;
+	
+	g_newZWinObjRef = document.all("newZoomWindowDiv");
+	g_newZWinObjRef.style.display = "";
+
+	startDrag( 'zoomRectDiv', doNewZoomRectDrag, stopNewZoomRectDrag );
+}
+
+function doNewZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var width	= Math.abs( zoomObj.newZWinStartX - x );
+	var height	= Math.abs( zoomObj.newZWinStartY - y );
+
+	var aspectRatio = parent.parent.viewMgr.docDrawing.body.clientWidth / parent.parent.viewMgr.docDrawing.body.clientHeight;
+
+	if( width < (aspectRatio * height))
+	{
+		width = (aspectRatio) * height;
+	}
+	else
+	{
+		height = width / (aspectRatio);
+	}
+
+	width = Math.min (width, parseInt(PNZimg.style.pixelWidth));
+	height = Math.min (height, parseInt(PNZimg.style.pixelHeight));
+
+	var left = (x > zoomObj.newZWinStartX) ? zoomObj.newZWinStartX : zoomObj.newZWinStartX - width;
+	var top  = (y > zoomObj.newZWinStartY) ? zoomObj.newZWinStartY : zoomObj.newZWinStartY - height;
+
+	newZoomWindowDiv.style.top = top;
+	newZoomWindowDiv.style.left = left;
+	newZoomWindowDiv.style.height = height;
+	newZoomWindowDiv.style.width = width;
+	newZoomWindowDiv.style.visibility = "visible";
+
+	zoomObj.zoomWinLeft		= left;
+	zoomObj.zoomWinWidth	= width;
+	zoomObj.zoomWinTop		= top;
+	zoomObj.zoomWinHeight	= height;
+}
+
+function stopNewZoomRectDrag(dragObj, x, y)
+{
+	newZoomWindowDiv.style.visibility = "hidden";
+
+	if (parseInt (newZoomWindowDiv.style.width) > 10 && 
+		parseInt (newZoomWindowDiv.style.height) > 10)
+	{
+		zoomRectDiv.style.top = newZoomWindowDiv.style.top;
+		zoomRectDiv.style.left = newZoomWindowDiv.style.left;
+		zoomRectDiv.style.height = newZoomWindowDiv.style.height;
+		zoomRectDiv.style.width = newZoomWindowDiv.style.width;
+
+		stopResizeZoomRectDrag(dragObj,x,y);
+		zoomRectDiv.style.display = "inline";
+		zoomRectDiv.style.visibility = "visible";
+	}
+	else
+	{
+		zoomObj.zoomWinLeft		= parseInt(zoomRectDiv.style.left);
+		zoomObj.zoomWinWidth	= parseInt(zoomRectDiv.style.width);
+		zoomObj.zoomWinTop		= parseInt(zoomRectDiv.style.top);
+		zoomObj.zoomWinHeight	= parseInt(zoomRectDiv.style.height);
+	}
+
+	newZoomWindowDiv.style.height = "0px";
+	newZoomWindowDiv.style.width = "0px";
+
+	newZoomWindowDiv.style.display = "none";
+}
+
+var g_lastX = 0;
+var g_lastY = 0;
+
+document.onmousedown = mouseDown;
+document.onmousemove = mouseMove;
+document.onmouseup = mouseUp;
+document.onmouseout = mouseOut;
+
+function mouseDown()
+{
+	return true;
+}
+
+function mouseMove()
+{
+	var x = event.clientX + document.body.scrollLeft;
+	var y = event.clientY + document.body.scrollTop;
+
+	g_lastX = x;
+	g_lastY = y;
+	
+	doDrag( x, y );
+	return true;
+}
+
+function mouseUp() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+	
+	stopDrag(null,x,y);
+	return true;
+}
+
+function mouseOut() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+
+	if( x < 0 ) x = -1;
+	if( x >= document.body.clientWidth ) x = -1;
+		
+	if( y < 0 ) y = -1;
+	if( y >= document.body.clientHeight ) y = -1;
+
+	if( x == -1 || y == -1 )
+	{
+		x = -1;
+		y = -1;
+	}
+	
+
+	if( x == -1 )
+		stopDrag( null, x, y );
+	return true;
+}
+
+function getMouseXcoord()
+{
+	return event.x + document.body.scrollLeft;
+}
+
+function getMouseYcoord()
+{
+	return event.y + document.body.scrollTop;
+}
+
+var g_width		= -1;
+var g_height	= -1;
+var g_newLeft	= -1;	
+var g_newTop	= -1;
+		
+var g_pnzImgWidth = -1;
+var g_pnzImgHeight = -1;
+var g_pnzImgLeft = -1;
+var g_pnzImgTop = -1;
+
+function keydown()
+{
+	var key = window.event.keyCode;
+	var el = window.event.srcElement;
+
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{
+		if(g_width == -1)
+			g_width		= parseInt(el.style.pixelWidth);
+			
+		if(g_height == -1)
+			g_height		= parseInt(el.style.pixelHeight);
+			
+		if(g_newLeft == -1)
+			g_newLeft		= parseInt(el.style.left);	
+		
+		if(g_newTop == -1)
+			g_newTop		= parseInt(el.style.top);
+		
+		if(g_pnzImgWidth == -1)
+			g_pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+			
+		if(g_pnzImgHeight == -1)
+			g_pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+			
+		if(g_pnzImgLeft == -1)
+			g_pnzImgLeft = parseInt(divThumbnail.style.left);
+			
+		if(g_pnzImgTop == -1)
+			g_pnzImgTop = parseInt(divThumbnail.style.top);
+	
+
+		if(key == 37)	
+		{
+			g_newLeft -= 1;
+			if(g_newLeft < g_pnzImgLeft)
+			{
+				g_newLeft = g_pnzImgLeft;
+			}	
+		}
+		else if(key == 38)	
+		{
+			g_newTop -= 1;
+			if(g_newTop < g_pnzImgTop)
+			{
+				g_newTop = g_pnzImgTop;
+			}	
+		}
+		else if(key == 39)	
+		{
+			g_newLeft += 1;
+			if(g_newLeft + g_width > g_pnzImgLeft + g_pnzImgWidth)
+			{
+				g_newLeft = g_pnzImgLeft + g_pnzImgWidth - g_width;		
+			}
+		}
+		
+		else if(key == 40)	
+		{
+			g_newTop += 1;
+			if(g_newTop + g_height > g_pnzImgTop + g_pnzImgHeight)
+			{
+				g_newTop = g_pnzImgTop + g_pnzImgHeight - g_height;		
+			}
+		}
+		
+		setZoomRectCursor();
+
+		var xOffset = g_newLeft - g_pnzImgLeft;
+		var yOffset = g_newTop - g_pnzImgTop;
+		
+		var xPercent = xPercent = xOffset / g_pnzImgWidth;
+		var yPercent = yPercent = yOffset / g_pnzImgHeight;
+
+		if (xOffset < 0)
+		{
+			xPercent = 0;
+			xOffset = g_pnzImgLeft;
+		}
+		else if (xOffset + g_width > g_pnzImgWidth)
+		{
+			xPercent = 1;
+			xOffset = g_pnzImgLeft + g_pnzImgWidth - g_width;
+		}
+
+		if (yOffset < 0)
+		{
+			yPercent = 0;
+			yOffset = g_pnzImgTop;
+		}
+		else if (yOffset + g_height > g_pnzImgHeight)
+		{
+			yPercent = 1;
+			yOffset = g_pnzImgTop + g_pnzImgHeight - g_height;
+		}
+
+		if (parent.parent.viewMgr.setView)
+		{
+			var viewMgr = parent.parent.viewMgr;
+			viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+			viewMgr.ChangingView = true;
+			viewMgr.setView (xPercent, yPercent);
+		}	
+		setZWinSize (null, null, g_newLeft, g_newTop);
+	}
+}
+
+function keyup()
+{
+	var key = window.event.keyCode;
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{		
+		el = window.event.srcElement;
+	}
+}
+
+function dragObject( divID, divObject, xOffset, yOffset, dragFunctionPointer, dragStopFunctionPointer )
+{
+	this.divID			= divID;
+	this.divObject		= divObject;
+	this.xOffset		= xOffset;
+	this.yOffset		= yOffset;
+	this.dragFPtr		= dragFunctionPointer;
+	this.dragStopFPtr	= dragStopFunctionPointer;
+}
+
+var dragList = new Array();
+
+
+function startDrag( divID, dragFunctionPtr, dragStopFunctionPointer, xOffset, yOffset ) 
+{
+	var divObject = document.all(divID);
+	if( divObject != null ) 
+	{
+		document.selection.empty();
+		
+		if( xOffset == null )
+		{
+			xOffset = parseInt(divObject.style.left) - g_lastX;
+		}
+		
+		if( yOffset == null )
+		{
+			yOffset = parseInt(divObject.style.top)  - g_lastY;
+		}
+
+		dragList[ dragList.length ] = new dragObject( divID, divObject, xOffset, yOffset, dragFunctionPtr, dragStopFunctionPointer );
+		return true;
+	} 
+	else 
+	{
+		return false;
+	}
+}
+
+function doDrag( x, y ) 
+{
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].dragFPtr != null )
+			dragList[i].dragFPtr( dragList[i], x, y );
+	}
+	if( dragList.length )
+	{
+		document.selection.empty();
+	}
+}
+
+function stopDrag( divID, x, y ) 
+{ 
+	var tmpDragObject;
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].divID == divID || divID == null ) 
+		{
+			tmpDragObject = dragList[i];
+			
+			dragList[i] = dragList[ dragList.length - 1 ];
+			dragList.length = dragList.length - 1;
+			
+			if( tmpDragObject.dragStopFPtr != null )
+			{
+				tmpDragObject.dragStopFPtr( tmpDragObject, x, y );
+			}
+			
+		}
+	}
+}
+
+function PageViewChanged(newLeftPercent, newTopPercent, newWidthPercent, newHeightPercent)
+{
+	if (dragList.length == 0 && !parent.parent.viewMgr.ChangingView)
+	{
+		var newLeft		= null;
+		var newTop		= null;
+		var newWidth	= null;
+		var newHeight	= null;
+
+		var PNZimg = document.all("ConvertedImage");
+
+		if (newLeftPercent != null)
+		{
+			newLeft = (newLeftPercent * PNZimg.style.pixelWidth) + parseInt(divThumbnail.style.left);
+		}
+		
+		if (newTopPercent != null)
+		{
+			newTop = (newTopPercent * PNZimg.style.pixelHeight) + parseInt(divThumbnail.style.top);
+		}
+		
+		if (newWidthPercent != null)
+		{
+			newWidth = newWidthPercent * PNZimg.style.pixelWidth;
+		}
+		
+		if (newHeightPercent != null)
+		{
+			newHeight = newHeightPercent * PNZimg.style.pixelHeight;
+		}
+
+		setZWinSize (newWidth, newHeight, newLeft, newTop);
+
+		if (newLeftPercent <= 0 && newTopPercent <= 0 && newWidthPercent >= 1 && newHeightPercent >= 1)
+		{
+			zoomRectDiv.style.display = "none";
+			zoomRectDiv.style.visibility = "hidden";
+		}
+		else
+		{
+			zoomRectDiv.style.display = "inline";
+			zoomRectDiv.style.visibility = "visible";
+		}
+
+		if (newWidthPercent != null && newHeightPercent != null)
+		{
+			var newZoomLevel = GetZoomLevel (newWidthPercent, newHeightPercent);
+			SetCorrectTick (newZoomLevel);
+		}
+	}
+}
+
+function load()
+{
+	parent.parent.g_ZoomLoaded = true;
+
+	if (parent.parent.g_LoadingWidgets)
+	{
+		parent.parent.g_LoadingWidgets = false;
+		parent.parent.location.reload();
+	}
+}
+
+function unload()
+{
+	if (parent.parent.viewMgr)
+	{
+		parent.parent.viewMgr.viewChanged = null;
+	}
+
+	parent.parent.g_LoadingWidgets = true;
+}
+
+
+</script>
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divPZWindow" style="width: 100%; height: 100%;" >
+	<div id="divThumbnail" style="position: absolute; " onmousedown="startNewZoomRectDrag();"></div>
+</div>
+<div id="divTempThumbnail" style="position: absolute; visibility:hidden; display:none;" ></div>
+
+<div id="zoomRectDiv" tabindex="1" title="可見的區域。使用滑鼠或方向鍵來移動。" onkeydown="keydown()" onkeyup="keyup()" style="display:none;position: absolute; border: solid red thin; z-index: 3;" onmousedown="startZoomRectDrag();" onmouseover="setZoomRectCursor();" onmousemove="setZoomRectCursor();"></div>
+<div id="newZoomWindowDiv" style="position: absolute; border: solid blue thin; z-index: 4; visibility: hidden;"></div>
+
+</body>
+</html>
+
+
+
+
+
+
Index: /drbl_ui/flow_chart/switch_pxe_flow_chart.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_flow_chart.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_flow_chart.htm	(revision 21)
@@ -0,0 +1,718 @@
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+		<meta name="標題" content=""/>
+		<meta name="主旨" content=""/>
+		<meta name="類別" content=""/>
+		<meta name="關鍵字" content=""/>
+		<meta name="描述" content=""/>
+		<meta name="作者" content=" "/>
+		<meta name="主管" content=""/>
+		<meta name="公司" content=""/>
+
+		<title>switch_pxe_flow_chart</title>
+		<script src="switch_pxe_flow_chart.files/frameset.js" type="text/jscript" language="jscript"></script>
+		<script type="text/jscript" language="jscript" >
+
+function FileEntry (pageIndex, pageID, pageName, priImage, secImage) 
+{
+	this.PageIndex = pageIndex;
+	this.PageID	  = pageID;
+	this.PageName = pageName;
+	this.PriImage = priImage;
+	this.SecImage = secImage;
+}
+
+var viewMgr = null;
+
+var g_FileList = new  Array(
+ new FileEntry (1, 0, "頁-1", "vml_1.htm", "gif_1.htm")
+
+);
+
+var g_CurPageIndex = 0;
+var g_ZoomLoaded = false;
+var g_WidgetsLoaded = false;
+var g_FileProtocol = "file://";
+
+var g_HLMenuEntry = "menuEntry";
+var g_HLMenuEntryDiv = "menuEntryDiv";
+
+var g_LoadingWidgets = false;
+
+
+function CViewMgr(convertedImgID, highlightDivID)
+{
+	this.onResize = null;
+	this.ApplyZoom = null;
+	this.ChangingView = false;
+
+	this.put_Location = ViewMgrDefaultFind;
+	this.Zoom = ViewMgrDefaultResize;
+	this.PostZoomProcessing = null;
+	this.setView = null;
+	this.PostSetViewProcessing = null;
+	this.viewChanged = null;
+
+	this.SupportsDetails = false;
+	this.SupportsSearch = false;
+
+	this.visBBoxLeft = 0.0;
+	this.visBBoxRight = 0.0;
+	this.visBBoxBottom = 0.0;
+	this.visBBoxTop = 0.0;
+
+	this.highlightDiv = null;
+	this.stepWidth = 10;
+
+	this.id = convertedImgID;
+	this.zoomFactor = -1;
+	this.zoomLast = -1;
+	this.origWH = 1;
+	this.origWidth = 100;	
+	this.aspectRatio = 1;
+
+	this.docDrawing = null;
+	var docDrawing = frmDrawing.document;
+	if(docDrawing)
+	{
+		this.docDrawing = docDrawing;
+		var docEl = docDrawing.all(this.id);
+		if (docEl)
+		{
+			this.s = docEl.style;
+			this.origWidth = this.s.pixelWidth;
+			this.origWH = this.s.pixelWidth / this.s.pixelHeight;
+		}
+		this.highlightDiv = docDrawing.all(highlightDivID);
+	}
+
+	this.loadPage = DefPageLoad;
+	this.getPNZ	= null;
+}
+
+function DefPageLoad (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+        if (fileDelim == -1)
+            fileDelim = curPath.lastIndexOf ('\\');
+		var newPath = curPath.substring (0, fileDelim + 1);
+		newPath += g_FileList[pageIndex].PriImage;
+		frmDrawing.location.href = newPath;
+
+		SetPNZDisplay (pageIndex);
+	}
+}
+
+function CurPageUpdate (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		g_CurPageIndex = pageIndex;
+
+		SetCurPageInGoto (pageIndex);
+
+		var divDetails = frmToolbar.document.all("divDetails");
+		if (divDetails)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsDetails)
+			{
+				displayStatus = "none";
+			}
+
+			divDetails.style.display = displayStatus;
+		}
+
+		var divSearch = frmToolbar.document.all("divSearch");
+		if (divSearch)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsSearch)
+			{
+				displayStatus = "none";
+			}
+
+			divSearch.style.display = displayStatus;
+		}
+
+		SetPNZDisplay (pageIndex);
+
+		LoadZoom ();
+	}
+}
+
+function FramePageLoaded ()
+{
+	if (isUpLevel && viewMgr == null)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+		if (fileDelim >= 0)
+		{
+			var fileName = curPath.substring (fileDelim + 1, curPath.length);
+			var pageIndex = PageIndexFromFileName (fileName);
+			SetCurPageInGoto (pageIndex);
+			SetPNZDisplay (pageIndex);
+		}
+	}
+}
+
+function LoadZoom ()
+{
+	var zoomWidget = frmToolbar.ifrmPNZ;
+	if (zoomWidget)
+	{
+		if (g_ZoomLoaded)
+		{
+			zoomWidget.findContent();
+			PageLoadedDoCallback ();
+		}
+		else
+		{
+			window.setTimeout("LoadZoom()", 500);
+		}
+	}
+	else
+	{
+		PageLoadedDoCallback ();
+	}
+}
+
+function SetCurPageInGoto (pageIndex)
+{
+	var gotoPageSelect = frmToolbar.document.all("Select1");
+	if (gotoPageSelect != null)
+	{
+		gotoPageSelect.value = pageIndex;
+	}
+}
+
+function SetPNZDisplay (pageIndex)
+{
+	var divPNZ = frmToolbar.document.all("divPNZ");
+	if (divPNZ)
+	{
+		var displayStatus = "block";
+		if (g_FileList[pageIndex].PageID < 0)
+		{
+			displayStatus = "none";
+		}
+
+		divPNZ.style.display = displayStatus;
+	}
+}
+
+function ViewMgrDefaultFind()
+{
+	return;
+}
+
+function ViewMgrDefaultResize(size)
+{
+	return;
+}
+
+
+
+g_callBackFunctionArray = new Array();
+function PageLoadedDoCallback()
+{
+	if (g_WidgetsLoaded)	
+	{
+		for( var i=0; i < g_callBackFunctionArray.length; i++ )
+		{
+			g_callBackFunctionArray[i]();
+		}
+		g_callBackFunctionArray = new Array();
+	}
+	else
+	{
+		window.setTimeout("PageLoadedDoCallback()", 500);
+	}
+}
+
+
+function ParseParams (strRawParams)
+{
+	strRawParams = strRawParams.substring(1);
+
+	var arrayParamTokens = strRawParams.split('&');
+	for (var count = 0; count < arrayParamTokens.length; count++)
+	{
+		arrayParamTokens[count] = unescape(arrayParamTokens[count]);
+		this[count] = arrayParamTokens[count].substring(0, arrayParamTokens[count].indexOf('='));
+		this[this[count]] = arrayParamTokens[count].substring(arrayParamTokens[count].indexOf('=') + 1);
+	}
+
+	return this;
+}
+
+var gParams = ParseParams (location.search);
+
+var g_PageParamValue = gParams['page'];
+if (g_PageParamValue != null && 
+	g_PageParamValue.length > 0)
+{
+	var pageIndex = PageIndexFromName (g_PageParamValue);
+	if (pageIndex > 0 && pageIndex < g_FileList.length)
+	{
+		g_CurPageIndex = pageIndex;
+	}
+}
+else
+{
+	g_PageParamValue = null;
+}
+
+var g_FirstPageToLoad = g_PageParamValue;
+
+var g_ZoomParamValue = gParams['zoom'];
+if (g_ZoomParamValue != null && g_ZoomParamValue.length > 0)
+{
+	g_ZoomParamValue = 1.0 * g_ZoomParamValue;
+	if (g_ZoomParamValue >= 10 && g_ZoomParamValue <= 500)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (viewMgr && viewMgr.Zoom) { viewMgr.Zoom(g_ZoomParamValue); } };
+	}
+}
+
+var g_ShapeParamValue = gParams['shape'];
+if (g_ShapeParamValue != null && g_ShapeParamValue.length > 0)
+{
+	if (g_PageParamValue != null && g_PageParamValue.length > 0)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var shapeNode = FindShapeXMLByName (g_PageParamValue, g_ShapeParamValue); if (shapeNode) { frmToolbar.TreeSelect (g_FileList[g_CurPageIndex].PageID, shapeNode.attributes.getNamedItem ("ID").text); } };
+	}
+	else
+	{
+		g_ShapeParamValue = null;
+	}
+}
+
+var g_SearchParamValue = gParams['search'];
+if (g_SearchParamValue != null && g_SearchParamValue.length > 0)
+{
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (frmToolbar.theForm) { frmToolbar.theForm.findString.value = g_SearchParamValue; } };
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var goButton = frmToolbar.document.all('GoButton'); if(goButton) { goButton.click(); } };
+}
+
+
+var strHLTooltipText = "按一下以跟隨超連結。";
+var strPropsTooltipText = "Ctrl + 按一下以檢視詳細資料。";
+
+var strFocusHLTooltipText = "按下 Enter 以追蹤超連結。";
+var strFocusPropsTooltipText = "Ctrl + Enter 以檢視詳細資料。";
+
+
+function UpdateTooltip (element, pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var strHL, strProps;
+	
+		if(frmDrawing.event.type == "focus")
+		{
+			strHL = strFocusHLTooltipText;
+			strProps = strFocusPropsTooltipText;
+		}
+		else
+		{
+			strHL = strHLTooltipText;
+			strProps = strPropsTooltipText;
+		}
+
+		var strTooltip = "";
+		if (element.origTitle)
+		{
+			strTooltip = element.origTitle.toString();
+		}
+			
+		var shapeNode = FindShapeXML (pageID, shapeID);
+
+		if( shapeNode != null )
+		{
+			var propColl = shapeNode.selectNodes ("Prop");
+			if (propColl != null && propColl.length > 0)
+			{
+				if (strTooltip.length > 0)
+				{
+					strTooltip += "\n";
+				} 
+				strTooltip += strProps;
+			}
+		}
+
+		var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+		if (hlObj != null && (hlObj.DoFunction.length > 0 || hlObj.Hyperlink.length > 0))
+		{
+			if (strTooltip.length > 0)
+			{
+				strTooltip += "\n";
+			}	
+			strTooltip += strHL;
+		}
+
+		element.title = strTooltip;
+		if (element.alt != null)
+		{
+			element.alt = strTooltip;
+		}
+	}
+}
+
+
+function GetHLAction (shapeNode, pageID, shapeID)
+{
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		if (hlColl.length > 1)
+		{
+			hlObj.DoFunction = "showMenu(" + pageID + ", " + shapeID + ");"
+		}
+		else if (hlColl.length == 1)
+		{
+			hlObj = CreateHLObj (hlColl.item(0));
+		}
+	}
+
+	return hlObj;
+}
+
+function HLObj (strHyperlink, strDoFunction, strDesc, newWindow) 
+{
+	this.Hyperlink = strHyperlink;
+	this.DoFunction = strDoFunction;
+	this.Desc = strDesc;
+	this.NewWindow = newWindow;
+}
+
+function clickMenu()
+{
+	var e = window.frmDrawing.event;
+	var menu = frmDrawing.document.all("menu1")
+	
+	if (menu != null && menu.style.display != "none")
+	{
+		menu.style.display="none";
+
+		if (e && e.srcElement && e.srcElement.doFunction != null)
+		{
+			eval(e.srcElement.doFunction);
+		}
+	}
+}
+
+function toggleMenuDiv(el, highlight) 
+{
+	var divEl = el;
+	var aEl = null;
+
+	var ID = el.id.substring (g_HLMenuEntryDiv.length, el.id.length) * 1.0;
+	aEl = divEl.all(g_HLMenuEntry + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenuLink(el, highlight) 
+{
+	var divEl = null;
+	var aEl = el;
+
+	var ID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	divEl = frmDrawing.document.all(g_HLMenuEntryDiv + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenu(divEl, aEl, highlight)
+{
+	if (highlight)
+	{
+	  divEl.className="highlightItem";
+	  aEl.className="highlightItem";
+	} 
+	else 
+	{
+	  divEl.className="menuItem";
+	  aEl.className="menuItem";
+	}
+}
+
+function showMenu(pageID, shapeID)
+{
+	var shapeXML = FindShapeXML (pageID, shapeID);
+	if (shapeXML != null)
+	{
+		CreateHLMenu (shapeXML);
+		var menu = frmDrawing.document.all("menu1");
+		if (menu != null)
+		{
+			menu.style.visibility = "hidden";
+			menu.style.display = "inline";
+
+			var e = window.frmDrawing.event;
+			var elem = e.srcElement;
+
+			var clientWidth = frmDrawing.document.body.clientWidth;
+			var clientHeight = frmDrawing.document.body.clientHeight;
+
+			var menuWidth = menu.clientWidth;
+			var menuHeight = menu.clientHeight;
+
+			var menuLeft = e.x;
+			var menuTop = e.y;
+			
+			var doc = frmDrawing.document;
+			var img = doc.all("ConvertedImage");
+			
+			if( (menuLeft + doc.body.scrollLeft < elem.offsetLeft) || (menuLeft + doc.body.scrollLeft > elem.offsetLeft + elem.offsetWidth + img.offsetLeft) )
+			{
+				menuLeft = elem.offsetLeft + img.offsetLeft + elem.offsetWidth/2;
+			}
+			
+			if( (menuTop + doc.body.scrollTop < elem.offsetTop) || (menuTop + doc.body.scrollTop > elem.offsetTop + elem.offsetHeight + img.offsetTop) )
+			{
+				menuTop = elem.offsetTop + img.offsetTop + elem.offsetHeight/2;
+			}
+
+			var scrollBarSize = 20;
+			if (menuLeft + menuWidth > clientWidth - scrollBarSize)
+			{
+				menuLeft = clientWidth - menuWidth - scrollBarSize;
+			}
+
+			if (menuTop + menuHeight > clientHeight - scrollBarSize)
+			{
+				menuTop = clientHeight - menuHeight - scrollBarSize;
+			}
+
+			menu.style.posLeft = menuLeft + frmDrawing.document.body.scrollLeft;
+			menu.style.posTop = menuTop + frmDrawing.document.body.scrollTop;
+			menu.style.visibility = "visible";
+
+			var firstLink = menu.all(g_HLMenuEntry + "0");
+			firstLink.focus ();
+			
+			if (e.keyCode == 13)
+			{
+				toggleMenuLink(firstLink, true);
+			}
+
+			e.cancelBubble = true;
+		}
+	}
+}
+
+function MenuKeyDown ()
+{
+	var e = window.frmDrawing.event;
+	var el = e.srcElement;
+
+	if (e.keyCode == 27)	// 27 == ESC
+	{
+		clickMenu();
+		e.cancelBubble = true;
+		return;
+	}
+
+	var curSelID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	var newSelID = -1;
+
+	if (e.keyCode == 40)	// 40 == down arrow
+	{
+		newSelID = curSelID + 1;
+	}
+	else if (e.keyCode == 38) // 38 == up arrow
+	{
+		newSelID = curSelID - 1;
+	}
+
+	var newSelEntry = frmDrawing.document.all(g_HLMenuEntry + newSelID);
+
+	if (newSelEntry)
+	{
+		newSelEntry.focus();
+
+		var curSelEntry = frmDrawing.document.all(g_HLMenuEntry + curSelID);
+		toggleMenuLink (curSelEntry, false);
+		toggleMenuLink (newSelEntry, true);
+	}
+
+	e.cancelBubble = true;
+}
+
+function CreateHLMenu (shapeNode)
+{
+	var strHLMenuHTML = "";
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		strHLMenuHTML = "<div class='innerhlMenu'>";
+
+		var hlCount = hlColl.length;
+		for (var count = 0; count < hlCount; count++)
+		{
+			var hlObj = CreateHLObj (hlColl.item(count));
+			if (hlObj != null)
+			{
+				if (hlObj.Desc.length > 0)
+				{
+					strHLMenuHTML += "<div id='" + (g_HLMenuEntryDiv + count) + "' class='menuItem' onmouseover='toggleMenuDiv(this, true)' onmouseout='toggleMenuDiv(this, false)' onclick='" + (g_HLMenuEntry + count) + ".click()'>";
+					strHLMenuHTML += "<a href=";
+
+					if (hlObj.DoFunction.length > 0)
+					{
+						strHLMenuHTML += "'javascript:" + hlObj.DoFunction + "'";
+					}
+					else
+					{
+						var targetVal = "_top";
+						if (hlObj.NewWindow)
+						{
+							targetVal = "_blank";
+						}
+						strHLMenuHTML += "'" + hlObj.Hyperlink + "' target='" + targetVal + "'";
+					}
+
+					strHLMenuHTML += " class='menuItem' id='" + (g_HLMenuEntry + count) + "' onkeydown='parent.MenuKeyDown();' onmouseover='toggleMenuLink(this, true)' onmouseout='toggleMenuLink(this, false)'>";
+					strHLMenuHTML += hlObj.Desc + "</a></div>";
+				}
+			}
+		}
+		
+		strHLMenuHTML += "</div>";
+	}
+
+	frmDrawing.menu1.innerHTML = strHLMenuHTML;
+}
+
+function CreateHLObj (hlNode)
+{
+	var strAddress = "";
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (hlNode != null)
+	{
+		var hlAddress = hlNode.selectSingleNode("HLURL:Address/textnode()");
+		if (hlAddress != null && hlAddress.text.length > 0)
+		{
+			var absoluteURL = hlNode.selectSingleNode("HLURL:AbsoluteURL/textnode()");
+			var strAbsURL = absoluteURL.text;
+			var strAddr = hlAddress.text;
+
+			if (strAbsURL.indexOf (g_FileProtocol) == 0)
+			{
+				var strAbsPath = strAbsURL.substring (g_FileProtocol.length, strAbsURL.length);
+				strAbsPath.toLowerCase ();
+				strAddr.toLowerCase ();
+				if (strAbsPath == strAddr)
+				{
+					strAddress = strAbsPath;
+				}
+				else
+				{
+					strAddress = strAddr;
+					
+					var hlSubAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+					if (hlSubAddress != null && hlSubAddress.text.length > 0)
+					{
+						strAddress += '#';
+						strAddress += hlSubAddress.text;
+					}
+
+					var hlExtraInfo = hlNode.selectSingleNode("HLURL:ExtraInfo/textnode()");
+					if (hlExtraInfo != null && hlExtraInfo.text.length > 0)
+					{
+						strAddress += '?';
+						strAddress += hlExtraInfo.text;
+					}
+				}
+			}
+			else
+			{
+				strAddress = strAbsURL;
+			}		
+
+			strAddress = HTMLEscape (strAddress);
+			hlObj.Hyperlink += strAddress;
+		}
+		else
+		{
+			hlAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+			if (hlAddress != null && hlAddress.text.length > 0)
+			{
+				strAddress = hlAddress.text;
+
+				var pageShapeSep = strAddress.lastIndexOf ('/');
+				if (pageShapeSep > 0)
+				{
+					if (PageIndexFromName (strAddress) < 0)
+					{
+						strAddress = unescape (strAddress);
+						if (PageIndexFromName (strAddress) < 0)
+						{
+							strAddress = strAddress.substring (0, strAddress.lastIndexOf ('/'));
+						}
+					}
+				}
+
+				var pageIndex = PageIndexFromName (strAddress);
+
+				hlObj.DoFunction = "GoToPage (" + pageIndex + ");";
+				strAddress = HTMLEscape (strAddress);
+				hlObj.Desc = strAddress;
+			}
+		}
+
+		hlDesc = hlNode.selectSingleNode("HLURL:Description/textnode()");
+		if (hlDesc != null && hlDesc.text.length > 0)
+		{
+			hlObj.Desc = HTMLEscape (hlDesc.text);
+		}
+		else
+		{
+			hlObj.Desc = strAddress;
+		}
+	
+		var hlNewWindow = hlNode.selectSingleNode("HLURL:NewWindow/textnode()");
+		if (hlNewWindow != null && hlNewWindow.text.length > 0)
+		{
+			hlObj.NewWindow = (hlNewWindow.text == "1");
+		}		
+	}
+
+	return hlObj;
+}
+
+
+		</script>
+	</head>
+	
+	<frameset id="frmstOuter" cols="237,*" title="switch_pxe_flow_chart">
+		<frame src="switch_pxe_flow_chart.files/toolbar.htm" name="frmToolbar" id="frmToolbar" title="此框架包含管理您繪圖的工具。" frameborder="6" bordercolor="#999999" scrolling="no" marginheight="0" marginwidth="0" >
+		<frame src="switch_pxe_flow_chart.files/gif_1.htm" name="frmDrawing" title="此框架包含您繪圖的頁面。" marginheight="10" marginwidth="10" onload="if (parent.isUpLevel) FramePageLoaded()" >
+
+		<noframes>
+			<body>
+
+				<h1>switch_pxe_flow_chart</h1>
+				<ul>
+				<li><a href="switch_pxe_flow_chart.files/gif_1.htm">頁-1</a></li>
+
+				</ul>
+			</body>
+		</noframes>
+	</frameset>
+	
+</html>
+
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/data.xml
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/data.xml	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/data.xml	(revision 21)
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisioDocument>
+	<DocumentProperties>
+		<Title></Title>
+		<HyperlinkBase href=""></HyperlinkBase>
+	</DocumentProperties>
+	<Pages>
+		<Page ID="0" Name="頁-1" NameU="Page-1">
+			<Layer IX="0">
+				<Name>流程圖</Name>
+				<NameUniv>Flowchart</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Layer IX="1">
+				<Name>連接器</Name>
+				<NameUniv>Connector</NameUniv>
+				<Visible>1</Visible>
+			</Layer>
+			<Shapes>
+				<Shape ID="1" UniqueID="{53C98374-B310-4A80-BF6B-7576661CB945}" Name="終端子" NameU="Terminator" Master="0">
+					<Text>start</Text>
+					<XForm>
+						<PinX Unit="MM">2.855540170826101</PinX>
+						<PinY Unit="MM">8.077479457017025</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="2" UniqueID="{4B1E9237-BAA2-4B13-9067-B436048BE11C}" Name="決策" NameU="Decision" Master="2">
+					<Text>是否選擇全部
+clients</Text>
+					<XForm>
+						<PinX Unit="MM">2.852996129721071</PinX>
+						<PinY Unit="MM">6.293536304880226</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="3" UniqueID="{71B05B4B-21CD-4B3A-9589-CD2E3DE411D2}" Name="動態連接器.3" NameU="Dynamic connector.3" Master="3">
+					<Text>No</Text>
+					<XForm>
+						<PinX Unit="MM">3.821483384492193</PinX>
+						<PinY Unit="MM">6.294362969290818</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="4" UniqueID="{EFF1AA63-9D03-4EC0-B942-67232212441E}" Name="決策.5" NameU="Decision.5" Master="2">
+					<Text>選擇 clients</Text>
+					<XForm>
+						<PinX Unit="MM">4.558170959562261</PinX>
+						<PinY Unit="MM">6.295189633701411</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="5" UniqueID="{7B98E8D0-9D7A-4DB1-B4BC-5B3DADC70F56}" Name="儲存的資料" NameU="Stored data" Master="4">
+					<Text>讀取
+ ip_list or
+ MAC list</Text>
+					<XForm>
+						<PinX Unit="MM">5.882740557853998</PinX>
+						<PinY Unit="MM">6.295189633701411</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="6" UniqueID="{260F335F-B3F1-4841-87A1-B54DBC22B62D}" Name="動態連接器.6" NameU="Dynamic connector.6" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.203898638729484</PinX>
+						<PinY Unit="MM">6.295189633701409</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="8" UniqueID="{616F147C-402F-4DA9-9885-F94CFEA995BC}" Name="動態連接器.53" NameU="Dynamic connector.53" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.558170959562261</PinX>
+						<PinY Unit="MM">5.852276247874640</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="9" UniqueID="{F64D6C60-2F3C-4B97-8F19-BF8F7241AFEB}" Name="程序" NameU="Process" Master="5">
+					<Text>將選擇的 ip 位址轉換為 16進位表示</Text>
+					<XForm>
+						<PinX Unit="MM">4.558170959562261</PinX>
+						<PinY Unit="MM">5.314960629921260</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="11" UniqueID="{7FCE6D51-0B69-4D4B-BF7F-C11E60A8B7EB}" Name="決策.11" NameU="Decision.11" Master="2">
+					<Text>Text or
+Graphic</Text>
+					<XForm>
+						<PinX Unit="MM">2.855540170826101</PinX>
+						<PinY Unit="MM">7.185039370078740</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="14" UniqueID="{1496BAFF-D1B3-45B6-BDB9-8C00E5F5FCD3}" Name="動態連接器.14" NameU="Dynamic connector.14" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.854268150273586</PinX>
+						<PinY Unit="MM">6.696936350550556</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="15" UniqueID="{C31973B0-600E-4151-B8AF-95B230D6CCE2}" Name="終端子.41" NameU="Terminator.41" Master="0">
+					<Text>end</Text>
+					<XForm>
+						<PinX Unit="MM">2.855540170826101</PinX>
+						<PinY Unit="MM">3.256518854827279</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="16" UniqueID="{528FCFFC-8D33-4B53-B2A7-364260E4BFF7}" Name="動態連接器.16" NameU="Dynamic connector.16" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.854268150273586</PinX>
+						<PinY Unit="MM">3.732618788358313</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="7" UniqueID="{B0F8646D-85AF-47AA-855B-0826221D098F}" Name="動態連接器" NameU="Dynamic connector" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.855540170826101</PinX>
+						<PinY Unit="MM">7.711939422681949</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="12" UniqueID="{76DB91BA-EA9B-4134-A6E8-9924252BED6A}" Name="程序.29" NameU="Process.29" Master="5">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">2.852996129721071</PinX>
+						<PinY Unit="MM">4.370078740157481</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="10" UniqueID="{18C8DDEF-F8D8-4259-997A-5992A9D02C31}" Name="動態連接器.10" NameU="Dynamic connector.10" Master="3">
+					<XForm>
+						<PinX Unit="MM">2.852996129721071</PinX>
+						<PinY Unit="MM">5.379008638582157</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="13" UniqueID="{2FD3820F-7250-4FE1-8212-3EDD16798A08}" Name="決策.13" NameU="Decision.13" Master="2">
+					<Text>While client in CLIENTS is true</Text>
+					<XForm>
+						<PinX Unit="MM">4.558170959562261</PinX>
+						<PinY Unit="MM">4.370078740157481</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="17" UniqueID="{76C40972-25FC-4FD7-A937-C3A502737A60}" Name="動態連接器.17" NameU="Dynamic connector.17" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.558170959562261</PinX>
+						<PinY Unit="MM">4.842519685039370</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="19" UniqueID="{C83A2C93-D34A-4555-84AB-44E13CB83FA1}" Name="程序.19" NameU="Process.19" Master="5">
+					<Text>執行命令</Text>
+					<XForm>
+						<PinX Unit="MM">4.558170959562261</PinX>
+						<PinY Unit="MM">3.425196850393701</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>0</LayerMember>
+					</LayerMem>
+					<Prop ID="1" Name="Cost" NameU="Cost">
+						<Value></Value>
+						<Label>成本</Label>
+					</Prop>
+					<Prop ID="2" Name="Duration" NameU="Duration">
+						<Value></Value>
+						<Label>期間</Label>
+					</Prop>
+					<Prop ID="3" Name="Resources" NameU="Resources">
+						<Value></Value>
+						<Label>資源</Label>
+					</Prop>
+				</Shape>
+				<Shape ID="18" UniqueID="{74359564-9FF8-4C8D-9462-16AFF8587E1C}" Name="動態連接器.18" NameU="Dynamic connector.18" Master="3">
+					<XForm>
+						<PinX Unit="MM">4.558170959562261</PinX>
+						<PinY Unit="MM">3.897637795275590</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="21" UniqueID="{E3768FC2-E722-4BF9-9287-730517CC5011}" Name="動態連接器.21" NameU="Dynamic connector.21" Master="3">
+					<XForm>
+						<PinX Unit="MM">5.050296943814230</PinX>
+						<PinY Unit="MM">3.897637795275591</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+				<Shape ID="20" UniqueID="{C4CC24F7-9B8B-40B7-BA33-164FE71D818A}" Name="動態連接器.20" NameU="Dynamic connector.20" Master="3">
+					<Text>no</Text>
+					<XForm>
+						<PinX Unit="MM">3.667756572801281</PinX>
+						<PinY Unit="MM">3.813298797492378</PinY>
+					</XForm>
+					<LayerMem>
+						<LayerMember>1</LayerMember>
+					</LayerMem>
+				</Shape>
+			</Shapes>
+		</Page>
+	</Pages>
+</VisioDocument>
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/filelist.xml
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/filelist.xml	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/filelist.xml	(revision 21)
@@ -0,0 +1,32 @@
+<xml xmlns:o="urn:schemas-microsoft-com:office:office">
+ <o:File HRef="arrow.gif"/>
+ <o:File HRef="minimize.gif"/>
+ <o:File HRef="maximize.gif"/>
+ <o:File HRef="go.gif"/>
+ <o:File HRef="fullpage.gif"/>
+ <o:File HRef="plus.gif"/>
+ <o:File HRef="minus.gif"/>
+ <o:File HRef="panminus.gif"/>
+ <o:File HRef="panplus.gif"/>
+ <o:File HRef="tick-foc.gif"/>
+ <o:File HRef="tick-off.gif"/>
+ <o:File HRef="tick-on.gif"/>
+ <o:File HRef="toc.gif"/>
+ <o:File HRef="toc2.gif"/>
+ <o:File HRef="data.xml"/>
+ <o:File HRef="frameset.js"/>
+ <o:File HRef="keys.js"/>
+ <o:File HRef="visio.css"/>
+ <o:File HRef="vml_1.emz"/>
+ <o:File HRef="gif_1.gif"/>
+ <o:File HRef="vml_1.js"/>
+ <o:File HRef="vml_1.htm"/>
+ <o:File HRef="gif_1.js"/>
+ <o:File HRef="gif_1.htm"/>
+ <o:File HRef="zoom.htm"/>
+ <o:File HRef="find.js"/>
+ <o:File HRef="widgets.htm"/>
+ <o:File HRef="toolbar.htm"/>
+ <o:MainFile HRef="../switch_pxe_mode_flow_chart.htm"/>
+ <o:File HRef="filelist.xml"/>
+</xml>
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/find.js
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/find.js	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/find.js	(revision 21)
@@ -0,0 +1,499 @@
+
+var strShapeName	= "圖形名稱";
+var strShapeText	= "圖形文字";
+var strProps		= "圖形資料";
+var strResults		= "搜尋結果關於:";
+
+var strShape	= "圖形名稱:";
+var strNoCustomPropertiesToDisplayText = "CTRL+按一下繪圖中的圖形以檢視詳細資料。";
+
+var FindShapeXML = parent.FindShapeXML;
+var Unquote = parent.Unquote;
+var put_Location = parent.put_Location;
+
+
+var strChkBox		= "Chkbox";
+var strPropChkBox	= "PropChkbox";
+
+function doExpando(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = up.src;
+	}else{
+		xxx.style.display = "none"
+		yyy.src = down.src;
+	}
+}
+
+function doExp(xxx,yyy){
+	if (xxx.style.display=="none"){
+		xxx.style.display = ""
+		yyy.src = "minus.gif";
+	}else{
+		xxx.style.display = "none"
+		yyy.src = "plus.gif";
+	}
+}
+
+
+function FindOnClick()
+{
+	var count, indexOfString;
+	
+	var fieldsToSearchArray = new Array();
+	if (parent.xmlData != null && document.theForm[strProps + strChkBox].checked)
+	{
+		for( count=0; count < document.theForm.length; count++ )
+		{
+			indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+			if( -1 != indexOfString && document.theForm[count].checked )
+			{
+				fieldsToSearchArray[ fieldsToSearchArray.length ] = document.theForm[count].name.slice(0, indexOfString);
+			}
+		}
+	}
+
+	var searchTokensArray = CreateSearchTokens (document.theForm.findString.value);
+
+	if (searchTokensArray.length > 0)
+	{
+		var findArray = Find(searchTokensArray, fieldsToSearchArray);
+		var ArrayLength = findArray.length;
+		var strResultsHTML = "找不到相符項目。";
+		var lastPageID = null;
+		var shapeID;
+		
+		
+		if(ArrayLength > 0)
+		{
+			strResultsHTML = strResults + ' <b>'+ parent.HTMLEscape(document.theForm.findString.value) +'</b>';
+			for ( count = 0; count < ArrayLength; count++)
+			{
+			
+				if( lastPageID != findArray[count].PageID )
+				{
+					lastPageID = findArray[count].PageID;
+				}
+
+				shapeID = findArray[count].ShapeID;
+				strResultsHTML += '<p class="results"><a href="javascript:populateSearchResultDetails(\'results_'+ lastPageID +'_'+ shapeID +'\', '+ lastPageID +','+ shapeID +'); TogglePlus(results_' + lastPageID + '_' + shapeID + ',\'img_' + lastPageID + '_' + shapeID + '\', hideResults)"><img src="plus.gif" alt="顯示/隱藏圖形詳細資料" width="13" height="9" border="0" id="img_'+ lastPageID +'_'+ shapeID +'"></a>\n'
+				strResultsHTML += '<a  class="blu1" href="JavaScript:FindQuerySelect(';
+
+				strResultsHTML += findArray[count].PageID + ",";
+				strResultsHTML += findArray[count].ShapeID + ",";
+				strResultsHTML += findArray[count].PinX + ",";
+				strResultsHTML += findArray[count].PinY;
+
+				strResultsHTML += ')">'+ findArray[count].Title +'</a></p>\n'
+
+				strResultsHTML += '</div>\n';
+				strResultsHTML += '<div class="indent" id="results_'+ lastPageID +'_'+ shapeID +'" style="display:none;width:100%;"></div>\n'
+			}
+
+		}
+		var divAdvSrch = document.all("hideAdvSrch");
+		var imgAS0 = document.all("as0");
+		
+		var tmpObj = document.all("hideResults");
+		if( tmpObj != null )
+		{
+			tmpObj.innerHTML = strResultsHTML;
+			tmpObj.open = "true";
+			tmpObj.style.display = "block";
+		}
+	}
+}
+
+function CreateSearchTokens (strUserString)
+{
+	var searchTokensArray = new Array();
+
+	var strToken = "";
+	var chCurChar;
+
+	for (var count = 0; count < strUserString.length; count++)
+	{
+		chCurChar = strUserString.charAt(count);
+		if (chCurChar == '"')
+		{
+			var nNextQuote = strUserString.indexOf('"', count + 1);
+			if (nNextQuote >= 0)
+			{
+				strToken = strUserString.slice(count + 1, nNextQuote);
+				searchTokensArray[searchTokensArray.length] = strToken;
+				strToken = "";
+				count = nNextQuote;
+			}
+		}
+		else if (chCurChar == ' ')
+		{
+			if (strToken.length > 0)
+			{
+				searchTokensArray[searchTokensArray.length] = strToken;
+			}
+
+			strToken = "";
+		}
+		else
+		{
+			strToken += chCurChar;
+		}
+	}
+
+	if (strToken.length > 0)
+	{
+		searchTokensArray[searchTokensArray.length] = strToken;
+	}
+
+	return searchTokensArray;
+}
+
+function populateSearchResultDetails( divID, pageID, shapeID )
+{
+	var tmpShape = FindShapeXML (pageID, shapeID);
+	var strOutput = CreatePropTable( tmpShape );
+	
+	var tmpObj = document.all(divID);
+	if( tmpObj != null )
+	{
+		tmpObj.innerHTML = strOutput;
+	}
+}
+
+function makeAdvancedFindCheckboxes(div)
+{
+	if (parent.xmlData)
+	{
+		var strOutput = "";
+
+		strOutput += "<INPUT type='checkbox' name='" + strShapeName + strChkBox + "' id='" + strShapeName + strChkBox + "' checked><label for='" + strShapeName + strChkBox + "'>" + strShapeName + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strShapeText + strChkBox + "' id='" + strShapeText + strChkBox + "' checked><label for='" + strShapeText + strChkBox + "'>" + strShapeText + "</label><br>\n";
+		strOutput += "<INPUT type='checkbox' name='" + strProps + strChkBox + "' id='" + strProps + strChkBox + "' onclick='AdvSearchCustomPropCheck ()'checked ><label for='" + strProps + strChkBox + "'>" + strProps +"</label><br>\n";
+		strOutput += "<div id='divCPBoxes' style='margin-left:1em;'>";
+		
+		var objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label");
+		var filter = "";
+		var boolFirstPass = true;
+		var tmpPropName;
+		while( objNodes.length > 0)
+		{
+			tmpPropName = objNodes.item( 0 ).text;
+			var escapedPropName = parent.EscapeString(tmpPropName);
+			if( true == boolFirstPass )
+			{
+				filter = ". != '" + escapedPropName + "'";
+				boolFirstPass = false;
+			}
+			else
+			{
+				filter += " and . != '" + escapedPropName + "'";
+			}
+
+			tmpPropName = parent.HTMLEscape (tmpPropName);
+			strOutput += "<INPUT type='checkbox' name='" + tmpPropName + strPropChkBox + "' id='"+ tmpPropName + strPropChkBox + "' checked><label for='"+ tmpPropName + strPropChkBox + "'>" + tmpPropName +"</label><br>\n";
+
+			objNodes = parent.xmlData.selectNodes(".//Shape/Prop/Label["+ filter + "]");
+		}
+		strOutput += "</div>"
+		div.innerHTML = strOutput;
+	}
+}
+
+function AdvSearchCustomPropCheck ()
+{
+	for( count=0; count < document.theForm.length; count++ )
+	{
+		indexOfString = document.theForm[count].name.indexOf(strPropChkBox);
+		if( -1 != indexOfString )
+		{
+			document.theForm[count].disabled = !document.theForm[strProps + strChkBox].checked;
+		}
+	}
+}
+
+
+function CResultItem(title, pageID, shapeID, pinX, pinY)
+{
+	 this["Title"] = title;
+	 this["PageID"] = pageID;
+	 this["ShapeID"] = shapeID;
+	 this["PinX"] = pinX;
+	 this["PinY"] = pinY;
+}
+
+function FindParentPage(nodeObject)
+{
+	if(nodeObject == null)
+	{
+		return null;
+	}
+	if(nodeObject.baseName == "Page")
+		return nodeObject;
+	else
+		return FindParentPage(nodeObject.parentNode);
+}
+
+function QueryStringForMatch(shapeNode, regTextForFind, filterString)
+{
+	if (filterString.length > 0)
+	{
+		var nodesToCheck = shapeNode.selectNodes(filterString);
+
+		var nodeCount = nodesToCheck.length;
+		var stringToParse;
+		for(var ncount = 0; ncount < nodeCount; ncount++)
+		{
+			stringToParse = nodesToCheck.item(ncount).text;
+			stringToParse = stringToParse.toLowerCase ();
+			if(stringToParse.indexOf(regTextForFind) > -1)
+			{
+				return true;
+			}
+		}
+	}
+}
+
+function GetShapeTitle(shapeNode)
+{
+	var objTempName = null;
+	var objTempTextElement = shapeNode.selectSingleNode("./Text");
+	if(objTempTextElement != null)
+	{
+		var objTextNode = objTempTextElement.selectSingleNode("textnode()");
+		if (objTextNode != null)
+		{
+			return parent.HTMLEscape (objTextNode.text);
+		}
+	}
+
+	objTempName = shapeNode.selectSingleNode("./@Name");
+	if(objTempName != null)
+	{
+		return parent.HTMLEscape (objTempName.text);
+	}
+
+	return "";
+}
+
+function GetPageTitle(pageID)
+{
+	var pagesObj = parent.xmlData.selectSingleNode("VisioDocument/Pages");
+	if(!pagesObj)
+	{
+		return "";
+	}
+
+	var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+	var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+	if(!pageObj)
+	{
+		return "";
+	}
+
+	var pageNameNode = pageObj.selectSingleNode("@Name");
+	if(!pageNameNode)
+	{
+		return "";
+	}
+	return pageNameNode.text;
+}
+
+function Find(searchTokensArray, propsToSearchArray)
+{
+	var bXMLNotValid = false;
+	var findArray = new Array();
+	var findIndex = 0;
+
+	if (parent.xmlData != null && searchTokensArray.length > 0)
+	{
+		var fieldsToSearchArray = new Array();
+		var filterString = "";
+		if( null != propsToSearchArray &&
+			propsToSearchArray.length > 0 )
+		{
+			var propFilterString = "";
+			for( var count=0; count< propsToSearchArray.length; count++ )
+			{
+				if( count == 0 )
+				{
+					propFilterString = "[. = '" + parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+				else
+				{
+					propFilterString += " or . = '"+ parent.EscapeString (propsToSearchArray[count]) + "'";
+				}
+			}
+			propFilterString += "]";
+
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Prop[Label"+ propFilterString +"]/Value";
+		}
+
+		if (document.theForm[strShapeText + strChkBox].checked)
+		{
+			fieldsToSearchArray[fieldsToSearchArray.length] = "Text";
+		}
+
+		if (fieldsToSearchArray.length > 0)
+		{
+			filterString = "(.//(";
+
+			for (var fieldCount = 0; fieldCount < fieldsToSearchArray.length; fieldCount++)
+			{
+				if (fieldCount != 0)
+				{
+					filterString += " | ";
+				}
+
+				filterString += fieldsToSearchArray[fieldCount];
+			}
+
+			filterString += ")/textnode())";
+		}
+
+		var objShapeNodes;
+
+		if (document.theForm[strShapeName + strChkBox].checked)
+		{
+			if (filterString.length > 0)
+			{
+				filterString += " | ";
+			}
+			filterString += "(@Name)";
+
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape");
+		}
+		else
+		{
+			var objShapeNodes = parent.xmlData.selectNodes(".//Shape[(Prop/Value | Prop/Label | Text)]");
+		}
+
+		var shapeCount = objShapeNodes.length;
+		var objTempData = new CResultItem("A Label","PageID","ShapeID","PinX","PinY");
+		var objTempShape = null;
+
+		for (count = 0; count < shapeCount; count++)
+		{		
+			objTempShape = objShapeNodes.item(count);
+
+			var objParentPageNode = FindParentPage(objTempShape);
+			if (objParentPageNode == null)
+			{
+				continue;
+			}
+
+			var objPageIDNode = objParentPageNode.selectSingleNode("@ID/textnode()");
+			if(objPageIDNode == null)
+			{
+				continue;
+			}
+			var pageID = objPageIDNode.text;
+
+			var pageIndex = parent.PageIndexFromID (pageID);
+			if (pageIndex < 0)
+			{
+				continue;
+			}
+
+			var objLayerMember = objTempShape.selectSingleNode("LayerMem/LayerMember");
+			if (objLayerMember != null && objLayerMember.text.length > 0)
+			{
+				var layerArray = objLayerMember.text.split (';');
+				var visibleLayer = false;
+				for (var layerCount = 0; (layerCount < layerArray.length) && !visibleLayer; layerCount++)
+				{
+					var objLayerVisible = objParentPageNode.selectSingleNode("Layer[@IX=" + layerArray[layerCount] + "]/Visible");
+					if (objLayerVisible != null)
+					{
+						 visibleLayer = (objLayerVisible.text != 0);
+					}
+				}
+				
+				if (!visibleLayer)
+				{
+					continue;
+				}
+			}
+
+			for (var tokenCount = 0; tokenCount < searchTokensArray.length; tokenCount++)
+			{
+				var textToFind = searchTokensArray[tokenCount];
+				textToFind = textToFind.toLowerCase ();
+
+				if (QueryStringForMatch(objTempShape, textToFind, filterString))
+				{
+					objTempData.Title = GetShapeTitle(objTempShape);
+					objTempData.PageID = pageID;
+
+					objShapeIDNode = objTempShape.selectSingleNode("@ID/textnode()");
+					if(objShapeIDNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.ShapeID = objShapeIDNode.text;
+					objPinXNode = objTempShape.selectSingleNode("XForm/PinX/textnode()");
+					if(objPinXNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinX = objPinXNode.text;
+					objPinYNode = objTempShape.selectSingleNode("XForm/PinY/textnode()");
+					if(objPinYNode == null)
+					{
+						bXMLNotValid = true;
+						break;
+					}
+					objTempData.PinY = objPinYNode.text;
+
+					findArray[findIndex] = new CResultItem(objTempData.Title, objTempData.PageID, objTempData.ShapeID, objTempData.PinX, objTempData.PinY);
+					findIndex++;
+					break;
+				}
+			}
+		}
+		if(bXMLNotValid)
+		{
+			findArray.length = 0;
+		}
+	}
+
+	return findArray;
+}
+
+function FindQuerySelect(pageID, shapeID, pinX, pinY)
+{
+	if ((!widgets.GoTo && parent.g_FileList.length > 1) || (widgets.GoTo && parent.g_FileList[document.all("Select1").value].PageID != pageID))
+	{
+		parent.g_callBackFunctionArray[parent.g_callBackFunctionArray.length] = function () { parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY); };
+		parent.GoToPageByID(pageID);
+	}
+	else 
+	{
+		if (parent.viewMgr != null)
+		{
+			parent.viewMgr.put_Location (pageID, shapeID, pinX, pinY);
+		}
+	}
+}
+
+function TreeSelect(pageID, shapeID)
+{
+	var shapeNode = FindShapeXML (pageID, shapeID);
+	if (shapeNode != null)
+	{
+		var pinXNode = shapeNode.selectSingleNode("XForm/PinX/textnode()");
+		var pinYNode = shapeNode.selectSingleNode("XForm/PinY/textnode()");
+
+		if (pinXNode != null && pinYNode != null)
+		{
+			FindQuerySelect (pageID, shapeID, pinXNode.text, pinYNode.text);
+		}
+	}
+}
+
+
+var g_RowStyleList = parent.g_RowStyleList;
+var FillPropPane = parent.FillPropPane;
+var CreatePropTable = parent.CreatePropTable;
+
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/frameset.js
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/frameset.js	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/frameset.js	(revision 21)
@@ -0,0 +1,653 @@
+
+var MSIE = false;
+var ver = 0;
+var indexOfMSIE = navigator.userAgent.indexOf("MSIE"); 
+if(indexOfMSIE != -1)
+{
+	MSIE = true;
+	ver = parseFloat(navigator.userAgent.substring(indexOfMSIE + 5, navigator.userAgent.indexOf(";", indexOfMSIE)));
+}
+
+var isMac = (navigator.appVersion.indexOf("Macintosh") >= 0);
+var isUpLevel = (MSIE && ver >= 5 && !isMac);
+
+var xmlData = XMLData("switch_pxe_mode_flow_chart.files/data.xml");
+
+var g_RowStyleList = new  Array(
+ "propViewerEvenRow",
+ "propViewerOddRow"
+);
+
+
+var strShape	= "圖形名稱:";
+
+
+
+function XMLData(file)
+{
+	var temp = null;
+	if(isUpLevel)
+	{
+		temp = CreateObject("Microsoft.XMLDOM");
+		if (temp == null)
+		{
+			temp = CreateObject("MSXML2.DOMDocument");
+		}
+
+		if (temp != null)
+		{
+			temp.async = false;
+		
+			temp.load(file);
+			if (temp.parseError.errorCode != 0)
+			{
+				temp = null;
+			}
+		}
+	}
+
+	return temp;
+}
+
+function CreateObject (strObj)
+{
+	var obj = null;
+	eval ("try { obj = new ActiveXObject(strObj); } catch (e) {}");
+	return obj;
+}
+
+function doVersion()
+{
+	if(isUpLevel)
+	{
+		frmToolbar.divDownLevel.innerHTML = "";
+		frmToolbar.divUpLevel.innerHTML = frmWidgets.divData.innerHTML;
+	}
+}	
+	
+	
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData != null)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(pageObj == null)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function OnShapeKey(pageID, shapeID)
+{
+	var e = window.frmDrawing.event;
+	
+	if(e.keyCode == 13 && e.ctrlKey)		//ctrl + enter
+	{
+		UpdateProps (pageID, shapeID);
+	}
+	else if (e.keyCode == 13)
+	{
+		OnShapeClick (pageID, shapeID);
+	}
+}
+
+function OnShapeClick (pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var e = frmDrawing.window.event;
+		var elem = e.srcElement;
+
+		if (e != null && e.ctrlKey && frmToolbar.widgets && frmToolbar.widgets.Details)
+		{
+			UpdateProps (pageID, shapeID);
+		}
+		else
+		{
+			var shapeNode = FindShapeXML (pageID, shapeID);
+			var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+			if (hlObj != null)
+			{
+				if (hlObj.DoFunction.length > 0)
+				{
+					eval (hlObj.DoFunction);
+				}
+				else if (hlObj.Hyperlink.length > 0)
+				{
+					if (hlObj.NewWindow)
+					{
+						window.open (hlObj.Hyperlink);
+					}
+					else
+					{
+						top.location.href = hlObj.Hyperlink.substr (0, 510);
+					}
+				}
+				else if (elem != null)
+				{
+					var href = elem.origHref;
+					if (href == null)
+					{
+						href = elem.href;
+					}
+
+					var target = elem.origTarget;
+					if (target == null)
+					{
+						target = elem.target;
+					}
+
+					if (href && href.length > 0)
+					{
+						href = HTMLEscape (href);
+						if (target && target == "_blank")
+						{
+							window.open (href);
+						}
+						else
+						{
+							top.location.href = href.substr (0, 510);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return (!isUpLevel);
+}
+
+function UpdateProps(pageID, shapeID)
+{
+	var shape = FindShapeXML (pageID, shapeID);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function UpdatePropsByShapeName(pageName, shapeName)
+{
+	var shape = FindShapeXMLByName (pageName, shapeName);
+
+	FillPropPane(shape, frmToolbar.hideDetails);
+}
+
+function FillPropPane (shapeNode, outputDivObj )
+{
+	if (shapeNode != null && outputDivObj != null)
+	{
+		if(outputDivObj.style.display == "none")
+		{
+			frmToolbar.ToggleWidget(outputDivObj);
+		}
+	
+		var strCPHTML = "";
+		
+		var shapeNameAttr = shapeNode.attributes.getNamedItem ("Name");
+		if (shapeNameAttr)
+		{
+			strCPHTML += "<span class='p2' style='padding-left:2px;'>" + strShape + " " + HTMLEscape(shapeNameAttr.text) + "</span>";
+		}
+
+		var strTableHTML = CreatePropTable (shapeNode);
+		if(strTableHTML.indexOf("<table") == -1)
+		{
+			strTableHTML = "<p class='p2' style='margin-left:1em;margin-top:0em;'>" + strTableHTML + "</p>";
+		}
+
+		if (strTableHTML.length > 0)
+		{
+			strCPHTML += strTableHTML;
+		}
+		else
+		{
+			strCPHTML = strNoCustomPropertiesToDisplayText;
+		}
+		
+		outputDivObj.innerHTML = strCPHTML;
+		outputDivObj.minHeight = 75;
+	}
+}
+
+function CreatePropTable (shapeNode)
+{
+	var strCPHTML = "";
+	var strStartTable = "<table class='propViewerTABLE' borderColor='#999999' cellPadding='2' width='95%' border='1' summary='此表格包含圖形詳細資料'>";
+		strStartTable += "<THEAD class='propViewerTHEAD'><TH>標籤</TH><TH>值</TH></THEAD>";
+	var strEndTable = "</TABLE>";
+
+	if (shapeNode != null)
+	{
+		var propColl = shapeNode.selectNodes ("Prop");
+
+		var propCount = propColl.length;
+		for (var count = 0; count < propCount; count++)
+		{
+			strCPHTML += "<TR class='" + g_RowStyleList[count % 2] + "'>";
+			
+			var strLabelText = "";
+			oPropLabel = propColl.item(count).selectSingleNode("Label/textnode()");
+			if (oPropLabel != null)
+			{
+				strLabelText = HTMLEscape (oPropLabel.text);
+			}
+			else
+			{
+				oPropName = propColl.item(count).attributes.getNamedItem ("Name");
+				if (oPropName)
+				{
+					strLabelText = HTMLEscape (oPropName.text);
+				}
+			}
+
+			if (strLabelText.length > 0)
+			{
+				strCPHTML += "<TD class='propViewerTD'>" + strLabelText + "</TD>";
+				strCPHTML += "<TD class='propViewerTD'>"
+
+				var strValueText = "&nbsp;";
+				oPropValue = propColl.item(count).selectSingleNode("Value/textnode()");
+				if (oPropValue)
+				{
+					strValueText = HTMLEscape (oPropValue.text);
+				}
+
+				strCPHTML += strValueText + "</TD></TR>";
+			}
+		}
+
+		if(strCPHTML != "")
+		{
+			strCPHTML = strStartTable + strCPHTML + strEndTable;
+		}
+		else
+		{
+			strCPHTML = "沒有可使用的詳細資料。";
+		}
+	}
+
+	return strCPHTML;
+}
+
+function keyHandler()
+{
+	var e = frmDrawing.window.event;
+	if(e.keyCode == 13) //enter
+	{
+		e.srcElement.click();
+	}
+}
+
+function GoToPage(index)
+{
+	if (viewMgr)
+	{
+		viewMgr.loadPage (index);
+	}
+	else
+	{
+		DefPageLoad (index);
+	}
+}
+
+function GoToPageByID(pageID)
+{
+	var pageIndex = PageIndexFromID (pageID);
+	if (pageIndex >= 0)
+	{
+		GoToPage (pageIndex);
+	}
+}
+
+function PageIndexFromID (pageID)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageID == g_FileList[count].PageID)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromName (strPageName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strPageNameLower = strPageName;
+		strPageNameLower = strPageNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListPageName = g_FileList[count].PageName;
+			strFileListPageName = HTMLUnescape (strFileListPageName);
+			strFileListPageName = strFileListPageName.toLowerCase ();
+			if (strPageNameLower == strFileListPageName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromFileName (strFileName)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var strFileNameLower = strFileName;
+		strFileNameLower = strFileNameLower.toLowerCase ();
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			var strFileListFileName = g_FileList[count].PriImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+
+			strFileListFileName = g_FileList[count].SecImage;
+			strFileListFileName = strFileListFileName.toLowerCase ();
+			if (strFileNameLower == strFileListFileName)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function PageIndexFromVisioPageIndex (pageIndex)
+{
+	if (g_FileList != null)
+	{
+		var entry;
+
+		var count;
+		var fileEntry;
+		var bFoundEntry = false;
+		for (count = 0; 
+			 count < g_FileList.length && !bFoundEntry; 
+			 count++)
+		{
+			if (pageIndex == g_FileList[count].PageIndex)
+			{
+				return count;
+			}
+		}
+	}
+	return -1;
+}
+
+function FindShapeXML (pageID, shapeID)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@ID = "' + pageID + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@ID = "' + shapeID + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function FindShapeXMLByName (pageName, shapeName)
+{
+	var shapeObj = null;
+
+	if (xmlData)
+	{
+		var pagesObj = xmlData.selectSingleNode("VisioDocument/Pages");
+		if(!pagesObj)
+		{
+			return null;
+		}
+		
+		var pageQuerryString = './/Page[@Name $ieq$ "' + EscapeString (pageName) + '"]';
+		var pageObj = pagesObj.selectSingleNode(pageQuerryString);
+		if(!pageObj)
+		{
+			return null;
+		}
+
+		var shapeQuerryString = './/Shape[@Name $ieq$ "' + EscapeString (shapeName) + '"]';
+		shapeObj = pageObj.selectSingleNode(shapeQuerryString);
+	}
+
+	return shapeObj;
+}
+
+function Unquote (str)
+{
+	var nStartIndex = 0;
+	var nEndIndex = str.length;
+
+	if (str.charAt (0) == '"')
+	{
+		nStartIndex = 1;
+	}
+
+	if (str.charAt (nEndIndex - 1) == '"')
+	{
+		nEndIndex -= 1;
+	}
+
+	return str.substring (nStartIndex, nEndIndex);
+}
+
+function ConvertXorYCoordinate(PosValue, OldMin, OldMax, NewMin, NewMax, MapBackwards)
+{
+	var OldMid = (OldMax - OldMin) / 2;
+	var NewMid = (NewMax - NewMin) / 2;
+	var ConvertResult = 1 * PosValue;
+	ConvertResult = ConvertResult - (OldMin + OldMid);
+	ConvertResult = ConvertResult / OldMid;
+	if(MapBackwards != 0)
+	{
+		ConvertResult = 0 - ConvertResult;
+	}
+	ConvertResult = ConvertResult * NewMid;
+	ConvertResult = ConvertResult + (NewMin + NewMid);
+	return ConvertResult;
+}
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.display = "";
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+		divObject.style.display = "none";
+	}
+	return divObject;
+}
+
+function EscapeString (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "\\\\";
+		}
+		else if (curChar == "\"")
+		{
+			strResult += "\\\"";
+		}
+		else if (curChar == "\'")
+		{
+			strResult += "\\\'";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLEscape (str)
+{
+	var strResult = "";
+
+	for (var i = 0 ; i < str.length ; i++)
+	{
+		var curChar = str.charAt(i);
+		if (curChar == '\\')
+		{
+			strResult += "&#92;";
+		}
+		else if (curChar == '\"')
+		{
+			strResult += "&#34;";
+		}
+		else if (curChar == '\'')
+		{
+			strResult += "&#39;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#60;";
+		}
+		else if (curChar == '<')
+		{
+			strResult += "&#62;";
+		}
+		else if (curChar == '&')
+		{
+			strResult += "&#38;";
+		}
+		else
+		{
+			strResult += curChar;
+		}
+	}
+
+	return strResult;
+}
+
+function HTMLUnescape (str)
+{
+	var strResult = "";
+	var strEscapePattern = "&#xx;";
+
+	for (var i = 0 ; i < str.length - strEscapePattern.length + 1; i++)
+	{
+		if (str.charAt(i) == '&' && 
+			str.charAt(i + 1) == '#' &&
+			str.charAt(i + 4) == ';')
+		{
+			var charCode = str.charAt(i + 2);
+			charCode += str.charAt(i + 3);
+
+			if (charCode == "34")
+			{
+				strResult += '"';
+			}
+			else if (charCode == "39")
+			{
+				strResult += '\'';
+			}
+			else if (charCode == "60")
+			{
+				strResult += '<';
+			}
+			else if (charCode == "62")
+			{
+				strResult += '>';
+			}
+			else if (charCode == "92")
+			{
+				strResult += '\\';
+			}
+			else if (charCode == "38")
+			{
+				strResult += '&';
+			}
+			
+			i = i + strEscapePattern.length - 1;
+		}
+		else
+		{
+			strResult += str.charAt(i);
+		}
+	}
+
+	strResult += str.substring (i, str.length);
+
+	return strResult;
+}
+
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/gif_1.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/gif_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/gif_1.htm	(revision 21)
@@ -0,0 +1,139 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>
+switch_pxe_mode_flow_chart
+</title>
+<script type="text/javascript" language="javascript">
+function UpdateTooltip(){};
+function OnShapeClick(){};
+</script>
+
+<script src="gif_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+	}
+</script>
+
+
+
+<script type="text/jscript" language="jscript">
+
+var pageID = 0;
+
+var isUpLevel = parent.isUpLevel;
+var OnShapeClick = null;
+if (!parent.isMac)
+{
+	OnShapeClick = parent.OnShapeClick;
+}
+
+var OnShapeKey = parent.OnShapeKey;
+var UpdateTooltip = parent.UpdateTooltip;
+var clickMenu = parent.clickMenu;
+var toggleMenuDiv = parent.toggleMenuDiv;
+var toggleMenuLink = parent.toggleMenuLink;
+var GoToPage = parent.GoToPage;
+
+
+if (parent.isUpLevel)
+{
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			var fileEntry = parent.g_FileList[parent.g_CurPageIndex];
+			var fileToLoad = fileToLoad = fileEntry.PriImage;
+			if (fileEntry.SecImage.length > 0)
+			{
+				fileToLoad = fileEntry.SecImage;
+			}
+
+			location.replace(fileToLoad);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+
+	var viewMgr = new parent.CViewMgr();
+	parent.viewMgr = viewMgr;
+
+	viewMgr.SupportsDetails = true;
+	viewMgr.SupportsSearch = true;
+
+	viewMgr.put_Location = ViewMgrSetRasterLocation;
+	viewMgr.visBBoxLeft = 2.205602;
+	viewMgr.visBBoxRight = 6.298335;
+	viewMgr.visBBoxBottom = 3.120937;
+	viewMgr.visBBoxTop = 8.213062;
+	viewMgr.highlightDiv = null;
+}
+
+function load ()
+{
+	if(isUpLevel)
+	{
+		arrowdiv.innerHTML = '<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>';
+
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.CurPageUpdate (pageIndex);
+	}
+}
+
+function unload()
+{
+	if(isUpLevel)
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+}
+
+window.onload = load;
+window.onunload = unload;
+document.onclick = clickMenu;
+
+</script>
+</head>
+
+<body class="pageView" bgcolor="#FFFFFF">
+
+<div id=arrowdiv style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+<DIV id=RasterDiv>
+
+
+<center>
+  <IMG id="ConvertedImage" SRC="gif_1.gif" ALT="頁-1" name=RasterImage BORDER="0" USEMAP="#visImageMap">
+</center>
+
+<MAP NAME="visImageMap">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="179,488,273,488,273,431,179,431,179,488" onmouseover="UpdateTooltip(this,0,19)" onfocus="UpdateTooltip(this,0,19)" onclick="return OnShapeClick(0,19);" onkeyup="OnShapeKey(0,19);">
+  <AREA shape="POLYGON" tabindex="1" ALT="While client in CLIENTS is true" origTitle="While client in CLIENTS is true" TITLE="While client in CLIENTS is true"  target="_top" COORDS="260,377,273,369,259,360,259,355,249,355,226,341,203,355,196,355,196,359,179,369,191,377,191,382,200,382,226,397,252,382,260,382,260,377" onmouseover="UpdateTooltip(this,0,13)" onfocus="UpdateTooltip(this,0,13)" onclick="return OnShapeClick(0,13);" onkeyup="OnShapeKey(0,13);">
+  <AREA shape="POLYGON" tabindex="1" ALT="執行命令" origTitle="執行命令" TITLE="執行命令"  target="_top" COORDS="15,397,109,397,109,341,15,341,15,397" onmouseover="UpdateTooltip(this,0,12)" onfocus="UpdateTooltip(this,0,12)" onclick="return OnShapeClick(0,12);" onkeyup="OnShapeKey(0,12);">
+  <AREA shape="POLYGON" tabindex="1" ALT="end" origTitle="end" TITLE="end"  target="_top" COORDS="36,489,89,489,90,489,90,489,91,489,91,489,92,489,92,488,93,488,94,488,94,488,95,488,95,487,95,487,96,487,96,487,97,486,97,486,98,486,98,485,98,485,99,485,99,484,100,484,100,483,100,483,100,482,101,482,101,481,101,481,101,480,102,480,102,479,102,479,102,478,102,478,102,477,102,477,102,476,102,476,102,475,102,475,102,474,102,474,102,473,102,473,102,472,101,471,101,471,101,471,101,470,100,470,100,469,100,469,100,468,99,468,99,467,98,467,98,467,98,466,97,466,97,466,96,465,96,465,95,465,95,464,95,464,94,464,94,464,93,464,92,464,92,463,91,463,91,463,90,463,90,463,89,463,36,463,35,463,34,463,34,463,33,463,33,463,32,464,32,464,31,464,31,464,30,464,30,464,29,465,29,465,28,465,28,466,28,466,27,466,27,467,26,467,26,467,26,468,25,468,25,469,25,469,24,470,24,470,24,471,24,471,23,471,23,472,23,473,23,473,23,474,23,474,23,475,23,475,23,476,23,476,23,477,23,477,23,478,23,478,23,479,23,479,23,480,23,480,24,481,24,481,24,482,24,482,25,483,25,483,25,484,26,484,26,485,26,485,27,485,27,486,28,486,28,486,28,487,29,487,29,487,30,487,30,488,31,488,31,488,32,488,32,488,33,489,33,489,34,489,34,489,35,489,36,489" onmouseover="UpdateTooltip(this,0,15)" onfocus="UpdateTooltip(this,0,15)" onclick="return OnShapeClick(0,15);" onkeyup="OnShapeKey(0,15);">
+  <AREA shape="POLYGON" tabindex="1" ALT="Text or Graphic" origTitle="Text or Graphic" TITLE="Text or Graphic"  target="_top" COORDS="15,99,62,127,110,99,62,70,15,99" onmouseover="UpdateTooltip(this,0,11)" onfocus="UpdateTooltip(this,0,11)" onclick="return OnShapeClick(0,11);" onkeyup="OnShapeKey(0,11);">
+  <AREA shape="POLYGON" tabindex="1" ALT="將選擇的 ip 位址轉換為 16進位表示" origTitle="將選擇的 ip 位址轉換為 16進位表示" TITLE="將選擇的 ip 位址轉換為 16進位表示"  target="_top" COORDS="179,307,273,307,273,250,179,250,179,307" onmouseover="UpdateTooltip(this,0,9)" onfocus="UpdateTooltip(this,0,9)" onclick="return OnShapeClick(0,9);" onkeyup="OnShapeKey(0,9);">
+  <AREA shape="POLYGON" tabindex="1" ALT="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list" TITLE="讀取  ip_list or  MAC list"  target="_top" COORDS="342,165,318,165,318,166,317,167,317,167,317,168,316,169,316,170,316,171,315,172,315,173,315,174,314,175,314,176,314,177,314,178,314,178,314,179,314,180,313,181,313,182,313,183,313,184,313,185,313,186,313,187,314,188,314,189,314,190,314,191,314,192,314,193,314,194,315,195,315,196,315,196,316,197,316,198,316,199,317,200,317,201,317,202,318,203,318,203,393,203,392,203,392,202,392,201,391,200,391,199,391,198,390,197,390,196,390,196,389,195,389,194,389,193,389,192,389,191,388,190,388,189,388,188,388,187,388,186,388,185,388,184,388,183,388,182,388,181,388,180,388,179,388,178,389,178,389,177,389,176,389,175,389,174,390,173,390,172,390,171,391,170,391,169,391,168,392,167,392,167,392,166,393,165,364,165,364,163,342,163,342,165" onmouseover="UpdateTooltip(this,0,5)" onfocus="UpdateTooltip(this,0,5)" onclick="return OnShapeClick(0,5);" onkeyup="OnShapeKey(0,5);">
+  <AREA shape="POLYGON" tabindex="1" ALT="選擇 clients" origTitle="選擇 clients" TITLE="選擇 clients"  target="_top" COORDS="242,196,266,184,243,173,243,166,239,166,229,166,226,165,223,166,213,166,213,171,186,184,210,196,210,200,219,200,226,203,233,200,242,200,242,196" onmouseover="UpdateTooltip(this,0,4)" onfocus="UpdateTooltip(this,0,4)" onclick="return OnShapeClick(0,4);" onkeyup="OnShapeKey(0,4);">
+  <AREA shape="POLYGON" tabindex="1" ALT="是否選擇全部 clients" origTitle="是否選擇全部 clients" TITLE="是否選擇全部 clients"  target="_top" COORDS="78,170,62,165,46,170,30,170,30,175,0,184,62,204,124,184,94,175,94,170,78,170" onmouseover="UpdateTooltip(this,0,2)" onfocus="UpdateTooltip(this,0,2)" onclick="return OnShapeClick(0,2);" onkeyup="OnShapeKey(0,2);">
+  <AREA shape="POLYGON" tabindex="1" ALT="start" origTitle="start" TITLE="start"  target="_top" COORDS="36,26,89,26,90,26,90,26,91,26,91,26,92,26,92,25,93,25,94,25,94,25,95,25,95,25,95,24,96,24,96,24,97,23,97,23,98,23,98,22,98,22,99,22,99,21,100,21,100,20,100,20,100,19,101,19,101,18,101,18,101,18,102,17,102,16,102,16,102,15,102,15,102,14,102,14,102,13,102,13,102,12,102,12,102,11,102,11,102,10,102,10,102,9,101,9,101,8,101,8,101,7,100,7,100,6,100,6,100,5,99,5,99,4,98,4,98,4,98,3,97,3,97,3,96,2,96,2,95,2,95,2,95,1,94,1,94,1,93,1,92,1,92,0,91,0,91,0,90,0,90,0,89,0,36,0,35,0,34,0,34,0,33,0,33,0,32,1,32,1,31,1,31,1,30,1,30,2,29,2,29,2,28,2,28,3,28,3,27,3,27,4,26,4,26,4,26,5,25,5,25,6,25,6,24,7,24,7,24,8,24,8,23,9,23,9,23,10,23,10,23,11,23,11,23,12,23,12,23,13,23,13,23,14,23,14,23,15,23,15,23,16,23,16,23,17,23,18,24,18,24,18,24,19,24,19,25,20,25,20,25,21,26,21,26,22,26,22,27,22,27,23,28,23,28,23,28,24,29,24,29,24,30,25,30,25,31,25,31,25,32,25,32,25,33,26,33,26,34,26,34,26,35,26,36,26" onmouseover="UpdateTooltip(this,0,1)" onfocus="UpdateTooltip(this,0,1)" onclick="return OnShapeClick(0,1);" onkeyup="OnShapeKey(0,1);">
+</MAP>
+
+
+
+</DIV>
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/gif_1.js
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/gif_1.js	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/gif_1.js	(revision 21)
@@ -0,0 +1,64 @@
+function ViewMgrSetRasterLocation(pageID, shapeID, pinX, pinY)
+{
+	clickMenu ();
+
+	var rasterImage = document.images("RasterImage");
+
+	var imageLeft = 0;
+	var imageRight = imageLeft + rasterImage.offsetWidth;
+	var imageTop = 0;
+	var imageBottom = imageTop + rasterImage.offsetHeight;
+	
+	var xLong = parent.ConvertXorYCoordinate(pinX, viewMgr.visBBoxLeft, viewMgr.visBBoxRight, imageLeft, imageRight, 0);
+	var yLong = parent.ConvertXorYCoordinate(pinY, viewMgr.visBBoxBottom, viewMgr.visBBoxTop, imageTop, imageBottom, 1);
+	
+	var pixelWidth = document.body.scrollWidth;
+	var pixelHeight = document.body.scrollHeight;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+	var halfClientWidth = clientWidth;
+	var halfClientHeight = clientHeight;
+
+	xLong = xLong + rasterImage.offsetLeft;
+	yLong = yLong + rasterImage.offsetTop;
+	var xScrollAmount = 0;
+	var yScrollAmount = 0;
+
+	var xPrevScrollAmount = document.body.scrollLeft;
+	var yPrevScrollAmount = document.body.scrollTop;
+
+	var arrowHalfWidth = arrowdiv.clientWidth / 2;
+	var arrowHeight = arrowdiv.clientHeight;
+
+	if ((xLong - arrowHalfWidth) < xPrevScrollAmount)
+	{
+		// X off left of screen.
+		document.body.scrollLeft = xLong - arrowHalfWidth;
+	}
+	else if ((xLong + arrowHalfWidth) > (clientWidth + xPrevScrollAmount))
+	{
+		// X off right of screen. 
+		document.body.scrollLeft = xLong - clientWidth + xPrevScrollAmount + arrowHalfWidth;
+	}
+
+	if (yLong < yPrevScrollAmount)
+	{
+		// Y off top of screen.
+		document.body.scrollTop = yLong;
+	}
+	else if ((yLong + arrowHeight) > (clientHeight + yPrevScrollAmount))
+	{
+		// Y off bottom of screen. 
+		document.body.scrollTop = yLong - clientHeight + yPrevScrollAmount + arrowHeight;
+	}
+
+	arrowdiv.style.posLeft = xLong - arrowHalfWidth;
+	arrowdiv.style.posTop = yLong;
+	arrowdiv.style.visibility = "visible";
+
+	setTimeout( "parent.hideObject(arrowdiv)", 0 );
+	setTimeout( "parent.showObject(arrowdiv)", 1 );
+	setTimeout( "parent.hideObject(arrowdiv)", 2000 );
+}
+
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/keys.js
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/keys.js	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/keys.js	(revision 21)
@@ -0,0 +1,14 @@
+
+function keyHandler()
+{
+	var e = window.event;
+	var tag = e.srcElement.tagName;
+	var override = !(tag == "A" || tag == "INPUT" || tag == "SELECT" || tag == "FORM" || tag == "SUBMIT");
+	
+	if(override && e.keyCode == 13) //13 is <enter> key
+	{
+		e.srcElement.click();
+	}
+}
+
+document.onkeypress = keyHandler;
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/toolbar.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/toolbar.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/toolbar.htm	(revision 21)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<title></title>
+<style type="text/css">
+body
+{
+	font-family: Verdana, Sans-Serif;
+	font-size: small;
+}
+
+.toc
+{
+	font-size: medium;
+}
+</style>
+<script type="text/jscript" language="jscript">
+	if(parent.isUpLevel)
+	{
+		location.replace("widgets.htm");
+	}
+</script>
+</head>
+
+
+<body leftmargin="0" topmargin="0" class="nav" dir=ltr>
+	<table id="tabToc" width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#999999" height="20">
+	<tr>
+	<td>&nbsp;</td>
+	</tr>
+	</table>
+
+<h1 class="toc">switch_pxe_mode_flow_chart</h1>
+	<ul>
+		<li><a href="gif_1.htm" target="frmDrawing">頁-1</a></li>
+
+	</ul>
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/visio.css
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/visio.css	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/visio.css	(revision 21)
@@ -0,0 +1,263 @@
+﻿td {vertical-align: top;}
+
+.fillcolor
+{	vertical-align: top;
+	padding: 0pt;
+	background-color:#5C85EF;
+	filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#5C85EF', EndColorStr='#90B6FF');
+}
+
+A.blu1
+{
+	color: #3366CC;
+	text-decoration: none;
+	font-size: 95%;
+}
+
+A.blu1:visited
+{
+	color: #3366CC;
+	text-decoration: none
+}
+
+A.blu1:hover
+{
+	text-decoration: underline
+}
+
+.visrptTitle
+{
+	color:Black;
+	font-style:normal;
+}
+
+.visrptSummryLabel
+{
+	color:black;
+	font-weight:bold;
+}
+
+.visrptGrandTotalRow
+{	
+	color:Black;
+	font-weight:bold;
+}
+
+.visrptHeader
+{
+	color:White;
+	font-style:normal;
+	background-color:#5C85EF;
+}
+
+.visrptRowItem
+{
+	background-color:#DDDDDD;
+}
+
+.a1
+{	color: #ffffff;
+	text-decoration:none;
+}
+
+.p1
+{	font-family: PMingLiu, verdana, san-serif;
+	font-size: 60%;
+	COLOR: #ffffff;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: .8em;
+}
+
+.p2
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,0pt;
+	line-height: 1.3em;
+}
+
+.label
+{	FONT-FAMILY: PMingLiu, verdana, san-serif;
+	FONT-WEIGHT: bold;
+	font-size: 70%;
+	COLOR: #FFFFFF;
+	Margin: .2em,0pt,2pt,2pt;
+	line-height: 1em;
+	text-decoration:none;
+}
+
+.gobutton
+{
+	padding: 0pt, 2pt, 0pt, 0pt;
+	vertical-align: bottom;
+}
+
+.formText
+{
+	font-size: 70%;
+	width: 99%;
+	margin: 0;
+	padding: 0;
+}
+
+.holderTable
+{
+	padding-left:1px;
+	padding-right:1px;
+}
+
+.detsPara
+{
+	margin:2pt;
+	font-size:60%;
+}
+
+.navTocColor
+{
+	background-color:#999999;
+}
+
+.indent
+{
+	margin-left:15px;
+	margin-right:15px;
+	padding-top:0px;
+	margin-top:0px;
+}
+
+.results
+{	
+	COLOR: #333333;
+	Margin: 4pt,0pt,0pt,10pt;
+	text-indent: -10pt;
+	line-height: 1.1em;
+}
+
+.propViewer 
+{
+	background-Color:white;
+	color: black;
+	font-family: PMingLiu, verdana, san-serif;
+	font-style: italic;
+	font-weight: bold;
+	font-size: 70%;
+	text-align: center;
+}
+
+.propViewerTABLE 
+{
+	margin: 2pt;
+	border-collapse:collapse;
+	border:solid 1px #999999;	
+}
+
+.propViewerTHEAD 
+{
+	border: 2px;
+	font-size: 60%;
+}
+
+.propViewerTD 
+{
+	font-family: PMingLiu, Verdana, san-serif;
+	FONT-WEIGHT: normal;
+	font-size: 70%;
+	COLOR: #000000;
+	Margin: 0pt;
+	line-height: 1.1em;
+}
+
+.propViewerEvenRow 
+{
+	background-Color: #E7E7E7;
+}
+
+.propViewerOddRow 
+{
+	background-Color: #FFFFFF; 
+}
+
+BODY
+{
+	font-family: PMingLiu, Verdana, Sans-Serif;
+	font-size: medium;
+}
+
+DIV
+{
+	margin:0;
+	padding:0;
+}
+
+FORM
+{
+	margin:0;
+}
+
+.hiderScroll
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+	overflow:auto;
+}
+
+.hider
+{
+	width:100%;
+	margin-bottom:2px;
+	margin-top:1px;
+}
+
+.nav
+{
+	width: 100%;
+	height: 100%;
+	overflow: auto;	
+}
+
+.menuItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-color:white;
+	color:black;
+	cursor:hand;
+}
+
+.highlightItem 
+{
+	font-family:PMingLiu, sans-serif;
+	font-size:80%;
+	line-height: 1.5em;
+	background-Color:highlight; 
+	color:white;
+	cursor:hand;
+}
+
+.hlMenu 
+{
+	border:black 2px outset; 
+	display:none; 
+	z-index:10; 
+	position:absolute; 
+	background-Color:white;
+}
+
+.innerhlMenu 
+{
+	padding-left:2pt;
+	padding-right:2pt;
+	background-Color:white;
+}
+
+.svgmessage
+{     FONT-FAMILY: PMingLiu, verdana, san-serif;
+      FONT-WEIGHT: normal;
+      font-size: 80%;
+      COLOR: #333333;
+      Margin: 1em;
+      line-height: 1.1em;
+}
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/vml_1.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/vml_1.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/vml_1.htm	(revision 21)
@@ -0,0 +1,193 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" 
+ xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link rel="stylesheet" type="text/css" href="visio.css"/>
+<title>switch_pxe_mode_flow_chart</title>
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script src="vml_1.js" type="text/jscript" language="jscript"></script>
+
+<script type="text/jscript" language="jscript">
+
+	var pageID = 0;
+	var viewMgr = null;
+
+	if (parent.g_FirstPageToLoad != null && parent.g_FirstPageToLoad.length > 0)
+	{
+		if (parent.g_FileList[parent.g_CurPageIndex].PageID != pageID)
+		{
+			location.replace(parent.g_FileList[parent.g_CurPageIndex].PriImage);
+		}
+
+		parent.g_FirstPageToLoad = null;
+	}
+
+	function getPNZ()
+	{
+		var rawHTML = VMLDiv.innerHTML;
+		var strReturn = ""
+		
+		strReturn = rawHTML.slice( rawHTML.indexOf( '<v:group' ), rawHTML.indexOf( "</v:shape>" ) );
+		strReturn += "</v:shape></v:group>\n";
+				
+		return strReturn;
+	}
+	
+	function load()
+	{
+		viewMgr = new parent.CViewMgr("ConvertedImage", "arrowDiv");
+
+		viewMgr.put_Location = ViewMgrSetVMLLocation;
+
+
+		viewMgr.visBBoxLeft = 2.205602;
+		viewMgr.visBBoxRight = 6.298335;
+		viewMgr.visBBoxBottom = 3.120937;
+		viewMgr.visBBoxTop = 8.213062;
+
+		viewMgr.Zoom = VMLZoomChange;
+		viewMgr.setView= VMLSetView;
+
+		viewMgr.SupportsDetails = true;
+		viewMgr.SupportsSearch = true;
+
+		parent.viewMgr = viewMgr;
+
+		fit();
+	}
+
+	function unload()
+	{
+		viewMgr = null;
+		parent.viewMgr = null;
+	}
+
+	function fit()
+	{
+		if(parent.frmToolbar)
+		{
+			if (parent.g_WidgetsLoaded)
+			{
+				var zoom100 = parent.frmToolbar.document.all('a100');
+				if (zoom100)
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					zoom100.click();
+				}
+				else
+				{
+					parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+					viewMgr.Zoom(100);
+				}
+			}
+			else
+			{
+				window.setTimeout("fit()", 500);
+			}
+		}	
+		else
+		{
+			parent.viewMgr.PostZoomProcessing = PostZoomProcessing;
+			viewMgr.Zoom(100);
+		}
+	}
+
+	function PostZoomProcessing (newZoomLevel)
+	{
+		parent.viewMgr.PostZoomProcessing = null;
+		var pageIndex = parent.PageIndexFromID (pageID);
+		parent.viewMgr.getPNZ = getPNZ;
+		parent.CurPageUpdate (pageIndex);
+	}
+
+
+	
+	var isUpLevel = parent.isUpLevel;
+	var OnShapeClick = parent.OnShapeClick;
+	var OnShapeKey = parent.OnShapeKey;
+	var UpdateTooltip = parent.UpdateTooltip;
+	var clickMenu = parent.clickMenu;
+	var toggleMenuDiv = parent.toggleMenuDiv;
+	var toggleMenuLink = parent.toggleMenuLink;
+	var GoToPage = parent.GoToPage;
+
+	window.onload = load;
+	window.onunload = unload;
+	document.onclick = clickMenu;
+
+
+
+
+</script>
+
+</head>
+
+<body style="MARGIN:10px" onresize="VMLOnResize();" onscroll="VMLOnScroll();">
+
+<div id="arrowdiv" style="position:absolute;top:0;left:0;visibility:hidden;z-index:5">
+<img id="arrowgif" alt="顯示選取圖形的位置" src="arrow.gif"/>
+</div>
+
+<div id="menu1" onclick="clickMenu()" class="hlMenu">
+</div>
+
+
+
+
+<div id="VMLDiv" >
+
+
+<v:group  id="ConvertedImage" style="width:3.214951in;height:4.000000in;position:absolute;visibility=hidden;" coordSize="1607,2000" coordOrigin="-1000,-1000" >
+
+<v:shapetype 
+  id="VISSHAPE"
+  target="_parent"
+  coordsize="1607,2000"
+  coordorigin="-1000,-1000"
+  stroked="f"
+  strokecolor="red"
+  filled="t"
+>
+<v:fill opacity="0.0"/>
+</v:shapetype>
+
+
+<v:shape style="top:-1000.0;left:-1000.0;width:1607.5;height:2000.0;position:absolute" coordSize="1607,2000" coordOrigin="-1000,-1000" >
+<v:imagedata src="vml_1.emz"/>
+</v:shape>
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="start" origTitle="start"  style="top:-1000;left:-1000;width:1607;height:2000;position:absolute" path=" m -850,-889 l -631,-889 l -629,-889 l -627,-889 l -625,-889 l -623,-889 l -621,-890 l -618,-890 l -616,-891 l -614,-892 l -612,-892 l -610,-893 l -608,-894 l -606,-895 l -604,-896 l -603,-897 l -601,-899 l -599,-900 l -597,-901 l -596,-903 l -594,-904 l -593,-906 l -591,-908 l -590,-909 l -589,-911 l -587,-913 l -586,-915 l -585,-917 l -584,-919 l -583,-921 l -583,-923 l -582,-925 l -581,-927 l -581,-929 l -580,-931 l -580,-933 l -580,-936 l -579,-938 l -579,-940 l -579,-942 l -579,-944 l -580,-946 l -580,-949 l -580,-951 l -581,-953 l -581,-955 l -582,-957 l -583,-959 l -583,-961 l -584,-963 l -585,-965 l -586,-967 l -587,-969 l -589,-971 l -590,-973 l -591,-974 l -593,-976 l -594,-978 l -596,-979 l -597,-981 l -599,-982 l -601,-983 l -603,-985 l -604,-986 l -606,-987 l -608,-988 l -610,-989 l -612,-990 l -614,-990 l -616,-991 l -618,-992 l -621,-992 l -623,-993 l -625,-993 l -627,-993 l -629,-993 l -631,-993 l -850,-993 l -852,-993 l -854,-993 l -856,-993 l -858,-993 l -861,-992 l -863,-992 l -865,-991 l -867,-990 l -869,-990 l -871,-989 l -873,-988 l -875,-987 l -877,-986 l -879,-985 l -880,-983 l -882,-982 l -884,-981 l -885,-979 l -887,-978 l -889,-976 l -890,-974 l -891,-973 l -893,-971 l -894,-969 l -895,-967 l -896,-965 l -897,-963 l -898,-961 l -899,-959 l -899,-957 l -900,-955 l -901,-953 l -901,-951 l -901,-949 l -902,-946 l -902,-944 l -902,-942 l -902,-940 l -902,-938 l -902,-936 l -901,-933 l -901,-931 l -901,-929 l -900,-927 l -899,-925 l -899,-923 l -898,-921 l -897,-919 l -896,-917 l -895,-915 l -894,-913 l -893,-911 l -891,-909 l -890,-908 l -889,-906 l -887,-904 l -885,-903 l -884,-901 l -882,-900 l -880,-899 l -879,-897 l -877,-896 l -875,-895 l -873,-894 l -871,-893 l -869,-892 l -867,-892 l -865,-891 l -863,-890 l -861,-890 l -858,-889 l -856,-889 l -854,-889 l -852,-889 l -850,-889xe" onmouseover="UpdateTooltip(this,0,1)" onclick="OnShapeClick(0,1)" onfocus="UpdateTooltip(this,0,1);" onkeyup="OnShapeKey(0,1)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="是否選擇全部 clients" origTitle="是否選擇全部 clients"  style="top:-1000;left:-1000;width:1607;height:2000;position:absolute" path=" m -678,-303 l -742,-323 l -805,-303 l -871,-303 l -871,-283 l -993,-245 l -742,-166 l -490,-245 l -612,-283 l -612,-303 l -678,-303xe" onmouseover="UpdateTooltip(this,0,2)" onclick="OnShapeClick(0,2)" onfocus="UpdateTooltip(this,0,2);" onkeyup="OnShapeKey(0,2)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="選擇 clients" origTitle="選擇 clients"  style="top:-1000;left:-1000;width:1607;height:2000;position:absolute" path=" m -11,-199 l 84,-245 l -9,-290 l -9,-318 l -23,-318 l -66,-318 l -77,-324 l -88,-318 l -131,-318 l -131,-297 l -238,-245 l -143,-199 l -143,-180 l -104,-180 l -77,-167 l -49,-180 l -11,-180 l -11,-199xe" onmouseover="UpdateTooltip(this,0,4)" onclick="OnShapeClick(0,4)" onfocus="UpdateTooltip(this,0,4);" onkeyup="OnShapeKey(0,4)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="讀取  ip_list or  MAC list" origTitle="讀取  ip_list or  MAC list"  style="top:-1000;left:-1000;width:1607;height:2000;position:absolute" path=" m 396,-324 l 298,-324 l 296,-320 l 294,-317 l 293,-313 l 291,-310 l 290,-306 l 288,-302 l 287,-299 l 286,-295 l 285,-291 l 283,-288 l 283,-284 l 282,-280 l 281,-276 l 280,-272 l 280,-268 l 279,-265 l 279,-261 l 278,-257 l 278,-253 l 278,-249 l 278,-245 l 278,-241 l 278,-237 l 278,-234 l 279,-230 l 279,-226 l 280,-222 l 280,-218 l 281,-214 l 282,-210 l 283,-207 l 283,-203 l 285,-199 l 286,-195 l 287,-192 l 288,-188 l 290,-184 l 291,-181 l 293,-177 l 294,-174 l 296,-170 l 298,-167 l 601,-167 l 599,-170 l 597,-174 l 596,-177 l 594,-181 l 593,-184 l 591,-188 l 590,-192 l 589,-195 l 588,-199 l 587,-203 l 586,-207 l 585,-210 l 584,-214 l 583,-218 l 583,-222 l 582,-226 l 582,-230 l 582,-234 l 581,-237 l 581,-241 l 581,-245 l 581,-249 l 581,-253 l 582,-257 l 582,-261 l 582,-265 l 583,-268 l 583,-272 l 584,-276 l 585,-280 l 586,-284 l 587,-288 l 588,-291 l 589,-295 l 590,-299 l 591,-302 l 593,-306 l 594,-310 l 596,-313 l 597,-317 l 599,-320 l 601,-324 l 483,-324 l 483,-330 l 396,-330 l 396,-324xe" onmouseover="UpdateTooltip(this,0,5)" onclick="OnShapeClick(0,5)" onfocus="UpdateTooltip(this,0,5);" onkeyup="OnShapeKey(0,5)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="將選擇的 ip 位址轉換為 16進位表示" origTitle="將選擇的 ip 位址轉換為 16進位表示"  style="top:-1000;left:-1000;width:1607;height:2000;position:absolute" path=" m -269,253 l 115,253 l 115,22 l -269,22 l -269,253xe" onmouseover="UpdateTooltip(this,0,9)" onclick="OnShapeClick(0,9)" onfocus="UpdateTooltip(this,0,9);" onkeyup="OnShapeKey(0,9)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="Text or Graphic" origTitle="Text or Graphic"  style="top:-1000;left:-1000;width:1607;height:2000;position:absolute" path=" m -932,-593 l -741,-477 l -549,-593 l -741,-708 l -932,-593xe" onmouseover="UpdateTooltip(this,0,11)" onclick="OnShapeClick(0,11)" onfocus="UpdateTooltip(this,0,11);" onkeyup="OnShapeKey(0,11)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="end" origTitle="end"  style="top:-1000;left:-1000;width:1607;height:2000;position:absolute" path=" m -850,993 l -631,993 l -629,993 l -627,993 l -625,993 l -623,993 l -621,992 l -618,992 l -616,991 l -614,990 l -612,990 l -610,989 l -608,988 l -606,987 l -604,986 l -603,985 l -601,983 l -599,982 l -597,981 l -596,979 l -594,978 l -593,976 l -591,974 l -590,973 l -589,971 l -587,969 l -586,967 l -585,965 l -584,963 l -583,961 l -583,959 l -582,957 l -581,955 l -581,953 l -580,951 l -580,949 l -580,946 l -579,944 l -579,942 l -579,940 l -579,938 l -580,936 l -580,933 l -580,931 l -581,929 l -581,927 l -582,925 l -583,923 l -583,921 l -584,919 l -585,917 l -586,915 l -587,913 l -589,911 l -590,909 l -591,908 l -593,906 l -594,904 l -596,903 l -597,901 l -599,900 l -601,899 l -603,897 l -604,896 l -606,895 l -608,894 l -610,893 l -612,892 l -614,892 l -616,891 l -618,890 l -621,890 l -623,889 l -625,889 l -627,889 l -629,889 l -631,889 l -850,889 l -852,889 l -854,889 l -856,889 l -858,889 l -861,890 l -863,890 l -865,891 l -867,892 l -869,892 l -871,893 l -873,894 l -875,895 l -877,896 l -879,897 l -880,899 l -882,900 l -884,901 l -885,903 l -887,904 l -889,906 l -890,908 l -891,909 l -893,911 l -894,913 l -895,915 l -896,917 l -897,919 l -898,921 l -899,923 l -899,925 l -900,927 l -901,929 l -901,931 l -901,933 l -902,936 l -902,938 l -902,940 l -902,942 l -902,944 l -902,946 l -901,949 l -901,951 l -901,953 l -900,955 l -899,957 l -899,959 l -898,961 l -897,963 l -896,965 l -895,967 l -894,969 l -893,971 l -891,973 l -890,974 l -889,976 l -887,978 l -885,979 l -884,981 l -882,982 l -880,983 l -879,985 l -877,986 l -875,987 l -873,988 l -871,989 l -869,990 l -867,990 l -865,991 l -863,992 l -861,992 l -858,993 l -856,993 l -854,993 l -852,993 l -850,993xe" onmouseover="UpdateTooltip(this,0,15)" onclick="OnShapeClick(0,15)" onfocus="UpdateTooltip(this,0,15);" onkeyup="OnShapeKey(0,15)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:1607;height:2000;position:absolute" path=" m -933,622 l -550,622 l -550,391 l -933,391 l -933,622xe" onmouseover="UpdateTooltip(this,0,12)" onclick="OnShapeClick(0,12)" onfocus="UpdateTooltip(this,0,12);" onkeyup="OnShapeKey(0,12)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="While client in CLIENTS is true" origTitle="While client in CLIENTS is true"  style="top:-1000;left:-1000;width:1607;height:2000;position:absolute" path=" m 63,537 l 115,506 l 56,471 l 56,448 l 17,448 l -77,391 l -171,448 l -199,448 l -199,464 l -269,506 l -217,537 l -217,558 l -182,558 l -77,622 l 28,558 l 63,558 l 63,537xe" onmouseover="UpdateTooltip(this,0,13)" onclick="OnShapeClick(0,13)" onfocus="UpdateTooltip(this,0,13);" onkeyup="OnShapeKey(0,13)"/> 
+
+<v:shape type="#VISSHAPE"   tabindex="1" title="執行命令" origTitle="執行命令"  style="top:-1000;left:-1000;width:1607;height:2000;position:absolute" path=" m -269,990 l 115,990 l 115,760 l -269,760 l -269,990xe" onmouseover="UpdateTooltip(this,0,19)" onclick="OnShapeClick(0,19)" onfocus="UpdateTooltip(this,0,19);" onkeyup="OnShapeKey(0,19)"/> 
+
+</v:group>
+
+
+
+</div>
+
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/vml_1.js
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/vml_1.js	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/vml_1.js	(revision 21)
@@ -0,0 +1,221 @@
+
+function ViewMgrSetVMLLocation(pageID, shapeID, pinX, pinY)
+{
+	doc = parent.frmDrawing.document;
+	if (this.highlightDiv != null)
+	{
+		clickMenu ();
+
+		var VMLImage = this.s;
+
+		var imageLeft = 0;
+		var imageRight = imageLeft + VMLImage.pixelWidth;
+		var imageTop = 0;
+		var imageBottom = imageTop + VMLImage.pixelHeight;
+
+		var xLong = parent.ConvertXorYCoordinate(pinX, this.visBBoxLeft, this.visBBoxRight, imageLeft, imageRight, 0);
+		var yLong = parent.ConvertXorYCoordinate(pinY, this.visBBoxBottom, this.visBBoxTop, imageTop, imageBottom, 1);
+
+		xLong += doc.all['ConvertedImage'].style.posLeft;
+		yLong += doc.all['ConvertedImage'].style.posTop;
+
+		var arrowHalfWidth = viewMgr.highlightDiv.clientWidth / 2;
+		var arrowHeight = viewMgr.highlightDiv.clientHeight;
+
+		var boolNeedToScroll = false;
+
+		if( !( (xLong - arrowHalfWidth) > doc.body.scrollLeft && (xLong + arrowHalfWidth) < (doc.body.scrollLeft + doc.body.clientWidth) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( !( (yLong - arrowHeight) > doc.body.scrollTop && (yLong + arrowHeight) < (doc.body.scrollTop + doc.body.clientHeight) ))
+		{
+			boolNeedToScroll = true;
+		}
+		
+		if( boolNeedToScroll == true )
+		{
+			window.scrollTo( xLong - doc.body.clientWidth / 2, yLong - doc.body.clientHeight / 2);
+		}
+		
+		this.highlightDiv.style.posLeft = xLong - arrowHalfWidth;
+		this.highlightDiv.style.posTop = yLong;
+		this.highlightDiv.style.visibility = "visible";
+
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 0 );
+		setTimeout( "parent.showObject(viewMgr.highlightDiv)", 1 );
+		setTimeout( "parent.hideObject(viewMgr.highlightDiv)", 2500 );
+	}
+}
+
+function VMLZoomChange(size)
+{
+	if(size)
+	{
+		if(size == "up")
+		{
+			size = zoomLast + 50;
+		}
+		else if(size == "down")
+		{
+			size = zoomLast - 50;
+		}
+		
+		size = parseInt(size);
+		if(typeof(size) != "number")
+			size = 100;
+	}
+	else
+	{
+		size = 100;
+	}
+
+	clickMenu ();
+
+	viewMgr.zoomLast = size;
+
+	var zoomFactor = size/100;
+
+	var width = this.s.pixelWidth;
+	var height = this.s.pixelHeight;
+
+	var margin = parseInt(document.body.style.margin) * 2;
+
+	var clientWidth = document.body.clientWidth;
+	var clientHeight = document.body.clientHeight;
+
+	var newScrollLeft = document.body.scrollLeft;
+	var newScrollTop = document.body.scrollTop;
+
+	var winwidth = clientWidth - margin;
+	var winheight = clientHeight - margin;
+
+	var widthRatio = winwidth / width;
+	var heightRatio = winheight / height;
+
+	if (widthRatio < heightRatio)
+	{
+		width = zoomFactor * winwidth;
+		height = width / this.origWH;
+	}
+	else
+	{
+		height = zoomFactor * winheight;
+		width = height * this.origWH;
+	}
+
+	this.s.pixelWidth = Math.max(width,1);
+	this.s.pixelHeight = Math.max(height,1);
+
+	this.sizeLast = size;
+
+	var centerX = (zoomFactor / viewMgr.zoomFactor) * (newScrollLeft + (clientWidth / 2) - this.s.posLeft);
+	var centerY = (zoomFactor / viewMgr.zoomFactor) * (newScrollTop + (clientHeight / 2) - this.s.posTop);
+
+	viewMgr.zoomFactor = zoomFactor;
+
+	if (width <= clientWidth)
+	{
+		this.s.posLeft = Math.max( 0, (clientWidth / 2) - (width / 2));
+	}
+	else
+	{
+		var left = centerX - (clientWidth / 2);
+		if ( left >= 0 )
+		{
+			this.s.posLeft = 0;
+			newScrollLeft = left;
+		}
+		else
+		{
+			this.s.posLeft = -left;
+			newScrollLeft = 0;
+		}
+	}
+
+	if (height <= clientHeight)
+	{
+		this.s.posTop = Math.max( 0, (clientHeight / 2) - (height / 2));
+	}
+	else
+	{
+		var top = centerY - (clientHeight / 2);
+		if ( top >= 0 )
+		{
+			this.s.posTop = 0;
+			newScrollTop = top;
+		}
+		else
+		{
+			this.s.posTop = -top;
+			newScrollTop = 0;
+		}
+	}
+
+	window.scrollTo(newScrollLeft, newScrollTop);
+
+	this.s.visibility = "visible";
+
+	var newXOffsetPercent = document.body.scrollLeft / this.s.pixelWidth;
+	var newYOffsetPercent = document.body.scrollTop / this.s.pixelHeight;
+	var newWidthPercent = document.body.clientWidth / this.s.pixelWidth;
+	var newHeightPercent = document.body.clientHeight / this.s.pixelHeight;
+
+	if (viewMgr.viewChanged)
+	{
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, newWidthPercent, newHeightPercent);
+	}
+
+	if (viewMgr.PostZoomProcessing)
+	{
+		viewMgr.PostZoomProcessing(size);
+	}
+}
+
+function VMLSetView (xOffsetPercent, yOffsetPercent)
+{
+	var leftPixelOffset = xOffsetPercent * this.s.pixelWidth;
+	var topPixelOffset = yOffsetPercent * this.s.pixelHeight;
+
+	window.scrollTo (leftPixelOffset - this.s.posLeft, topPixelOffset - this.s.posTop);
+
+	if (viewMgr.PostSetViewProcessing)
+	{
+		viewMgr.PostSetViewProcessing();
+	}
+}
+
+function VMLOnResize ()
+{
+	if (viewMgr.zoomLast == 100)
+	{
+		viewMgr.Zoom(100);
+	}
+
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newWidthPercent = document.body.clientWidth / image.style.pixelWidth;
+		var newHeightPercent = document.body.clientHeight / image.style.pixelHeight;
+
+		viewMgr.viewChanged (null, null, newWidthPercent, newHeightPercent);
+	}
+}
+
+function VMLOnScroll ()
+{
+	if (viewMgr.viewChanged)
+	{
+		var image = document.all['ConvertedImage'];
+
+		var newXOffsetPercent = document.body.scrollLeft / image.style.pixelWidth;
+		var newYOffsetPercent = document.body.scrollTop / image.style.pixelHeight;
+
+		viewMgr.viewChanged (newXOffsetPercent, newYOffsetPercent, null, null);
+	}
+}
+
+
+
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/widgets.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/widgets.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/widgets.htm	(revision 21)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>switch_pxe_mode_flow_chart</title>
+<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"/>
+<link href="visio.css" rel="stylesheet">
+<script src="keys.js" type="text/jscript" language="jscript"></script>
+<script src="find.js" type="text/jscript" language="jscript"></script>
+<script type="text/jscript" language="jscript">
+	
+	var imgMin = new Image();
+	imgMin.src = "minimize.gif";
+	
+	var imgMax = new Image();
+	imgMax.src = "maximize.gif";
+
+	var fileList = parent.g_FileList;
+	
+	function Widgets()
+	{
+		this.GoTo = null;
+		this.Search = null;
+		this.Details = null;
+		this.PNZ = null;
+
+		this.divCount = 0;
+		
+		this.OpenText = "全部摺疊";
+		this.OpenAlt = "全部摺疊";
+		this.ClosedText = "全部展開";
+		this.ClosedAlt = "全部展開";
+
+		this.Display = "";
+		this.Img = imgMin;
+		this.Text = this.OpenText;
+		this.Alt = this.OpenAlt;
+		
+		this.ToggleAll = ToggleAll;
+		this.ToggleWidget = ToggleWidget;
+		this.Add = Add;
+	}		
+
+	function Add(div, name)
+	{
+		tmpStr = "this." + name + " = new Widget(div);"
+		eval(tmpStr);
+		var thisWidget = eval("this." + name);
+	}
+
+	function Widget(div)
+	{
+		return div;
+	}	
+
+	function ToggleAll()
+	{
+		var OpenCloseFunc = Widget;
+
+		if(this.Display == "")
+		{
+			this.Display = "none";
+			this.Img = imgMax;
+			this.Text = this.ClosedText;
+			this.Alt = this.ClosedAlt;
+			expparent00.title = this.ClosedAlt;
+			OpenCloseFunc = CloseWidget;
+		}
+		else
+		{
+			this.Display = "";
+			this.Img = imgMin;
+			this.Text = this.OpenText;
+			this.Alt = this.OpenAlt;
+			expparent00.title = this.OpenAlt;
+			OpenCloseFunc = OpenWidget;
+		}
+		exp00.src = this.Img.src;	
+		textExp.innerText = this.Text;
+		exp00.alt = this.Alt;
+	
+		if(this.GoTo)
+		{
+			OpenCloseFunc(this.GoTo)
+		}
+		if(this.Search)
+		{
+			OpenCloseFunc(this.Search)
+		}
+		if(this.Details)
+		{
+			OpenCloseFunc(this.Details)
+		}
+		if(this.PNZ)
+		{
+			OpenCloseFunc(this.PNZ)
+		}
+	}
+
+	function ToggleNav()
+	{
+		if(divCollapsedNav.style.display == "none")
+		{
+			divCollapsedNav.style.display = "";
+			divOpenNav.style.display = "none";
+			parent.frmstOuter.cols = "20,*"
+			parent.document.all ('frmToolbar').noResize = true;
+		}
+		else
+		{
+			divOpenNav.style.display = "";
+			divCollapsedNav.style.display = "none";
+			parent.frmstOuter.cols = "237,*"
+			parent.document.all ('frmToolbar').noResize = false;
+		}
+	}
+	
+	function ToggleWidget(div)
+	{
+		if(div.style.display == "none")
+		{
+			OpenWidget(div);
+		}
+		else
+		{
+			CloseWidget(div);
+		}
+	}
+
+	function OpenWidget(div)
+	{
+		document.all(div.img).src = imgMin.src;
+		div.style.display = "";
+		document.all(div.img).alt = div.openAlt;
+		document.all(div.img + "1").title = div.openAlt;
+		document.all(div.img + "2").title = div.openAlt;
+	}
+
+	function CloseWidget(div)
+	{
+		document.all(div.img).src = imgMax.src;
+		div.style.display = "none";
+		document.all(div.img).alt = div.closedAlt;
+		document.all(div.img + "1").title = div.closedAlt;
+		document.all(div.img + "2").title = div.closedAlt;
+	}
+
+	function load()
+	{
+		parent.g_WidgetsLoaded = true;
+
+		if (parent.g_LoadingWidgets)
+		{
+			parent.g_LoadingWidgets = false;
+			parent.location.reload();
+		}
+	}
+
+	function unload()
+	{
+		parent.g_LoadingWidgets = true;
+	}
+	
+		
+	var widgets = new Widgets();
+
+</script>
+
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divOpenNav" class="nav">
+
+	<table id="tabToc" width="100%" class="navTocColor" style="margin-bottom:1px;" cellspacing="0" cellpadding="0" border="0" height="20" dir=ltr>
+	<tr>
+	<td width="2"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" id="linkNavOpen"><img src="toc.gif" alt="摺疊巡覽框架" width="22" height="17" border="0"></a></td>
+	<td><p class="p1"><a href="javascript:ToggleNav();" title="摺疊巡覽框架" class="a1">隱藏</a></p></td>
+	<td align="right"><p class="p1"><a href="javascript:widgets.ToggleAll()" id="textExp" class="a1">全部摺疊</a></p></td>
+	<td width="2">
+		<div style="padding:2pt,1.5pt,0pt,0pt"><a href="javascript:widgets.ToggleAll()" title="全部摺疊" id="expparent00"><img id="exp00" alt="全部摺疊" src="minimize.gif" width="15" height="15" border="0"></a></div>
+	</td>
+	</tr>
+	</table>
+	
+	
+
+	
+	<div id="divPNZ" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp41" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><p class="label">全景和縮放</p></a></td>
+				<td width="15"><a id="exp42" title="摺疊全景和縮放" href="javascript:widgets.ToggleWidget(hidePNZ);"><img id="exp4" alt="摺疊全景和縮放" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hidePNZ" style="text-align:right;" img="exp4" class="hiderScroll" openAlt="摺疊全景和縮放" closedAlt="展開全景和縮放">
+				<table width="220" border="0" cellpadding="0" cellspacing="0">
+				<tr>
+				<td align="center" valign="middle">
+					<iframe title="全景和縮放視窗" longdesc="全景和縮放視窗" id="ifrmPNZ" src="zoom.htm" width="170" height="170" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="border: #cccccc 1px solid;"></iframe>
+				</td>
+					
+				<td>
+					<table id="tabScale" width="17" cellspacing="0" cellpadding="0" border="0">
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放頁面至 100%"><img src="fullpage.gif" alt="縮放頁面至 100%" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(1);" title="拉近"><img src="panplus.gif" alt="拉近" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(500);" title="縮放成 500%"><img id="t500" src="tick-off.gif" alt="縮放成 500%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(450);" title="縮放成 450%"><img id="t450" src="tick-off.gif" alt="縮放成 450%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(400);" title="縮放成 400%"><img id="t400" src="tick-off.gif" alt="縮放成 400%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(350);" title="縮放成 350%"><img id="t350" src="tick-off.gif" alt="縮放成 350%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(300);" title="縮放成 300%"><img id="t300" src="tick-off.gif" alt="縮放成 300%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(250);" title="縮放成 250%"><img id="t250" src="tick-off.gif" alt="縮放成 250%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(200);" title="縮放成 200%"><img id="t200" src="tick-off.gif" alt="縮放成 200%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(150);" title="縮放成 150%"><img id="t150" src="tick-off.gif" alt="縮放成 150%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(100);" title="縮放成 100%" id="a100"><img id="t100" src="tick-on.gif" alt="縮放成 100%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(50);" title="縮放成 50%"><img id="t50" src="tick-off.gif" alt="縮放成 50%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:tickSelect(10);" title="縮放成 10%"><img id="t10" src="tick-off.gif" alt="縮放成 10%" width="17" height="11" border="0"></a></td></tr>
+						<tr><td><a href="javascript:ZoomUpDown(-1);" title="拉遠"><img src="panminus.gif" alt="拉遠" border="0"></a></td></tr>
+					</table>
+				</td>
+				</tr>
+				</table>
+			</div>			
+		</td></tr>
+		</table>
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hidePNZ, "PNZ");
+
+			var zoomLevels = new Array(10, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500);
+
+			var tickOff = new Image();
+			tickOff.src = "tick-off.gif";
+			
+			var tickFoc = new Image();
+			tickFoc.src = "tick-foc.gif";
+			
+			var tickOn = new Image();
+			tickOn.src = "tick-on.gif";
+
+			function tickFocus()
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickFoc.src;
+				}
+			}			
+			
+			function tickBlur(percentZoom)
+			{
+				var elem = window.event.srcElement;
+				if(elem.state == "off")
+				{
+					elem.src = tickOff.src;
+				}
+			}
+
+			function tickSelect(percentZoom)
+			{
+				if (parent.viewMgr &&
+					parent.viewMgr.Zoom)
+				{
+					changeTick(percentZoom);
+					parent.viewMgr.Zoom(percentZoom);					
+				}
+
+				if(frames.item(0).zoomRectDiv)
+				{
+					frames.item(0).g_width = parseInt(frames.item(0).zoomRectDiv.style.pixelWidth) 
+					frames.item(0).g_height = parseInt(frames.item(0).zoomRectDiv.style.pixelHeight)
+					frames.item(0).g_newLeft = parseInt(frames.item(0).zoomRectDiv.style.left)
+					frames.item(0).g_newTop = parseInt(frames.item(0).zoomRectDiv.style.top)
+				}
+			}
+
+			function changeTick(percentZoom)
+			{
+				img = elemScale.all("t" + percentZoom);
+									
+				img.src = tickOn.src;
+				
+				if(elemScale.tickSelected && elemScale.tickSelected != img)
+				{
+					elemScale.tickSelected.src = tickOff.src;
+				}
+				elemScale.tickSelected = img;
+			}
+			
+			function ZoomUpDown(increment)
+			{
+				if (elemScale.tickSelected)
+				{
+					var curZoomLevel = elemScale.tickSelected.id.substring (1);
+					var newZoomLevelIndex = IndexFromLevel (curZoomLevel * 1.0);
+					if (newZoomLevelIndex >= 0)
+					{
+						var img = elemScale.all("t" + zoomLevels[newZoomLevelIndex + increment]);
+						if (img)
+						{
+							tickSelect(img.id.substring(1));
+						}
+					}
+				}
+				else
+				{
+					tickSelect (100);
+				}
+			}
+
+			function IndexFromLevel (zoomLevel)
+			{
+				for (var count = 0; count < zoomLevels.length; count++)
+				{
+					if (zoomLevels[count] == zoomLevel)
+					{
+						return count;
+					}
+				}
+
+				return -1;
+			}
+			
+			elemScale = document.all("tabScale");
+			if(elemScale)
+			{
+				elemScale.onmouseover = tickFocus;
+				elemScale.onmouseout = tickBlur;
+			}
+		</script>
+	</div>
+
+	
+	<div id="divDetails" class="holder" dir=ltr>
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor">
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp21" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><p class="label">詳細資料</p></a></td>
+				<td width="15"><a id="exp22" title="摺疊詳細資料" href="javascript:widgets.ToggleWidget(hideDetails);"><img id="exp2" alt="摺疊詳細資料" src="minimize.gif" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+		</td></tr>
+		<tr><td>
+			<div id="hideDetails" class="hiderScroll" img="exp2" openAlt="摺疊詳細資料" closedAlt="展開詳細資料">
+				<P class="p2" class="detsPara">CTRL+按一下繪圖中的圖形以檢視詳細資料。</P>
+			</div>
+		</td></tr>
+		</table>		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideDetails, "Details");
+			widgets.divCount++;
+		
+		</script>
+	</div>
+
+	
+	<div id="divSearch" class="holder">
+		<table width="100%" cellspacing="0" cellpadding="0" border="0" class="holderTable">
+		<tr><td>
+			<div class="fillcolor" dir=ltr>
+				<table width="100%" cellspacing="0" cellpadding="1" border="0" class="fillcolor">
+				<tr>
+				<td><a id="exp11" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><p class="label">搜尋頁</p></a></td>
+				<td width="15"><a id="exp12" title="摺疊搜尋頁面" href="javascript:widgets.ToggleWidget(hideSearch);"><img src="minimize.gif" id="exp1" alt="摺疊搜尋頁面" width="15" height="15" border="0"></a></td>
+				</tr>
+				</table>
+			</div>
+
+		</td></tr>
+		<tr><td>	
+
+			<div id="hideSearch" img="exp1" class="hiderScroll" openAlt="摺疊搜尋頁面" closedAlt="展開搜尋頁面">
+								<form name=theForm onsubmit="FindOnClick(); return false;" ID="Form1">
+									<table width="100%" cellspacing="0" cellpadding="3" border="0">
+									<tr>
+									<td width="100%">
+										<input class="formText" type="text" name="findString" maxlength="255" size="26" title="輸入要搜尋的文字。按 Enter 開始搜尋。">
+									</td>
+									<td width="18" class="gobutton">
+										<input type="image" src="go.gif" alt="開始搜尋" width="18" height="18" ID="GoButton" NAME="GoButton">
+									</td>
+									</tr>
+									<tr>
+									<td colspan="2" class="p2">
+										<a href="javascript:{};" tabindex="0" onclick="TogglePlus(hideAdvSrch,as0);" class="blu1"><img src="plus.gif" alt="顯示/隱藏進階搜尋選項" border="0" id="as0">進階</a>
+											<div id="hideAdvSrch" class="hiderScroll" style="display:none;">
+												<b>搜尋依據:</b>
+												<div id="divS"></div>
+											</div>
+										<hr width="100%" size="1" color="#cccccc">
+										<div id="hideResults" class="hiderScroll" style="display:none;"></div>
+									</td>
+									</tr>
+									</table>
+								</form>
+			</div>					
+
+		</td></tr>
+		</table>
+		
+		
+		<script type="text/jscript" language="jscript">
+			widgets.Add(hideSearch, "Search");
+			widgets.divCount += 2;
+			
+			makeAdvancedFindCheckboxes(divS);
+			
+			
+			var imgPlus = new Image();
+			imgPlus.src = "plus.gif";
+	
+			var imgMinus = new Image();
+			imgMinus.src = "minus.gif";
+			
+			function TogglePlus(div, img, container)
+			{
+				if(typeof(img) == "string")	
+					img = document.all(img)
+				if(typeof(div) == "string")
+					div = document.all(div)
+					
+				widget = widgets.Search;
+				if(div && img)
+				{
+					if(div.style.display == "none")
+					{
+						div.style.display = "";
+						img.src = imgMinus.src;
+						div.open = "true";
+					}
+					else
+					{
+						div.style.display = "none";
+						img.src = imgPlus.src;
+						
+						div.open = "false";
+					}
+				}
+			}
+		
+		</script>
+	</div>
+
+
+</div>
+
+<div id="divCollapsedNav" class="navTocColor" style="display:none;width:100%;height:100%;">
+	<a href="javascript:ToggleNav();" title="展開巡覽框架" id="linkNavClosed"><img src="toc2.gif" alt="展開巡覽框架" border="0"></a>
+</div>	
+
+
+</body>
+</html>
+
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/zoom.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/zoom.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.files/zoom.htm	(revision 21)
@@ -0,0 +1,990 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+<style type="text/css">
+	 v\:* { behavior: url(#default#VML); }
+</style>
+
+<script type="text/jscript" language="jscript">
+
+var BUFFER = 1;
+
+function zoomObject()
+{
+	this.PZImgRatio			= null;
+	
+	this.zoomWinHeight		= null;
+	this.zoomWinWidth		= null;
+	this.zoomWinTop			= null;
+	this.zoomWinLeft		= null;
+	
+	this.scaleFactor		= null;
+	
+	this.updateContent		= zObj_updateContent;
+	this.doOnBodyResize		= zObj_doOnBodyResize;
+	this.clipZoomRect		= zObj_clipZoomRect;
+}
+
+var g_thumbHeight = window.clientHeight;
+var g_thumbWidth = window.clientWidth;
+zoomObj = new zoomObject();
+
+
+function showObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "visible"
+	}
+	return divObject;
+}
+
+function hideObject( divObject, divID ) 
+{
+	if( divObject == null )
+		divObject = getObj( divID );
+	
+	if( divObject != null ) 
+	{
+		divObject.style.visibility = "hidden";
+	}
+	return divObject;
+}
+
+function zObj_updateContent( win_width, win_height, VMLDiv_left, VMLDiv_top, VMLDiv_width, VMLDiv_height )
+{
+	this.mainWinWidth		= win_width;
+	this.mainWinHeight		= win_height;
+
+	this.mainImgRatio = VMLDiv_height / VMLDiv_width;
+	this.doOnBodyResize();
+}
+
+function zObj_doOnBodyResize()
+{
+	return;
+}
+
+function zObj_clipZoomRect( objectToClip )
+{
+	if( objectToClip == null )
+	{
+		objectToClip = zoomRectObj;
+	}
+	
+	var clipTop		= ( objectToClip.style.posTop < (g_thumbTop) )	? (g_thumbTop - objectToClip.style.posTop)	: 0;
+	var clipLeft	= ( objectToClip.style.posLeft < (g_thumbLeft) )	? (g_thumbLeft - objectToClip.style.posLeft)	: 0;
+	var clipBottom	= ( (objectToClip.style.posHeight - clipTop) > (g_thumbTop + g_thumbHeight + 2 * BUFFER) ) ? (g_thumbHeight + clipTop + BUFFER) : objectToClip.style.posHeight;
+	var clipRight	= 0;
+	if( (this.zoomWinWidth - clipLeft) > (g_thumbLeft + g_thumbWidth) )
+	{
+		if( clipLeft == 0 )
+		{
+			clipRight = g_thumbWidth - objectToClip.style.posLeft + 2 * BUFFER;
+		}
+		else
+		{
+			clipRight = (g_thumbWidth + clipLeft + BUFFER);
+		}
+	}
+	else
+	{
+		clipRight = objectToClip.style.posWidth;
+	}
+	clipTo( objectToClip, clipTop, clipRight, clipBottom, clipLeft);
+}
+
+function findContent()
+{
+	zoomRectDiv.style.display = "none";
+	newZoomWindowDiv.style.display = "none";
+
+	if (parent.parent.frmDrawing && parent.parent.viewMgr)
+	{
+		var viewMgr = parent.parent.viewMgr;
+
+		var getPNZ = parent.parent.viewMgr.getPNZ;
+		if (getPNZ)
+		{
+			var tmp = parent.parent.frmDrawing;
+
+			divThumb = document.all("divThumbnail");
+
+			if (divThumb.innerHTML.length == 0)
+			{
+				divThumb.innerHTML = getPNZ();
+			}
+			else
+			{
+				var pnzInfo = getPNZ();
+				var idIndex = pnzInfo.indexOf("ConvertedImage");
+				if (idIndex >= 0)
+				{
+					var test = pnzInfo;
+					pnzInfo = test.substring (0, idIndex);
+					pnzInfo += "Temp";
+					pnzInfo += test.substring (idIndex, test.length);
+
+					divTempThumbnail.innerHTML = pnzInfo;
+
+					var vmlGroup = divThumbnail.childNodes(0);
+					var vmlTempGroup = divTempThumbnail.childNodes(0);
+					CopyVMLAttrs(vmlGroup, vmlTempGroup);
+					
+					var vmlShape = vmlGroup.childNodes(1);
+					var vmlTempShape = vmlTempGroup.childNodes(1);
+					CopyVMLAttrs(vmlShape, vmlTempShape);
+
+					CopyVMLAttrs(vmlGroup.childNodes(0), vmlTempGroup.childNodes(0));
+					
+					var vmlImageData = vmlShape.childNodes(0);
+					var vmlTempImageData = vmlTempShape.childNodes(0);
+					CopyVMLImageData(vmlImageData, vmlTempImageData);
+				}
+			}
+
+			zoomRectObj = document.all("zoomRectDiv");
+			showObject( zoomRectObj );
+
+			PNZimg = document.all("ConvertedImage");
+			if (PNZimg)
+			{
+				PNZimg.style.left = 0;
+				PNZimg.style.top = 0;
+
+				if (PNZimg.style.pixelWidth > PNZimg.style.pixelHeight)
+				{
+					var oldWidth = PNZimg.style.pixelWidth;
+					PNZimg.style.width = document.body.clientWidth;
+					PNZimg.style.height = (document.body.clientWidth / oldWidth) * PNZimg.style.pixelHeight;
+
+					divThumb.style.top = (document.body.clientHeight - parseInt(PNZimg.style.height)) / 2;
+					divThumb.style.left = 0;
+				}
+				else
+				{
+					var oldHeight = PNZimg.style.pixelHeight;
+					PNZimg.style.height = document.body.clientHeight;
+					PNZimg.style.width = (document.body.clientHeight / oldHeight) * PNZimg.style.pixelWidth;
+
+					divThumb.style.left = (document.body.clientWidth - parseInt(PNZimg.style.width)) / 2;
+					divThumb.style.top = 0;
+				}
+
+				PNZimg.style.visibility = "visible";
+
+				var strOutput = divThumb.innerHTML;
+				if (strOutput.length > 0)
+				{
+					var tmp2 = document.all['ConvertedImage'];
+					zoomObj.updateContent( tmp.document.body.clientWidth, tmp.document.body.clientHeight, parseInt(tmp2.style.left), parseInt(tmp2.style.top), parseInt(tmp2.clientWidth), parseInt(tmp2.clientHeight) );
+
+					viewMgr.viewChanged = PageViewChanged;
+				}
+			}
+		}
+	}
+}
+
+function CopyVMLAttrs(vmlObjDst, vmlObjSrc)
+{
+	if (vmlObjDst != null && vmlObjSrc != null)
+	{
+		vmlObjDst.style.cssText = vmlObjSrc.style.cssText;
+	}
+}
+
+function CopyVMLImageData(vmlImageDataDst, vmlImageDataSrc)
+{
+	if (vmlImageDataDst != null && vmlImageDataSrc != null)
+	{
+		vmlImageDataDst.src = vmlImageDataSrc.src;
+	}
+}
+
+function setZoomRectCursor()
+{
+	var x = getMouseXcoord() - zoomObj.zoomWinLeft;
+	var y = getMouseYcoord() - zoomObj.zoomWinTop;
+
+	var rbw = 5;
+
+	var newCursor	= "";
+	if( y > (zoomObj.zoomWinHeight - rbw) )
+		newCursor = "s"
+	else if( y < rbw )
+		newCursor = "n";
+		
+	if( x < rbw )
+		newCursor += "w";
+	else if( x > (zoomObj.zoomWinWidth - rbw) )
+		newCursor += "e";
+
+	if( newCursor != "" )
+		zoomRectObj.style.cursor = newCursor + "-resize";
+	else
+		zoomRectObj.style.cursor = "move";
+}
+
+function startZoomRectDrag()
+{
+	var currentCursor = zoomRectObj.style.cursor;
+
+	if( currentCursor.indexOf( '-' ) != -1 )
+	{
+		g_resizeDirection = currentCursor.split( '-' )[0];
+		startDrag( 'zoomRectDiv', doResizeZoomRectDrag, stopResizeZoomRectDrag );
+	}
+	else
+	{
+		startDrag( 'zoomRectDiv', doZoomRectDrag, stopZoomRectDrag );
+	}
+}
+
+function doZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var rectLeft = parseInt(dragObj.divObject.style.left);
+	var rectTop = parseInt(dragObj.divObject.style.top);
+	var rectWidth = parseInt(dragObj.divObject.style.width);
+	var rectHeight = parseInt(dragObj.divObject.style.height);
+
+	var xOffset = 0;
+	var yOffset = 0;
+
+	var xPercent = 0;
+	var yPercent = 0;
+
+	var pnzImgLeft = parseInt(divThumbnail.style.left);
+	var pnzImgTop = parseInt(divThumbnail.style.top);
+	var pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+	var pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+		
+	xOffset = x + dragObj.xOffset - pnzImgLeft;
+	xPercent = xOffset / pnzImgWidth;
+
+	yOffset = y + dragObj.yOffset - pnzImgTop;
+	yPercent = yOffset / pnzImgHeight;
+
+	if (xOffset < 0)
+	{
+		xPercent = 0;
+		xOffset = pnzImgLeft - BUFFER;
+	}
+	else if (xOffset + rectWidth > pnzImgWidth)
+	{
+		xPercent = 1;
+		xOffset = pnzImgLeft + pnzImgWidth - rectWidth + BUFFER;
+	}
+	else
+	{
+		xOffset = x + dragObj.xOffset;
+	}
+
+	if (yOffset < 0)
+	{
+		yPercent = 0;
+		yOffset = pnzImgTop - BUFFER;
+	}
+	else if (yOffset + rectHeight > pnzImgHeight)
+	{
+		yPercent = 1;
+		yOffset = pnzImgTop + pnzImgHeight - rectHeight + BUFFER;
+	}
+	else
+	{
+		yOffset = y + dragObj.yOffset;
+	}
+
+	if (parent.parent.viewMgr.setView)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	setZWinSize (null, null, xOffset, yOffset);
+}
+
+function stopZoomRectDrag(dragObj, x, y)
+{
+	var el = window.event.srcElement;
+	g_newLeft = parseInt(el.style.left);
+	g_newTop = parseInt(el.style.top);
+}
+
+function setZWinSize( newWidth, newHeight, newLeft, newTop )
+{
+	if( newWidth != null && newWidth >= 0 ) 
+	{
+		zoomObj.zoomWinWidth = newWidth;
+		zoomRectObj.style.width = newWidth;
+	}
+
+	if( newHeight != null && newHeight >= 0 ) 
+	{
+		zoomObj.zoomWinHeight = newHeight;
+		zoomRectObj.style.height = newHeight;
+	}
+
+	if( newLeft != null && newLeft >= 0 )
+	{
+		zoomObj.zoomWinLeft = newLeft;
+		zoomRectObj.style.left = newLeft;
+	}
+
+	if( newTop != null && newTop >= 0 )
+	{
+		zoomObj.zoomWinTop = newTop;
+		zoomRectObj.style.top= newTop;
+	}
+}
+
+function doResizeZoomRectDrag(dragObj, x, y)
+{
+	var newWidth	= null;
+	var newHeight	= null;
+	var newLeft		= null;
+	var newTop		= null;
+		
+	var tmp = parent.parent.frmDrawing;
+	if (tmp)
+	{
+		zoomObj.mainWinWidth		= tmp.document.body.clientWidth;
+		zoomObj.mainWinHeight		= tmp.document.body.clientHeight;
+	}
+
+	var widthHeightRatio = zoomObj.mainWinWidth / zoomObj.mainWinHeight;
+	
+	var minimumSize = 10;
+	if( g_resizeDirection == 'e' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'w' )
+	{
+		newWidth	= zoomObj.zoomWinWidth + zoomObj.zoomWinLeft - x;
+		if( newWidth > minimumSize )
+		{
+			newHeight	= newWidth / widthHeightRatio;
+			newTop		= zoomObj.zoomWinTop - (newWidth - zoomObj.zoomWinWidth)/4;
+			newLeft		= x;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+
+	if( g_resizeDirection == 'se' )
+	{
+		newWidth	= Math.max( minimumSize, x - zoomObj.zoomWinLeft);
+		newHeight	= newWidth / widthHeightRatio;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 's' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+
+	if( g_resizeDirection == 'sw' )
+	{
+		newHeight	= Math.max( minimumSize, y - zoomObj.zoomWinTop);
+		newWidth	= newHeight * widthHeightRatio;
+		newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+		setZWinSize( newWidth, newHeight, newLeft, newTop );
+		return;
+	}
+	
+	if( g_resizeDirection == 'n' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - (newHeight - zoomObj.zoomWinHeight)/2;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'ne' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+	
+	if( g_resizeDirection == 'nw' )
+	{
+		newHeight	= zoomObj.zoomWinTop - y + zoomObj.zoomWinHeight;
+		if( newHeight > minimumSize )
+		{
+			newWidth	= newHeight * widthHeightRatio;
+			newTop		= y;
+			newLeft		= zoomObj.zoomWinLeft - ((newHeight - zoomObj.zoomWinHeight) * zoomObj.zoomWinWidth / zoomObj.zoomWinHeight);
+			setZWinSize( newWidth, newHeight, newLeft, newTop );
+		}
+		return;
+	}
+}
+
+function stopResizeZoomRectDrag(dragObj, x, y)
+{
+	PNZimg = document.all("ConvertedImage");
+
+	var xWidthPercent = parseInt(zoomRectDiv.style.width) / PNZimg.style.pixelWidth;
+	var yHeightPercent = parseInt(zoomRectDiv.style.height) / PNZimg.style.pixelHeight;
+
+	var newZoomLevel = GetZoomLevel (xWidthPercent, yHeightPercent);
+
+	if (parent.parent.viewMgr.Zoom)
+	{
+		var viewMgr = parent.parent.viewMgr;
+		viewMgr.PostZoomProcessing = PostZoomProcessing;
+		viewMgr.ChangingView = true;
+		viewMgr.Zoom (newZoomLevel);
+	}
+
+	g_width = parseInt(zoomRectDiv.style.pixelWidth);
+	g_height = parseInt(zoomRectDiv.style.pixelHeight);
+	g_newLeft = parseInt(zoomRectDiv.style.left);
+	g_newTop = parseInt(zoomRectDiv.style.top);
+}
+
+function GetZoomLevel (xWidthPercent, yHeightPercent)
+{
+	var newZoomLevel;
+	if (xWidthPercent < yHeightPercent)
+	{
+		newZoomLevel = 100 / xWidthPercent;
+	}
+	else
+	{
+		newZoomLevel = 100 / yHeightPercent;
+	}
+
+	return newZoomLevel;
+}
+
+function PostZoomProcessing (newZoomLevel)
+{
+	var xOffset = parseInt(zoomRectDiv.style.left) - parseInt(divThumbnail.style.left);
+	var yOffset = parseInt(zoomRectDiv.style.top) - parseInt(divThumbnail.style.top);
+
+	var xPercent = xOffset / PNZimg.style.pixelWidth;
+	var yPercent = yOffset / PNZimg.style.pixelHeight;
+
+	var viewMgr = parent.parent.viewMgr;
+	viewMgr.ChangingView = true;
+
+	if (viewMgr.setView)
+	{
+		viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+		viewMgr.setView (xPercent, yPercent);
+	}
+
+	SetCorrectTick (newZoomLevel);
+
+	viewMgr.PostZoomProcessing = null;
+}
+
+function SetCorrectTick (newZoomLevel)
+{
+	var zoomLevels = parent.zoomLevels;
+	if (newZoomLevel <= zoomLevels[0])
+	{
+		parent.changeTick(zoomLevels[0]);
+	}
+	else if (newZoomLevel >= zoomLevels[zoomLevels.length - 1])
+	{
+		parent.changeTick(zoomLevels[zoomLevels.length - 1]);
+	}
+	else
+	{
+		for (var count = 0; count < zoomLevels.length - 1; count++)
+		{
+			var deltaDown = newZoomLevel - zoomLevels[count];
+			var deltaUp = newZoomLevel - zoomLevels[count + 1];
+			if (deltaDown >= 0 && deltaUp <= 0)
+			{
+				if (Math.abs(deltaDown) < Math.abs(deltaUp))
+				{
+					parent.changeTick(zoomLevels[count]);
+					break;
+				}
+				else
+				{
+					parent.changeTick(zoomLevels[count + 1]);
+					break;
+				}
+			}
+		}
+	}
+}
+
+function PostSetViewProcessing ()
+{
+	parent.parent.viewMgr.ChangingView = false;
+	parent.parent.viewMgr.PostSetViewProcessing = null;
+}
+
+function startNewZoomRectDrag()
+{
+	var x = getMouseXcoord();
+	var y = getMouseYcoord();
+	zoomObj.newZWinStartX = x;
+	zoomObj.newZWinStartY = y;
+	
+	g_newZWinObjRef = document.all("newZoomWindowDiv");
+	g_newZWinObjRef.style.display = "";
+
+	startDrag( 'zoomRectDiv', doNewZoomRectDrag, stopNewZoomRectDrag );
+}
+
+function doNewZoomRectDrag(dragObj, x, y)
+{
+	var PNZimg = document.all("ConvertedImage");
+
+	var width	= Math.abs( zoomObj.newZWinStartX - x );
+	var height	= Math.abs( zoomObj.newZWinStartY - y );
+
+	var aspectRatio = parent.parent.viewMgr.docDrawing.body.clientWidth / parent.parent.viewMgr.docDrawing.body.clientHeight;
+
+	if( width < (aspectRatio * height))
+	{
+		width = (aspectRatio) * height;
+	}
+	else
+	{
+		height = width / (aspectRatio);
+	}
+
+	width = Math.min (width, parseInt(PNZimg.style.pixelWidth));
+	height = Math.min (height, parseInt(PNZimg.style.pixelHeight));
+
+	var left = (x > zoomObj.newZWinStartX) ? zoomObj.newZWinStartX : zoomObj.newZWinStartX - width;
+	var top  = (y > zoomObj.newZWinStartY) ? zoomObj.newZWinStartY : zoomObj.newZWinStartY - height;
+
+	newZoomWindowDiv.style.top = top;
+	newZoomWindowDiv.style.left = left;
+	newZoomWindowDiv.style.height = height;
+	newZoomWindowDiv.style.width = width;
+	newZoomWindowDiv.style.visibility = "visible";
+
+	zoomObj.zoomWinLeft		= left;
+	zoomObj.zoomWinWidth	= width;
+	zoomObj.zoomWinTop		= top;
+	zoomObj.zoomWinHeight	= height;
+}
+
+function stopNewZoomRectDrag(dragObj, x, y)
+{
+	newZoomWindowDiv.style.visibility = "hidden";
+
+	if (parseInt (newZoomWindowDiv.style.width) > 10 && 
+		parseInt (newZoomWindowDiv.style.height) > 10)
+	{
+		zoomRectDiv.style.top = newZoomWindowDiv.style.top;
+		zoomRectDiv.style.left = newZoomWindowDiv.style.left;
+		zoomRectDiv.style.height = newZoomWindowDiv.style.height;
+		zoomRectDiv.style.width = newZoomWindowDiv.style.width;
+
+		stopResizeZoomRectDrag(dragObj,x,y);
+		zoomRectDiv.style.display = "inline";
+		zoomRectDiv.style.visibility = "visible";
+	}
+	else
+	{
+		zoomObj.zoomWinLeft		= parseInt(zoomRectDiv.style.left);
+		zoomObj.zoomWinWidth	= parseInt(zoomRectDiv.style.width);
+		zoomObj.zoomWinTop		= parseInt(zoomRectDiv.style.top);
+		zoomObj.zoomWinHeight	= parseInt(zoomRectDiv.style.height);
+	}
+
+	newZoomWindowDiv.style.height = "0px";
+	newZoomWindowDiv.style.width = "0px";
+
+	newZoomWindowDiv.style.display = "none";
+}
+
+var g_lastX = 0;
+var g_lastY = 0;
+
+document.onmousedown = mouseDown;
+document.onmousemove = mouseMove;
+document.onmouseup = mouseUp;
+document.onmouseout = mouseOut;
+
+function mouseDown()
+{
+	return true;
+}
+
+function mouseMove()
+{
+	var x = event.clientX + document.body.scrollLeft;
+	var y = event.clientY + document.body.scrollTop;
+
+	g_lastX = x;
+	g_lastY = y;
+	
+	doDrag( x, y );
+	return true;
+}
+
+function mouseUp() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+	
+	stopDrag(null,x,y);
+	return true;
+}
+
+function mouseOut() 
+{
+	var x = event.x + document.body.scrollLeft;
+	var y = event.y + document.body.scrollTop;
+
+	if( x < 0 ) x = -1;
+	if( x >= document.body.clientWidth ) x = -1;
+		
+	if( y < 0 ) y = -1;
+	if( y >= document.body.clientHeight ) y = -1;
+
+	if( x == -1 || y == -1 )
+	{
+		x = -1;
+		y = -1;
+	}
+	
+
+	if( x == -1 )
+		stopDrag( null, x, y );
+	return true;
+}
+
+function getMouseXcoord()
+{
+	return event.x + document.body.scrollLeft;
+}
+
+function getMouseYcoord()
+{
+	return event.y + document.body.scrollTop;
+}
+
+var g_width		= -1;
+var g_height	= -1;
+var g_newLeft	= -1;	
+var g_newTop	= -1;
+		
+var g_pnzImgWidth = -1;
+var g_pnzImgHeight = -1;
+var g_pnzImgLeft = -1;
+var g_pnzImgTop = -1;
+
+function keydown()
+{
+	var key = window.event.keyCode;
+	var el = window.event.srcElement;
+
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{
+		if(g_width == -1)
+			g_width		= parseInt(el.style.pixelWidth);
+			
+		if(g_height == -1)
+			g_height		= parseInt(el.style.pixelHeight);
+			
+		if(g_newLeft == -1)
+			g_newLeft		= parseInt(el.style.left);	
+		
+		if(g_newTop == -1)
+			g_newTop		= parseInt(el.style.top);
+		
+		if(g_pnzImgWidth == -1)
+			g_pnzImgWidth = parseInt(PNZimg.style.pixelWidth);
+			
+		if(g_pnzImgHeight == -1)
+			g_pnzImgHeight = parseInt(PNZimg.style.pixelHeight);
+			
+		if(g_pnzImgLeft == -1)
+			g_pnzImgLeft = parseInt(divThumbnail.style.left);
+			
+		if(g_pnzImgTop == -1)
+			g_pnzImgTop = parseInt(divThumbnail.style.top);
+	
+
+		if(key == 37)	
+		{
+			g_newLeft -= 1;
+			if(g_newLeft < g_pnzImgLeft)
+			{
+				g_newLeft = g_pnzImgLeft;
+			}	
+		}
+		else if(key == 38)	
+		{
+			g_newTop -= 1;
+			if(g_newTop < g_pnzImgTop)
+			{
+				g_newTop = g_pnzImgTop;
+			}	
+		}
+		else if(key == 39)	
+		{
+			g_newLeft += 1;
+			if(g_newLeft + g_width > g_pnzImgLeft + g_pnzImgWidth)
+			{
+				g_newLeft = g_pnzImgLeft + g_pnzImgWidth - g_width;		
+			}
+		}
+		
+		else if(key == 40)	
+		{
+			g_newTop += 1;
+			if(g_newTop + g_height > g_pnzImgTop + g_pnzImgHeight)
+			{
+				g_newTop = g_pnzImgTop + g_pnzImgHeight - g_height;		
+			}
+		}
+		
+		setZoomRectCursor();
+
+		var xOffset = g_newLeft - g_pnzImgLeft;
+		var yOffset = g_newTop - g_pnzImgTop;
+		
+		var xPercent = xPercent = xOffset / g_pnzImgWidth;
+		var yPercent = yPercent = yOffset / g_pnzImgHeight;
+
+		if (xOffset < 0)
+		{
+			xPercent = 0;
+			xOffset = g_pnzImgLeft;
+		}
+		else if (xOffset + g_width > g_pnzImgWidth)
+		{
+			xPercent = 1;
+			xOffset = g_pnzImgLeft + g_pnzImgWidth - g_width;
+		}
+
+		if (yOffset < 0)
+		{
+			yPercent = 0;
+			yOffset = g_pnzImgTop;
+		}
+		else if (yOffset + g_height > g_pnzImgHeight)
+		{
+			yPercent = 1;
+			yOffset = g_pnzImgTop + g_pnzImgHeight - g_height;
+		}
+
+		if (parent.parent.viewMgr.setView)
+		{
+			var viewMgr = parent.parent.viewMgr;
+			viewMgr.PostSetViewProcessing = PostSetViewProcessing;
+			viewMgr.ChangingView = true;
+			viewMgr.setView (xPercent, yPercent);
+		}	
+		setZWinSize (null, null, g_newLeft, g_newTop);
+	}
+}
+
+function keyup()
+{
+	var key = window.event.keyCode;
+	if(key == 37 || key == 38 || key == 39 || key == 40)
+	{		
+		el = window.event.srcElement;
+	}
+}
+
+function dragObject( divID, divObject, xOffset, yOffset, dragFunctionPointer, dragStopFunctionPointer )
+{
+	this.divID			= divID;
+	this.divObject		= divObject;
+	this.xOffset		= xOffset;
+	this.yOffset		= yOffset;
+	this.dragFPtr		= dragFunctionPointer;
+	this.dragStopFPtr	= dragStopFunctionPointer;
+}
+
+var dragList = new Array();
+
+
+function startDrag( divID, dragFunctionPtr, dragStopFunctionPointer, xOffset, yOffset ) 
+{
+	var divObject = document.all(divID);
+	if( divObject != null ) 
+	{
+		document.selection.empty();
+		
+		if( xOffset == null )
+		{
+			xOffset = parseInt(divObject.style.left) - g_lastX;
+		}
+		
+		if( yOffset == null )
+		{
+			yOffset = parseInt(divObject.style.top)  - g_lastY;
+		}
+
+		dragList[ dragList.length ] = new dragObject( divID, divObject, xOffset, yOffset, dragFunctionPtr, dragStopFunctionPointer );
+		return true;
+	} 
+	else 
+	{
+		return false;
+	}
+}
+
+function doDrag( x, y ) 
+{
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].dragFPtr != null )
+			dragList[i].dragFPtr( dragList[i], x, y );
+	}
+	if( dragList.length )
+	{
+		document.selection.empty();
+	}
+}
+
+function stopDrag( divID, x, y ) 
+{ 
+	var tmpDragObject;
+	for( var i=0; i < dragList.length; i++ ) 
+	{
+		if( dragList[i].divID == divID || divID == null ) 
+		{
+			tmpDragObject = dragList[i];
+			
+			dragList[i] = dragList[ dragList.length - 1 ];
+			dragList.length = dragList.length - 1;
+			
+			if( tmpDragObject.dragStopFPtr != null )
+			{
+				tmpDragObject.dragStopFPtr( tmpDragObject, x, y );
+			}
+			
+		}
+	}
+}
+
+function PageViewChanged(newLeftPercent, newTopPercent, newWidthPercent, newHeightPercent)
+{
+	if (dragList.length == 0 && !parent.parent.viewMgr.ChangingView)
+	{
+		var newLeft		= null;
+		var newTop		= null;
+		var newWidth	= null;
+		var newHeight	= null;
+
+		var PNZimg = document.all("ConvertedImage");
+
+		if (newLeftPercent != null)
+		{
+			newLeft = (newLeftPercent * PNZimg.style.pixelWidth) + parseInt(divThumbnail.style.left);
+		}
+		
+		if (newTopPercent != null)
+		{
+			newTop = (newTopPercent * PNZimg.style.pixelHeight) + parseInt(divThumbnail.style.top);
+		}
+		
+		if (newWidthPercent != null)
+		{
+			newWidth = newWidthPercent * PNZimg.style.pixelWidth;
+		}
+		
+		if (newHeightPercent != null)
+		{
+			newHeight = newHeightPercent * PNZimg.style.pixelHeight;
+		}
+
+		setZWinSize (newWidth, newHeight, newLeft, newTop);
+
+		if (newLeftPercent <= 0 && newTopPercent <= 0 && newWidthPercent >= 1 && newHeightPercent >= 1)
+		{
+			zoomRectDiv.style.display = "none";
+			zoomRectDiv.style.visibility = "hidden";
+		}
+		else
+		{
+			zoomRectDiv.style.display = "inline";
+			zoomRectDiv.style.visibility = "visible";
+		}
+
+		if (newWidthPercent != null && newHeightPercent != null)
+		{
+			var newZoomLevel = GetZoomLevel (newWidthPercent, newHeightPercent);
+			SetCorrectTick (newZoomLevel);
+		}
+	}
+}
+
+function load()
+{
+	parent.parent.g_ZoomLoaded = true;
+
+	if (parent.parent.g_LoadingWidgets)
+	{
+		parent.parent.g_LoadingWidgets = false;
+		parent.parent.location.reload();
+	}
+}
+
+function unload()
+{
+	if (parent.parent.viewMgr)
+	{
+		parent.parent.viewMgr.viewChanged = null;
+	}
+
+	parent.parent.g_LoadingWidgets = true;
+}
+
+
+</script>
+</head>
+<body onload="load();" onunload="unload();">
+<div id="divPZWindow" style="width: 100%; height: 100%;" >
+	<div id="divThumbnail" style="position: absolute; " onmousedown="startNewZoomRectDrag();"></div>
+</div>
+<div id="divTempThumbnail" style="position: absolute; visibility:hidden; display:none;" ></div>
+
+<div id="zoomRectDiv" tabindex="1" title="可見的區域。使用滑鼠或方向鍵來移動。" onkeydown="keydown()" onkeyup="keyup()" style="display:none;position: absolute; border: solid red thin; z-index: 3;" onmousedown="startZoomRectDrag();" onmouseover="setZoomRectCursor();" onmousemove="setZoomRectCursor();"></div>
+<div id="newZoomWindowDiv" style="position: absolute; border: solid blue thin; z-index: 4; visibility: hidden;"></div>
+
+</body>
+</html>
+
+
+
+
+
+
Index: /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.htm
===================================================================
--- /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.htm	(revision 21)
+++ /drbl_ui/flow_chart/switch_pxe_mode_flow_chart.htm	(revision 21)
@@ -0,0 +1,718 @@
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+		<meta name="標題" content=""/>
+		<meta name="主旨" content=""/>
+		<meta name="類別" content=""/>
+		<meta name="關鍵字" content=""/>
+		<meta name="描述" content=""/>
+		<meta name="作者" content=" "/>
+		<meta name="主管" content=""/>
+		<meta name="公司" content=""/>
+
+		<title>switch_pxe_mode_flow_chart</title>
+		<script src="switch_pxe_mode_flow_chart.files/frameset.js" type="text/jscript" language="jscript"></script>
+		<script type="text/jscript" language="jscript" >
+
+function FileEntry (pageIndex, pageID, pageName, priImage, secImage) 
+{
+	this.PageIndex = pageIndex;
+	this.PageID	  = pageID;
+	this.PageName = pageName;
+	this.PriImage = priImage;
+	this.SecImage = secImage;
+}
+
+var viewMgr = null;
+
+var g_FileList = new  Array(
+ new FileEntry (1, 0, "頁-1", "vml_1.htm", "gif_1.htm")
+
+);
+
+var g_CurPageIndex = 0;
+var g_ZoomLoaded = false;
+var g_WidgetsLoaded = false;
+var g_FileProtocol = "file://";
+
+var g_HLMenuEntry = "menuEntry";
+var g_HLMenuEntryDiv = "menuEntryDiv";
+
+var g_LoadingWidgets = false;
+
+
+function CViewMgr(convertedImgID, highlightDivID)
+{
+	this.onResize = null;
+	this.ApplyZoom = null;
+	this.ChangingView = false;
+
+	this.put_Location = ViewMgrDefaultFind;
+	this.Zoom = ViewMgrDefaultResize;
+	this.PostZoomProcessing = null;
+	this.setView = null;
+	this.PostSetViewProcessing = null;
+	this.viewChanged = null;
+
+	this.SupportsDetails = false;
+	this.SupportsSearch = false;
+
+	this.visBBoxLeft = 0.0;
+	this.visBBoxRight = 0.0;
+	this.visBBoxBottom = 0.0;
+	this.visBBoxTop = 0.0;
+
+	this.highlightDiv = null;
+	this.stepWidth = 10;
+
+	this.id = convertedImgID;
+	this.zoomFactor = -1;
+	this.zoomLast = -1;
+	this.origWH = 1;
+	this.origWidth = 100;	
+	this.aspectRatio = 1;
+
+	this.docDrawing = null;
+	var docDrawing = frmDrawing.document;
+	if(docDrawing)
+	{
+		this.docDrawing = docDrawing;
+		var docEl = docDrawing.all(this.id);
+		if (docEl)
+		{
+			this.s = docEl.style;
+			this.origWidth = this.s.pixelWidth;
+			this.origWH = this.s.pixelWidth / this.s.pixelHeight;
+		}
+		this.highlightDiv = docDrawing.all(highlightDivID);
+	}
+
+	this.loadPage = DefPageLoad;
+	this.getPNZ	= null;
+}
+
+function DefPageLoad (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+        if (fileDelim == -1)
+            fileDelim = curPath.lastIndexOf ('\\');
+		var newPath = curPath.substring (0, fileDelim + 1);
+		newPath += g_FileList[pageIndex].PriImage;
+		frmDrawing.location.href = newPath;
+
+		SetPNZDisplay (pageIndex);
+	}
+}
+
+function CurPageUpdate (pageIndex)
+{
+	if (pageIndex >= 0)
+	{
+		g_CurPageIndex = pageIndex;
+
+		SetCurPageInGoto (pageIndex);
+
+		var divDetails = frmToolbar.document.all("divDetails");
+		if (divDetails)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsDetails)
+			{
+				displayStatus = "none";
+			}
+
+			divDetails.style.display = displayStatus;
+		}
+
+		var divSearch = frmToolbar.document.all("divSearch");
+		if (divSearch)
+		{
+			var displayStatus = "block";
+			if (!viewMgr || !viewMgr.SupportsSearch)
+			{
+				displayStatus = "none";
+			}
+
+			divSearch.style.display = displayStatus;
+		}
+
+		SetPNZDisplay (pageIndex);
+
+		LoadZoom ();
+	}
+}
+
+function FramePageLoaded ()
+{
+	if (isUpLevel && viewMgr == null)
+	{
+		var curPath = frmDrawing.location.href;
+		var fileDelim = curPath.lastIndexOf ('/');
+		if (fileDelim >= 0)
+		{
+			var fileName = curPath.substring (fileDelim + 1, curPath.length);
+			var pageIndex = PageIndexFromFileName (fileName);
+			SetCurPageInGoto (pageIndex);
+			SetPNZDisplay (pageIndex);
+		}
+	}
+}
+
+function LoadZoom ()
+{
+	var zoomWidget = frmToolbar.ifrmPNZ;
+	if (zoomWidget)
+	{
+		if (g_ZoomLoaded)
+		{
+			zoomWidget.findContent();
+			PageLoadedDoCallback ();
+		}
+		else
+		{
+			window.setTimeout("LoadZoom()", 500);
+		}
+	}
+	else
+	{
+		PageLoadedDoCallback ();
+	}
+}
+
+function SetCurPageInGoto (pageIndex)
+{
+	var gotoPageSelect = frmToolbar.document.all("Select1");
+	if (gotoPageSelect != null)
+	{
+		gotoPageSelect.value = pageIndex;
+	}
+}
+
+function SetPNZDisplay (pageIndex)
+{
+	var divPNZ = frmToolbar.document.all("divPNZ");
+	if (divPNZ)
+	{
+		var displayStatus = "block";
+		if (g_FileList[pageIndex].PageID < 0)
+		{
+			displayStatus = "none";
+		}
+
+		divPNZ.style.display = displayStatus;
+	}
+}
+
+function ViewMgrDefaultFind()
+{
+	return;
+}
+
+function ViewMgrDefaultResize(size)
+{
+	return;
+}
+
+
+
+g_callBackFunctionArray = new Array();
+function PageLoadedDoCallback()
+{
+	if (g_WidgetsLoaded)	
+	{
+		for( var i=0; i < g_callBackFunctionArray.length; i++ )
+		{
+			g_callBackFunctionArray[i]();
+		}
+		g_callBackFunctionArray = new Array();
+	}
+	else
+	{
+		window.setTimeout("PageLoadedDoCallback()", 500);
+	}
+}
+
+
+function ParseParams (strRawParams)
+{
+	strRawParams = strRawParams.substring(1);
+
+	var arrayParamTokens = strRawParams.split('&');
+	for (var count = 0; count < arrayParamTokens.length; count++)
+	{
+		arrayParamTokens[count] = unescape(arrayParamTokens[count]);
+		this[count] = arrayParamTokens[count].substring(0, arrayParamTokens[count].indexOf('='));
+		this[this[count]] = arrayParamTokens[count].substring(arrayParamTokens[count].indexOf('=') + 1);
+	}
+
+	return this;
+}
+
+var gParams = ParseParams (location.search);
+
+var g_PageParamValue = gParams['page'];
+if (g_PageParamValue != null && 
+	g_PageParamValue.length > 0)
+{
+	var pageIndex = PageIndexFromName (g_PageParamValue);
+	if (pageIndex > 0 && pageIndex < g_FileList.length)
+	{
+		g_CurPageIndex = pageIndex;
+	}
+}
+else
+{
+	g_PageParamValue = null;
+}
+
+var g_FirstPageToLoad = g_PageParamValue;
+
+var g_ZoomParamValue = gParams['zoom'];
+if (g_ZoomParamValue != null && g_ZoomParamValue.length > 0)
+{
+	g_ZoomParamValue = 1.0 * g_ZoomParamValue;
+	if (g_ZoomParamValue >= 10 && g_ZoomParamValue <= 500)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (viewMgr && viewMgr.Zoom) { viewMgr.Zoom(g_ZoomParamValue); } };
+	}
+}
+
+var g_ShapeParamValue = gParams['shape'];
+if (g_ShapeParamValue != null && g_ShapeParamValue.length > 0)
+{
+	if (g_PageParamValue != null && g_PageParamValue.length > 0)
+	{
+		g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var shapeNode = FindShapeXMLByName (g_PageParamValue, g_ShapeParamValue); if (shapeNode) { frmToolbar.TreeSelect (g_FileList[g_CurPageIndex].PageID, shapeNode.attributes.getNamedItem ("ID").text); } };
+	}
+	else
+	{
+		g_ShapeParamValue = null;
+	}
+}
+
+var g_SearchParamValue = gParams['search'];
+if (g_SearchParamValue != null && g_SearchParamValue.length > 0)
+{
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { if (frmToolbar.theForm) { frmToolbar.theForm.findString.value = g_SearchParamValue; } };
+	g_callBackFunctionArray[g_callBackFunctionArray.length] = function () { var goButton = frmToolbar.document.all('GoButton'); if(goButton) { goButton.click(); } };
+}
+
+
+var strHLTooltipText = "按一下以跟隨超連結。";
+var strPropsTooltipText = "Ctrl + 按一下以檢視詳細資料。";
+
+var strFocusHLTooltipText = "按下 Enter 以追蹤超連結。";
+var strFocusPropsTooltipText = "Ctrl + Enter 以檢視詳細資料。";
+
+
+function UpdateTooltip (element, pageID, shapeID)
+{
+	if (isUpLevel)
+	{
+		var strHL, strProps;
+	
+		if(frmDrawing.event.type == "focus")
+		{
+			strHL = strFocusHLTooltipText;
+			strProps = strFocusPropsTooltipText;
+		}
+		else
+		{
+			strHL = strHLTooltipText;
+			strProps = strPropsTooltipText;
+		}
+
+		var strTooltip = "";
+		if (element.origTitle)
+		{
+			strTooltip = element.origTitle.toString();
+		}
+			
+		var shapeNode = FindShapeXML (pageID, shapeID);
+
+		if( shapeNode != null )
+		{
+			var propColl = shapeNode.selectNodes ("Prop");
+			if (propColl != null && propColl.length > 0)
+			{
+				if (strTooltip.length > 0)
+				{
+					strTooltip += "\n";
+				} 
+				strTooltip += strProps;
+			}
+		}
+
+		var hlObj = GetHLAction (shapeNode, pageID, shapeID);
+		if (hlObj != null && (hlObj.DoFunction.length > 0 || hlObj.Hyperlink.length > 0))
+		{
+			if (strTooltip.length > 0)
+			{
+				strTooltip += "\n";
+			}	
+			strTooltip += strHL;
+		}
+
+		element.title = strTooltip;
+		if (element.alt != null)
+		{
+			element.alt = strTooltip;
+		}
+	}
+}
+
+
+function GetHLAction (shapeNode, pageID, shapeID)
+{
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		if (hlColl.length > 1)
+		{
+			hlObj.DoFunction = "showMenu(" + pageID + ", " + shapeID + ");"
+		}
+		else if (hlColl.length == 1)
+		{
+			hlObj = CreateHLObj (hlColl.item(0));
+		}
+	}
+
+	return hlObj;
+}
+
+function HLObj (strHyperlink, strDoFunction, strDesc, newWindow) 
+{
+	this.Hyperlink = strHyperlink;
+	this.DoFunction = strDoFunction;
+	this.Desc = strDesc;
+	this.NewWindow = newWindow;
+}
+
+function clickMenu()
+{
+	var e = window.frmDrawing.event;
+	var menu = frmDrawing.document.all("menu1")
+	
+	if (menu != null && menu.style.display != "none")
+	{
+		menu.style.display="none";
+
+		if (e && e.srcElement && e.srcElement.doFunction != null)
+		{
+			eval(e.srcElement.doFunction);
+		}
+	}
+}
+
+function toggleMenuDiv(el, highlight) 
+{
+	var divEl = el;
+	var aEl = null;
+
+	var ID = el.id.substring (g_HLMenuEntryDiv.length, el.id.length) * 1.0;
+	aEl = divEl.all(g_HLMenuEntry + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenuLink(el, highlight) 
+{
+	var divEl = null;
+	var aEl = el;
+
+	var ID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	divEl = frmDrawing.document.all(g_HLMenuEntryDiv + ID);
+
+	toggleMenu(divEl, aEl, highlight);
+}
+
+function toggleMenu(divEl, aEl, highlight)
+{
+	if (highlight)
+	{
+	  divEl.className="highlightItem";
+	  aEl.className="highlightItem";
+	} 
+	else 
+	{
+	  divEl.className="menuItem";
+	  aEl.className="menuItem";
+	}
+}
+
+function showMenu(pageID, shapeID)
+{
+	var shapeXML = FindShapeXML (pageID, shapeID);
+	if (shapeXML != null)
+	{
+		CreateHLMenu (shapeXML);
+		var menu = frmDrawing.document.all("menu1");
+		if (menu != null)
+		{
+			menu.style.visibility = "hidden";
+			menu.style.display = "inline";
+
+			var e = window.frmDrawing.event;
+			var elem = e.srcElement;
+
+			var clientWidth = frmDrawing.document.body.clientWidth;
+			var clientHeight = frmDrawing.document.body.clientHeight;
+
+			var menuWidth = menu.clientWidth;
+			var menuHeight = menu.clientHeight;
+
+			var menuLeft = e.x;
+			var menuTop = e.y;
+			
+			var doc = frmDrawing.document;
+			var img = doc.all("ConvertedImage");
+			
+			if( (menuLeft + doc.body.scrollLeft < elem.offsetLeft) || (menuLeft + doc.body.scrollLeft > elem.offsetLeft + elem.offsetWidth + img.offsetLeft) )
+			{
+				menuLeft = elem.offsetLeft + img.offsetLeft + elem.offsetWidth/2;
+			}
+			
+			if( (menuTop + doc.body.scrollTop < elem.offsetTop) || (menuTop + doc.body.scrollTop > elem.offsetTop + elem.offsetHeight + img.offsetTop) )
+			{
+				menuTop = elem.offsetTop + img.offsetTop + elem.offsetHeight/2;
+			}
+
+			var scrollBarSize = 20;
+			if (menuLeft + menuWidth > clientWidth - scrollBarSize)
+			{
+				menuLeft = clientWidth - menuWidth - scrollBarSize;
+			}
+
+			if (menuTop + menuHeight > clientHeight - scrollBarSize)
+			{
+				menuTop = clientHeight - menuHeight - scrollBarSize;
+			}
+
+			menu.style.posLeft = menuLeft + frmDrawing.document.body.scrollLeft;
+			menu.style.posTop = menuTop + frmDrawing.document.body.scrollTop;
+			menu.style.visibility = "visible";
+
+			var firstLink = menu.all(g_HLMenuEntry + "0");
+			firstLink.focus ();
+			
+			if (e.keyCode == 13)
+			{
+				toggleMenuLink(firstLink, true);
+			}
+
+			e.cancelBubble = true;
+		}
+	}
+}
+
+function MenuKeyDown ()
+{
+	var e = window.frmDrawing.event;
+	var el = e.srcElement;
+
+	if (e.keyCode == 27)	// 27 == ESC
+	{
+		clickMenu();
+		e.cancelBubble = true;
+		return;
+	}
+
+	var curSelID = el.id.substring (g_HLMenuEntry.length, el.id.length) * 1.0;
+	var newSelID = -1;
+
+	if (e.keyCode == 40)	// 40 == down arrow
+	{
+		newSelID = curSelID + 1;
+	}
+	else if (e.keyCode == 38) // 38 == up arrow
+	{
+		newSelID = curSelID - 1;
+	}
+
+	var newSelEntry = frmDrawing.document.all(g_HLMenuEntry + newSelID);
+
+	if (newSelEntry)
+	{
+		newSelEntry.focus();
+
+		var curSelEntry = frmDrawing.document.all(g_HLMenuEntry + curSelID);
+		toggleMenuLink (curSelEntry, false);
+		toggleMenuLink (newSelEntry, true);
+	}
+
+	e.cancelBubble = true;
+}
+
+function CreateHLMenu (shapeNode)
+{
+	var strHLMenuHTML = "";
+
+	if (shapeNode != null)
+	{
+		var hlColl = shapeNode.selectNodes ("Scratch/B/SolutionXML/HLURL:Hyperlinks/HLURL:Hyperlink");
+
+		strHLMenuHTML = "<div class='innerhlMenu'>";
+
+		var hlCount = hlColl.length;
+		for (var count = 0; count < hlCount; count++)
+		{
+			var hlObj = CreateHLObj (hlColl.item(count));
+			if (hlObj != null)
+			{
+				if (hlObj.Desc.length > 0)
+				{
+					strHLMenuHTML += "<div id='" + (g_HLMenuEntryDiv + count) + "' class='menuItem' onmouseover='toggleMenuDiv(this, true)' onmouseout='toggleMenuDiv(this, false)' onclick='" + (g_HLMenuEntry + count) + ".click()'>";
+					strHLMenuHTML += "<a href=";
+
+					if (hlObj.DoFunction.length > 0)
+					{
+						strHLMenuHTML += "'javascript:" + hlObj.DoFunction + "'";
+					}
+					else
+					{
+						var targetVal = "_top";
+						if (hlObj.NewWindow)
+						{
+							targetVal = "_blank";
+						}
+						strHLMenuHTML += "'" + hlObj.Hyperlink + "' target='" + targetVal + "'";
+					}
+
+					strHLMenuHTML += " class='menuItem' id='" + (g_HLMenuEntry + count) + "' onkeydown='parent.MenuKeyDown();' onmouseover='toggleMenuLink(this, true)' onmouseout='toggleMenuLink(this, false)'>";
+					strHLMenuHTML += hlObj.Desc + "</a></div>";
+				}
+			}
+		}
+		
+		strHLMenuHTML += "</div>";
+	}
+
+	frmDrawing.menu1.innerHTML = strHLMenuHTML;
+}
+
+function CreateHLObj (hlNode)
+{
+	var strAddress = "";
+	var hlObj = new HLObj ("", "", "", false);
+
+	if (hlNode != null)
+	{
+		var hlAddress = hlNode.selectSingleNode("HLURL:Address/textnode()");
+		if (hlAddress != null && hlAddress.text.length > 0)
+		{
+			var absoluteURL = hlNode.selectSingleNode("HLURL:AbsoluteURL/textnode()");
+			var strAbsURL = absoluteURL.text;
+			var strAddr = hlAddress.text;
+
+			if (strAbsURL.indexOf (g_FileProtocol) == 0)
+			{
+				var strAbsPath = strAbsURL.substring (g_FileProtocol.length, strAbsURL.length);
+				strAbsPath.toLowerCase ();
+				strAddr.toLowerCase ();
+				if (strAbsPath == strAddr)
+				{
+					strAddress = strAbsPath;
+				}
+				else
+				{
+					strAddress = strAddr;
+					
+					var hlSubAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+					if (hlSubAddress != null && hlSubAddress.text.length > 0)
+					{
+						strAddress += '#';
+						strAddress += hlSubAddress.text;
+					}
+
+					var hlExtraInfo = hlNode.selectSingleNode("HLURL:ExtraInfo/textnode()");
+					if (hlExtraInfo != null && hlExtraInfo.text.length > 0)
+					{
+						strAddress += '?';
+						strAddress += hlExtraInfo.text;
+					}
+				}
+			}
+			else
+			{
+				strAddress = strAbsURL;
+			}		
+
+			strAddress = HTMLEscape (strAddress);
+			hlObj.Hyperlink += strAddress;
+		}
+		else
+		{
+			hlAddress = hlNode.selectSingleNode("HLURL:SubAddress/textnode()");
+			if (hlAddress != null && hlAddress.text.length > 0)
+			{
+				strAddress = hlAddress.text;
+
+				var pageShapeSep = strAddress.lastIndexOf ('/');
+				if (pageShapeSep > 0)
+				{
+					if (PageIndexFromName (strAddress) < 0)
+					{
+						strAddress = unescape (strAddress);
+						if (PageIndexFromName (strAddress) < 0)
+						{
+							strAddress = strAddress.substring (0, strAddress.lastIndexOf ('/'));
+						}
+					}
+				}
+
+				var pageIndex = PageIndexFromName (strAddress);
+
+				hlObj.DoFunction = "GoToPage (" + pageIndex + ");";
+				strAddress = HTMLEscape (strAddress);
+				hlObj.Desc = strAddress;
+			}
+		}
+
+		hlDesc = hlNode.selectSingleNode("HLURL:Description/textnode()");
+		if (hlDesc != null && hlDesc.text.length > 0)
+		{
+			hlObj.Desc = HTMLEscape (hlDesc.text);
+		}
+		else
+		{
+			hlObj.Desc = strAddress;
+		}
+	
+		var hlNewWindow = hlNode.selectSingleNode("HLURL:NewWindow/textnode()");
+		if (hlNewWindow != null && hlNewWindow.text.length > 0)
+		{
+			hlObj.NewWindow = (hlNewWindow.text == "1");
+		}		
+	}
+
+	return hlObj;
+}
+
+
+		</script>
+	</head>
+	
+	<frameset id="frmstOuter" cols="237,*" title="switch_pxe_mode_flow_chart">
+		<frame src="switch_pxe_mode_flow_chart.files/toolbar.htm" name="frmToolbar" id="frmToolbar" title="此框架包含管理您繪圖的工具。" frameborder="6" bordercolor="#999999" scrolling="no" marginheight="0" marginwidth="0" >
+		<frame src="switch_pxe_mode_flow_chart.files/gif_1.htm" name="frmDrawing" title="此框架包含您繪圖的頁面。" marginheight="10" marginwidth="10" onload="if (parent.isUpLevel) FramePageLoaded()" >
+
+		<noframes>
+			<body>
+
+				<h1>switch_pxe_mode_flow_chart</h1>
+				<ul>
+				<li><a href="switch_pxe_mode_flow_chart.files/gif_1.htm">頁-1</a></li>
+
+				</ul>
+			</body>
+		</noframes>
+	</frameset>
+	
+</html>
+
