
//Constants.
SEP_PADDING = 5
HANDLE_PADDING = 7

var yToolbars = new Array();  // Array of all toolbars.
var arAlignText=new Array("默認","左對齊","右對齊","水平居中")
var arAlignPro=new Array("","left","right","center")



// Initialize everything when the document is ready
var YInitialized = false;
function document.onreadystatechange() {
  if (YInitialized) return;
  YInitialized = true;

  var i, s, curr;

  // Find all the toolbars and initialize them.
  for (i=0; i<document.body.all.length; i++) {
    curr=document.body.all[i];
    if (curr.className == "yToolbar") {
      if (! InitTB(curr)) {
        alert("Toolbar: " + curr.id + " failed to initialize. Status: false");
      }
      yToolbars[yToolbars.length] = curr;
    }
  }

  //Lay out the page, set handler.
  DoLayout();
  window.onresize = DoLayout;

  Composition.document.open()
  Composition.document.write("<BODY MONOSPACE STYLE=\"font:10pt arial,sans-serif\"></body>");
  Composition.document.close()
  Composition.document.designMode="On"
  setTimeout("Composition.focus()",0)

}

// Initialize a toolbar button
function InitBtn(btn) {
  btn.onmouseover = BtnMouseOver;
  btn.onmouseout = BtnMouseOut;
  btn.onmousedown = BtnMouseDown;
  btn.onmouseup = BtnMouseUp;
  btn.ondragstart = YCancelEvent;
  btn.onselectstart = YCancelEvent;
  btn.onselect = YCancelEvent;
  btn.YUSERONCLICK = btn.onclick;
  btn.onclick = YCancelEvent;
  btn.YINITIALIZED = true;
  return true;
}

//Initialize a toolbar. 
function InitTB(y) {
  // Set initial size of toolbar to that of the handle
  y.TBWidth = 0;
    
  // Populate the toolbar with its contents
  if (! PopulateTB(y)) return false;
  
  // Set the toolbar width and put in the handle
  y.style.posWidth = y.TBWidth;
  
  return true;
}


// Hander that simply cancels an event
function YCancelEvent() {
  event.returnValue=false;
  event.cancelBubble=true;
  return false;
}

// Toolbar button onmouseover handler
function BtnMouseOver() {
  if (event.srcElement.tagName != "IMG") return false;
  var image = event.srcElement;
  var element = image.parentElement;
  
  // Change button look based on current state of image.
  if (image.className == "Ico") element.className = "BtnMouseOverUp";
  else if (image.className == "IcoDown") element.className = "BtnMouseOverDown";

  event.cancelBubble = true;
}

// Toolbar button onmouseout handler
function BtnMouseOut() {
  if (event.srcElement.tagName != "IMG") {
    event.cancelBubble = true;
    return false;
  }

  var image = event.srcElement;
  var element = image.parentElement;
  yRaisedElement = null;
  
  element.className = "Btn";
  image.className = "Ico";

  event.cancelBubble = true;
}

// Toolbar button onmousedown handler
function BtnMouseDown() {
  if (event.srcElement.tagName != "IMG") {
    event.cancelBubble = true;
    event.returnValue=false;
    return false;
  }

  var image = event.srcElement;
  var element = image.parentElement;

  element.className = "BtnMouseOverDown";
  image.className = "IcoDown";

  event.cancelBubble = true;
  event.returnValue=false;
  return false;
}

// Toolbar button onmouseup handler
function BtnMouseUp() {
  if (event.srcElement.tagName != "IMG") {
    event.cancelBubble = true;
    return false;
  }

  var image = event.srcElement;
  var element = image.parentElement;

  if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");

  element.className = "BtnMouseOverUp";
  image.className = "Ico";

  event.cancelBubble = true;
  return false;
}

// Populate a toolbar with the elements within it
function PopulateTB(y) {
  var i, elements, element;

  // Iterate through all the top-level elements in the toolbar
  elements = y.children;
  for (i=0; i<elements.length; i++) {
    element = elements[i];
    if (element.tagName == "SCRIPT" || element.tagName == "!") continue;
    
    switch (element.className) {
    case "Btn":
      if (element.YINITIALIZED == null) {
	if (! InitBtn(element)) {
	  alert("Problem initializing:" + element.id);
	  return false;
	}
      }
      
      element.style.posLeft = y.TBWidth;
      y.TBWidth += element.offsetWidth + 1;
      break;
      
    case "TBGen":
      element.style.posLeft = y.TBWidth;
      y.TBWidth += element.offsetWidth + 1;
      break;
      
    case "TBSep":
      element.style.posLeft = y.TBWidth + 2;
      y.TBWidth += SEP_PADDING;
      break;
      
    case "TBHandle":
      element.style.posLeft = 2;
      y.TBWidth += element.offsetWidth + HANDLE_PADDING;
      break;
      
    default:
      alert("Invalid class: " + element.className + " on Element: " + element.id + " <" + element.tagName + ">");
      return false;
    }
  }

  y.TBWidth += 1;
  return true;
}

function DebugObject(obj) {
  var msg = "";
  for (var i in TB) {
    ans=prompt(i+"="+TB[i]+"\n");
    if (! ans) break;
  }
}

