//在表单设置时用到该文件。
//表单的结构保存在数组中(JavaScript)：
//    TableArr(第一行结构数组,第二行结构数组......)
//每行的结构数组为：
//    TablePerLineArr(第一个单元格的结构数组,第二个单元格的结构数组......)
//每个单元格的结构数组为：
//    TablePerUnitArr(单元格属性数组,单元内容结构数组)
//单元格属性数组结构为：
//    TableUnitPropertiyArr(UnitWidth,UnitHeight,Rowspan,
//                      Colspan,LeftBorderWidth,RightBorderWidth,
//                      TopBorderWidth,BottomBorderWidth,LeftBorderColor,
//                      RightBorderColor,TopBorderColor,BottomBorderColor,
//                      align,valign)
//单元内容数组的结构为：
//    TableInUnitArr(第一内容结构数组,第二内容结构数组......)
//每个内容的结构数组为：
//    TablePerInUnitArr(Remark,TextBoldFace,Text_Size,
//                      Text_Color,InUnitType,TextContent,
//                      InputWidth,InputHeight,InputDefault,
//                      NotEmpty,IsDate,UpLoadFileIsPic,
//                      PicWidth,PicHeight,IsMutiSelect,
//                      SelectClassContent,CheckBoxValue,CheckBoxDefault,
//                      RadioBoxContent,SignMustPassWord,
//                      DisplayPicID,SelectOrgID,AutoCalReg,IsEmail,LinkText,WorkWebIDForLink,WorkWebLinkParam,LinkSite,ID,ModeStr)
//其中，ModeStr为在设置时，模拟显示这个单元内容的代码，没当修改和增加单元内容时，程序先把模拟显示的代码计算出来，放在这里，等程序模拟显示整个表单时，
//就不需要每个单元内容再计算一次，直接取这里的值用来显示，减少修改表单后的显示时间。
//表单数据显示时的连接保存在数组TableDataLinkArr中，结构为：
//    TableDataLinkArr(第一个按钮信息数组,第二个按钮信息数组...)
//每个按钮信息数组的结构为：
//    TableDataPerLinkArr(BottonText,WorkWebID,LinkParam)

////////////////////////////////////
//开始选择的对象为空（选择的对象为H2L3或H3L1S2）
//当点了新的单元后，要把旧的单元颜色改过来
var SelectedUnitOB="";
var SelectedInUnitOB="";
var SelectTD=1;//开始选择了"表单属性"
var SelectedTopLink=-1;//开始没选择数据连接的任何按钮
////////////////////////////////////
//当TableArr为空时（开始设置表单时）建立一个有单元格的TableArr，方便设置
function CreatFirstTableArr(){
 if(TableArr==""){
  CreatEmptyTablePerUnitArr();
  TablePerLineArr=new Array();
  TablePerLineArr.push(TablePerUnitArr);
  TableArr=new Array();
  TableArr.push(TablePerLineArr);
 }
}
////////////////////////////////////////
//该函数是建立一个空的单元格数组TablePerUnitArr
function CreatEmptyTablePerUnitArr(){
 TableInUnitArr=new Array();
 TableUnitPropertiyArr=new Array("","",1,1,0,0,0,0,"#000000","#000000","#000000","#000000","left","top");
 TablePerUnitArr=new Array();
 TablePerUnitArr[0]=TableUnitPropertiyArr;
 TablePerUnitArr[1]=TableInUnitArr;
}



//组件建立的TableArr数组中，TablePerInUnitArr中没有ModeStr元素（显示表单时是直接取这个元素的值来显示的，不用根据TablePerInUnitArr前面的元素计算单元的显示代码
//这样能提高速度）所以要先建立ModeStr元素
function CreatModeStr(){
 var i,j,k;
 for(i in TableArr){
  for(j in TableArr[i]){
   for(k in TableArr[i][j][1]){
    TableArr[i][j][1][k].push(DisplayPerInUnitStrByArr_NoSpan(TableArr[i][j][1][k]));
   }
  }
 }
}




//////////////////////////////////////////
//下面几个函数用在显示模拟输入的设置表单
////////////////////////////////////////
//根据TableArr，显示表单设置界面
function DisplayTableSetStr(){
 var a="<Table Border=0 Width=\"95%\" cellspacing=\"0\" cellpadding=\"0\">";
 var i,j;
 var TDStr;
 var InUnitStr;
 for(i in TableArr){
  a=a+"<tr>";
  for(j in TableArr[i]){
   a=a+DisplayTDStrByArr(TableArr[i][j][0],i,j);
   InUnitStr=DisplayInUnitStrByArr(TableArr[i][j][1],i,j);
   if(InUnitStr==""){
    InUnitStr="&nbsp;";
   }
   a=a+InUnitStr+"</TD>";
  }
  a=a+"</tr>";
 }
 a=a+"</Table>";
 return a;
}
///////////////////////////////////////////////
//根据TableUnitPropertiyArr显示<TD>
function DisplayTDStrByArr(TDArrName,RowNo,ColNo){
 //其中TDArrName为TableUnitPropertiyArr数组的名称，RowNo是行号，ColNo是列号
 var a="<TD";
 if(SelectedUnitOB==("H"+RowNo+"L"+ColNo)){
  a=a+" bgcolor=red";
 }
 a=a+" ID=\"H"+RowNo+"L"+ColNo+"\" onclick=\"OnClickUnit(\'H"+RowNo+"L"+ColNo+"\');\"";
 if(TDArrName[0]!=""){
  a=a+" Width=\""+TDArrName[0]+"\"";
 }
 if(TDArrName[1]!=""){
  a=a+" Height=\""+TDArrName[1]+"\"";
 }
 if(TDArrName[2]>1){
  a=a+" Rowspan=\""+TDArrName[2]+"\"";
 }
 if(TDArrName[3]>1){
  a=a+" Colspan=\""+TDArrName[3]+"\"";
 }
 a=a+" Style=\""
 if(TDArrName[4]==0){
  a=a+"border-left: 1 dotted;";
 }else{
  a=a+"border-left: "+TDArrName[4]+" solid "+TDArrName[8]+";";
 }
 if(TDArrName[5]==0){
  a=a+"border-right: 1 dotted;";
 }else{
  a=a+"border-right: "+TDArrName[5]+" solid "+TDArrName[9]+";";
 }
 if(TDArrName[6]==0){
  a=a+"border-top: 1 dotted;";
 }else{
  a=a+"border-top: "+TDArrName[6]+" solid "+TDArrName[10]+";";
 }
 if(TDArrName[7]==0){
  a=a+"border-bottom: 1 dotted;";
 }else{
  a=a+"border-bottom: "+TDArrName[7]+" solid "+TDArrName[11]+";";
 }
 a=a+"\" Align=\""+TDArrName[12]+"\" Valign=\""+TDArrName[13]+"\">";
 return a;
}

///////////////////////////////////////
//单元的显示是两种可能，一种是被选择的单元，用虚线围起来的，另一种是没被选择的，不带虚线的。
//他们的显示代码是这样的格式：
//被选单元：<span style="border:1 dashed" ID="H1L1S1" onclick="OnClickUnit('H1L1S1');">单元显示的代码</span>
//没选单元：<span ID="H1L1S1" onclick="OnClickUnit('H1L1S1');">单元显示的代码</span>
///////////////////////////////////////
//显示某个单元的代码（不带<span>部分）
function DisplayPerInUnitStrByArr_NoSpan(PerInUnitArrName){
 //其中PerInUnitArrName为TablePerInUnitArr数组的名称
 var a="";
 var i;
 var tempstr,tempstr1;
 switch(PerInUnitArrName[4]){
   case "Text":
    switch(PerInUnitArrName[5]){
     case "":
      a=a+"□";
      break;
     default:
      if(PerInUnitArrName[1]==1){
       a=a+"<B>";
      }
      a=a+"<Font";
      if(PerInUnitArrName[2]!=0){
       a=a+" Size="+PerInUnitArrName[2];
      }
      a=a+" Color=\""+PerInUnitArrName[3]+"\">"+ToHTMLWithEnterPic(PerInUnitArrName[5])+"</Font>";
      if(PerInUnitArrName[1]==1){
       a=a+"</B>";
      }
    }
    break;
   case "InputText":
   case "InputNum":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    a=a+"<Input type=\"Text\" value=\""+DisplayDefault(PerInUnitArrName[8])+"\" style=\"width:"+tempstr+";\">";
    break;
   case "InputTime":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    tempstr1=PerInUnitArrName[10];
    if(tempstr1==0){
     a=a+"<Input type=\"Text\" value=\""+DisplayDefault(PerInUnitArrName[8])+"\" style=\"width:"+tempstr+";\">";
    }else{
     a=a+"<Input type=\"Text\" value=\""+DisplayDefault(PerInUnitArrName[8])+"\" style=\"width:"+tempstr+";\"><img src=\"../images/DateSelect.gif\">";
    }
    break;
   case "InputTextArea":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    tempstr1=parseInt(PerInUnitArrName[7]);
    if(tempstr1=="NaN"){
     tempstr1=100;
    }
    if(tempstr1<10){
     tempstr1=10;
    }
    a=a+"<textarea style=\"width:"+tempstr+";height:"+tempstr1+";\">"+DisplayDefault(PerInUnitArrName[8])+"</textarea>";
    break;
   case "UpLoadFile":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    a=a+"<Input type=\"file\" style=\"width:"+tempstr+";\">&nbsp;<img src=\"../images/FileAdd.gif\" width=16 height=16>&nbsp;<img src=\"../images/FileDel.gif\" width=16 height=16>";
    break;
   case "SelectUser":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    a=a+"<Input type=\"Text\" style=\"width:"+tempstr+";\" value=\""+DisplayDefault(PerInUnitArrName[8])+"\"><input type=\"button\" value=\"选择\">";
    break;
   case "SelectDept":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    a=a+"<Input type=\"Text\" style=\"width:"+tempstr+";\" value=\""+DisplayDefault(PerInUnitArrName[8])+"\"><input type=\"button\" value=\"选择\">";
    break;
   case "SelectOrg":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    a=a+"<Select size=1 style=\"width:"+tempstr+";\"><option>选择组织机构</option></select>";
    break;
   case "SelectPosition":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    if(PerInUnitArrName[14]==1){
     a=a+"<Input type=\"Text\" style=\"width:"+tempstr+";\" value=\""+DisplayDefault(PerInUnitArrName[8])+"\"><input type=\"button\" value=\"选择\">";
    }else{
     a=a+"<select style=\"width:"+tempstr+";\" size=1><option>选择职位</option></select>";
    }
    break;
   case "SelectClass":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    if(PerInUnitArrName[14]==1){
     a=a+"<Input type=\"Text\" style=\"width:"+tempstr+";\" value=\""+DisplayDefault(PerInUnitArrName[8])+"\"><input type=\"button\" value=\"选择\">";
    }else{
     a=a+"<select style=\"width:"+tempstr+";\" size=1>"+ClassSelect(PerInUnitArrName[15])+"</select>";
    }
    break;
   case "InputCheckBox":
    if(PerInUnitArrName[1]==1){
     a=a+"<B>";
    }
    a=a+"<Font";
    if(PerInUnitArrName[2]!=0){
     a=a+" Size="+PerInUnitArrName[2];
    }
    a=a+" Color=\""+PerInUnitArrName[3]+"\"><input type=\"checkbox\"";
    if(PerInUnitArrName[17]==1){
     a=a+" checked";
    }
    a=a+">"+PerInUnitArrName[16]+"</Font>";
    if(PerInUnitArrName[1]==1){
     a=a+"</B>";
    }
    break;
   case "InputRadioBox":
    if(PerInUnitArrName[1]==1){
     a=a+"<B>";
    }
    a=a+"<Font";
    if(PerInUnitArrName[2]!=0){
     a=a+" Size="+PerInUnitArrName[2];
    }
    a=a+" Color=\""+PerInUnitArrName[3]+"\">"+RadioBoxDisplay(PerInUnitArrName[18],PerInUnitArrName[8])+"</Font>";
    if(PerInUnitArrName[1]==1){
     a=a+"</B>";
    }
    break;
   case "InputHide":
    a=a+"<input type=\"text\" size=2>";
    break;
   case "InputDigitalSign":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    a=a+"<Input type=\"Text\" style=\"width:"+tempstr+";\" value=\"\"><input type=\"button\" value=\"签名\">";
    break;
   case "InputElectroSeal":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    a=a+"<Input type=\"Text\" style=\"width:"+tempstr+";\" value=\"\"><input type=\"button\" value=\"盖章\">";
    break;
   case "DisplayPic":
    tempstr=parseInt(PerInUnitArrName[20]);
    if(tempstr=="NaN"){
     tempstr=0;
    }
    a=a+"<Img Src=\"../AspFunction/DBDownLoadFile.asp?DbTableName=TablePic&Field_Name_FileName=FileName&Field_Name_FileSize=size&Field_Name_FileContent=PicFile&Field_Name_FileType=FileType&Field_Name_ID=TablePicID&ID="+tempstr+"\"";
    tempstr=parseInt(PerInUnitArrName[12]);
    if(tempstr=="NaN"){
     tempstr=0;
    }
    if(tempstr!=0){
     a=a+" width="+tempstr;
    }
    tempstr=parseInt(PerInUnitArrName[13]);
    if(tempstr=="NaN"){
     tempstr=0;
    }
    if(tempstr!=0){
     a=a+" height="+tempstr;
    }
    a=a+">";
    break;
   case "AutoCal":
    tempstr=parseInt(PerInUnitArrName[6]);
    if(tempstr=="NaN"){
     tempstr=100;
    }
    if(tempstr<10){
     tempstr=10;
    }
    a=a+"<Input type=\"Text\" style=\"width:"+tempstr+";\" value=\"\"><input type=\"button\" value=\"<<\">";
    break;
   case "WorkWebLink":
   case "WebLink":
    switch(PerInUnitArrName[24]){
     case "":
      a=a+"□";
      break;
     default:
      if(PerInUnitArrName[1]==1){
       a=a+"<B>";
      }
      a=a+"<Font";
      if(PerInUnitArrName[2]!=0){
       a=a+" Size="+PerInUnitArrName[2];
      }
      a=a+" Color=\""+PerInUnitArrName[3]+"\">"+ToHTMLWithEnterPic(PerInUnitArrName[24])+"</Font>";
      if(PerInUnitArrName[1]==1){
       a=a+"</B>";
      }
    }
    break;
 }
 return a;
}


///////////////////////////////////////
//显示某个单元格中的单元
function DisplayInUnitStrByArr(InUnitArrName,RowNo,ColNo){
 //其中InUnitArrName为TableInUnitArr数组的名称，RowNo是行号，ColNo是列号
 var a="";
 var i;
 for(i in InUnitArrName){
  a=a+"<span";
  if(SelectedInUnitOB==("H"+RowNo+"L"+ColNo+"S"+i)){
   a=a+" style=\"border:1 dashed\"";
  }
  a=a+" ID=\"H"+RowNo+"L"+ColNo+"S"+i+"\" onclick=\"OnClickUnit(\'H"+RowNo+"L"+ColNo+"S"+i+"\');\">"+InUnitArrName[i][29]+"</span>";
 }
 return a;
}
///////////////////////////////////////////////
//把字符串转换成HTML(带回车符号)
function ToHTMLWithEnterPic(Str){
 //空格用&nbsp;代替
 //换行用换行图片+<br>代替
 var a;
 a=Str.replace(/ /g, "&nbsp;");
 a=a.replace(/\r\n/g, "<img src=\"../images/Enter.Gif\"><br>");
 a=a.replace(/\n/g, "<img src=\"../images/Enter.Gif\"><br>");
 return a;
}
//////////////////////////////////////////////////
//根据分类下拉的内容显示分类下拉
function ClassSelect(ClassCont){
 var a=ClassCont;
 //把回车换成逗号
 var reg=/\r\n/g;
 a=a.replace(reg,",");
 reg=/\n/g;
 a=a.replace(reg,",");
 var b=a.split(",");
 var c;
 c="";
 var i;
 for(i in b){
  c=c+"<option>"+b[i]+"</option>";
 }
 return c;
}
////////////////////////////////////////////////////
//根据radiobox的内容和默认值显示
function RadioBoxDisplay(RadioCon,RadioDefault){
 var a=RadioCon;
 //把回车换成逗号
 var reg=/\r\n/g;
 a=a.replace(reg,",");
 var b=a.split(",");
 var c;
 c="";
 var i;
 var d=DisplayDefault(RadioDefault);
 for(i in b){
  c=c+"<input type=\"radio\" name=r1";
  if(b[i]==d){
    c=c+" checked";
  }
  c=c+">"+b[i];
 }
 return c;
}