// Lay out the docked toolbars
function LayoutTBs() {
  NumTBs = yToolbars.length;

  // If no toolbars we're outta here
  if (NumTBs == 0) return;

  //Get the total size of a TBline.
  var i;
  var ScrWid = (document.body.offsetWidth) - 6;
  var TotalLen = ScrWid;
  for (i = 0 ; i < NumTBs ; i++) {
    TB = yToolbars[i];
    if (TB.TBWidth > TotalLen) TotalLen = TB.TBWidth;
  }

  var PrevTB;
  var LastStart = 0;
  var RelTop = 0;
  var LastWid, CurrWid;

  //Set up the first toolbar.
  var TB = yToolbars[0];
  TB.style.posTop = 0;
  TB.style.posLeft = 0;

  //Lay out the other toolbars.
  var Start = TB.TBWidth;
  for (i = 1 ; i < yToolbars.length ; i++) {
    PrevTB = TB;
    TB = yToolbars[i];
    CurrWid = TB.TBWidth;

    if ((Start + CurrWid) > ScrWid) { 
      //TB needs to go on next line.
      Start = 0;
      LastWid = TotalLen - LastStart;
    } 
    else { 
      //Ok on this line.
      LastWid = PrevTB.TBWidth;
      //RelTop -= TB.style.posHeight;
      RelTop -= TB.offsetHeight;
    }
      
    //Set TB position and LastTB width.
    TB.style.posTop = RelTop;
    TB.style.posLeft = Start;
    PrevTB.style.width = LastWid;

    //Increment counters.
    LastStart = Start;
    Start += CurrWid;
  } 

  //Set width of last toolbar.
  TB.style.width = TotalLen - LastStart;
  
  //Move everything after the toolbars up the appropriate amount.
  i--;
  TB = yToolbars[i];
  var TBInd = TB.sourceIndex;
  var A = TB.document.all;
  var item;
  for (i in A) {
    item = A.item(i);
    if (! item) continue;
    if (! item.style) continue;
    if (item.sourceIndex <= TBInd) continue;
    if (item.style.position == "absolute") continue;
    item.style.posTop = RelTop;
  }
}

//Lays out the page.
function DoLayout() {
  LayoutTBs();
}

// Check if toolbar is being used when in text mode
function validateMode() {
  //if (! bTextMode) return true;
  //alert("Please uncheck the \"View HTML source\" checkbox to use the toolbars");
  Composition.focus();
  return false;
}

//Formats text in composition.
function format(what,opt) {
  if (!validateMode()) return;
  
  if (opt=="removeFormat") {
    what=opt;
    opt=null;
  }

  if (opt==null) Composition.document.execCommand(what);
  else Composition.document.execCommand(what,"",opt);
  
  pureText = false;
  Composition.focus();
}

//Find Text in composition.
function findtext()
{
   var oRange = Composition.document.body.createTextRange();
   var bFound=oRange.findText('蕪湖', 0, 4);
   if(bFound)
	{
		  oRange.select();
		  oRange.collapse();
	}

}

//Switches between text and html mode.蕪湖createTextRange
function setMode(newMode) {
  bTextMode = newMode;
  var cont;
  if (bTextMode) {
    cleanHtml();
    cleanHtml();

    cont=Composition.document.body.innerHTML;
    Composition.document.body.innerText=cont;
  } else {
    cont=Composition.document.body.innerText;
    Composition.document.body.innerHTML=cont;
  }
  
  Composition.focus();
}

//Finds and returns an element.
function getEl(sTag,start) {
  while ((start!=null) && (start.tagName!=sTag)) start = start.parentElement;
  return start;
}

function createLink() {
  if (!validateMode()) return;
  
  var isA = getEl("A",Composition.document.selection.createRange().parentElement());
  var str=prompt("Enter link location (e.g. http://www.myweb.com):", isA ? isA.href : "http:\/\/");
  //var str=showModalDialog("CreateLink?3", "", "font-family:宋體; font-size:12; dialogWidth:34em; dialogHeight:11em");
  if ((str!=null) && (str!="http://")) {
    if (Composition.document.selection.type=="None") {
      var sel=Composition.document.selection.createRange();
      sel.pasteHTML("<A HREF=\""+str+"\">"+str+"</A> ");
      sel.select();
    }
    else format("CreateLink",str);
  }
  else Composition.focus();
}

function createImage() {
  if (!validateMode()) return;
    
 // var isA = getEl("A",Composition.document.selection.createRange().parentElement());
  //var str=prompt("Enter image location (e.g. http://www.myweb.com/gif/camera.gif):", isA ? isA.href : "http:\/\/");
  var str=GetImagePath();

  if ((str!=null) && (str!="http://")) {
    if (Composition.document.selection.type=="None") {
      var sel=Composition.document.selection.createRange();
      sel.pasteHTML("<img src=\""+str+"\">");
      sel.select();
    }
    else format("CreateImage",str);
  }
  else Composition.focus();
}

//Sets the text color.
function foreColor() {
  if (! validateMode()) return;
  var arr = showModalDialog("ColorSelect?3", "", "font-family:Verdana; font-size:12; dialogWidth:23em; dialogHeight:21em");
  if (arr != null) format('forecolor', arr);
  else Composition.focus();
}

//Sets the background color.
function backColor() {
  if (!validateMode()) return;
  var arr = showModalDialog("ColorSelect?3", "", "font-family:Verdana; font-size:12; dialogWidth:23em; dialogHeight:21em");
  if (arr != null) format('backcolor', arr);
  else Composition.focus()
}

function cleanHtml() {
  var fonts = Composition.document.body.all.tags("FONT");
  var curr;
  for (var i = fonts.length - 1; i >= 0; i--) {
    curr = fonts[i];
    if (curr.style.backgroundColor == "#ffffff") curr.outerHTML = curr.innerHTML;
  }
}

function getPureHtml() {
  var str = "";
  var paras = Composition.document.body.all.tags("P");
  if (paras.length > 0) {
    for (var i=paras.length-1; i >= 0; i--) str = paras[i].innerHTML + "\n" + str;
  } else {
    str = Composition.document.body.innerHTML;
  }
  return str;
}
function GetImagePath(){
    var Waiting=0;
	var cnt=0;
	var AtWnd=null;
	var str = "http://";

	if(top.hideframe){
	     top.hideframe.location.href='about:blank'
		 AtWnd=top.hideframe
	}
	else
	     AtWnd=window.open("about:blank","hideframe","left=100,top=1000,width=1,height=1");
		
	var Res=showModalDialog("insertpic?3", "", "font-family:Verdana; font-size:12; dialogWidth:20em; dialogHeight:18em; status:0");
	if(Res=="OK"){
	   while(Waiting==0)
	     {
	     	if(AtWnd.document)
	     	   if (AtWnd.filename)  break;
	     	   cnt+=1;
	     	   if(cnt>=1000)return str;
	        }
	 str = AtWnd.filename.value;
	}
	AtWnd.close()
	 return str
}

function _CloseWindow(w)
{w.close()}

//Global parameters
var g_selection
//  _CState 

function _CState()
{
	this.selection		= null
	this.bMode			= true
	this.customButtons 	= false
	this.css = this.bgColor	= ""
	this.defaultSkin	= ''//document.styleSheets.skin.cssText
	this.popupSkin		= ''//document.styleSheets.popupSkin.cssText
	this.aLinks			= new Array()
	this.szSearch		= location.search.substring(1)
	this.aBindings		= new Array()
	this.aListPopups	= new Object()
	this.aCache			= new Object()
	this.bLoaded = false
	this.oPhoto = null
	
	this.RestoreSelection	= _CState_RestoreSelection
	this.GetSelection	= _CState_GetSelection
	this.SaveSelection	= _CState_SaveSelection
}

function _CState_RestoreSelection() 
{
	if (this.selection) this.selection.select()
}

function _CState_GetSelection() 
{
	var oSel = this.selection

	if (!oSel) {
		oSel = Composition.document.selection.createRange()
		oSel.type = Composition.document.selection.type
	}
	return oSel
}

function _CState_SaveSelection() 
{
	g_state.selection = Composition.document.selection.createRange()

	if (!g_state.selection ||
        (g_state.selection.parentElement && g_state.selection.parentElement() && 
         !(g_state.selection.parentElement() == Composition.document.body || Composition.document.body.contains(g_state.selection.parentElement()))))
    {
	    g_state.selection = Composition.document.body.createTextRange()
	    g_state.selection.collapse(false)
        g_state.selection.type = "None"
    }
    else
    {
	    g_state.selection.type = Composition.document.selection.type
    }
}

var g_state = new _CState()
var elCurrent=null

/*表格的編輯*/

//判斷是否可以編輯單元格屬性
function _bTdEdit()
{
	var oSel,oBlock
	oSel	= Composition.document.selection.createRange() 
	oBlock = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TD") : _CUtil_GetElement(oSel.item(0),"TD"))
	if(oBlock==null)return false;
	else return true;
}

//判斷是否可以編輯表格屬性
function _bTableEdit()
{
	var oSel,oBlock
	oSel	= Composition.document.selection.createRange() 
	oBlock = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TABLE") : _CUtil_GetElement(oSel.item(0),"TABLE"))
	if(oBlock==null)return false;
	else return true;
}

//判斷是否可以編輯圖片屬性
function _bImgEdit()
{
	var oSel,oBlock
	oSel	= Composition.document.selection.createRange() 
	oBlock = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TABLE") : _CUtil_GetElement(oSel.item(0),"TABLE"))
	if(oBlock==null)return false;
	else return true;
}

 function insertHTML(szHTML) 
{
	var sType

	var sel = g_state.GetSelection()
	if(sel.offsetLeft!=1&&sel.offsetLeft!=0){
		
	sType = sel.type
	if (g_state.bMode) {
		if (sType=="Control")
			sel.item(0).outerHTML = szHTML
		else 
			sel.pasteHTML(szHTML)
	}
	else
		sel.text = szHTML
	}
	else{
		alert("請在編輯窗口內進行操作！")
	}		
		
	g_state.selection = null
}

function _TableAddDone(w,d)
{ 
  //if (!validateMode()) return;
		
		var sz =   ""
		+   "<TABLE "
		+  (((d.all["borderPro"].value=="") || (d.all["borderPro"].value=="0")) ? "class=\"NOBORDER\"" : "")
		+	   (d.all["cellpaddingPro"].value != "" ? "cellPadding=\"" + d.all["cellpaddingPro"].value + "\" " : "")
		+	   (d.all["cellspacingPro"].value != "" ? "cellSpacing=\"" + d.all["cellspacingPro"].value + "\" " : "")
		+	   (d.all["bordercolorPro"].value != "" ? "bordercolor=\"" + d.all["bordercolorPro"].value + "\" " : "")
		+	   (d.all["bgcolorPro"].value != "" ? "bgColor=\"" + d.all["bgcolorPro"].value + "\" " : "")		
		+	   (d.all["borderPro"].value != "" ? "border=\"" + d.all["borderPro"].value + "\" " : "")
		+	   (d.all["heightPro"].value != "" ? "height=\"" + d.all["heightPro"].value + "\" " : "")
		+	   (d.all["widthPro"].value != "" ? "width=\"" + d.all["widthPro"].value + "\" " : "")
		+	   (d.all["alignPro"].value != "" ? "align=\"" + d.all["alignPro"].value + "\" " : "")
		+	   (d.all["backgroundPro"].value != "" ? "background=\"" + d.all["backgroundPro"].value + "\" " : "")
		+   ">"
		
		if (d.all["rowsPro"].value>99) d.all["rowsPro"].value=99
		if (d.all["columnsPro"].value>99) d.all["columnsPro"].value=50

		for (var r=0; r < parseInt(d.all["rowsPro"].value); r++) 
		{
			sz +=  "<TR>"
			
			for (var c=0; c < parseInt(d.all["columnsPro"].value); c++)
				sz +=  "<TD>&nbsp;</TD>"
			
			sz +=  "</TR>"
		}
		sz +=  "</TABLE>"
		w.close()	
		insertHTML(sz)
		
} 



function _CTable_AddRow(nRowIndex) {
	//_CMenu_Hide()
	var oSel,oTable
	oSel	= Composition.document.selection.createRange() 
	oTable = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TABLE") : _CUtil_GetElement(oSel.item(0),"TABLE"))
	if(oTable==null)return false;

	//oTable.height=oTable.height+oTable.rows[nRowIndex].height
	
	var elRow = oTable.insertRow(nRowIndex+1)
	for (var i=0;i<oTable.rows[0].cells.length;i++) {
		var elCell = elRow.insertCell()
		elCell.innerHTML = "&nbsp;"
	}
	//_CMenu_Hide()
	
}

function _CTable_Add()
{ 
  //if (!validateMode()) return;
	var AtWnd=null
		AtWnd =  window.open("instable?3","TableAdd","width=300,height=275,left=240,top=90,resizable=no,scrollbars=no,menubar=no,statusbar=0")


}