////////////////////////////////////////
//根据TableArr，显示表单最新数据模拟界面
function DisplayTableDataStr(){
 var a="<Table Border=0 Width=\"95%\" cellspacing=\"0\" cellpadding=\"0\">";
 var i,j;
 var TDStr;
 var InUnitStr;
 for(i in TableArr){
  a=a+"<tr>";
  for(j in TableArr[i]){
   TDStr=DisplayTDDataStrByArr(TableArr[i][j][0],i,j);
   a=a+TDStr;
   InUnitStr=DisplayInUnitDataStrByArr(TableArr[i][j][1],i,j);
   if(InUnitStr==""){
    InUnitStr="&nbsp;";
   }
   a=a+InUnitStr+"</TD>";
  }
  a=a+"</tr>";
 }
 a=a+"</Table>";
 return a;
}
///////////////////////////////////////////////
//根据TableUnitPropertiyArr显示<TD>
function DisplayTDDataStrByArr(TDArrName,RowNo,ColNo){
 //其中TDArrName为TableUnitPropertiyArr数组的名称，RowNo是行号，ColNo是列号
 var a="";
 a=a+"<TD ID=\"H"+RowNo+"L"+ColNo+"\"";
 if(TDArrName[0]!=""){
  a=a+" Width=\""+TDArrName[0]+"\"";
 }
 if(TDArrName[1]!=""){
  a=a+" Height=\""+TDArrName[1]+"\"";
 }
 if(TDArrName[2]>1){
  a=a+" Rowspan=\""+TDArrName[2]+"\"";
 }
 if(TDArrName[3]>1){
  a=a+" Colspan=\""+TDArrName[3]+"\"";
 }
 a=a+" Style=\""
 if(TDArrName[4]==0){
  a=a+"border-left: 0 dotted;";
 }else{
  a=a+"border-left: "+TDArrName[4]+" solid "+TDArrName[8]+";";
 }
 if(TDArrName[5]==0){
  a=a+"border-right: 0 dotted;";
 }else{
  a=a+"border-right: "+TDArrName[5]+" solid "+TDArrName[9]+";";
 }
 if(TDArrName[6]==0){
  a=a+"border-top: 0 dotted;";
 }else{
  a=a+"border-top: "+TDArrName[6]+" solid "+TDArrName[10]+";";
 }
 if(TDArrName[7]==0){
  a=a+"border-bottom: 0 dotted;";
 }else{
  a=a+"border-bottom: "+TDArrName[7]+" solid "+TDArrName[11]+";";
 }
 a=a+"\" Align=\""+TDArrName[12]+"\"";
 a=a+" Valign=\""+TDArrName[13]+"\"";
 a=a+">";
 return a;
}
///////////////////////////////////////
//显示某个单元格中的单元
function DisplayInUnitDataStrByArr(InUnitArrName,RowNo,ColNo){
 //其中InUnitArrName为TableInUnitArr数组的名称，RowNo是行号，ColNo是列号
 var a="";
 var i;
 var tempstr,tempstr1;
 for(i in InUnitArrName){
  switch(InUnitArrName[i][4]){
   case "Text":
    switch(InUnitArrName[i][5]){
     case "":
      a=a+"&nbsp;";
      break;
     default:
      if(InUnitArrName[i][1]==1){
       a=a+"<B>";
      }
      a=a+"<Font";
      if(InUnitArrName[i][2]!=0){
       a=a+" Size="+InUnitArrName[i][2];
      }
      a=a+" Color=\""+InUnitArrName[i][3]+"\">";
      a=a+ToHTML(InUnitArrName[i][5]);
      a=a+"</Font>";
      if(InUnitArrName[i][1]==1){
       a=a+"</B>";
      }
    }
    break;
   case "WorkWebLink":
   case "WebLink":
    switch(InUnitArrName[i][24]){
     case "":
      a=a+"&nbsp;";
      break;
     default:
      if(InUnitArrName[i][1]==1){
       a=a+"<B>";
      }
      a=a+"<Font";
      if(InUnitArrName[i][2]!=0){
       a=a+" Size="+InUnitArrName[i][2];
      }
      a=a+" Color=\""+InUnitArrName[i][3]+"\">";
      a=a+ToHTML(InUnitArrName[i][24]);
      a=a+"</Font>";
      if(InUnitArrName[i][1]==1){
       a=a+"</B>";
      }
    }
    break;
   case "InputText":
   case "InputNum":
   case "InputTime":
   case "InputTextArea":
   case "UpLoadFile":
   case "SelectUser":
   case "SelectDept":
   case "SelectOrg":
   case "SelectPosition":
   case "SelectClass":
   case "InputCheckBox":
   case "InputRadioBox":
   case "AutoCal":
    a=a+"***";
   case "InputDigitalSign":
   case "InputElectroSeal":
    a=a+"&nbsp;";
    break;
   case "DisplayPic":
    tempstr=parseInt(InUnitArrName[i][20]);
    if(tempstr=="NaN"){
     tempstr=0;
    }
    a=a+"<Img Src=\"../AspFunction/DBDownLoadFile.asp?DbTableName=TablePic&Field_Name_FileName=FileName&Field_Name_FileSize=size&Field_Name_FileContent=PicFile&Field_Name_FileType=FileType&Field_Name_ID=TablePicID&ID="+tempstr+"\"";
    tempstr=parseInt(InUnitArrName[i][12]);
    if(tempstr=="NaN"){
     tempstr=0;
    }
    if(tempstr!=0){
     a=a+" width="+tempstr;
    }
    tempstr=parseInt(InUnitArrName[i][13]);
    if(tempstr=="NaN"){
     tempstr=0;
    }
    if(tempstr!=0){
     a=a+" height="+tempstr;
    }
    a=a+">";
    break;
  }
 }
 return a;
}
///////////////////////////////////////////////
//把字符串转换成HTML
function ToHTML(Str){
 //空格用&nbsp;代替
 //换行用<br>代替
 var a;
 a=Str.replace(/ /g, "&nbsp;");
 a=a.replace(/\r\n/g, "<br>");
 a=a.replace(/\n/g, "<br>");
 return a;
}
//////////////////////////////////////////////////
//当修改后显示表单的函数
function UpdateDisplay(){
  CreatUnitCoordinateArr();//建立一个数组，保存表单单元格真实坐标，并调整TableArr
  TableArrAdjust();
  CreatUnitCoordinateArr();
  TopTD.innerHTML=TopStr;
  TempA=DisplayTableSetStr();//显示表单
  DivTableDisplay.innerHTML=TempA;
}