function _CTable_AddCol() {
	
	//_CMenu_Hide()
	var oSel,oTable
	oSel	= Composition.document.selection.createRange() 
	oTable = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TABLE") : _CUtil_GetElement(oSel.item(0),"TABLE"))
	if(oTable==null)return false;
	
	for (var i=0;i<oTable.rows.length;i++) {
		var elCell = oTable.rows[i].insertCell()
		elCell.innerHTML = "&nbsp;"
	}
}

  
function _CTable_DelCol() {
		var oRow,nCellIndex
		var oSel	= Composition.document.selection.createRange() 
		oRow = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TR") : _CUtil_GetElement(oSel.item(0),"TR"))
		if(oRow==null)
		{
			alert("請選擇行！");
			return false;	
		}	
		else 
		{
			var oCell = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TD") : _CUtil_GetElement(oSel.item(0),"TD"));
			if(oCell==null)
			{	
				alert("請選擇單元格！");
			}				
			else{
				
				var oTable
				nCellIndex=oCell.cellIndex
				oTable = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TABLE") : _CUtil_GetElement(oSel.item(0),"TABLE"))
				if(oTable==null)return false;
	
				for (var i=0;i<oTable.rows.length;i++) {
						oRow = oTable.rows[i]
						oRow.deleteCell((nCellIndex+1)<oRow.cells.length?nCellIndex:(oRow.cells.length-1));						
				}
				
			} 
		}	
		
}		
function _CTable_DelRow() {
		var oRow
		var oSel	= Composition.document.selection.createRange() 
		var oTable = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TABLE") : _CUtil_GetElement(oSel.item(0),"TABLE"))
		if(oTable==null)
		{
			alert("請指定表格！");
			return false;	
		}	
		else 
		{
			oRow = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TR") : _CUtil_GetElement(oSel.item(0),"TR"))
			if(oTable==null)
			{
				alert("請選擇行");
				return false;
			}
			else
			{
				var nRowIndex=oRow.rowIndex
				oTable.deleteRow(nRowIndex)
			}
		}		
		
		
		
}		

function _CTable_AddCell() {
		var oRow
		var oSel	= Composition.document.selection.createRange() 
		oRow = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TR") : _CUtil_GetElement(oSel.item(0),"TR"))
		if(oRow==null)
		{
			alert("請選擇行！");
			return false;	
		}	
		else 
		{
			var oCell = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TD") : _CUtil_GetElement(oSel.item(0),"TD"))
			if(oCell==null)oRow.insertCell();				
			else oRow.insertCell(oCell.cellIndex)					
		}	
		
}		

function _CTable_DelCell() {
		var oRow
		var oSel	= Composition.document.selection.createRange() 
		oRow = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TR") : _CUtil_GetElement(oSel.item(0),"TR"))
		if(oRow==null)
		{
			alert("請選擇行！");
			return false;	
		}	
		else 
		{
			var oCell = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TD") : _CUtil_GetElement(oSel.item(0),"TD"));
			if(oCell==null)
			{	
				alert("請選擇單元格！");
			}				
			else oRow.deleteCell(oCell.cellIndex);				
		}	
		
}		


function _TableEditDone(w,d)
{
		var oBlock=elCurrent
		if(ValidNumber(d.all["widthPro"].value)) oBlock.width=d.all["widthPro"].value
		if(ValidNumber(d.all["heightPro"].value)) oBlock.height=d.all["heightPro"].value
		if(ValidNumber(d.all["borderPro"].value)) oBlock.border=d.all["borderPro"].value
		if(ValidNumber(d.all["cellpaddingPro"].value)) oBlock.cellPadding=d.all["cellpaddingPro"].value
		if(ValidNumber(d.all["cellspacingPro"].value)) oBlock.cellSpacing=d.all["cellspacingPro"].value
		
		oBlock.borderColor=d.all["bordercolorPro"].value
		oBlock.bgColor=d.all["bgcolorPro"].value
		oBlock.background=d.all["backgroundPro"].value		
		if(d.all["alignPro"].value.length>1)oBlock.align=d.all["alignPro"].value		
		
		
		w.close()
		
		
} 
function _TdEditDone(w,d)
{
		var oBlock=elCurrent
		oBlock.width=d.all["widthPro"].value
		oBlock.height=d.all["heightPro"].value
		oBlock.rowSpan=d.all["rowspanPro"].value
		oBlock.colSpan=d.all["colspanPro"].value
		if(d.all["bordercolorPro"].value.length>1) oBlock.borderColor=d.all["bordercolorPro"].value
		if(d.all["bgcolorPro"].value.length>1)oBlock.bgColor=d.all["bgcolorPro"].value
		if(d.all["backgroundPro"].value.length>1)oBlock.background=d.all["backgroundPro"].value		
		if(d.all["alignPro"].value.length>1)oBlock.align=d.all["alignPro"].value		
		
		w.close()
		
		
} 

function _TableDo(szValue)
{
	switch(szValue)
	{
		case "TableAdd":
			_CTable_Add()
			break
		case "RowAdd":
			if(_bTdEdit())
			{
			var oRow
			oSel	= Composition.document.selection.createRange() 
			oRow = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TR") : _CUtil_GetElement(oSel.item(0),"TR"))
			_CTable_AddRow(oRow.rowIndex)
			}
			break
		case "RowDel":
			if(_bTdEdit())
			{
				_CTable_DelRow() 
			}
			break
		case "ColAdd":
			if(_bTdEdit())
			{
				_CTable_AddCol()
			}
			break  
		case "ColDel":
			if(_bTdEdit())
			{
				_CTable_DelCol()
			}
			break
		case "CellAdd":	
			if(_bTdEdit())
			{
				_CTable_AddCell()
			}
			break		   
		case "CellDel":	
			if(_bTdEdit())
			{
				_CTable_DelCell()
			}
			break
		default:
			break;			
	}

	//document.all.TableDo.options(0).selected=true

}
function _PrepareHtmlTableEdit(oBlock)
{
	var szAlign=""	

	szAlign+= "<tr> "
      + "          <td align=\"right\">對齊方式</td>"
      + "          <td> <SELECT ID=alignPro style=\"font-size:9pt\">"		
	
	for (var i=0;i<arAlignText.length;i++) {
		szAlign+= "<OPTION VALUE='" + arAlignPro[i] + "' "
		+	(arAlignPro[i]==oBlock.align.toLowerCase()? " SELECTED " : "")
		+ ">" + arAlignText[i]
	}
	
	
	szAlign+= "          </select></td>"
    + "        </tr>"	
		
	var sz="<style type=\"text/css\">"
	sz +="    body{    BORDER-BOTTOM: 0px;BORDER-LEFT: 0px;BORDER-RIGHT: 0px;BORDER-TOP: 0px;margin:0px;scrollbar-face-color: #B8B8B8; scrollbar-highlight-color: #F5F9FF; scrollbar-shadow-color: #828282; scrollbar-3dlight-color: #828282; scrollbar-arrow-color: #797979; scrollbar-track-color: #ECECEC; scrollbar-darkshadow-color: #ffffff}"
       +"    body,a,table,div,span,td,th,input,select{font:9pt;font-family: \"宋體\", Verdana, Arial, Helvetica, sans-serif;}"
       +"    .text{border:1 solid #aaaaaa;}  .button{height:18;border:1 ridge #aaaaaa;background-color:aaaaaa;color:ffffff} </style>"
    sz +="<table width=\"250\" border=\"0\" cellspacing=\"0\" cellpadding=\"1\" >"
      + "  <tr>"
      + "    <td>"
      + "      <table border=\"0\" class=\"text\" style=\"font-size: 9pt\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">"
      + "        <tr> "
      + "          <td colspan=\"2\">布局</td>"
      + "        </tr>"
      sz+=szAlign      
      sz+= "        <tr> "
      + "          <td align=\"right\"> 寬度</td>"
      + "          <td> "
      + "            <input type=text name=widthPro size=4 value='"+(oBlock.style.width==""?oBlock.width : oBlock.style.width)+"' >(像素)"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">高度</td>"
      + "          <td> "
      + "            <input type=text name=heightPro size=4 value='"+(oBlock.style.height==""?oBlock.height : oBlock.style.height)+"'>(像素)"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">單元格邊距</td>"
      + "          <td> "
      + "            <input type=text name=cellpaddingPro size=4 value='"+oBlock.cellPadding+"'>"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">單元格間距</td>"
      + "          <td> "
      + "            <input type=text name=cellspacingPro size=4 value='"+oBlock.cellSpacing+"'>"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td colspan=\"2\">邊框</td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">邊框大小</td>"
      + "          <td> "
      + "            <input type=text name=borderPro size=4   value='"+oBlock.border+"'>"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">邊框顏色</td>"
      + "          <td> "
      + "            <input type=text name=bordercolorPro size=4   value='"+oBlock.borderColor+"'>"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td colspan=\"2\">背景</td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">顏色</td>"
      + "          <td> "
      + "            <input type=text name=bgcolorPro size=4   value='"+oBlock.bgColor+"'>"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">背景圖片</td>"
      + "          <td> "
      + "            <input type=text name=backgroundPro size=9   value='"+oBlock.background +"'>"
      + "          </td>"
      + "        </tr>"      
      + "        <tr> "
      + "          <td colspan=\"2\" align=\"center\"> "
      + "            <input type=\"button\" CLASS=\"BUTTON\" value=\"確定\" name=\"B3\" onClick=\"window.opener._TableEditDone(window,document);\">"
      + "            <input type=\"button\" CLASS=\"BUTTON\" value=\"取消\" name=\"B3\" onClick=\"window.opener._CloseWindow(window);\">"
      + "          </td>"
      + "        </tr>"
      + "</table></td></tr></table>"
      return sz;
      

}


function _PrepareHtmlTdEdit(oBlock)
{
	var szAlign=""

	szAlign+= "        <tr> "
      + "          <td align=\"right\">對齊方式</td>"
      + "          <td> <SELECT ID=alignPro style=\"font-size:9pt\">"		
	
	for (var i=0;i<arAlignText.length;i++) {
		szAlign+= "<OPTION VALUE='" + arAlignPro[i] + "' "
		+	(arAlignPro[i]==oBlock.align.toLowerCase()? " SELECTED " : "")
		+ ">" + arAlignText[i]
	}
	
	
	szAlign+= "          </select></td>"
    + "        </tr>"	
		
	var sz="<style type=\"text/css\">"
	sz +="    body{    BORDER-BOTTOM: 0px;BORDER-LEFT: 0px;BORDER-RIGHT: 0px;BORDER-TOP: 0px;margin:0px;scrollbar-face-color: #B8B8B8; scrollbar-highlight-color: #F5F9FF; scrollbar-shadow-color: #828282; scrollbar-3dlight-color: #828282; scrollbar-arrow-color: #797979; scrollbar-track-color: #ECECEC; scrollbar-darkshadow-color: #ffffff}"
       +"    body,a,table,div,span,td,th,input,select{font:9pt;font-family: \"宋體\", Verdana, Arial, Helvetica, sans-serif;}"
       +"    .text{border:1 solid #aaaaaa;}  .button{height:18;border:1 ridge #aaaaaa;background-color:aaaaaa;color:ffffff} </style>"
                  
      sz +="<table border=\"0\" cellspacing=\"0\" cellpadding=\"1\">"
      + "  <tr>"
      + "    <td>"
      + "      <table border=\"0\" class=\"text\" style=\"font-size: 9pt\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">"
      + "        <tr> "
      + "          <td colspan=\"2\">布局</td>"
      + "        </tr>"
      +szAlign
      + "        <tr> "
      + "          <td align=\"right\"> 寬度</td>"
      + "          <td> "
      + "            <input type=text name=widthPro size=4 value='"+(oBlock.style.width==""?oBlock.width : oBlock.style.width)+"' >"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">高度</td>"
      + "          <td> "
      + "            <input type=text name=heightPro size=4 value='"+(oBlock.style.height==""?oBlock.height : oBlock.style.height)+"'>"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">行跨度</td>"
      + "          <td> "
      + "            <input type=text name=rowspanPro size=4 value='"+oBlock.rowSpan+"'>"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">列跨度</td>"
      + "          <td> "
      + "            <input type=text name=colspanPro size=4 value='"+oBlock.colSpan+"'>"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td colspan=\"2\">邊框</td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">邊框顏色</td>"
      + "          <td> "
      + "            <input type=text name=bordercolorPro size=4   value='"+oBlock.borderColor+"'>"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td colspan=\"2\">背景</td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">顏色</td>"
      + "          <td> "
      + "            <input type=text name=bgcolorPro size=4   value='"+oBlock.bgColor+"'>"
      + "          </td>"
      + "        </tr>"
      + "        <tr> "
      + "          <td align=\"right\">背景圖片</td>"
      + "          <td> "
      + "            <input type=text name=backgroundPro size=9   value='"+oBlock.background +"'>"
      + "          </td>"
      + "        </tr>"      
      + "        <tr> "
      + "          <td colspan=\"2\" align=\"center\"> "
      + "            <input type=\"button\" CLASS=\"BUTTON\" value=\"確定\" name=\"B3\" onClick=\"window.opener._TdEditDone(window,document);\">"
      + "            <input type=\"button\" CLASS=\"BUTTON\" value=\"取消\" name=\"B3\" onClick=\"window.opener._CloseWindow(window);\">"
      + "          </td>"
      + "        </tr>"
      +"</table>"
      return sz;

}