//////////////////////////////////////////////////
//下面的函数是按默认值的表达式计算默认值，并把该值返回给函数
//默认值的表达式可以是字符串以及用括号包起来的特殊意义的字符。
//特殊意义的字符包括：(Name)、(Dept)、(Position)、(IP)、(Date)、(Year)、(Month)、(Day)、(Time)、(ID)、(A+n)、(A-n)、(Param0)、(Hour)、(Minute)。
//分别表示：输入人的姓名、
//          输入人的所在部门、
//          输入人的职位、
//          输入人的IP地址、
//          输入的日期、
//          输入的年份、
//          输入的月份、
//          输入的日号、
//          输入的时间、
//          表单数据中已有的最大ID号、
//          加法运算、
//          减法运算。
//          由页面传递过来的参数，可以是多个参数，从Param0开始
//          输入的小时数1-24、
//          输入的分钟数0-60、
//当括号中有加法和减法运算符号时，第一个运算数必须是Date\Year\Month\Day\Time\ID之一，
//第二个运算数必须是正整数。
//运算结果分别是：Date加上或减去n天后的日期
//                Year加上或减去n后的结果
//                Month加上或减去n后的结果
//                Day加上或减去n后的结果
//                Time加上或减去n小时后的时间
//                ID加上或减去n后的结果。
//如果括号中的字符不能按上面规则解释，则系统不认为是特殊字符。
//在页面前已经把下面信息保存在变量中
//ipaddress=Request.ServerVariables("Remote_Addr")
//DataMaxID=TableDataOB.MaxID(Conn, TableID)
//Dept=UserOB.GetDeptNameIDByName(name_c)
//Position=UserOB.GetPositionByName(name_c)
//var Name="<%=name_c%>";
//var Dept="<%=Dept%>";
//var Position="<%=Position%>";
//var IP="<%=ipaddress%>";
//var ID="<%=DataMaxID%>";
function DisplayDefault(Expression){
 var a=Expression;
 if(a!=""){
  var reg=/\(Name\)/ig;
  a=a.replace(reg,Name);
  reg=/\(Dept\)/ig;
  a=a.replace(reg,Dept);
  reg=/\(Position\)/ig;
  a=a.replace(reg,Position);
  reg=/\(IP\)/ig;
  a=a.replace(reg,IP);
  reg=/\(Date\)/ig;
  a=a.replace(reg,function(){
                             var d=new Date();
                             var s;
                             s=d.getFullYear()+"-"+(parseInt(d.getMonth())+1)+"-"+d.getDate(); 
                             return s;
                            });
  reg=/\(Year\)/ig;
  a=a.replace(reg,function(){
                             var d=new Date();
                             var s;
                             s=d.getFullYear(); 
                             return s;
                            });
  reg=/\(Month\)/ig;
  a=a.replace(reg,function(){
                             var d=new Date();
                             var s;
                             s=parseInt(d.getMonth())+1; 
                             return s;
                            });
  reg=/\(Day\)/ig;
  a=a.replace(reg,function(){
                             var d=new Date();
                             var s;
                             s=d.getDate(); 
                             return s;
                            });
  reg=/\(Time\)/ig;
  a=a.replace(reg,function(){
                             var d=new Date();
                             var s;
                             s=d.getFullYear()+"-"+(parseInt(d.getMonth())+1)+"-"+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
                             return s;
                             });
  reg=/\(Hour\)/ig;
  a=a.replace(reg,function(){
                             var d=new Date();
                             var s;
                             s=d.getHours();
                             return s;
                             });
  reg=/\(Minute\)/ig;
  a=a.replace(reg,function(){
                             var d=new Date();
                             var s;
                             s=d.getMinutes();
                             return s;
                             });
  reg=/\(ID\)/ig;
  a=a.replace(reg,ID);
  reg=/\(Date\+([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var d=new Date();
                              var s;
                              d.setDate(parseInt(d.getDate())+parseInt($1));
                              s=d.getFullYear()+"-"+(parseInt(d.getMonth())+1)+"-"+d.getDate();
                              return s;
                              });
  reg=/\(Date-([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var d=new Date();
                              var s;
                              d.setDate(d.getDate()-$1);
                              s=d.getFullYear()+"-"+(parseInt(d.getMonth())+1)+"-"+d.getDate();
                              return s;
                              });
  reg=/\(Year\+([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var d=new Date();
                              var s;
                              s=parseInt(d.getFullYear())+parseInt($1);
                              return s;
                              });
  reg=/\(Year-([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var d=new Date();
                              var s;
                              s=d.getFullYear()-$1;
                              return s;
                              });
  reg=/\(Month\+([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var d=new Date();
                              var s;
                              s=parseInt(d.getMonth())+1+parseInt($1);
                              return s;
                              });
  reg=/\(Month-([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var d=new Date();
                              var s;
                              s=parseInt(d.getMonth())+1-$1;
                              return s;
                              });
  reg=/\(Day\+([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var d=new Date();
                              var s;
                              s=parseInt(d.getDate())+parseInt($1);
                              return s;
                              });
  reg=/\(Day-([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var d=new Date();
                              var s;
                              s=d.getDate()-$1;
                              return s;
                              });
  reg=/\(Time\+([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var d=new Date();
                              var s;
                              d.setHours(parseInt(d.getHours())+parseInt($1));
                              s=d.getFullYear()+"-"+(parseInt(d.getMonth())+1)+"-"+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
                              return s;
                              });
  reg=/\(Time-([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var d=new Date();
                              var s;
                              d.setHours(d.getHours()-$1);
                              s=d.getFullYear()+"-"+(parseInt(d.getMonth())+1)+"-"+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
                              return s;
                              });
  reg=/\(ID\+([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var s;
                              s=parseInt(ID)+parseInt($1);
                              return s;
                              });
  reg=/\(ID-([1-9]\d*)\)/ig;
  a=a.replace(reg,function($0,$1){
                              var s;
                              s=ID-$1;
                              return s;
                              });
 }
 return a;
}












/////////////////////////////////////////////////////////
//下面的函数用与改变控制面板中表单单元的类型时，显示该类型
//的设置参数的选择
//该函数根据单元的类型，把它的参数设置的界面以Html形式返回
function DisplayInUnitParameter(InUnitTypeStr){
 var A="";
 var i,j,k;
 switch(InUnitTypeStr){
  case "Text":
   A=A+"<table><tr><td>文本内容：</td><td><TextArea name=\"TextContent\" rows=\"4\" style=\"width:255;\"></TextArea></td></tr></table>";
   break;
  case "InputText":
   A=A+"<table><tr><td>输入框宽：</td><td width=110><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:55;\">像素</td>";
   A=A+"<td>必须填写：</td><td><input type=\"CheckBox\" name=\"NotEmpty\" value=1></td></tr>";
   A=A+"<tr><td>是Email：</td><td colspan=3><input type=\"CheckBox\" name=\"IsEmail\" value=1></td></tr>";
   A=A+"<tr><td rowspan=2>默认值为：</td><td colspan=3><input type=\"Text\" name=\"InputDefault\" style=\"width:255;\"></td></tr>";
   A=A+"<tr><td colspan=3><select name=\"InputDefaultSp\" size=1 style=\"width:215;\"><option value=\"\">插入特殊代码</option>";
   A=A+"<option Value=\"(Name)\">输入者的姓名</option>";
   A=A+"<option Value=\"(Dept)\">输入者的部门</option>";
   A=A+"<option Value=\"(Position)\">输入者的职位</option>";
   A=A+"<option Value=\"(IP)\">输入者的IP</option>";
   A=A+"<option Value=\"(Date)\">输入时的日期</option>";
   A=A+"<option Value=\"(Year)\">输入时的年份</option>";
   A=A+"<option Value=\"(Month)\">输入时的月份</option>";
   A=A+"<option Value=\"(Day)\">输入时的日号</option>";
   A=A+"<option Value=\"(Hour)\">输入时的小时数</option>";
   A=A+"<option Value=\"(Minute)\">输入时的分钟数</option>";
   A=A+"<option Value=\"(Time)\">输入时的时间</option>";
   A=A+"<option Value=\"(ID)\">本表单的最大ID</option>";
   A=A+"<option Value=\"(Date+1)\">加N天后的日期</option>";
   A=A+"<option Value=\"(Date-1)\">减N天后的日期</option>";
   A=A+"<option Value=\"(Year+1)\">本年份加上N</option>";
   A=A+"<option Value=\"(Year-1)\">本年份减去N</option>";
   A=A+"<option Value=\"(Month+1)\">本月份加上N</option>";
   A=A+"<option Value=\"(Month-1)\">本月份减去N</option>";
   A=A+"<option Value=\"(Day+1)\">本日号加上N</option>";
   A=A+"<option Value=\"(Day-1)\">本日号减去N</option>";
   A=A+"<option Value=\"(Time+1)\">N小时后的时间</option>";
   A=A+"<option Value=\"(Time-1)\">N小时前的时间</option>";
   A=A+"<option Value=\"(ID+1)\">本表单最大ID加上N</option>";
   A=A+"<option Value=\"(ID-1)\">本表单最大ID减去N</option>";
   A=A+"<option Value=\"(Param0)\">页面传来的参数</option>";
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddSpecialStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "InputNum":
   A=A+"<table><tr><td>输入框宽：</td><td><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:227;\">像素</td></tr>";
   A=A+"<tr><td rowspan=2>默认值为：</td><td><input type=\"Text\" name=\"InputDefault\" value=0 style=\"width:255;\"></td></tr>";
   A=A+"<tr><td><select name=\"InputDefaultSp\" size=1 style=\"width:215;\"><option value=\"\">插入特殊代码</option>";
   A=A+"<option Value=\"(Year)\">输入时的年份</option>";
   A=A+"<option Value=\"(Month)\">输入时的月份</option>";
   A=A+"<option Value=\"(Day)\">输入时的日号</option>";
   A=A+"<option Value=\"(Hour)\">输入时的小时数</option>";
   A=A+"<option Value=\"(Minute)\">输入时的分钟数</option>";
   A=A+"<option Value=\"(ID)\">本表单的最大ID</option>";
   A=A+"<option Value=\"(Date+1)\">加N天后的日期</option>";
   A=A+"<option Value=\"(Date-1)\">减N天后的日期</option>";
   A=A+"<option Value=\"(Year+1)\">本年份加上N</option>";
   A=A+"<option Value=\"(Year-1)\">本年份减去N</option>";
   A=A+"<option Value=\"(Month+1)\">本月份加上N</option>";
   A=A+"<option Value=\"(Month-1)\">本月份减去N</option>";
   A=A+"<option Value=\"(Day+1)\">本日号加上N</option>";
   A=A+"<option Value=\"(Day-1)\">本日号减去N</option>";
   A=A+"<option Value=\"(ID+1)\">本表单最大ID加上N</option>";
   A=A+"<option Value=\"(ID-1)\">本表单最大ID减去N</option>";
   A=A+"<option Value=\"(Param0)\">页面传来的参数</option>";
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddSpecialStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "InputTime":
   A=A+"<table><tr><td>输入框宽：</td><td width=110><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:55;\">像素</td>";
   A=A+"<td>日期格式：</td><td width=78><input type=\"CheckBox\" name=\"IsDate\" value=1 checked></td></tr>";
   A=A+"<tr><td rowspan=2>默认值为：</td><td colspan=3><input type=\"Text\" name=\"InputDefault\" style=\"width:255;\"></td></tr>";
   A=A+"<tr><td colspan=3><select name=\"InputDefaultSp\" size=1 style=\"width:215;\"><option value=\"\">插入特殊代码</option>";
   A=A+"<option Value=\"(Date)\">输入时的日期</option>";
   A=A+"<option Value=\"(Time)\">输入时的时间</option>";
   A=A+"<option Value=\"(Date+1)\">加N天后的日期</option>";
   A=A+"<option Value=\"(Date-1)\">减N天后的日期</option>";
   A=A+"<option Value=\"(Time+1)\">N小时后的时间</option>";
   A=A+"<option Value=\"(Time-1)\">N小时前的时间</option>";
   A=A+"<option Value=\"(Param0)\">页面传来的参数</option>";
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddSpecialStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "InputTextArea":
   A=A+"<table><tr><td>输入框宽：</td><td width=110><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:55;\">像素</td>";
   A=A+"<td>输入框高：</td><td><input type=\"Text\" name=\"InputHeight\" value=100 style=\"width:55;\">像素</td></tr>";
   A=A+"<tr><td>必须填写：</td><td colspan=3><input type=\"CheckBox\" name=\"NotEmpty\" value=1></td></tr>";
   A=A+"<tr><td rowspan=2>默认值为：</td><td colspan=3><TextArea name=\"InputDefault\" rows=3 style=\"width:255;\"></TextArea></td></tr>";
   A=A+"<tr><td colspan=3><select name=\"InputDefaultSp\" size=1 style=\"width:215;\"><option value=\"\">插入特殊代码</option>";
   A=A+"<option Value=\"(Name)\">输入者的姓名</option>";
   A=A+"<option Value=\"(Dept)\">输入者的部门</option>";
   A=A+"<option Value=\"(Position)\">输入者的职位</option>";
   A=A+"<option Value=\"(IP)\">输入者的IP</option>";
   A=A+"<option Value=\"(Date)\">输入时的日期</option>";
   A=A+"<option Value=\"(Year)\">输入时的年份</option>";
   A=A+"<option Value=\"(Month)\">输入时的月份</option>";
   A=A+"<option Value=\"(Day)\">输入时的日号</option>";
   A=A+"<option Value=\"(Hour)\">输入时的小时数</option>";
   A=A+"<option Value=\"(Minute)\">输入时的分钟数</option>";
   A=A+"<option Value=\"(Time)\">输入时的时间</option>";
   A=A+"<option Value=\"(ID)\">本表单的最大ID</option>";
   A=A+"<option Value=\"(Date+1)\">加N天后的日期</option>";
   A=A+"<option Value=\"(Date-1)\">减N天后的日期</option>";
   A=A+"<option Value=\"(Year+1)\">本年份加上N</option>";
   A=A+"<option Value=\"(Year-1)\">本年份减去N</option>";
   A=A+"<option Value=\"(Month+1)\">本月份加上N</option>";
   A=A+"<option Value=\"(Month-1)\">本月份减去N</option>";
   A=A+"<option Value=\"(Day+1)\">本日号加上N</option>";
   A=A+"<option Value=\"(Day-1)\">本日号减去N</option>";
   A=A+"<option Value=\"(Time+1)\">N小时后的时间</option>";
   A=A+"<option Value=\"(Time-1)\">N小时前的时间</option>";
   A=A+"<option Value=\"(ID+1)\">本表单最大ID加上N</option>";
   A=A+"<option Value=\"(ID-1)\">本表单最大ID减去N</option>";
   A=A+"<option Value=\"(Param0)\">页面传来的参数</option>";
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddSpecialStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "UpLoadFile":
   A=A+"<table><tr><td>输入框宽：</td><td width=110><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:55;\">像素</td>";
   A=A+"<td>是图片时：</td><td><select name=\"UpLoadFileIsPic\" size=1 style=\"width:78;\"><option value=1>显示图片</option><option value=0>显示下载</option></select></td></tr>";
   A=A+"<tr><td>图片宽度：</td><td><input type=\"Text\" name=\"PicWidth\" value=0 style=\"width:55;\">像素</td><td>图片高度：</td><td><input type=\"Text\" name=\"PicHeight\" value=0 style=\"width:55;\">像素</td></tr>";
   A=A+"</table>";
   break;
  case "SelectUser":
   A=A+"<table><tr><td>输入框宽：</td><td width=110><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:55;\">像素</td>";
   A=A+"<td>必须填写：</td><td><input type=\"CheckBox\" name=\"NotEmpty\" value=1></td></tr>";
   A=A+"<tr><td>可以多选：</td><td colspan=3><input type=\"CheckBox\" name=\"IsMutiSelect\" value=1></td></tr>";
   A=A+"<tr><td rowspan=2>默认值为：</td><td colspan=3><input type=\"Text\" name=\"InputDefault\" style=\"width:255;\"></td></tr>";
   A=A+"<tr><td colspan=3><select name=\"InputDefaultSp\" size=1 style=\"width:215;\"><option value=\"\">插入特殊代码</option>";
   A=A+"<option Value=\"(Name)\">输入者的姓名</option>";
   A=A+"<option Value=\"(Dept)\">输入者的部门</option>";
   A=A+"<option Value=\"(Param0)\">页面传来的参数</option>";
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddSpecialStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "SelectDept":
   A=A+"<table><tr><td>输入框宽：</td><td width=110><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:55;\">像素</td>";
   A=A+"<td>必须填写：</td><td><input type=\"CheckBox\" name=\"NotEmpty\" value=1></td></tr>";
   A=A+"<tr><td>可以多选：</td><td colspan=3><input type=\"CheckBox\" name=\"IsMutiSelect\" value=1></td></tr>";
   A=A+"<tr><td rowspan=2>默认值为：</td><td colspan=3><input type=\"Text\" name=\"InputDefault\" style=\"width:255;\"></td></tr>";
   A=A+"<tr><td colspan=3><select name=\"InputDefaultSp\" size=1 style=\"width:215;\"><option value=\"\">插入特殊代码</option>";
   A=A+"<option Value=\"(Dept)\">输入者的部门</option>";
   A=A+"<option Value=\"(Param0)\">页面传来的参数</option>";
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddSpecialStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "SelectOrg":
   A=A+"<table><tr><td>组织机构：</td><td colspan=3>";
   A=A+"<Select name=\"SelectOrgID\" size=1 style=\"width:215;\">";
   A=A+"<option value=\"0\"></option>";
   for(i in OrgArr){
    A=A+"<option value=\""+OrgArr[i][0]+"\">"+OrgArr[i][1]+"</option>";
   }
   A=A+"</Select>";
   A=A+"<input type=\"button\" value=\"属性\" onclick=\"window.open('../SetUserInf/UserOrgSet.asp','UserOrgSet','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=400');\">";
   A=A+"</td></tr>";
   A=A+"<tr><td>输入框宽：</td><td width=110><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:55;\">像素</td>";
   A=A+"<td>必须填写：</td><td><input type=\"CheckBox\" name=\"NotEmpty\" value=1></td></tr>";
   A=A+"</table>";
   break;
  case "SelectPosition":
   A=A+"<table><tr><td>输入框宽：</td><td width=110><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:55;\">像素</td>";
   A=A+"<td>必须填写：</td><td><input type=\"CheckBox\" name=\"NotEmpty\" value=1></td></tr>";
   A=A+"<tr><td>可以多选：</td><td colspan=3><input type=\"CheckBox\" name=\"IsMutiSelect\" value=1></td></tr>";
   A=A+"<tr><td rowspan=2>默认值为：</td><td colspan=3><input type=\"Text\" name=\"InputDefault\" style=\"width:255;\"></td></tr>";
   A=A+"<tr><td colspan=3><select name=\"InputDefaultSp\" size=1 style=\"width:215;\"><option value=\"\">插入特殊代码</option>";
   A=A+"<option Value=\"(Position)\">输入者的职位</option>";
   A=A+"<option Value=\"(Param0)\">页面传来的参数</option>";
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddSpecialStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "SelectClass":
   A=A+"<table><tr><td>输入框宽：</td><td width=110><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:55;\">像素</td>";
   A=A+"<td>必须填写：</td><td><input type=\"CheckBox\" name=\"NotEmpty\" value=1></td></tr>";
   A=A+"<tr><td>可以多选：</td><td colspan=3><input type=\"CheckBox\" name=\"IsMutiSelect\" value=1></td></tr>";
   A=A+"<tr><td>分类内容：</td><td colspan=3><TextArea rows=3 name=\"SelectClassContent\" style=\"width:255;\">用英文逗号分开每个分类内容，例如：,A,B,C</TextArea></td></tr>";
   A=A+"<tr><td rowspan=2>默认值为：</td><td colspan=3><input type=\"Text\" name=\"InputDefault\" style=\"width:255;\"></td></tr>";
   A=A+"<tr><td colspan=3><select name=\"InputDefaultSp\" size=1 style=\"width:215;\"><option value=\"\">插入特殊代码</option>";
   A=A+"<option Value=\"(Param0)\">页面传来的参数</option>";
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddSpecialStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "InputCheckBox":
   A=A+"<table><tr><td>勾选框值：</td><td width=110><input type=\"Text\" value=\"A\" name=\"CheckBoxValue\" style=\"width:78;\"></td>";
   A=A+"<td>默认勾选：</td><td width=78><input type=\"CheckBox\" name=\"CheckBoxDefault\" value=1></td></tr>";
   A=A+"</table>";
   break;
  case "InputRadioBox":
   A=A+"<table><tr><td>多选一值：</td><td width=110><input type=\"Text\" value=\"A,B,C\" name=\"RadioBoxContent\" style=\"width:78;\"></td>";
   A=A+"<td>必须填写：</td><td><input type=\"CheckBox\" name=\"NotEmpty\" value=1></td></tr>";
   A=A+"<tr><td rowspan=2>默认值为：</td><td colspan=3><input type=\"Text\" name=\"InputDefault\" style=\"width:255;\"></td></tr>";
   A=A+"<tr><td colspan=3><select name=\"InputDefaultSp\" size=1 style=\"width:215;\"><option value=\"\">插入特殊代码</option>";
   A=A+"<option Value=\"(Param0)\">页面传来的参数</option>";
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddSpecialStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "InputHide":
   A=A+"<table>";
   A=A+"<tr><td rowspan=2>默认值为：</td><td><TextArea name=\"InputDefault\" rows=3 style=\"width:255;\"></TextArea></td></tr>";
   A=A+"<tr><td><select name=\"InputDefaultSp\" size=1 style=\"width:215;\"><option value=\"\">插入特殊代码</option>";
   A=A+"<option Value=\"(Name)\">输入者的姓名</option>";
   A=A+"<option Value=\"(Dept)\">输入者的部门</option>";
   A=A+"<option Value=\"(Position)\">输入者的职位</option>";
   A=A+"<option Value=\"(IP)\">输入者的IP</option>";
   A=A+"<option Value=\"(Date)\">输入时的日期</option>";
   A=A+"<option Value=\"(Year)\">输入时的年份</option>";
   A=A+"<option Value=\"(Month)\">输入时的月份</option>";
   A=A+"<option Value=\"(Day)\">输入时的日号</option>";
   A=A+"<option Value=\"(Hour)\">输入时的小时数</option>";
   A=A+"<option Value=\"(Minute)\">输入时的分钟数</option>";
   A=A+"<option Value=\"(Time)\">输入时的时间</option>";
   A=A+"<option Value=\"(ID)\">本表单的最大ID</option>";
   A=A+"<option Value=\"(Date+1)\">加N天后的日期</option>";
   A=A+"<option Value=\"(Date-1)\">减N天后的日期</option>";
   A=A+"<option Value=\"(Year+1)\">本年份加上N</option>";
   A=A+"<option Value=\"(Year-1)\">本年份减去N</option>";
   A=A+"<option Value=\"(Month+1)\">本月份加上N</option>";
   A=A+"<option Value=\"(Month-1)\">本月份减去N</option>";
   A=A+"<option Value=\"(Day+1)\">本日号加上N</option>";
   A=A+"<option Value=\"(Day-1)\">本日号减去N</option>";
   A=A+"<option Value=\"(Time+1)\">N小时后的时间</option>";
   A=A+"<option Value=\"(Time-1)\">N小时前的时间</option>";
   A=A+"<option Value=\"(ID+1)\">本表单最大ID加上N</option>";
   A=A+"<option Value=\"(ID-1)\">本表单最大ID减去N</option>";
   A=A+"<option Value=\"(Param0)\">页面传来的参数</option>";
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddSpecialStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "InputDigitalSign":
   A=A+"<table><tr><td>输入框宽：</td><td width=110><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:55;\">像素</td>";
   A=A+"<td>密码验证：</td><td width=78><input type=\"CheckBox\" name=\"SignMustPassWord\" value=1></td></tr>";
   A=A+"<tr><td>签名图宽：</td><td><input type=\"Text\" name=\"PicWidth\" value=0 style=\"width:55;\">像素</td>";
   A=A+"<td>签名图高：</td><td><input type=\"Text\" name=\"PicHeight\" value=0 style=\"width:55;\">像素</td></tr>";
   A=A+"</table>";
   break;
  case "InputElectroSeal":
   A=A+"<table><tr><td>输入框宽：</td><td colspan=3><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:230;\">像素</td>";
   A=A+"<tr><td>印章图宽：</td><td width=110><input type=\"Text\" name=\"PicWidth\" value=0 style=\"width:55;\">像素</td>";
   A=A+"<td>印章图高：</td><td><input type=\"Text\" name=\"PicHeight\" value=0 style=\"width:55;\">像素</td></tr>";
   A=A+"</table>";
   break;
  case "DisplayPic":
   A=A+"<table><tr><td>图库图片：</td><td colspan=3>";
   A=A+"<Select name=\"DisplayPicID\" size=1 style=\"width:215;\">";
   A=A+"<option value=\"0\"></option>";
   for(i in TablePicArr){
    A=A+"<option value=\""+TablePicArr[i][0]+"\">"+TablePicArr[i][1]+"</option>";
   }
   A=A+"</Select>";
   A=A+"<input type=\"button\" value=\"属性\" onclick=\"window.open('../SetTable/TablePicSet.asp','TablePicSet','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=400');\">";
   A=A+"</td>";
   A=A+"<tr><td>显示图宽：</td><td width=110><input type=\"Text\" name=\"PicWidth\" value=0 style=\"width:55;\">像素</td>";
   A=A+"<td>显示图高：</td><td><input type=\"Text\" name=\"PicHeight\" value=0 style=\"width:55;\">像素</td></tr>";
   A=A+"</table>";
   break;
  case "AutoCal":
   A=A+"<table><tr><td>输入框宽：</td><td><input type=\"Text\" name=\"InputWidth\" value=100 style=\"width:230;\">像素</td>";
   A=A+"<tr><td rowspan=2>计算规则：</td><td><TextArea name=\"AutoCalReg\" rows=3 style=\"width:255;\"></TextArea></td></tr>";
   A=A+"<tr><td><select name=\"AutoCalRegsp\" size=1 style=\"width:215;\"><option value=\"\">选择计算规则的符号</option>";
   A=A+"<option value=\"&quot;用英文引号把普通文字引起来&quot;\">普通文字</option>";
   A=A+"<option value=\"+\">+加法运算符</option>";
   A=A+"<option value=\"-\">-减法运算符</option>";
   A=A+"<option value=\"*\">*乘法运算符</option>";
   A=A+"<option value=\"/\">/除法运算符</option>";
   A=A+"<option value=\"&\">&连接两字符串运算符</option>";
   A=A+"<option value=\"(\">(左括号</option>";
   A=A+"<option value=\")\">)右括号</option>";
   A=A+"<option Value=\"(Name)\">输入者的姓名</option>";
   A=A+"<option Value=\"(Dept)\">输入者的部门</option>";
   A=A+"<option Value=\"(IP)\">输入者的IP</option>";
   A=A+"<option Value=\"(Date)\">输入时的日期</option>";
   A=A+"<option Value=\"(Year)\">输入时的年份</option>";
   A=A+"<option Value=\"(Month)\">输入时的月份</option>";
   A=A+"<option Value=\"(Day)\">输入时的日号</option>";
   A=A+"<option Value=\"(Hour)\">输入时的小时数</option>";
   A=A+"<option Value=\"(Minute)\">输入时的分钟数</option>";
   A=A+"<option Value=\"(Time)\">输入时的时间</option>";
   A=A+"<option Value=\"(ID)\">本表单的最大ID</option>";
   for(i in TableArr){
    for(j in TableArr[i]){
     for(k in TableArr[i][j][1]){
      if(TableArr[i][j][1][k][4]=="InputText"||TableArr[i][j][1][k][4]=="InputNum"||TableArr[i][j][1][k][4]=="InputTime"||TableArr[i][j][1][k][4]=="SelectUser"||TableArr[i][j][1][k][4]=="SelectDept"||TableArr[i][j][1][k][4]=="SelectOrg"||TableArr[i][j][1][k][4]=="SelectPosition"||TableArr[i][j][1][k][4]=="SelectClass"||TableArr[i][j][1][k][4]=="AutoCal"||TableArr[i][j][1][k][4]=="InputTextArea"){
       A=A+"<option Value=\"(H"+i+"L"+j+"S"+k+")\">单元H"+i+"L"+j+"S"+k;
       if(TableArr[i][j][1][k][0]!=""){
        A=A+"("+TableArr[i][j][1][k][0]+")";
       }
       A=A+"的值</option>";
      }
     }
    }
   }
   A=A+"</select>";
   A=A+"<input type=\"button\" value=\"插入\" onclick=\"AddAutoCalStr();\">";
   A=A+"</td></tr></table>";
   break;
  case "WorkWebLink":
   A=A+"<Table><tr><td>链接文字：</td><td><input type=\"text\" name=\"LinkText\" style=\"width:255\"></td></tr>";
   A=A+"<tr><td>连接页面：</td><td><select name=\"WorkWebIDForLink\" size=1 style=\"width:215\">"+WebIDOption+"</select><input type=\"button\" value=\"属性\" onclick=\"var Link=\'\';var WIDV=WorkWebIDForLink.value;if(WIDV==0){Link=\'../SetWeb/WebSet.asp\'}else{Link=\'../SetWeb/WebDataEdit.asp?WorkWebID=\'+WIDV};window.open(Link,\'_blank\',\'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes\');\"></td></tr>";
   A=A+"<tr><td>传递参数：</td><td><input type=\"text\" name=\"WorkWebLinkParam\" style=\"width:255\"><br>";
   A=A+"<Select name=\"WorkWebLinkParamIn\" size=1 style=\"width:215;\">";
   A=A+"<option value=\"请输入要传递的文字\">固定文字</option>";
   A=A+"<option value=\"DataID\">数据的ID</option>";
   A=A+"<option value=\"Name\">数据填写人</option>";
   A=A+"<option value=\"InputTime\">数据填写时间</option>";
   var InUnitType;
   var R;
   for(i in TableArr){
    for(j in TableArr[i]){
     for(k in TableArr[i][j][1]){
      InUnitType=TableArr[i][j][1][k][4];
      if(InUnitType!="Text" & InUnitType!="UpLoadFile" & InUnitType!="InputDigitalSign" & InUnitType!="InputElectroSeal" & InUnitType!="DisplayPic" & InUnitType!="WorkWebLink" & InUnitType!="WebLink"){
       R=TableArr[i][j][1][k][0];
       if(R==""){
        A=A+"<option value=\"H"+i+"L"+j+"S"+k+"\">H"+i+"L"+j+"S"+k+"</option>";
       }else{
        A=A+"<option value=\"H"+i+"L"+j+"S"+k+"\">H"+i+"L"+j+"S"+k+"("+R+")</option>";
       }
      }
     }
    }
   }
   A=A+"</Select><input type=\"button\" value=\"增加\" onclick=\"AddWorkWebLinkParam();\"></td></tr>";
   A=A+"</Table>";
   break;
  case "WebLink":
   A=A+"<Table><tr><td>链接文字：</td><td><input type=\"text\" name=\"LinkText\" style=\"width:255\"></td></tr>";
   A=A+"<tr><td>连接网址：</td><td><input type=\"text\" name=\"LinkSite\" style=\"width:255\"></td></tr></Table>";
 }
 return A;
}
//////////////////////////////////////////////////////
//当改变内单元的类型时，参数选择跟着改变
function ChangeInUnitType(InUnitTypeStr){
 var a=DisplayInUnitParameter(InUnitTypeStr);
 DivInUnitParameter.innerHTML=a;
}










///////////////////////////////////////////////////////
//当点单元格或单元时，改变颜色并把参数传给控制面版
function OnClickUnit(UnitOB){
 if(UnitOB==""){
  return;
 }
 var UnitOBID=UnitOB.match(/^H\d+L\d+S\d+$/);
 if(UnitOBID!=null){//如果点了单元
  SelectedInUnitOB=UnitOB;
  clickTD3();
  SendParameterToBoard(UnitOB);
 }else{//如果点了单元格
  SelectedUnitOB=UnitOB;
  clickTD2();
  SendParameterToBoard(UnitOB);
 }
 TopTD.innerHTML=TopStr;
 TempA=DisplayTableSetStr();//显示表单
 DivTableDisplay.innerHTML=TempA;
}
//////////////////////////////////////////////////////
//点了单元或单元格时把参数传给控制面板
function SendParameterToBoard(CkOB){
 var UnitOBID=CkOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var OBID,H,L,S;
 if(UnitOBID!=null){//如果点了单元
  OBID=UnitOBID[0];
  H=UnitOBID[1];
  L=UnitOBID[2];
  S=UnitOBID[3];
  InUnitIDDis.value=OBID;
  Remark.value=TableArr[H][L][1][S][0];
  TextBoldFace.value=TableArr[H][L][1][S][1];
  Text_Size.value=TableArr[H][L][1][S][2];
  Text_Color.value=TableArr[H][L][1][S][3];
  InUnitType.value=TableArr[H][L][1][S][4];
  ChangeInUnitType(InUnitType.value);
  switch(InUnitType.value){
  case "Text":
   TextContent.value=TableArr[H][L][1][S][5];
   break;
  case "InputText":
   InputWidth.value=TableArr[H][L][1][S][6];
   if(TableArr[H][L][1][S][9]==1){
    NotEmpty.checked=true;
   }else{
    NotEmpty.checked=false;
   }
   if(TableArr[H][L][1][S][23]==1){
    IsEmail.checked=true;
   }else{
    IsEmail.checked=false;
   }
   InputDefault.value=TableArr[H][L][1][S][8];
   break;
  case "InputNum":
   InputWidth.value=TableArr[H][L][1][S][6];
   InputDefault.value=TableArr[H][L][1][S][8];
   break;
  case "InputTime":
   InputWidth.value=TableArr[H][L][1][S][6];
   if(TableArr[H][L][1][S][10]==1){
    IsDate.checked=true;
   }else{
    IsDate.checked=false;
   }
   InputDefault.value=TableArr[H][L][1][S][8];
   break;
  case "InputTextArea":
   InputWidth.value=TableArr[H][L][1][S][6];
   InputHeight.value=TableArr[H][L][1][S][7];
   if(TableArr[H][L][1][S][9]==1){
    NotEmpty.checked=true;
   }else{
    NotEmpty.checked=false;
   }
   InputDefault.value=TableArr[H][L][1][S][8];
   break;
  case "UpLoadFile":
   InputWidth.value=TableArr[H][L][1][S][6];
   UpLoadFileIsPic.value=TableArr[H][L][1][S][11];
   PicWidth.value=TableArr[H][L][1][S][12];
   PicHeight.value=TableArr[H][L][1][S][13];
   break;
  case "SelectUser":
   InputWidth.value=TableArr[H][L][1][S][6];
   if(TableArr[H][L][1][S][9]==1){
    NotEmpty.checked=true;
   }else{
    NotEmpty.checked=false;
   }
   if(TableArr[H][L][1][S][14]==1){
    IsMutiSelect.checked=true;
   }else{
    IsMutiSelect.checked=false;
   }
   InputDefault.value=TableArr[H][L][1][S][8];
   break;
  case "SelectDept":
   InputWidth.value=TableArr[H][L][1][S][6];
   if(TableArr[H][L][1][S][9]==1){
    NotEmpty.checked=true;
   }else{
    NotEmpty.checked=false;
   }
   if(TableArr[H][L][1][S][14]==1){
    IsMutiSelect.checked=true;
   }else{
    IsMutiSelect.checked=false;
   }
   InputDefault.value=TableArr[H][L][1][S][8];
   break;
  case "SelectOrg":
   SelectOrgID.value=TableArr[H][L][1][S][21];
   InputWidth.value=TableArr[H][L][1][S][6];
   if(TableArr[H][L][1][S][9]==1){
    NotEmpty.checked=true;
   }else{
    NotEmpty.checked=false;
   }
   break;
  case "SelectPosition":
   InputWidth.value=TableArr[H][L][1][S][6];
   if(TableArr[H][L][1][S][9]==1){
    NotEmpty.checked=true;
   }else{
    NotEmpty.checked=false;
   }
   if(TableArr[H][L][1][S][14]==1){
    IsMutiSelect.checked=true;
   }else{
    IsMutiSelect.checked=false;
   }
   InputDefault.value=TableArr[H][L][1][S][8];
   break;
  case "SelectClass":
   InputWidth.value=TableArr[H][L][1][S][6];
   if(TableArr[H][L][1][S][9]==1){
    NotEmpty.checked=true;
   }else{
    NotEmpty.checked=false;
   }
   if(TableArr[H][L][1][S][14]==1){
    IsMutiSelect.checked=true;
   }else{
    IsMutiSelect.checked=false;
   }
   InputDefault.value=TableArr[H][L][1][S][8];
   SelectClassContent.value=TableArr[H][L][1][S][15];
   break;
  case "InputCheckBox":
   CheckBoxValue.value=TableArr[H][L][1][S][16];
   if(TableArr[H][L][1][S][17]==1){
    CheckBoxDefault.checked=true;
   }else{
    CheckBoxDefault.checked=false;
   }
   break;
  case "InputRadioBox":
   RadioBoxContent.value=TableArr[H][L][1][S][18];
   if(TableArr[H][L][1][S][9]==1){
    NotEmpty.checked=true;
   }else{
    NotEmpty.checked=false;
   }
   InputDefault.value=TableArr[H][L][1][S][8];
   break;
  case "InputHide":
   InputDefault.value=TableArr[H][L][1][S][8];
   break;
  case "InputDigitalSign":
   InputWidth.value=TableArr[H][L][1][S][6];
   if(TableArr[H][L][1][S][19]==1){
    SignMustPassWord.checked=true;
   }else{
    SignMustPassWord.checked=false;
   }
   PicWidth.value=TableArr[H][L][1][S][12];
   PicHeight.value=TableArr[H][L][1][S][13];
   break;
  case "InputElectroSeal":
   InputWidth.value=TableArr[H][L][1][S][6];
   PicWidth.value=TableArr[H][L][1][S][12];
   PicHeight.value=TableArr[H][L][1][S][13];
   break;
  case "DisplayPic":
   DisplayPicID.value=TableArr[H][L][1][S][20];
   PicWidth.value=TableArr[H][L][1][S][12];
   PicHeight.value=TableArr[H][L][1][S][13];
   break;
  case "AutoCal":
   InputWidth.value=TableArr[H][L][1][S][6];
   AutoCalReg.value=TableArr[H][L][1][S][22];
   break;
  case "WorkWebLink":
   LinkText.value=TableArr[H][L][1][S][24];
   WorkWebIDForLink.value=TableArr[H][L][1][S][25];
   WorkWebLinkParam.value=TableArr[H][L][1][S][26];
   break;
  case "WebLink":
   LinkText.value=TableArr[H][L][1][S][24];
   LinkSite.value=TableArr[H][L][1][S][27];
  }
 }else{//如果点了单元
  UnitOBID=CkOB.match(/^H(\d+)L(\d+)$/);
  OBID=UnitOBID[0];
  H=UnitOBID[1];
  L=UnitOBID[2];
  UnitIDDis.value=OBID;
  UnitWidth.value=TableArr[H][L][0][0];
  UnitHeight.value=TableArr[H][L][0][1];
  Rowspan.value=TableArr[H][L][0][2];
  Colspan.value=TableArr[H][L][0][3];
  LeftBorderWidth.value=TableArr[H][L][0][4];
  RightBorderWidth.value=TableArr[H][L][0][5];
  TopBorderWidth.value=TableArr[H][L][0][6];
  BottomBorderWidth.value=TableArr[H][L][0][7];
  LeftBorderColor.value=TableArr[H][L][0][8];
  RightBorderColor.value=TableArr[H][L][0][9];
  TopBorderColor.value=TableArr[H][L][0][10];
  BottomBorderColor.value=TableArr[H][L][0][11];
  align.value=TableArr[H][L][0][12];
  valign.value=TableArr[H][L][0][13];
 }
}












///////////////////////////////////////////////////////////////////
//下面是控制单元格的函数
///////////////////////////////////////////////////////////////////
//建立一个数组，保存表单单元格真实坐标：
//    UnitCoordinateArr(某单元格坐标数组,某单元格坐标数组,某单元格坐标数组...)
//某单元格坐标数组结构为:
//    PerUnitCoordinateArr(实际坐标的行H,实际坐标的列L,对应TableArr数组中的单元格的行H,对应TableArr数组中的单元格的列L,是否是左上角)
//当某个坐标已经存在时，说明单元搁的列跨多了，该函数还会自动减少列跨。
var UnitCoordinateArr=new Array();
function CreatUnitCoordinateArr(){
 var Rowspan,Colspan;
 var H,L;
 var H1,L1;//实际坐标
 H1=0;
 L1=0;
 var i,j;
 UnitCoordinateArr=new Array();
 for(H in TableArr){
  for(L in TableArr[H]){
   Rowspan=TableArr[H][L][0][2];
   Colspan=TableArr[H][L][0][3]; 
   L1=GetFirstL(H1); 
   for(i=0;i<Rowspan;i++){
    for(j=0;j<Colspan;j++){
     if(UnitCoordinateExist((parseInt(H1)+parseInt(i)),(parseInt(L1)+parseInt(j)))){
      Colspan=Colspan-1;
      j=j-1;
      TableArr[H][L][0][3]=Colspan;
     }else{
      if(i==0&j==0){
       UnitCoordinateArrpush(parseInt(H1)+parseInt(i),parseInt(L1)+parseInt(j),H,L,1);
      }else{
       UnitCoordinateArrpush(parseInt(H1)+parseInt(i),parseInt(L1)+parseInt(j),H,L,0);
      }
     }
    }
   }
  }
  H1=GetNextHCor(H1);
 }
}
///////////////////////////////////////////
//取得填加坐标到UnitCoordinateArr中时，下个行的实际行坐标
function GetNextHCor(OldH){
 var i;
 var MaxL=GetMaxLinUnitCoordinateArr();
 var MinH=parseInt(OldH)+1;
 var doit=true;
 do{
  for(i=0;i<=MaxL;i++){
   if(!UnitCoordinateExist(MinH,i)){
     doit=false;
     break;
   }
  }
  if(doit){
   MinH=parseInt(MinH)+1;
  }
 }while(doit);
 return MinH;
}
///////////////////////////////////////////
//删除TableArr中的多余的行跨和列跨
function TableArrAdjust(){
 var MaxH=GetMaxHinUnitCoordinateArr();//最大实际行
 var MaxL=GetMaxLinUnitCoordinateArr();//最大实际列
 var delit=true;
 //开始处理行跨
 var i,j,k;
 var DelUnitArr=new Array();//要删除的单元格坐标数组，格式(h,l),(h1,l1)...
 var CorArr=new Array();
 for(i=0;i<=MaxH;i++){
  DelUnitArr=new Array();
  delit=true;
  for(j=0;j<=MaxL;j++){
   for(k=0;k<UnitCoordinateArr.length;k++){
    if(UnitCoordinateArr[k][0]==i&UnitCoordinateArr[k][1]==j){
     if(UnitCoordinateArr[k][4]==1){
      delit=false;
      j=MaxL;
     }else{
      CorArr=new Array();
      CorArr[0]=UnitCoordinateArr[k][2];
      CorArr[1]=UnitCoordinateArr[k][3];
      if(!HaveRecInDelUnitArr(DelUnitArr,CorArr)){
       DelUnitArr.push(CorArr);
      }
     }
     k=UnitCoordinateArr.length;
    }
   }
  }
  if(delit){//删除该行的列跨
   for(k in DelUnitArr){
    TableArr[DelUnitArr[k][0]][DelUnitArr[k][1]][0][2]--;
   }
  }
 }
 //开始处理列跨
 for(i=0;i<=MaxL;i++){
  DelUnitArr=new Array();
  delit=true;
  for(j=0;j<=MaxH;j++){
   for(k=0;k<UnitCoordinateArr.length;k++){
    if(UnitCoordinateArr[k][0]==j&UnitCoordinateArr[k][1]==i){//if1{
     if(UnitCoordinateArr[k][4]==1){
      delit=false;
      j=MaxH;
     }else{
      CorArr=new Array();
      CorArr[0]=UnitCoordinateArr[k][2];
      CorArr[1]=UnitCoordinateArr[k][3];
      if(!HaveRecInDelUnitArr(DelUnitArr,CorArr)){
       DelUnitArr.push(CorArr);
      }
     }
     k=UnitCoordinateArr.length;
    }
   }
  }
  if(delit){//删除该行的列跨
   for(k in DelUnitArr){
    TableArr[DelUnitArr[k][0]][DelUnitArr[k][1]][0][3]--;
   }
  }
 }
}
///////////////////////////////////////////
//判断DelUnitArr数组中是否有记录
function HaveRecInDelUnitArr(DelUnitArrName,RecArr){
 var i;
 for(i in DelUnitArrName){
  if(DelUnitArrName[i][0]==RecArr[0]&DelUnitArrName[i][1]==RecArr[1]){
   return true;
  }
 }
 return false;
}
///////////////////////////////////////////
//把PerUnitCoordinateArr(实际坐标的行H,实际坐标的列L,对应TableArr数组中的单元格的行H,对应TableArr数组中的单元格的列L)加入UnitCoordinateArr
function UnitCoordinateArrpush(HCoordinate1,LCoordinate1,HCoordinate2,LCoordinate2,IsLT){
 var PerUnitCoordinateArr=new Array(HCoordinate1,LCoordinate1,HCoordinate2,LCoordinate2,IsLT);
 UnitCoordinateArr.push(PerUnitCoordinateArr);
}
////////////////////////////////////////////
//取得UnitCoordinateArr中，某行的第一个空的列号
function GetFirstL(HCoordinate){
 var i,j;
 var UnitExist=true;
 i=0;
 var TempHArr=new Array();//保存UnitCoordinateArr中第HCoordinate行的数据
 for(j in UnitCoordinateArr){
  if(UnitCoordinateArr[j][0]==HCoordinate){
   TempHArr.push(UnitCoordinateArr[j]);
  }
 }
 do{
  UnitExist=false;
  for(j in TempHArr){
   if(TempHArr[j][1]==i){
    i=parseInt(i)+1;
    UnitExist=true;
    break;
   }
  }
 }while(UnitExist);
 return i;
}
////////////////////////////////////////////
//取得行的最小行跨
function GetMinRow(HCor){
 var minrow="a";//最小列跨
 var j;
 for(j in TableArr[HCor]){
  if(minrow=="a"){
   minrow=TableArr[HCor][j][0][2];
  }else{
   if(TableArr[HCor][j][0][2]<minrow){
    minrow=TableArr[HCor][j][0][2];
   }
  }
 }
 return minrow;
}
///////////////////////////////////////////////
//判断某个单元格的真实坐标是否存在
function UnitCoordinateExist(HCoordinate1,LCoordinate1){
 var i;
 for(i in UnitCoordinateArr){
  if(UnitCoordinateArr[i][0]==HCoordinate1&UnitCoordinateArr[i][1]==LCoordinate1){
   return true;
  }
 }
 return false;
}
///////////////////////////////////////////////
//取得某个单元格的真实坐标
function GetUnitCoordinate(HCoordinate1,LCoordinate1){
 var i;
 var a=false;
 for(i in UnitCoordinateArr){
  if(UnitCoordinateArr[i][2]==HCoordinate1&UnitCoordinateArr[i][3]==LCoordinate1){
   a="H"+UnitCoordinateArr[i][0]+"L"+UnitCoordinateArr[i][1];
   return a;
  }
 }
 return a;
}
/////////////////////////////////////////////////
//当按了右合并单元格时处理的函数
function RightComBin(){
 if(SelectedUnitOB==""){
  alert("请先选择一个单元格后再进行合并操作！");
  return;
 }
 var UnitOBID=SelectedUnitOB.match(/^H(\d+)L(\d+)$/);
 var H,L;
 H=UnitOBID[1];
 L=UnitOBID[2];
 if(TableArr[H].length<=(parseInt(L)+1)){
  alert("该单元格右边没有单元格了，不能进行右合并操作！");
  return;
 }
 var RUnitID=GetRightUnitID(H,L);//取得右边的单元
 UnitOBID=RUnitID.match(/^H(\d+)L(\d+)$/);
 var RH,RL;
 RH=UnitOBID[1];
 RL=UnitOBID[2];
 var HB=false;
 if(H==RH&TableArr[H][L][0][2]==TableArr[RH][RL][0][2]){
  HB=true;
 }
 if(!HB){
  alert("右边的单元格跟当前单元格的行跨不一样，不能进行右合并操作！");
  return;
 }
 TablePerLineArr=new Array();
 var i,j;
 //当点了单元时，取得所点单元的HLS
 var InUnitSelectedArr=SelectedInUnitOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var inH="";
 var inL="";
 var inS="";
 if(InUnitSelectedArr!=null){
  inH=InUnitSelectedArr[1];
  inL=InUnitSelectedArr[2];
  inS=InUnitSelectedArr[3];
 }
 for(i in TableArr[H]){
  if(i==L){
   TablePerUnitArr=new Array();
   TablePerUnitArr=TableArr[H][i];
   TablePerUnitArr[0][3]=parseInt(TableArr[H][i][0][3])+parseInt(TableArr[H][parseInt(i)+1][0][3]);
   for(j in TableArr[H][parseInt(i)+1][1]){
    TablePerInUnitArr=new Array();
    TablePerInUnitArr=TableArr[H][parseInt(i)+1][1][j];
    TablePerUnitArr[1].push(TablePerInUnitArr);
    if(H==inH&inL==(parseInt(L)+1)&inS==j){
     SelectedInUnitOB="H"+H+"L"+L+"S"+(TablePerUnitArr[1].length-1);
    }
   }
   TablePerLineArr.push(TablePerUnitArr);
  }else{
   if(i!=(parseInt(L)+1)){
    TablePerUnitArr=new Array();
    TablePerUnitArr=TableArr[H][i];
    TablePerLineArr.push(TablePerUnitArr);
    if(H==inH&inL==i){
     SelectedInUnitOB="H"+H+"L"+(TablePerLineArr.length-1)+"S"+inS;
    }
   }
  }
 }
 TableArr[H]=TablePerLineArr;
 UpdateDisplay(); //显示表单
 //显示行跨和列跨
 Rowspan.value=TableArr[H][L][0][2];
 Colspan.value=TableArr[H][L][0][3];
}
///////////////////////////////////////
//取得某个单元格的右边的单元格
function GetRightUnitID(HCor,LCor){
 var RH,RL;
 var i;
 var j=0;
 var doit=true;
 do
 {
  j=parseInt(j)+1;
  RH=HCor;
  RL=parseInt(LCor)+parseInt(j);
  for(i in UnitCoordinateArr){
   if((UnitCoordinateArr[i][0]==RH&UnitCoordinateArr[i][1]==RL)&!(UnitCoordinateArr[i][2]==HCor&UnitCoordinateArr[i][3]==LCor)){
    doit=false;
    return "H"+UnitCoordinateArr[i][2]+"L"+UnitCoordinateArr[i][3];
   }
  }
 }while(doit&j<=GetMaxLinUnitCoordinateArr());
 return false;
}
///////////////////////////////////////
//取得某个单元格的下边的单元格
function GetDownUnitID(HCor,LCor){
 var RH,RL,DH,DL;
 var RHL=GetUnitCoordinate(HCor,LCor)
 RH=RHL.match(/^H(\d+)L(\d+)$/)[1];
 RL=RHL.match(/^H(\d+)L(\d+)$/)[2];
 var i;
 var j=0;
 var doit=true;
 do
 {
  j=parseInt(j)+1;
  DL=RL;
  DH=parseInt(RH)+parseInt(j);
  for(i in UnitCoordinateArr){
   if((UnitCoordinateArr[i][0]==DH&UnitCoordinateArr[i][1]==DL)&!(UnitCoordinateArr[i][2]==HCor&UnitCoordinateArr[i][3]==LCor)){
    doit=false;
    return "H"+UnitCoordinateArr[i][2]+"L"+UnitCoordinateArr[i][3];
   }
  }
 }while(doit&j<=GetMaxHinUnitCoordinateArr());
 return false;
}
/////////////////////////////////////////////////
//取得UnitCoordinateArr中最大的实际H
function GetMaxHinUnitCoordinateArr(){
 var a=-1;
 var i;
 for(i in UnitCoordinateArr){
  if(UnitCoordinateArr[i][0]>a){
   a=UnitCoordinateArr[i][0];
  }
 }
 return a;
}
/////////////////////////////////////////////////
//取得UnitCoordinateArr中最大的实际L
function GetMaxLinUnitCoordinateArr(){
 var a=-1;
 var i;
 for(i in UnitCoordinateArr){
  if(UnitCoordinateArr[i][1]>a){
   a=UnitCoordinateArr[i][1];
  }
 }
 return a;
}
/////////////////////////////////////////////////
//当按了下合并单元格时处理的函数
function DownComBin(){
 if(SelectedUnitOB==""){
  alert("请先选择一个单元格后再进行合并操作！");
  return;
 }
 var UnitOBID=SelectedUnitOB.match(/^H(\d+)L(\d+)$/);
 var H,L;
 H=UnitOBID[1];
 L=UnitOBID[2];
 var DUnitID=GetDownUnitID(H,L);//取得下边的单元
 if(!DUnitID){
  alert("该单元格下边没有单元格了，不能进行下合并操作！");
  return;
 }
 UnitOBID=DUnitID.match(/^H(\d+)L(\d+)$/);
 var DH,DL;
 DH=UnitOBID[1];
 DL=UnitOBID[2];
 var HB=false;
 //判断当前单元是否跟下边单元在一列
 var HL=GetUnitCoordinate(H,L).match(/^H(\d+)L(\d+)$/)[2];
 var DHL=GetUnitCoordinate(DH,DL).match(/^H(\d+)L(\d+)$/)[2];
 if(HL==DHL&TableArr[H][L][0][3]==TableArr[DH][DL][0][3]){
  HB=true;
 }
 if(!HB){
  alert("下边的单元格跟当前单元格的列跨不一样，不能进行下合并操作！");
  return;
 }
 TablePerLineArr=new Array();
 var i,j,k;
 //当点了单元时，取得所点单元的HLS
 var InUnitSelectedArr=SelectedInUnitOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var inH="";
 var inL="";
 var inS="";
 if(InUnitSelectedArr!=null){
  inH=InUnitSelectedArr[1];
  inL=InUnitSelectedArr[2];
  inS=InUnitSelectedArr[3];
 }
 var TableArr1=new Array();
 for(i in TableArr){
  if(i!=H&i!=DH){//如果不是要合并的行
   TableArr1.push(TableArr[i]);
   if(inH==i){
    SelectedInUnitOB="H"+(TableArr1.length-1)+"L"+inL+"S"+inS;
   }
  }else{//如果是要合并的行
   if(i==H||(i==DH&TableArr[i].length>=1)){
    TablePerLineArr=new Array();
   }
   for(j in TableArr[i]){
    if(i==H){//如果是H
     TablePerUnitArr=new Array();
     TablePerUnitArr=TableArr[i][j];
     if(j==L){
      TablePerUnitArr[0][2]=parseInt(TablePerUnitArr[0][2])+parseInt(TableArr[DH][DL][0][2]);
      for(k in TableArr[DH][DL][1]){
       TablePerUnitArr[1].push(TableArr[DH][DL][1][k]);
       if(inH==DH&inL==DL&inS==k){
        SelectedInUnitOB="H"+H+"L"+L+"S"+(TablePerUnitArr[1].length-1);
       }
      }
     }
     TablePerLineArr.push(TablePerUnitArr);
    }else{  //如果是DH
     if(j!=DL){
      TablePerUnitArr=new Array();
      TablePerUnitArr=TableArr[i][j];
      TablePerLineArr.push(TablePerUnitArr);
      if(inH==DH&inL==j){
       SelectedInUnitOB="H"+DH+"L"+(TablePerLineArr.length-1)+"S"+inS;
      }
     }
    }
   }
   if(i==H||(i==DH&TableArr[i].length>=1)){
    if(TablePerLineArr.length>0){
     TableArr1.push(TablePerLineArr);
    }
   }
  }
 }
 TableArr=TableArr1;
 UpdateDisplay(); //显示表单
 //显示行跨和列跨
 Rowspan.value=TableArr[H][L][0][2];
 Colspan.value=TableArr[H][L][0][3];
}
///////////////////////////////////////////////////////////
//当按了左右拆分单元格时处理的函数
function RLDis(){
 if(SelectedUnitOB==""){
  alert("请先选择一个单元格后再进行拆分操作！");
  return;
 }
 var UnitOBID=SelectedUnitOB.match(/^H(\d+)L(\d+)$/);
 var H,L;
 H=UnitOBID[1];//要拆分的单元行
 L=UnitOBID[2];
 var ColspanNum=TableArr[H][L][0][3];//单元的列跨
 var i,j;
 var l;//要拆分的单元的实际列坐标
 //当点了单元时，取得所点单元的HLS
 var InUnitSelectedArr=SelectedInUnitOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var inH="";
 var inL="";
 var inS="";
 if(InUnitSelectedArr!=null){
  inH=InUnitSelectedArr[1];
  inL=InUnitSelectedArr[2];
  inS=InUnitSelectedArr[3];
 }
 var TableArr1=new Array();
 if(ColspanNum<=1){//如果列跨为1时
  l=GetMinColCor(H,L);
  for(i in TableArr){
   TablePerLineArr=new Array();
   for(j in TableArr[i]){
    TablePerUnitArr=new Array();
    if(H==i&L==j){//如果是要拆分的单元格
     TablePerUnitArr=TableArr[i][j];
     TablePerLineArr.push(TablePerUnitArr);
     CreatEmptyTablePerUnitArr();
     TablePerUnitArr[0][2]=TableArr[i][j][0][2];
     TablePerLineArr.push(TablePerUnitArr);     
    }else{//如果不是要拆分的单元格
     if(IsInCol(i,j,l)){//如果在同一列
      TablePerUnitArr=TableArr[i][j];
      TablePerUnitArr[0][3]=parseInt(TablePerUnitArr[0][3])+1;
      TablePerLineArr.push(TablePerUnitArr);
     }else{//如果不在同一列
      TablePerUnitArr=TableArr[i][j];
      TablePerLineArr.push(TablePerUnitArr);
     }
     if(inH==i&inL==j){
      SelectedInUnitOB="H"+i+"L"+(TablePerLineArr.length-1)+"S"+inS;
     }
    }
   }
   TableArr1.push(TablePerLineArr);
  }
 }else{//如果列跨大于1时
  for(i in TableArr){
   TablePerLineArr=new Array();
   for(j in TableArr[i]){
    TablePerUnitArr=new Array();
    if(H==i&L==j){//如果是要拆分的单元格
     TablePerUnitArr=TableArr[i][j];
     TablePerUnitArr[0][3]=TablePerUnitArr[0][3]-1;
     TablePerLineArr.push(TablePerUnitArr);
     CreatEmptyTablePerUnitArr();
     TablePerUnitArr[0][2]=TableArr[i][j][0][2];
     TablePerLineArr.push(TablePerUnitArr); 
    }else{//如果不是要拆分的单元格
     TablePerUnitArr=TableArr[i][j];
     TablePerLineArr.push(TablePerUnitArr);
     if(inH==i&inL==j){
      SelectedInUnitOB="H"+i+"L"+(TablePerLineArr.length-1)+"S"+inS;
     }
    }
   }
   TableArr1.push(TablePerLineArr);
  }
 }
 TableArr=TableArr1;
 UpdateDisplay(); //显示表单
 //显示行跨和列跨
 Rowspan.value=TableArr[H][L][0][2];
 Colspan.value=TableArr[H][L][0][3];
}
////////////////////////////////////////////
//判断单元是否实际在某列上
function IsInCol(HCor,LCor,Col){
 var i;
 for(i in UnitCoordinateArr){
  if(UnitCoordinateArr[i][1]==Col&UnitCoordinateArr[i][2]==HCor&UnitCoordinateArr[i][3]==LCor){
   return true;
  }
 }
 return false;
}
////////////////////////////////////////////
//判断单元是否实际在某行上
function IsInRow(HCor,LCor,Row){
 var i;
 for(i in UnitCoordinateArr){
  if(UnitCoordinateArr[i][0]==Row&UnitCoordinateArr[i][2]==HCor&UnitCoordinateArr[i][3]==LCor){
   return true;
  }
 }
 return false;
}
/////////////////////////////////////////////
//取得某单元格的最小列坐标
function GetMinColCor(HCor,LCor){
 var i;
 var j=-1;
 for(i in UnitCoordinateArr){
  if(UnitCoordinateArr[i][2]==HCor&UnitCoordinateArr[i][3]==LCor){
   if(j==-1){
    j=UnitCoordinateArr[i][1];
   }else{
    if(j>UnitCoordinateArr[i][1]){
     j=UnitCoordinateArr[i][1];
    }
   }
  }
 }
 return j;
}
///////////////////////////////////////////////////////////
//当按了上下拆分单元格时处理的函数
function UDDis(){
 if(SelectedUnitOB==""){
  alert("请先选择一个单元格后再进行拆分操作！");
  return;
 }
 var UnitOBID=SelectedUnitOB.match(/^H(\d+)L(\d+)$/);
 var H,L;
 H=UnitOBID[1];//要拆分的单元行
 L=UnitOBID[2];
 var RowspanNum=TableArr[H][L][0][2];//单元的行跨
 var i,j;
 //当点了单元时，取得所点单元的HLS
 var InUnitSelectedArr=SelectedInUnitOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var inH="";
 var inL="";
 var inS="";
 if(InUnitSelectedArr!=null){
  inH=InUnitSelectedArr[1];
  inL=InUnitSelectedArr[2];
  inS=InUnitSelectedArr[3];
 }
 var LDID=GetLDID(H,L);//左下角的ID
 var h=UnitCoordinateArr[LDID][0];//要拆分的单元格左下角的实际行坐标。
 var TableArr1=new Array();
 if(RowspanNum<=1){//如果行跨为1时
  for(i in TableArr){
   TablePerLineArr=new Array();
   for(j in TableArr[i]){
    TablePerUnitArr=new Array();
    if((H==i&L==j)||!IsInRow(i,j,h)){//如果不是要拆分的行或是要拆分的单元
     TablePerUnitArr=TableArr[i][j];
     TablePerLineArr.push(TablePerUnitArr);
     if(inH==i&inL==j){
      SelectedInUnitOB="H"+TableArr1.length+"L"+inL+"S"+inS;
     }
    }else{
     TablePerUnitArr=TableArr[i][j];
     TablePerUnitArr[0][2]=parseInt(TablePerUnitArr[0][2])+1;
     TablePerLineArr.push(TablePerUnitArr);
    }
   }
   TableArr1.push(TablePerLineArr);
   if(H==i){
    TablePerLineArr=new Array();
    CreatEmptyTablePerUnitArr();
    TablePerUnitArr[0][3]=TableArr[H][L][0][3];
    TablePerLineArr.push(TablePerUnitArr);
    TableArr1.push(TablePerLineArr);
   }
  }
 }else{//如果行跨大于1时
  var FrontID=GetFrontID(UnitCoordinateArr[LDID][0],UnitCoordinateArr[LDID][1]);//取得要拆分的单元格的左下角的行上前面单元id
  for(i in TableArr){
   TablePerLineArr=new Array();
   if(i==h){
    if(FrontID==-1){//如果拆分前面没有单元
     CreatEmptyTablePerUnitArr();
     TablePerUnitArr[0][3]=TableArr[H][L][0][3];
     TablePerLineArr.push(TablePerUnitArr);
    }
   }
   for(j in TableArr[i]){
    TablePerUnitArr=new Array();
    if(H==i&L==j){//如果是要拆分的单元格
     TablePerUnitArr=TableArr[i][j];
     TablePerUnitArr[0][2]=TablePerUnitArr[0][2]-1;
     TablePerLineArr.push(TablePerUnitArr);
    }else{//如果不是要拆分的单元格
     TablePerUnitArr=TableArr[i][j];
     TablePerLineArr.push(TablePerUnitArr);
     if(FrontID!=-1){//如果拆分前面有单元
      if(i==UnitCoordinateArr[FrontID][2]&j==UnitCoordinateArr[FrontID][3]){
       CreatEmptyTablePerUnitArr();
       TablePerUnitArr[0][3]=TableArr[H][L][0][3];
       TablePerLineArr.push(TablePerUnitArr);
      }      
     }
    }
   }
   TableArr1.push(TablePerLineArr);
  }
 }
 TableArr=TableArr1;
 UpdateDisplay(); //显示表单
 //显示行跨和列跨
 Rowspan.value=TableArr[H][L][0][2];
 Colspan.value=TableArr[H][L][0][3];
}
/////////////////////////////////////////////
//取得某单元格的左下角在UnitCoordinateArr中的id
function GetLDID(HCor,LCor){
 var H1,L1;//HCor,LCor的左下角的实际坐标
 var i;
 var ResID=-1;
 var H1=-1;
 var L1=-1;
 for(i in UnitCoordinateArr){
  if(UnitCoordinateArr[i][2]==HCor&UnitCoordinateArr[i][3]==LCor){
   if(H1==-1){
    H1=UnitCoordinateArr[i][0];
    L1=UnitCoordinateArr[i][1];
    ResID=i;
   }else{
    if(H1<=UnitCoordinateArr[i][0]&L1>=UnitCoordinateArr[i][1]){
     H1=UnitCoordinateArr[i][0];
     L1=UnitCoordinateArr[i][1];
     ResID=i;
    }
   }
  }
 }
 return ResID
}
/////////////////////////////////////////////
//取得某单元格的左上角在UnitCoordinateArr中的id
function GetLTID(HCor,LCor){
 var H1,L1;//HCor,LCor的左上角的实际坐标
 var i;
 var ResID=-1;
 var H1=-1;
 var L1=-1;
 for(i in UnitCoordinateArr){
  if(UnitCoordinateArr[i][2]==HCor&UnitCoordinateArr[i][3]==LCor){
   if(H1==-1){
    H1=UnitCoordinateArr[i][0];
    L1=UnitCoordinateArr[i][1];
    ResID=i;
   }else{
    if(H1>=UnitCoordinateArr[i][0]&L1>=UnitCoordinateArr[i][0]){
     H1=UnitCoordinateArr[i][0];
     L1=UnitCoordinateArr[i][1];
     ResID=i;
    }
   }
  }
 }
 return ResID
}
//////////////////////////////////////////////
//取得在实际行上的，小于实际列的单元格UnitCoordinateArr的id
function GetFrontID(HCor,LCor){
 var i;
 var templ=-1;
 var tempid=-1;
 for(i in UnitCoordinateArr){
  if(UnitCoordinateArr[i][0]==HCor&UnitCoordinateArr[i][1]<LCor){
   if(GetLTID(UnitCoordinateArr[i][2],UnitCoordinateArr[i][3])==i){
    if(UnitCoordinateArr[i][1]>templ){
     templ=UnitCoordinateArr[i][1];
     tempid=i;
    }
   }
  }
 }
 return tempid;
}
/////////////////////////////////////////////////
//当按了单元格的修改按钮时处理
function UnitUpdate(){
 if(SelectedUnitOB==""){
  alert("请先选择一个单元格后再进行修改操作！");
  return;
 }
 var UnitOBID=SelectedUnitOB.match(/^H(\d+)L(\d+)$/);
 var H,L;
 H=UnitOBID[1];
 L=UnitOBID[2];
 var RowspanValue=parseInt(Rowspan.value);
 if(isNaN(RowspanValue)){
  RowspanValue=1;
 }
 if(RowspanValue<1){
  RowspanValue=1;
 }
 Rowspan.value=RowspanValue;
 var ColspanValue=parseInt(Colspan.value);
 if(isNaN(ColspanValue)){
  ColspanValue=1;
 }
 if(ColspanValue<1){
  ColspanValue=1;
 }
 Colspan.value=ColspanValue;
 var UnitWidthValue=UnitWidth.value;
 if(UnitWidthValue!=""){
  if(UnitWidthValue.match(/^[1-9]\d{0,1}%$/)==null){
   if(UnitWidthValue.match(/^[1-9]\d{0,}$/)==null){
    UnitWidthValue="";
    UnitWidth.value="";
   }
  }
 }
 var UnitHeightValue=UnitHeight.value;
 if(UnitHeightValue!=""){
  if(UnitHeightValue.match(/^[1-9]\d{0,1}%$/)==null){
   if(UnitHeightValue.match(/^[1-9]\d{0,}$/)==null){
    UnitHeightValue="";
    UnitHeight.value="";
   }
  }
 }
 TableArr[H][L][0][0]=UnitWidthValue;
 TableArr[H][L][0][1]=UnitHeightValue;
 TableArr[H][L][0][2]=RowspanValue;
 TableArr[H][L][0][3]=ColspanValue;
 TableArr[H][L][0][4]=LeftBorderWidth.value;
 TableArr[H][L][0][5]=RightBorderWidth.value;
 TableArr[H][L][0][6]=TopBorderWidth.value;
 TableArr[H][L][0][7]=BottomBorderWidth.value;
 TableArr[H][L][0][8]=LeftBorderColor.value;
 TableArr[H][L][0][9]=RightBorderColor.value;
 TableArr[H][L][0][10]=TopBorderColor.value;
 TableArr[H][L][0][11]=BottomBorderColor.value;
 TableArr[H][L][0][12]=align.value;
 TableArr[H][L][0][13]=valign.value;
 //UpdateDisplay(); //显示表单
 TempA=DisplayTableSetStr();//显示表单
 DivTableDisplay.innerHTML=TempA;
}











/////////////////////////////////////////////
//下面是处理单元的函数
/////////////////////////////////////////////
//当向左移动内单元时
function LeftMove(){
 if(SelectedInUnitOB==""){
  alert("请先选择一个单元后再进行移动操作！");
  return;
 }
 var UnitOBID=SelectedInUnitOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var H,L,S;
 H=UnitOBID[1];//要移动的单元
 L=UnitOBID[2];
 S=UnitOBID[3];
 var i;
 if(S==0){//如果要移动的内单元是开始位置
  if(H==0&L==0){
   alert("该单元已经移动到头，不能再向左移动了！");
   return;
  }
  if(L>0){
   TablePerInUnitArr=new Array();
   TablePerInUnitArr=TableArr[H][L][1][S];
   TableArr[H][L-1][1].push(TablePerInUnitArr);
   SelectedInUnitOB="H"+H+"L"+(L-1)+"S"+(TableArr[H][L-1][1].length-1);
   TableInUnitArr=new Array();
   for(i in TableArr[H][L][1]){
    if(i!=S){
     TablePerInUnitArr=new Array();
     TablePerInUnitArr=TableArr[H][L][1][i];
     TableInUnitArr.push(TablePerInUnitArr);
    }
   }
   TableArr[H][L][1]=TableInUnitArr;
  }else{
   TablePerInUnitArr=new Array();
   TablePerInUnitArr=TableArr[H][L][1][S];
   TableArr[H-1][TableArr[H-1].length-1][1].push(TablePerInUnitArr);
   SelectedInUnitOB="H"+(H-1)+"L"+(TableArr[H-1].length-1)+"S"+(TableArr[H-1][TableArr[H-1].length-1][1].length-1);
   TableInUnitArr=new Array();
   for(i in TableArr[H][L][1]){
    if(i!=S){
     TablePerInUnitArr=new Array();
     TablePerInUnitArr=TableArr[H][L][1][i];
     TableInUnitArr.push(TablePerInUnitArr);
    }
   }
   TableArr[H][L][1]=TableInUnitArr;
  }
 }else{//如果要移动的内单元不是开始位置
  TableInUnitArr=new Array();
  for(i in TableArr[H][L][1]){
   if(i==S){
    TablePerInUnitArr=new Array();
    TablePerInUnitArr=TableArr[H][L][1][S-1];
    TableInUnitArr.push(TablePerInUnitArr);
   }else{
    if(i==(S-1)){
     TablePerInUnitArr=new Array();
     TablePerInUnitArr=TableArr[H][L][1][S];
     TableInUnitArr.push(TablePerInUnitArr);
    }else{
     TablePerInUnitArr=new Array();
     TablePerInUnitArr=TableArr[H][L][1][i];
     TableInUnitArr.push(TablePerInUnitArr);
    }
   }
  }
  TableArr[H][L][1]=TableInUnitArr;
  SelectedInUnitOB="H"+H+"L"+L+"S"+(S-1);
 }
 //显示表单
 TempA=DisplayTableSetStr();//显示表单
 DivTableDisplay.innerHTML=TempA;
 //UpdateDisplay();
}
/////////////////////////////////////////////
//当向右移动内单元时
function RightMove(){
 if(SelectedInUnitOB==""){
  alert("请先选择一个单元后再进行移动操作！");
  return;
 }
 var UnitOBID=SelectedInUnitOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var H,L,S;
 H=UnitOBID[1];//要移动的单元
 L=UnitOBID[2];
 S=UnitOBID[3];
 var i;
 if(S==(TableArr[H][L][1].length-1)){//如果要移动的内单元是最后位置
  if(H==(TableArr.length-1)&L==(TableArr[H].length-1)){
   alert("该单元已经移动到头，不能再向右移动了！");
   return;
  }
  if(L<(TableArr[H].length-1)){//如果不是最后一列
   TablePerInUnitArr=new Array();
   TablePerInUnitArr=TableArr[H][L][1][S];
   TableInUnitArr=new Array();
   TableInUnitArr.push(TablePerInUnitArr);
   for(i in TableArr[H][parseInt(L)+1][1]){
    TablePerInUnitArr=new Array();
    TablePerInUnitArr=TableArr[H][parseInt(L)+1][1][i];
    TableInUnitArr.push(TablePerInUnitArr);
   }
   TableArr[H][parseInt(L)+1][1]=TableInUnitArr;
   SelectedInUnitOB="H"+H+"L"+(parseInt(L)+1)+"S0";
   TableInUnitArr=new Array();
   for(i in TableArr[H][L][1]){
    if(i!=S){
     TablePerInUnitArr=new Array();
     TablePerInUnitArr=TableArr[H][L][1][i];
     TableInUnitArr.push(TablePerInUnitArr);
    }
   }
   TableArr[H][L][1]=TableInUnitArr;
  }else{
   TablePerInUnitArr=new Array();
   TablePerInUnitArr=TableArr[H][L][1][S];
   TableInUnitArr=new Array();
   TableInUnitArr.push(TablePerInUnitArr);
   for(i in TableArr[parseInt(H)+1][0][1]){
    TablePerInUnitArr=new Array();
    TablePerInUnitArr=TableArr[parseInt(H)+1][0][1][i];
    TableInUnitArr.push(TablePerInUnitArr);
   }
   TableArr[parseInt(H)+1][0][1]=TableInUnitArr;
   SelectedInUnitOB="H"+(parseInt(H)+1)+"L0S0";
   TableInUnitArr=new Array();
   for(i in TableArr[H][L][1]){
    if(i!=S){
     TablePerInUnitArr=new Array();
     TablePerInUnitArr=TableArr[H][L][1][i];
     TableInUnitArr.push(TablePerInUnitArr);
    }
   }
   TableArr[H][L][1]=TableInUnitArr;
  }
 }else{//如果要移动的内单元不是最后位置
  TableInUnitArr=new Array();
  for(i in TableArr[H][L][1]){
   if(i==S){
    TablePerInUnitArr=new Array();
    TablePerInUnitArr=TableArr[H][L][1][parseInt(S)+1];
    TableInUnitArr.push(TablePerInUnitArr);
   }else{
    if(i==(parseInt(S)+1)){
     TablePerInUnitArr=new Array();
     TablePerInUnitArr=TableArr[H][L][1][S];
     TableInUnitArr.push(TablePerInUnitArr);
    }else{
     TablePerInUnitArr=new Array();
     TablePerInUnitArr=TableArr[H][L][1][i];
     TableInUnitArr.push(TablePerInUnitArr);
    }
   }
  }
  TableArr[H][L][1]=TableInUnitArr;
  SelectedInUnitOB="H"+H+"L"+L+"S"+(parseInt(S)+1);
 }
 //显示表单
 TempA=DisplayTableSetStr();//显示表单
 DivTableDisplay.innerHTML=TempA;
 //UpdateDisplay();
}
/////////////////////////////////////////////
//当向上移动内单元时
function UpMove(){
 if(SelectedInUnitOB==""){
  alert("请先选择一个单元后再进行移动操作！");
  return;
 }
 var UnitOBID=SelectedInUnitOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var H,L,S;
 H=UnitOBID[1];//要移动的单元
 L=UnitOBID[2];
 S=UnitOBID[3];
 var i;
 if(H==0){//如果要移动的内单元是在最上面的行
  alert("该单元已经移动到头，不能再向上移动了！");
 }
 //把该内加到上面行后面
 TablePerInUnitArr=new Array();
 TablePerInUnitArr=TableArr[H][L][1][S];
 TableArr[H-1][TableArr[H-1].length-1][1].push(TablePerInUnitArr);
 SelectedInUnitOB="H"+(H-1)+"L"+(TableArr[H-1].length-1)+"S"+(TableArr[H-1][TableArr[H-1].length-1][1].length-1);
 //删除原来的内单元
 TableInUnitArr=new Array();
 for(i in TableArr[H][L][1]){
  if(i!=S){
   TablePerInUnitArr=new Array();
   TablePerInUnitArr=TableArr[H][L][1][i];
   TableInUnitArr.push(TablePerInUnitArr);
  }
 }
 TableArr[H][L][1]=TableInUnitArr;
 //显示表单
 TempA=DisplayTableSetStr();//显示表单
 DivTableDisplay.innerHTML=TempA;
 //UpdateDisplay();
}
/////////////////////////////////////////////
//当向下移动内单元时
function DownMove(){
 if(SelectedInUnitOB==""){
  alert("请先选择一个单元后再进行移动操作！");
  return;
 }
 var UnitOBID=SelectedInUnitOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var H,L,S;
 H=UnitOBID[1];//要移动的单元
 L=UnitOBID[2];
 S=UnitOBID[3];
 var i;
 if(H==(TableArr.length-1)){//如果要移动的内单元是在最下面的行
  alert("该单元已经移动到头，不能再向下移动了！");
 }
 //把该内加到下面行后面
 TablePerInUnitArr=new Array();
 TablePerInUnitArr=TableArr[H][L][1][S];
 TableArr[parseInt(H)+1][TableArr[parseInt(H)+1].length-1][1].push(TablePerInUnitArr);
 SelectedInUnitOB="H"+(parseInt(H)+1)+"L"+(TableArr[parseInt(H)+1].length-1)+"S"+(TableArr[parseInt(H)+1][TableArr[parseInt(H)+1].length-1][1].length-1);
 //删除原来的内单元
 TableInUnitArr=new Array();
 for(i in TableArr[H][L][1]){
  if(i!=S){
   TablePerInUnitArr=new Array();
   TablePerInUnitArr=TableArr[H][L][1][i];
   TableInUnitArr.push(TablePerInUnitArr);
  }
 }
 TableArr[H][L][1]=TableInUnitArr;
 //显示表单
 TempA=DisplayTableSetStr();//显示表单
 DivTableDisplay.innerHTML=TempA;
 //UpdateDisplay();
}
////////////////////////////////////////////////
//当增加内单元时
function InUnitAdd(){
 if(SelectedUnitOB==""){
  alert("请先选择一个单元格后再进行增加单元操作！");
  return;
 }
 var UnitOBID=SelectedUnitOB.match(/^H(\d+)L(\d+)$/);
 var H,L;
 H=UnitOBID[1];
 L=UnitOBID[2];
 var Remark1=Remark.value;
 var TextBoldFace1=TextBoldFace.value;
 var Text_Size1=Text_Size.value;
 var Text_Color1=Text_Color.value;
 var InUnitType1=InUnitType.value;
 var TextContent1="";
 var InputWidth1=100;
 var InputHeight1=100;
 var InputDefault1="";
 var NotEmpty1=0;
 var IsDate1=0;
 var UpLoadFileIsPic1=0;
 var PicWidth1=0;
 var PicHeight1=0;
 var IsMutiSelect1=0;
 var SelectClassContent1="";
 var CheckBoxValue1="";
 var CheckBoxDefault1=0;
 var RadioBoxContent1="";
 var SignMustPassWord1=0;
 var DisplayPicID1=0;
 var SelectOrgID1=0;
 var AutoCalReg1=0;
 var IsEmail1=0;
 var LinkText1="";
 var WorkWebIDForLink1=0;
 var WorkWebLinkParam1="";
 var LinkSite1="";
 var ID1=0;
 switch(InUnitType1){
  case "Text":
   TextContent1=TextContent.value;
   break;
  case "InputText":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   if(IsEmail.checked){
    IsEmail1=1;
   }
   InputDefault1=InputDefault.value;
   break;
  case "InputNum":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   InputDefault1=InputDefault.value;
   break;
  case "InputTime":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   InputDefault1=InputDefault.value;
   if(IsDate.checked){
    IsDate1=1;
   }
   break;
  case "InputTextArea":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   InputHeight1=InputHeight.value;
   InputHeight1=parseInt(InputHeight1);
   if(isNaN(InputHeight1)){
    InputHeight1=100;
   }
   InputHeight1= Math.abs(InputHeight1);
   if(InputHeight1<10){
    InputHeight1=10;
   }
   InputHeight.value=InputHeight1;
   InputDefault1=InputDefault.value;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   break;
  case "UpLoadFile":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   UpLoadFileIsPic1=UpLoadFileIsPic.value;
   PicWidth1=PicWidth.value;
   PicWidth1=parseInt(PicWidth1);
   if(isNaN(PicWidth1)){
    PicWidth1=0;
   }
   PicWidth1= Math.abs(PicWidth1);
   PicWidth.value=PicWidth1;
   PicHeight1=PicHeight.value;
   PicHeight1=parseInt(PicHeight1);
   if(isNaN(PicHeight1)){
    PicHeight1=0;
   }
   PicHeight1= Math.abs(PicHeight1);
   PicHeight.value=PicHeight1;
   break;
  case "SelectUser":
  case "SelectDept":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   if(IsMutiSelect.checked){
    IsMutiSelect1=1;
   }
   InputDefault1=InputDefault.value;
   break;
  case "SelectOrg":
   SelectOrgID1=SelectOrgID.value;
   SelectOrgID1=parseInt(SelectOrgID1);
   if(isNaN(SelectOrgID1)){
    SelectOrgID1=0;
   }
   SelectOrgID1= Math.abs(SelectOrgID1);
   SelectOrgID.value=SelectOrgID1;
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   break;
  case "SelectPosition":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   if(IsMutiSelect.checked){
    IsMutiSelect1=1;
   }
   InputDefault1=InputDefault.value;
   break;
  case "SelectClass":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   if(IsMutiSelect.checked){
    IsMutiSelect1=1;
   }
   SelectClassContent1=SelectClassContent.value;
   InputDefault1=InputDefault.value;
   break;
  case "InputCheckBox":
   CheckBoxValue1=CheckBoxValue.value;
   if(CheckBoxDefault.checked){
    CheckBoxDefault1=1;
   }
   break;
  case "InputRadioBox":
   RadioBoxContent1=RadioBoxContent.value;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   InputDefault1=InputDefault.value;
   break;
  case "InputHide":
   InputDefault1=InputDefault.value;
   break;
  case "InputDigitalSign":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(SignMustPassWord.checked){
    SignMustPassWord1=1;
   }
   PicWidth1=PicWidth.value;
   PicWidth1=parseInt(PicWidth1);
   if(isNaN(PicWidth1)){
    PicWidth1=0;
   }
   PicWidth1= Math.abs(PicWidth1);
   PicWidth.value=PicWidth1;
   PicHeight1=PicHeight.value;
   PicHeight1=parseInt(PicHeight1);
   if(isNaN(PicHeight1)){
    PicHeight1=0;
   }
   PicHeight1= Math.abs(PicHeight1);
   PicHeight.value=PicHeight1;
   break;
  case "InputElectroSeal":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   PicWidth1=PicWidth.value;
   PicWidth1=parseInt(PicWidth1);
   if(isNaN(PicWidth1)){
    PicWidth1=0;
   }
   PicWidth1= Math.abs(PicWidth1);
   PicWidth.value=PicWidth1;
   PicHeight1=PicHeight.value;
   PicHeight1=parseInt(PicHeight1);
   if(isNaN(PicHeight1)){
    PicHeight1=0;
   }
   PicHeight1= Math.abs(PicHeight1);
   PicHeight.value=PicHeight1;
   break;
  case "DisplayPic":
   DisplayPicID1=DisplayPicID.value;
   DisplayPicID1=parseInt(DisplayPicID1);
   if(isNaN(DisplayPicID1)){
    DisplayPicID1=0;
   }
   DisplayPicID1= Math.abs(DisplayPicID1);
   DisplayPicID.value=DisplayPicID1;
   PicWidth1=PicWidth.value;
   PicWidth1=parseInt(PicWidth1);
   if(isNaN(PicWidth1)){
    PicWidth1=0;
   }
   PicWidth1= Math.abs(PicWidth1);
   PicWidth.value=PicWidth1;
   PicHeight1=PicHeight.value;
   PicHeight1=parseInt(PicHeight1);
   if(isNaN(PicHeight1)){
    PicHeight1=0;
   }
   PicHeight1= Math.abs(PicHeight1);
   PicHeight.value=PicHeight1;
   break;
  case "AutoCal":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   AutoCalReg1=AutoCalReg.value;
   break;
  case "WorkWebLink":
   LinkText1=LinkText.value;
   WorkWebIDForLink1=WorkWebIDForLink.value;
   WorkWebLinkParam1=WorkWebLinkParam.value;
   break;
  case "WebLink":
   LinkText1=LinkText.value;
   LinkSite1=LinkSite.value;
   break;
 }
 //把内单元值给新数组
 TablePerInUnitArr=new Array();
 TablePerInUnitArr[0]=Remark1;
 TablePerInUnitArr[1]=TextBoldFace1;
 TablePerInUnitArr[2]=Text_Size1;
 TablePerInUnitArr[3]=Text_Color1;
 TablePerInUnitArr[4]=InUnitType1;
 TablePerInUnitArr[5]=TextContent1;
 TablePerInUnitArr[6]=InputWidth1;
 TablePerInUnitArr[7]=InputHeight1;
 TablePerInUnitArr[8]=InputDefault1;
 TablePerInUnitArr[9]=NotEmpty1;
 TablePerInUnitArr[10]=IsDate1;
 TablePerInUnitArr[11]=UpLoadFileIsPic1;
 TablePerInUnitArr[12]=PicWidth1;
 TablePerInUnitArr[13]=PicHeight1;
 TablePerInUnitArr[14]=IsMutiSelect1;
 TablePerInUnitArr[15]=SelectClassContent1;
 TablePerInUnitArr[16]=CheckBoxValue1;
 TablePerInUnitArr[17]=CheckBoxDefault1;
 TablePerInUnitArr[18]=RadioBoxContent1;
 TablePerInUnitArr[19]=SignMustPassWord1;
 TablePerInUnitArr[20]=DisplayPicID1;
 TablePerInUnitArr[21]=SelectOrgID1;
 TablePerInUnitArr[22]=AutoCalReg1;
 TablePerInUnitArr[23]=IsEmail1;
 TablePerInUnitArr[24]=LinkText1;
 TablePerInUnitArr[25]=WorkWebIDForLink1;
 TablePerInUnitArr[26]=WorkWebLinkParam1;
 TablePerInUnitArr[27]=LinkSite1;
 TablePerInUnitArr[28]=ID1;
 //计算单元的模拟显示代码
 TablePerInUnitArr[29]=DisplayPerInUnitStrByArr_NoSpan(TablePerInUnitArr)
 //把数据加到TableArr中
 TableArr[H][L][1].push(TablePerInUnitArr);
 SelectedInUnitOB="H"+H+"L"+L+"S"+(TableArr[H][L][1].length-1);
 //显示表单
 TempA=DisplayTableSetStr();//显示表单
 DivTableDisplay.innerHTML=TempA;
 //UpdateDisplay();
}
////////////////////////////////////////////////
//当修改内单元时
function InUnitUpdate(){
 if(SelectedInUnitOB==""){
  alert("请先选择一个单元后再进行修改单元操作！");
  return;
 }
 var UnitOBID=SelectedInUnitOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var H,L,S;
 H=UnitOBID[1];
 L=UnitOBID[2];
 S=UnitOBID[3];
 var Remark1=Remark.value;
 var TextBoldFace1=TextBoldFace.value;
 var Text_Size1=Text_Size.value;
 var Text_Color1=Text_Color.value;
 var InUnitType1=InUnitType.value;
 var TextContent1="";
 var InputWidth1=100;
 var InputHeight1=100;
 var InputDefault1="";
 var NotEmpty1=0;
 var IsDate1=0;
 var UpLoadFileIsPic1=0;
 var PicWidth1=0;
 var PicHeight1=0;
 var IsMutiSelect1=0;
 var SelectClassContent1="";
 var CheckBoxValue1="";
 var CheckBoxDefault1=0;
 var RadioBoxContent1="";
 var SignMustPassWord1=0;
 var DisplayPicID1=0;
 var SelectOrgID1=0;
 var AutoCalReg1=0;
 var IsEmail1=0;
 var LinkText1="";
 var WorkWebIDForLink1=0;
 var WorkWebLinkParam1="";
 var LinkSite1="";
 var ID1=TableArr[H][L][1][S][28];
 var OldTypeStr=TableArr[H][L][1][S][4];
 if(WillDelData(InUnitType1,OldTypeStr,ID1)){
  var winconfirm=window.confirm("如果本表单内已经有数据，该次单元式样改变后将会删除该单元的原来数据，是否继续进行该次修改？")
  if(!winconfirm){
   return;
  }
 }
 switch(InUnitType1){
  case "Text":
   TextContent1=TextContent.value;
   break;
  case "InputText":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   if(IsEmail.checked){
    IsEmail1=1;
   }
   InputDefault1=InputDefault.value;
   break;
  case "InputNum":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   InputDefault1=InputDefault.value;
   break;
  case "InputTime":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   InputDefault1=InputDefault.value;
   if(IsDate.checked){
    IsDate1=1;
   }
   break;
  case "InputTextArea":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   InputHeight1=InputHeight.value;
   InputHeight1=parseInt(InputHeight1);
   if(isNaN(InputHeight1)){
    InputHeight1=100;
   }
   InputHeight1= Math.abs(InputHeight1);
   if(InputHeight1<10){
    InputHeight1=10;
   }
   InputHeight.value=InputHeight1;
   InputDefault1=InputDefault.value;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   break;
  case "UpLoadFile":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   UpLoadFileIsPic1=UpLoadFileIsPic.value;
   PicWidth1=PicWidth.value;
   PicWidth1=parseInt(PicWidth1);
   if(isNaN(PicWidth1)){
    PicWidth1=0;
   }
   PicWidth1= Math.abs(PicWidth1);
   PicWidth.value=PicWidth1;
   PicHeight1=PicHeight.value;
   PicHeight1=parseInt(PicHeight1);
   if(isNaN(PicHeight1)){
    PicHeight1=0;
   }
   PicHeight1= Math.abs(PicHeight1);
   PicHeight.value=PicHeight1;
   break;
  case "SelectUser":
  case "SelectDept":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   if(IsMutiSelect.checked){
    IsMutiSelect1=1;
   }
   InputDefault1=InputDefault.value;
   break;
  case "SelectOrg":
   SelectOrgID1=SelectOrgID.value;
   SelectOrgID1=parseInt(SelectOrgID1);
   if(isNaN(SelectOrgID1)){
    SelectOrgID1=0;
   }
   SelectOrgID1= Math.abs(SelectOrgID1);
   SelectOrgID.value=SelectOrgID1;
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   break;
  case "SelectPosition":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   if(IsMutiSelect.checked){
    IsMutiSelect1=1;
   }
   InputDefault1=InputDefault.value;
   break;
  case "SelectClass":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   if(IsMutiSelect.checked){
    IsMutiSelect1=1;
   }
   SelectClassContent1=SelectClassContent.value;
   InputDefault1=InputDefault.value;
   break;
  case "InputCheckBox":
   CheckBoxValue1=CheckBoxValue.value;
   if(CheckBoxDefault.checked){
    CheckBoxDefault1=1;
   }
   break;
  case "InputRadioBox":
   RadioBoxContent1=RadioBoxContent.value;
   if(NotEmpty.checked){
    NotEmpty1=1;
   }
   InputDefault1=InputDefault.value;
   break;
  case "InputHide":
   InputDefault1=InputDefault.value;
   break;
  case "InputDigitalSign":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   if(SignMustPassWord.checked){
    SignMustPassWord1=1;
   }
   PicWidth1=PicWidth.value;
   PicWidth1=parseInt(PicWidth1);
   if(isNaN(PicWidth1)){
    PicWidth1=0;
   }
   PicWidth1= Math.abs(PicWidth1);
   PicWidth.value=PicWidth1;
   PicHeight1=PicHeight.value;
   PicHeight1=parseInt(PicHeight1);
   if(isNaN(PicHeight1)){
    PicHeight1=0;
   }
   PicHeight1= Math.abs(PicHeight1);
   PicHeight.value=PicHeight1;
   break;
  case "InputElectroSeal":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   PicWidth1=PicWidth.value;
   PicWidth1=parseInt(PicWidth1);
   if(isNaN(PicWidth1)){
    PicWidth1=0;
   }
   PicWidth1= Math.abs(PicWidth1);
   PicWidth.value=PicWidth1;
   PicHeight1=PicHeight.value;
   PicHeight1=parseInt(PicHeight1);
   if(isNaN(PicHeight1)){
    PicHeight1=0;
   }
   PicHeight1= Math.abs(PicHeight1);
   PicHeight.value=PicHeight1;
   break;
  case "DisplayPic":
   DisplayPicID1=DisplayPicID.value;
   DisplayPicID1=parseInt(DisplayPicID1);
   if(isNaN(DisplayPicID1)){
    DisplayPicID1=0;
   }
   DisplayPicID1= Math.abs(DisplayPicID1);
   DisplayPicID.value=DisplayPicID1;
   PicWidth1=PicWidth.value;
   PicWidth1=parseInt(PicWidth1);
   if(isNaN(PicWidth1)){
    PicWidth1=0;
   }
   PicWidth1= Math.abs(PicWidth1);
   PicWidth.value=PicWidth1;
   PicHeight1=PicHeight.value;
   PicHeight1=parseInt(PicHeight1);
   if(isNaN(PicHeight1)){
    PicHeight1=0;
   }
   PicHeight1= Math.abs(PicHeight1);
   PicHeight.value=PicHeight1;
   break;
  case "AutoCal":
   InputWidth1=InputWidth.value;
   InputWidth1=parseInt(InputWidth1);
   if(isNaN(InputWidth1)){
    InputWidth1=100;
   }
   InputWidth1= Math.abs(InputWidth1);
   if(InputWidth1<10){
    InputWidth1=10;
   }
   InputWidth.value=InputWidth1;
   AutoCalReg1=AutoCalReg.value;
   break;
  case "WorkWebLink":
   LinkText1=LinkText.value;
   WorkWebIDForLink1=WorkWebIDForLink.value;
   WorkWebLinkParam1=WorkWebLinkParam.value;
   break;
  case "WebLink":
   LinkText1=LinkText.value;
   LinkSite1=LinkSite.value;
   break;
 }
 //把内单元值给新数组
 TablePerInUnitArr=new Array();
 TablePerInUnitArr[0]=Remark1;
 TablePerInUnitArr[1]=TextBoldFace1;
 TablePerInUnitArr[2]=Text_Size1;
 TablePerInUnitArr[3]=Text_Color1;
 TablePerInUnitArr[4]=InUnitType1;
 TablePerInUnitArr[5]=TextContent1;
 TablePerInUnitArr[6]=InputWidth1;
 TablePerInUnitArr[7]=InputHeight1;
 TablePerInUnitArr[8]=InputDefault1;
 TablePerInUnitArr[9]=NotEmpty1;
 TablePerInUnitArr[10]=IsDate1;
 TablePerInUnitArr[11]=UpLoadFileIsPic1;
 TablePerInUnitArr[12]=PicWidth1;
 TablePerInUnitArr[13]=PicHeight1;
 TablePerInUnitArr[14]=IsMutiSelect1;
 TablePerInUnitArr[15]=SelectClassContent1;
 TablePerInUnitArr[16]=CheckBoxValue1;
 TablePerInUnitArr[17]=CheckBoxDefault1;
 TablePerInUnitArr[18]=RadioBoxContent1;
 TablePerInUnitArr[19]=SignMustPassWord1;
 TablePerInUnitArr[20]=DisplayPicID1;
 TablePerInUnitArr[21]=SelectOrgID1;
 TablePerInUnitArr[22]=AutoCalReg1;
 TablePerInUnitArr[23]=IsEmail1;
 TablePerInUnitArr[24]=LinkText1;
 TablePerInUnitArr[25]=WorkWebIDForLink1;
 TablePerInUnitArr[26]=WorkWebLinkParam1;
 TablePerInUnitArr[27]=LinkSite1;
 TablePerInUnitArr[28]=ID1;
 //计算单元的模拟显示代码
 TablePerInUnitArr[29]=DisplayPerInUnitStrByArr_NoSpan(TablePerInUnitArr)
 TableArr[H][L][1][S]=TablePerInUnitArr;
 //显示表单
 TempA=DisplayTableSetStr();//显示表单
 DivTableDisplay.innerHTML=TempA;
 //UpdateDisplay();
}
////////////////////////////////////////
//判断内单元修改后，是否会删除原来的数据库中的数据
function WillDelData(NewType,OldType,OldInUnitID){
 //OldInUnitID=0时，说明是新建的内单元，数据库中没数据
 if(OldInUnitID==0){
  return false;
 }
 var NT=GetInUnitTypeSort(NewType);
 var OT=GetInUnitTypeSort(OldType);
 if(OT=="TypeEmpty"){
  return false;
 }
 if(NT==OT){
  return false;
 }
 return true;
}
/////////////////////////////////////////
//判断InUnitType是哪种类型：
//TypeEmpty----Text\DisplayPic\WorkWebLink\WebLink
//TypeL4000----InputText\SelectUser\SelectDept\SelectOrg\SelectPosition\SelectClass\InputCheckBox\InputRadioBox\InputHide\AutoCal
//TypeNum----InputNum\
//TypeTime----InputTime\
//TypeL16----InputTextArea
//TypeFile----UpLoadFile\
//TypeSign----InputDigitalSign\InputElectroSeal
function GetInUnitTypeSort(TypeStr){
 var a="";
 switch(TypeStr){
  case "Text":
  case "DisplayPic":
  case "WorkWebLink":
  case "WebLink":
   a="TypeEmpty";
   break;
  case "InputText":
  case "SelectUser":
  case "SelectDept":
  case "SelectOrg":
  case "SelectPosition":
  case "SelectClass":
  case "InputCheckBox":
  case "InputRadioBox":
  case "InputHide":
  case "AutoCal":
   a="TypeL4000";
   break;
  case "InputNum":
   a="TypeNum";
   break;
  case "InputTime":
   a="TypeTime";
   break;
  case "InputTextArea":
   a="TypeL16";
   break;
  case "UpLoadFile":
   a="TypeFile";
   break;
  case "InputDigitalSign":
  case "InputElectroSeal":
   a="TypeSign";
   break;
 }
 return a;
}
////////////////////////////////////////////////
//当删除内单元时
function InUnitDel(){
 if(SelectedInUnitOB==""){
  alert("请先选择一个单元后再进行删除单元操作！");
  return;
 }
 var UnitOBID=SelectedInUnitOB.match(/^H(\d+)L(\d+)S(\d+)$/);
 var H,L,S;
 H=UnitOBID[1];
 L=UnitOBID[2];
 S=UnitOBID[3];
 var ID1=TableArr[H][L][1][S][28];
 var OldTypeStr=TableArr[H][L][1][S][4];
 if(ID1!=0&OldTypeStr!="Text"&OldTypeStr!="DisplayPic"){
  var winconfirm=window.confirm("如果本表单内已经有数据，该次删除操作将会删除该单元的原来数据，是否继续进行该次删除操作？")
  if(!winconfirm){
   return;
  }
 }
 var i;
 //删除原来的内单元
 TableInUnitArr=new Array();
 for(i in TableArr[H][L][1]){
  if(i!=S){
   TablePerInUnitArr=new Array();
   TablePerInUnitArr=TableArr[H][L][1][i];
   TableInUnitArr.push(TablePerInUnitArr);
  }
 }
 TableArr[H][L][1]=TableInUnitArr;
 SelectedInUnitOB="";
 //显示表单
 TempA=DisplayTableSetStr();//显示表单
 DivTableDisplay.innerHTML=TempA;
 //UpdateDisplay();
}














///////////////////////////////////////////
//当把特殊字符插入默认值输入框时
function AddSpecialStr(){
 var SpStr=InputDefaultSp.value;
 InputDefault.value=InputDefault.value+SpStr;
}
///////////////////////////////////////////
//当把特殊字符插入自动计算规则值输入框时
function AddAutoCalStr(){
 var SpStr=AutoCalRegsp.value;
 AutoCalReg.value=AutoCalReg.value+SpStr;
}
///////////////////////////////////////////
//把表单结构变成文本，为保存表单做准备
function TableArrToStr(TableID,Sort){
 var a="";
 a=a+"TableBegin\n"+"TableID:"+TableID+"\n"+"Sort:"+Sort+"\n"+"TableName:"+TableName.value+"\n"+"Creater:"+Creater.value+"\n";
 if(Sort==0){
  a=a+"AddEnable:"+AddEnable.value+"\n"+"DisplayDataInputer:"+DisplayDataInputer.value+"\n"+"AllowSubmit:"+AllowSubmit.value+"\n"+"DataEdit:"+DataEdit.value+"\n"+"AddFlow:"+AddFlow.value+"\n"+"UpdateFlow:"+UpdateFlow.value+"\n"+"UpdateFrontFlow:"+UpdateFrontFlow.value+"\n"+"DelFrontflow:"+DelFrontflow.value+"\n"+"ViewFlow:"+ViewFlow.value+"\n"+"AnswerFlow:"+AnswerFlow.value+"\n"+"AttFlow:"+AttFlow.value+"\n"+"AppFlow:"+AppFlow.value+"\n";
 }
 var i,j,k;
 a=a+"LinkBegin\n";
 for(i in TableDataLinkArr){
  a=a+"PerLinkBegin\n"+"BottonText:"+TableDataLinkArr[i][0]+"\n"+"WorkWebID:"+TableDataLinkArr[i][1]+"\n"+"LinkParam:"+TableDataLinkArr[i][2]+"\n"+"PerLinkEnd\n";
 }
 a=a+"LinkEnd\n";
 for(i in TableArr){
  for(j in TableArr[i]){
   a=a+"UnitBegin\n"+"RowNo:"+i+"\n"+"ColNo:"+j+"\n"+"UnitWidth:"+TableArr[i][j][0][0]+"\n"+"UnitHeight:"+TableArr[i][j][0][1]+"\n"+"Rowspan:"+TableArr[i][j][0][2]+"\n"+"Colspan:"+TableArr[i][j][0][3]+"\n"+"LeftBorderWidth:"+TableArr[i][j][0][4]+"\n"+"RightBorderWidth:"+TableArr[i][j][0][5]+"\n"+"TopBorderWidth:"+TableArr[i][j][0][6]+"\n"+"BottomBorderWidth:"+TableArr[i][j][0][7]+"\n"+"LeftBorderColor:"+TableArr[i][j][0][8]+"\n"+"RightBorderColor:"+TableArr[i][j][0][9]+"\n"+"TopBorderColor:"+TableArr[i][j][0][10]+"\n"+"BottomBorderColor:"+TableArr[i][j][0][11]+"\n"+"align:"+TableArr[i][j][0][12]+"\n"+"valign:"+TableArr[i][j][0][13]+"\n";
   for(k in TableArr[i][j][1]){
    a=a+"InUnitBegin\n"+"ID:"+TableArr[i][j][1][k][28]+"\n"+"Remark:"+TableArr[i][j][1][k][0]+"\n"+"TextBoldFace:"+TableArr[i][j][1][k][1]+"\n"+"Text_Size:"+TableArr[i][j][1][k][2]+"\n"+"Text_Color:"+TableArr[i][j][1][k][3]+"\n"+"InUnitType:"+TableArr[i][j][1][k][4]+"\n"+"TextContent:"+TableArr[i][j][1][k][5]+"\n"+"InputWidth:"+TableArr[i][j][1][k][6]+"\n"+"InputHeight:"+TableArr[i][j][1][k][7]+"\n"+"InputDefault:"+TableArr[i][j][1][k][8]+"\n"+"NotEmpty:"+TableArr[i][j][1][k][9]+"\n"+"IsDate:"+TableArr[i][j][1][k][10]+"\n"+"UpLoadFileIsPic:"+TableArr[i][j][1][k][11]+"\n"+"PicWidth:"+TableArr[i][j][1][k][12]+"\n"+"PicHeight:"+TableArr[i][j][1][k][13];
    a=a+"\n"+"IsMutiSelect:"+TableArr[i][j][1][k][14]+"\n"+"SelectClassContent:"+TableArr[i][j][1][k][15]+"\n"+"CheckBoxValue:"+TableArr[i][j][1][k][16]+"\n"+"CheckBoxDefault:"+TableArr[i][j][1][k][17]+"\n"+"RadioBoxContent:"+TableArr[i][j][1][k][18]+"\n"+"SignMustPassWord:"+TableArr[i][j][1][k][19]+"\n"+"DisplayPicID:"+TableArr[i][j][1][k][20]+"\n"+"SelectOrgID:"+TableArr[i][j][1][k][21]+"\n"+"AutoCalReg:"+TableArr[i][j][1][k][22]+"\n"+"IsEmail:"+TableArr[i][j][1][k][23]+"\n"+"LinkText:"+TableArr[i][j][1][k][24]+"\n"+"WorkWebIDForLink:"+TableArr[i][j][1][k][25]+"\n"+"WorkWebLinkParam:"+TableArr[i][j][1][k][26]+"\n"+"LinkSite:"+TableArr[i][j][1][k][27]+"\n"+"InUnitEnd\n";
   }
   a=a+"UnitEnd\n";
  }
 }
 a=a+"TableEnd\n";
 return a;
}
//////////////////////////////////////////////////////
//当按了保存时
function SaveTable(TableID,Sort){
 var TableNameStr=TableName.value;
 if(TableNameStr.match(/^[ \t]*$/)!=null){
  alert("表单名称不能空！");
  clickTD1();
  TableName.focus();
  return false;
 }
 var IfCheck=window.confirm("你确定要保存对该表单的修改吗？");
 if(IfCheck){
  BreakItUp("form2","TableInf",TableArrToStr(TableID,Sort));
 }
 return IfCheck;
}
//////////////////////////////////////////////////////
//当按了增加时
function AddTable(TableID,Sort){
 var TableNameStr=TableName.value;
 if(TableNameStr.match(/^[ \t]*$/)!=null){
  alert("表单名称不能空！");
  clickTD1();
  TableName.focus();
  return false;
 }
 var IfCheck=window.confirm("你确定要增加该表单吗？");
 if(IfCheck){
  BreakItUp("form2","TableInf",TableArrToStr(TableID,Sort));
 }
 return IfCheck;
}
//////////////////////////////////////////////////////
//当表单格式太复杂时，TableInf单元向服务器传递的值大于100k
//时，request("TableInf")将出错，要把TableInf分成多个小块向
//服务器传递
function BreakItUp(FormName,InputName,InputValue){
 //当InputValue的长度大于100K时，该函数将建立新的InputName(*)，把多出100k的部分保存在其他InputName中 
 var FormLimit=100000;  //102399; //设置域的大小
 var TempVar=new String;
 TempVar=InputValue;
 //如果值的长度大于限制的值，把它分成多个小块
 var InputOB=eval(FormName+"."+InputName);
 InputOB.value=TempVar.substr(0,FormLimit);
 if(TempVar.length >FormLimit){
  TempVar=TempVar.substr(FormLimit);
  while(TempVar.length>0){
   var OBNew=document.createElement("INPUT");
   OBNew.type="hidden";
   OBNew.name=InputName;
   OBNew.value=TempVar.substr(0,FormLimit);
   var FormOB=eval("document."+FormName);
   FormOB.appendChild(OBNew);
   TempVar=TempVar.substr(FormLimit);
  }
 }
}
















//////////////////////////////////////////////////////
//在查看数据连接属性时，把LinkParamIn中的单元识别换成新的
function LinkParamInSelect(){
 var i;
 var Op=LinkParamIn.options;
 for(i in Op){
  Op.remove(i);
 }
 var oOption = document.createElement("OPTION");
 oOption.text="固定文字";
 oOption.value="请输入要传递的文字";
 LinkParamIn.add(oOption);
 var oOption = document.createElement("OPTION");
 oOption.text="数据的ID";
 oOption.value="DataID";
 LinkParamIn.add(oOption);
 var oOption = document.createElement("OPTION");
 oOption.text="数据填写人";
 oOption.value="Name";
 LinkParamIn.add(oOption);
 oOption = document.createElement("OPTION");
 oOption.text="数据填写时间";
 oOption.value="InputTime";
 LinkParamIn.add(oOption);
 var j;
 var k;
 var InUnitType;
 var R;
 for(i in TableArr){
  for(j in TableArr[i]){
   for(k in TableArr[i][j][1]){
    InUnitType=TableArr[i][j][1][k][4];
    if(InUnitType!="Text" & InUnitType!="UpLoadFile" & InUnitType!="InputDigitalSign" & InUnitType!="InputElectroSeal" & InUnitType!="DisplayPic" & InUnitType!="WorkWebLink" & InUnitType!="WebLink"){
     oOption = document.createElement("OPTION");
     R=TableArr[i][j][1][k][0];
     if(R==""){
      oOption.text="H"+i+"L"+j+"S"+k;
     }else{
      oOption.text="H"+i+"L"+j+"S"+k+"("+R+")";
     }
     oOption.value="H"+i+"L"+j+"S"+k;
     LinkParamIn.add(oOption);
    }
   }
  }
 }
}

//////////////////////////////////////////////////
//按数据连接的增加传递参数时
function AddLinkParam(){
 var V=LinkParam.value;
 if(V==""){
  LinkParam.value=LinkParamIn.value;
 }else{
  LinkParam.value=V+","+LinkParamIn.value;
 }
}
//////////////////////////////////////////////////
//按数据连接的增加传递参数时
function AddWorkWebLinkParam(){
 var V=WorkWebLinkParam.value;
 if(V==""){
  WorkWebLinkParam.value=WorkWebLinkParamIn.value;
 }else{
  WorkWebLinkParam.value=V+","+WorkWebLinkParamIn.value;
 }
}
///////////////////////////////////////////////
//当点了TD4(显示数据连接属性时)
function TD4OnClick(){
 var A=DisplayTableDataStr();
 DivTableDisplay.innerHTML=A;
 A=DataTopLinkDisplay();
 TopTD.innerHTML=A;
}
///////////////////////////////////////////////
//显示数据连接的模拟头部
function DataTopLinkDisplay(){
 var A="";
 A="<Table><tr><td><input type=button value=\"打印\"></td><td><input type=button value=\"状态\"></td>";
 var i;
 for(i in TableDataLinkArr){
  if(SelectedTopLink==i){
   A=A+"<td bgcolor=red>";
  }else{
   A=A+"<td>";
  }
  A=A+"<input type=button value=\""+TableDataLinkArr[i][0]+"\" onclick=\"LinkClick("+i+");\">";
  A=A+"</td>";
 }
 A=A+"</tr></Table>";
 return A;
}
/////////////////////////////////////////////////
//当点了上面的数据连接按钮时，把参数传给控制版
function LinkClick(LinkNo){
 SelectedTopLink=LinkNo;
 var A=DataTopLinkDisplay();
 TopTD.innerHTML=A;
 BottonText.value=TableDataLinkArr[LinkNo][0];
 WorkWebID.value=TableDataLinkArr[LinkNo][1];
 LinkParam.value=TableDataLinkArr[LinkNo][2];
}
////////////////////////////////////////////////
//当增加连接时
function AddLink(){
 var BottonTextV=BottonText.value;
 var WorkWebIDV=WorkWebID.value;
 var LinkParamV=LinkParam.value;
 TableDataPerLinkArr=new Array();
 TableDataPerLinkArr[0]=BottonTextV;
 TableDataPerLinkArr[1]=WorkWebIDV;
 TableDataPerLinkArr[2]=LinkParamV;
 TableDataLinkArr.push(TableDataPerLinkArr);
 SelectedTopLink=TableDataLinkArr.length-1;
 var A=DataTopLinkDisplay();
 TopTD.innerHTML=A;
}
///////////////////////////////////////////////////
//当修改连接时
function UpdateLink(){
 if(SelectedTopLink==-1){
  alert("请先选择一个连接按钮后再修改！");
  return;
 }
 var BottonTextV=BottonText.value;
 var WorkWebIDV=WorkWebID.value;
 var LinkParamV=LinkParam.value;
 TableDataPerLinkArr=new Array();
 TableDataPerLinkArr[0]=BottonTextV;
 TableDataPerLinkArr[1]=WorkWebIDV;
 TableDataPerLinkArr[2]=LinkParamV;
 TableDataLinkArr[SelectedTopLink]=TableDataPerLinkArr;
 var A=DataTopLinkDisplay();
 TopTD.innerHTML=A;
}
//////////////////////////////////////////////////
//当删除连接时
function DelLink(){
 if(SelectedTopLink==-1){
  alert("请先选择一个连接按钮后再删除！");
  return;
 }
 var i;
 var TArr=new Array();
 for(i in TableDataLinkArr){
  if(i!=SelectedTopLink){
   TableDataPerLinkArr=new Array();
   TableDataPerLinkArr[0]=TableDataLinkArr[i][0];
   TableDataPerLinkArr[1]=TableDataLinkArr[i][1];
   TableDataPerLinkArr[2]=TableDataLinkArr[i][2];
   TArr.push(TableDataPerLinkArr);
  }
 }
 TableDataLinkArr=TArr;
 SelectedTopLink=-1;
 var A=DataTopLinkDisplay();
 TopTD.innerHTML=A;
}
//////////////////////////////////////////////////
//当左移动连接时
function LeftMoveLink(){
 if(SelectedTopLink==-1){
  alert("请先选择一个连接按钮后再移动！");
  return;
 }
 if(SelectedTopLink==0){
  alert("不能再向左移动了！");
  return;
 }
 var i;
 var TArr=new Array();
 for(i in TableDataLinkArr){
  TableDataPerLinkArr=new Array();
  if(i==SelectedTopLink-1){
   TableDataPerLinkArr[0]=TableDataLinkArr[parseInt(i)+1][0];
   TableDataPerLinkArr[1]=TableDataLinkArr[parseInt(i)+1][1];
   TableDataPerLinkArr[2]=TableDataLinkArr[parseInt(i)+1][2];
  }else{
   if(i==SelectedTopLink){
    TableDataPerLinkArr[0]=TableDataLinkArr[i-1][0];
    TableDataPerLinkArr[1]=TableDataLinkArr[i-1][1];
    TableDataPerLinkArr[2]=TableDataLinkArr[i-1][2];
   }else{
    TableDataPerLinkArr[0]=TableDataLinkArr[i][0];
    TableDataPerLinkArr[1]=TableDataLinkArr[i][1];
    TableDataPerLinkArr[2]=TableDataLinkArr[i][2];
   }
  }
  TArr.push(TableDataPerLinkArr);
 }
 TableDataLinkArr=TArr;
 SelectedTopLink=SelectedTopLink-1;
 var A=DataTopLinkDisplay();
 TopTD.innerHTML=A;
}
//////////////////////////////////////////////////
//当右移动连接时
function RightMoveLink(){
 if(SelectedTopLink==-1){
  alert("请先选择一个连接按钮后再移动！");
  return;
 }
 if(SelectedTopLink==TableDataLinkArr.length-1){
  alert("不能再向右移动了！");
  return;
 }
 var i;
 var TArr=new Array();
 for(i in TableDataLinkArr){
  TableDataPerLinkArr=new Array();
  if(i==SelectedTopLink){
   TableDataPerLinkArr[0]=TableDataLinkArr[parseInt(i)+1][0];
   TableDataPerLinkArr[1]=TableDataLinkArr[parseInt(i)+1][1];
   TableDataPerLinkArr[2]=TableDataLinkArr[parseInt(i)+1][2];
  }else{
   if(i==parseInt(SelectedTopLink)+1){
    TableDataPerLinkArr[0]=TableDataLinkArr[i-1][0];
    TableDataPerLinkArr[1]=TableDataLinkArr[i-1][1];
    TableDataPerLinkArr[2]=TableDataLinkArr[i-1][2];
   }else{
    TableDataPerLinkArr[0]=TableDataLinkArr[i][0];
    TableDataPerLinkArr[1]=TableDataLinkArr[i][1];
    TableDataPerLinkArr[2]=TableDataLinkArr[i][2];
   }
  }
  TArr.push(TableDataPerLinkArr);
 }
 TableDataLinkArr=TArr;
 SelectedTopLink=parseInt(SelectedTopLink)+1;
 var A=DataTopLinkDisplay();
 TopTD.innerHTML=A;
}