function _CLinkPopupRenderer_AddLink(d) 
{
	var szURL = d.all.urlValue.value
	var szType = d.all.urlType[d.all.urlType.selectedIndex].text
	var oSel = g_state.GetSelection()
	var sType = oSel.type
	
	szURL = ((0 == szURL.indexOf("mailto:") || 0 == szURL.indexOf("http://") || 0 == szURL.indexOf("ftp://")) ? "" : szType) + szURL
	if (szURL!="") 
	{
		if ((oSel.parentElement) && (oSel.text==""))
		{
			oSel.expand("word")
			if (oSel.text=="") 
			{
				var sText = ""
				var oStore = oSel.duplicate()
				if (d.all.pageList) {
					var idx = d.all.pageList.selectedIndex
					if (d.all.pageList[idx].value==szURL)
						sText = d.all.pageList[idx].text
					else
						sText = szURL
				}
				else
						sText = szURL
				oSel.pasteHTML('<A HREF="' + szURL + '">' + sText + '</A>')
				oSel.setEndPoint("StartToStart",oStore)
				oSel.select()
				setFocus()
				return
			} 
			oSel.select()
		}
		else
			if ((oSel.item) && (oSel.item(0).tagName=="IMG")) 
			{
					oSel.item(0).width = oSel.item(0).offsetWidth
					oSel.item(0).height = oSel.item(0).offsetHeight
					oSel.item(0).border = 1 //(d.all.displayBorder.checked) ? 1 : ""
			}
		
		if (d.all.urlValue.value!="")
			oSel.execCommand("CreateLink",false,szURL)	
		else
			oSel.execCommand("UnLink",false,szURL)			
	}

	//setFocus()	
}

function _CImgPopupRenderer_Edit(d,w)
{
	var szBorder=d.all.BorderPro.value
	var szHspace=d.all.HspacePro.value
	var szVspace=d.all.VspacePro.value	
	var szHeight=d.all.HeightPro.value
	var szWidth=d.all.WidthPro.value
	
	
	var szAlign=d.all.AlignPro[d.all.AlignPro.selectedIndex].value
	
	var oSel = elCurrent
	
	var sType = oSel.type
	oSel.width = szWidth
	if(ValidNumber(szHeight))	oSel.height = szHeight	
	if(ValidNumber(szBorder))   oSel.border = szBorder
	oSel.align = szAlign
	if(ValidNumber(szHspace))	oSel.hspace = szHspace
	if(ValidNumber(szHspace))	oSel.vspace = szVspace
	

	_CLinkPopupRenderer_AddLink(d)

	if(ValidNumber(szBorder)) oSel.border = szBorder
	
	var oEl, sType = oSel.type, bImg = false
	var szTarget=d.all.targetPro.value

	

	//判斷是否是文字還是控件，圖片標誌bImg
	if (oSel.parentElement)  
	{
		oEl = _CUtil_GetElement(oSel.parentElement,"A")	
	}
	else 
	{

		oEl = _CUtil_GetElement(oSel,"A")	
	}

	if (oEl)
	{
		oEl.target=szTarget
	}

	//setFocus()	
}

function _CImgPopupRenderer_PrepareHTML() 
{
	var d = this.oDocument
	var oSel = g_state.GetSelection()
	var oEl, sType = oSel.type, bImg = false, szURL = sz = ""

	var szHspace,szVspace,szBorder,szHeight,szWidth,szAlign,szSrc
	var itemTemp
	itemTemp=oSel.item(0)
	szHspace=itemTemp.hspace
	szVspace=itemTemp.vspace
	szBorder=itemTemp.border
	szWidth=itemTemp.width
	szHeight=itemTemp.height
	szAlign=itemTemp.align
	szSrc=itemTemp.src

	sImgRatio=parseFloat(eval(szHeight+"/"+szWidth))


	//判斷是否是文字還是控件，圖片標誌bImg
	if (oSel.parentElement)  
	{
		oEl = _CUtil_GetElement(oSel.parentElement(),"A")	
	}
	else 
	{

		oEl = _CUtil_GetElement(oSel.item(0),"A")
		bImg = oSel.item(0).tagName=="IMG"	
	}

	if (oEl)
		szURL = oEl.href
	
	var sz="<style type=\"text/css\">"
	sz +="    body{    BORDER-BOTTOM: 0px;BORDER-LEFT: 0px;BORDER-RIGHT: 0px;BORDER-TOP: 0px;margin:0px;scrollbar-face-color: #B8B8B8; scrollbar-highlight-color: #F5F9FF; scrollbar-shadow-color: #828282; scrollbar-3dlight-color: #828282; scrollbar-arrow-color: #797979; scrollbar-track-color: #ECECEC; scrollbar-darkshadow-color: #ffffff}"
       +"    body,a,table,div,span,td,th,input,select{font:9pt;font-family: \"宋體\", Verdana, Arial, Helvetica, sans-serif;}"
       +"    .text{border:1 solid #aaaaaa;}  .button{height:18;border:1 ridge #aaaaaa;background-color:aaaaaa;color:ffffff} </style>"
	    +"<table border=\"0\" class=\"text\" width=\"400\" cellspacing=\"1\"  style=\"font-size:9pt\">"
		+"<tr>"
		+"<td width=\"435\" colspan=\"2\" height=\"18\" >"
		+"<p align=\"center\">修改圖片屬性</td>"
		+"</tr>"

	sz  +=  ""	
	+"<tr>"
	+"<td  colspan=\"2\" height=\"18\" align=left>"
	+"圖片源："+szSrc
	+ "</td>"
	+ "</tr>"
	

	var arAlignN=new Array("左對齊","右對齊","頂頁對齊","文本上方","相對垂直居中","絕對垂直居中","基線","相對底邊對齊","絕對底邊對齊","水平居中")
	var arAlignV=new Array("left","right","top","texttop","middle","absmiddle","baseline","bottom","absbottom","center")
	

	sz  +=" <tr>"
	+	"<td width=\"211\" height=\"17\" >"
	+   "<NOBR>對齊方式：<SELECT ID=AlignPro>"
	
	for (var i=0;i<arAlignN.length;i++) {
		sz+= "<OPTION VALUE='" + arAlignV[i] + "' "
		+	(arAlignV[i]==szAlign.toLowerCase()? " SELECTED " : "")
		+ ">" + arAlignN[i]
	}
	sz += "</SELECT>"
	sz += "</TD><td width=\"218\" height=\"17\">"
	+	"邊框大小：<INPUT ID=BorderPro SIZE=10 VALUE=\"" + szBorder + "\" TYPE=text></NOBR>"
	+	"</TD></TR>"

	sz  +=" <tr>"
	+	"<td width=\"211\" height=\"17\" >"
	sz +="垂直間距：<INPUT ID=HspacePro SIZE=10 VALUE=\"" + szHspace + "\" TYPE=text></NOBR>"
	+	"</TD>"
	+	"<td width=\"211\" height=\"17\" >"
	sz +="水平間距：<INPUT ID=VspacePro SIZE=10 VALUE=\"" + szVspace + "\" TYPE=text></NOBR>"
	+	"</TD></TR>"
	
	sz  +=" <tr>"
		+"<td width=\"435\" colspan=\"2\"  >"
//sz +="    <table border=\"0\" width=\"435\" style=\"font-size: 9pt\" bordercolor=\"#000000\" bgcolor=\"#000000\" cellspacing=\"1\">"
//   + "      <tr>"
//   + "        <td width=\"212\" colspan=\"2\" bgcolor=\"#FFFFFF\">"
   + " <input type=\"checkbox\" name=\"OneRatio\" value=\"1\" checked onclick=\"\">保持縱橫比</td>"
   + "      </tr>"
   + "      <tr>"
   + "        <td width=\"118\">高度：<input type=\"text\" name=\"HeightPro\" VALUE=\"" + szHeight + "\"  size=\"2\" maxlength=3  id=\"HeightPro\" onchange=\"hv_lock(this)\">  </td>"
   + "        <td width=\"118\">寬度：<input type=\"text\" name=\"WidthPro\" VALUE=\"" + szWidth + "\"  size=\"2\" maxlength=3  id=\"WidthPro\" onchange=\"hv_lock(this)\">"
//   + "        </td>"
//   + "      </tr>"
//   + "      "
//   + "    </table>"
   +	"</TD></TR>"
	


	var arTarget= new Array("_self","_blank","_parent","_top","_search")
	var arTypes = new Array("http","ftp","mailto")
	var arText = new Array("http://","ftp://","mailto:")
	var szType = szURL.substring(0,szURL.indexOf(":"))
	var szTarget=""

	if (oEl)
	{
		szURL = oEl.href
		szTarget=oEl.target
	}
	
	if (("http"==szType) || ("ftp"==szType)) 
			szURL = szURL.substring(szURL.indexOf("//")+2)
	else
			szURL = szURL.substring(szURL.indexOf(":")+1)

	sz  +=  ""	
	+"<tr>"
	+"<td width=\"435\" colspan=\"2\" height=\"18\" align=center >"

	+   "鏈接目標:" 
	+"</td></tr>"
	+"<tr>"
	+"<td width=\"435\" colspan=\"2\" height=\"18\" align=left >"
	+   "位置:" 
	+   "<SELECT ID=urlType>"
	
	for (var i=0;i<arTypes.length;i++) {
		sz+= "<OPTION VALUE='" + arTypes[i] + "' "
		+	(arTypes[i]==szType ? " SELECTED " : "")
		+ ">" + arText[i]
	}
	sz += "</SELECT><INPUT ID=urlValue SIZE=30 VALUE=\"" + szURL + "\" TYPE=text><br>"
	+		"目標框架："
	+   "<SELECT ID=targetPro>"
	
	for (var i=0;i<arTarget.length;i++) {
		sz+= "<OPTION VALUE='" + arTarget[i] + "' "
		+	(arTarget[i]==szTarget ? " SELECTED " : "")
		+ ">" +arTarget[i]
	}
	sz +=		   "</TD>"
	+	   "</TR>"


	sz  +=  ""	
	+"<tr>"
	+  "<td width=\"435\" colspan=\"2\" height=\"18\" align=center >"
	+			   "<INPUT ONCLICK=\"opener._CImgPopupRenderer_Edit(document,window);window.close()\" TYPE=submit  CLASS=\"BUTTON\" ID=idSave VALUE=\"修改\"> <INPUT ONCLICK=\"window.close();opener.focus()\" CLASS=\"BUTTON\" TYPE=reset ID=idCancel VALUE=\"取消\">"
	+		   "</TD>"
	+	   "</TR>"
	+   "</TABLE>"
	sz +="\n"
	+"<script> \n"
	+   "var hVSv=(document.all.WidthPro.value*1.00)/document.all.HeightPro.value \n"
	+   "function hv_lock(FocusObj) \n"
	+   "{ \n"
	+      "var hvlock=document.all.OneRatio.checked \n"
	+      "if(hvlock&&FocusObj) \n"
	+       "{ \n"
	+          "if(FocusObj.name==\"WidthPro\")document.all.HeightPro.value=Math.round(document.all.WidthPro.value*hVSv) \n"
	+          "if(FocusObj.name==\"HeightPro\")document.all.WidthPro.value=Math.round(document.all.HeightPro.value*hVSv) \n"
	+       "} \n"
	+   " } \n"
	+   "document.all.OneRatio.onclick=\"hVSv=(document.all.WidthPro.value*1.00)/document.all.HeightPro.value ) \"\n"
	+"</script> \n"
	return sz
	


}

function _ProList(){
  	var oSel = g_state.GetSelection();
	var AtWnd=null;

	if (oSel.type!='none')
		if(oSel.items)
	{					  	   
	   oBlock =  oSel.item(0)
	}
	else
	{
		oBlock = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"IMG") : _CUtil_GetElement(oSel.item(0),"IMG"))
		if(oBlock==null)
		{
			oBlock = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TD") : _CUtil_GetElement(oSel.item(0),"TD"))
			if(oBlock==null)
			{
				oBlock = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TABLE") : _CUtil_GetElement(oSel.item(0),"TABLE"))
				if(oBlock==null)
				{
					alert("請選擇表格或圖片！")
					return false
				}
			}
		}
	}
	elCurrent=oBlock
    switch(oBlock.tagName) {
		case "TABLE":
	        AtWnd = window.open("about:blank","TableEdit","width=250,height=335,left=100,top=100,resizable=no,scrollbars=no,menubar=no,status=0")
			var sz=_PrepareHtmlTableEdit(oBlock)
			AtWnd.document.write("<html><body bgcolor=\"buttonface\" oncontextmenu=\"return false\">"+sz+"</body></html>")
			AtWnd.document.title ="表格屬性"
			AtWnd.document.close()
			break
		case "TD":
			var sz=_PrepareHtmlTdEdit(oBlock)
	        AtWnd = window.open("about:blank","TdEdit","width=150,height=310,left=100,top=100,resizable=no,scrollbars=no,menubar=no,status=0")
			//oSel	= Composition.document.selection.createRange() 
			//oBlock = (oSel.parentElement != null ? _CUtil_GetElement(oSel.parentElement(),"TD") : _CUtil_GetElement(oSel.item(0),"TD"))
			AtWnd.document.write("<html><body bgcolor=\"buttonface\" oncontextmenu=\"return false\">"+sz+"</body></html>")
			AtWnd.document.title ="單元格屬性"
			AtWnd.document.close()
			break				
		case "IMG":
	        AtWnd = window.open("about:blank","ImgEdit","width=400,height=240,left=100,top=100,resizable=no,scrollbars=no,menubar=no,status=0")
			var sz= _CImgPopupRenderer_PrepareHTML()
			AtWnd.document.write("<html><body bgcolor=\"buttonface\" oncontextmenu=\"return false\">"+sz+"</body></html>")			
			AtWnd.document.title= "圖片屬性"			
			AtWnd.document.close()
			break;
		default:
			alert('請選擇圖片或表格'+oBlock.innerHTML)
			break;
	}
}






//  UTIL

function _CUtil_GetElement(oEl,sTag) 
{
	while (oEl!=null && oEl.tagName!=sTag)
		oEl = oEl.parentElement
	return oEl
}



function replace(str, replace_what, replace_with)
{
  var ndx = str.indexOf(replace_what);
  var delta = replace_with.length - replace_what.length;

  while (ndx >= 0)
  {
    str = str.substring(0,ndx) + replace_with + str.substring(ndx + replace_what.length);
    ndx = str.indexOf(replace_what, ndx + delta + 1);
  }
  return str;
}

function trim(s)
{
    var iFirst = 0;
    var iLast = s.length - 1;
    var sTrimChars = ' \t';
    while ( (iFirst < iLast) && (sTrimChars.indexOf(s.charAt(iFirst)) != -1) ) iFirst++;
    while ( (iLast >= iFirst) && (sTrimChars.indexOf(s.charAt(iLast)) != -1) ) iLast--;
    return s.substring(iFirst, iLast + 1);
}


function _CUtil_TrimCR(sValue) {
	return replace(sValue,"\r\n", " ")
}

function _CUtil_GetBlock(oEl) 
{
	var sBlocks = "|H1|H2|H3|H4|H5|H6|P|PRE|LI|TD|DIV|BLOCKQUOTE|DT|DD|TABLE|HR|IMG|"

	while ((oEl!=null) && (sBlocks.indexOf("|"+oEl.tagName+"|")==-1))
		oEl = oEl.parentElement
	return oEl
}

function _CUtil_DomainSuffix(szHost) {
	var idx = szHost.indexOf("commun")
	if (idx>=0) {
		idx = szHost.indexOf(".",idx)
		return szHost.substring(idx+1)
	} else
	{
		idx = szHost.lastIndexOf(".",szHost.length-5)
		return szHost.substring(idx+1)
	}
	return szHost	
}

function _CUtil_CleanHTML() {
	var bBindings = (g_state.aBindings.length>0) 
	var elAll = Composition.document.all
	var iCount = elAll.length
	for (var i=iCount-1;i>=0;i--) {
		if (elAll[i].tagName=="IMG") {
			elAll[i].width = elAll[i].offsetWidth
			elAll[i].height = elAll[i].offsetHeight
		}
		if ((elAll[i].tagName=="INPUT") && (bBindings))
			elAll[i].outerHTML = '[' + elAll[i].name + ']';

	}
	return Composition.document.body.innerHTML
}	function ValidNumber(item)
   {
       var length=item.length;
       var cc='';
       var dd='';
       
       var temp=false;
       var str='1234567890.';
       if(item==null||item=="")return true;
       
       for(var i=0;i<length;i++)
       {
           temp=false;
           cc=item.charAt(i);
           for(var j=0;j<str.length;j++)
           {
               dd=str.charAt(j);
               if(cc==dd)
               {
                  temp=true;
                  break;
               }
           }
           if(temp)continue;
           else 
           {
              return false;
           }
        }
        
        return true;
   }