									//判断本页面中表单元素是否设置的与后台的表单参数一致
var ItemIndex;						//当前表单在FormKindPara中的Index值
var FormValid = true;
var IsImgUpLoad = '';				//如果为空，表示没有图片上传，否则为图片上传到服务器时新的文件名
var IsFileUpLoad = '';				//如果为空，表示没有附件上传，否则为附件上传到服务器时新的文件名
var TitleIndex = new Array(new Array(), new Array()); //格式new Array(new Array(固定元素标签集合), new Array(可选元素标签集合))
var ImgSizeStr = '';
var FileSizeStr = '';
var theUniqueID= -1;
var HaveParentIF = 'ReplyForm';		//如果是自动型,则在父窗口显示预览框,保存Iframe的名字,否则HaveParentIF为空
var InfoHand = ''					//因为如果是手动或半自动,表单文件位于网站根目录,如果是全自动,表单文件位于admin1/form/目录下,所以要调用info.htm需要一个句柄
var FormStyle = -1;					//表单样式 1:普通 2:输入框可含说明栏 3:纵向多重 4:横向多重
var ULResutStr = '';				//文件上传后的返回参数
var UpLoadStatus = -1;				//-1:没有文件上传 0:正在上传 1:上传文件完成上传过程 2:因为总体文件尺寸过大,上传过程被中断 3:因为部分文件错误,上传过程被中断 4:用户自己取消上传
var UpLoadInfo = new Array(-1, -1);	//0:上传进度条的theUniqueID  1:文件最大尺寸(M)
var OpenDialog;						//进度条窗口句柄
var GroupUniID = 0;					//组合框ID编号

function Inits(Index){
	var FormObj, tmp, tmp1, str, Valid, TitlePos, obj, FormReplyType, FormReplyInits, CurrSortPara;
	if(!isNaN(Index)){
		Index = parseInt(Index);
		if(Index<FormKindPara.length){
			CurrentFormItem = FormKindPara[Index][0];
			ItemIndex = Index;
		}else{
			alert('没有找到这个表单项目！');
			return;
		}
	}else{
		for(var i=0;i<FormKindPara.length;i++){
			if(FormKindPara[i][0]==Index){
				ItemIndex = i;
				CurrentFormItem = FormKindPara[Index][0];
				break;
			}
		}
		if(i==FormKindPara.length){
			alert('没有找到这个表单项目！');
			return;
		}
	}
	FormStyle = parseInt(FormKindPara[ItemIndex][10]);
	if(FormKindPara[ItemIndex][2]=='auto'){//手动或半自动,手工设定DivCont,CheckCode,TestCode
		parent.document.getElementById('DivCont').innerHTML = '<div></div>';
		if(FormAspPara[ItemIndex][1]=='true') document.getElementById('CheckCodeTable').style.display = 'inline';
		document.getElementById('TestCode').value = FormAspPara[ItemIndex][0];
		document.getElementById('FormTitleSpan').innerText = '【'+FormKindPara[ItemIndex][0]+'】';
		if(FormKindPara[ItemIndex][11]!=''){
			document.getElementById('DownModelSpan').lastChild.style.display = 'inline';
			document.getElementById('DownModelSpan').lastChild.href = 'download.asp?Url='+FormKindPara[ItemIndex][12]+'&OriginNAme='+FormKindPara[ItemIndex][13];
			document.getElementById('DownModelSpan').firstChild.innerHTML = '请先下载此表单附件,按要求填写完毕上再上传上来';
		}
		tmp = FormKindPara[ItemIndex][4].split('|');
		if(tmp[6]!=''){
			document.getElementById('FormExplainSpan').className = 'FormTD4';
			document.getElementById('FormExplainSpan').innerHTML = '<span style="color:#FF0000;font-weight:bolder;">表单说明：</span>'+tmp[8];
		}
		InfoHandle = '../';
	}else{
		InfoHandle = '';
		HaveParentIF = '';
	}
	FormObj = document.forms[FormKindPara[ItemIndex][1]].elements;
	if(FormKindPara[ItemIndex][3]=='-1') FormReplyInits = true; else FormReplyInits = false
	FormReplyType = FormKindPara[ItemIndex][2];
	if(typeof FormTitle=='undefined') FormTitle = new Array();
	//先判断固定表单元素
	str = StaticPara[ItemIndex];
	if(FormReplyType=='half_auto'||FormReplyType=='no_auto'){
		//对于手动,和半自动,可根据FormTitle来生成SortPara,因为手动和半自动,在后台SortPara值为空数组,格式为:new Array(表单项目名, 表单类型(1:固定 2:自定义 0:项目组合标签), 改项目所在表单的原始位置)
		CurrSortPara = new Array();
		for(var i=0;i<str.length;i++){
			Valid = false;
			if(str[i][0]!=''){
				TitlePos = 0;
				for(var ii=0;ii<FormObj.length;ii++){
					tmp = FormObj[ii].type;
					if(tmp=='text'||tmp=='checkbox'||tmp=='radio'||tmp=='select-one'||tmp=='select--multiple'||tmp=='password'||tmp=='textarea'||tmp=='file'){
						if(str[i][0]==FormObj[ii].name){
							Valid = true;
							if(typeof FormTitle[TitlePos]=='undefined') FormTitle[TitlePos] = FormTitleStr[i];
							TitleIndex[0][TitleIndex[0].length] = FormTitle[TitlePos];
							CurrSortPara[TitlePos] = new Array(FormObj[ii].name, 1, i);
							if(FormReplyInits){
								str[i][str[i].length] = FormTitle[TitlePos];
							}
							//如果表单元素为文件上传
							if(tmp=='file'){
								if(str[i][0]=='ImgAddress'){
									obj = document.getElementById('ImgSize');
									if(obj!=null){
										tmp1 = str[i][4].split('|');
										if(tmp1[0]!='0'&&tmp1[1]!='0'){
											if(FormReplyType=='half_auto') document.getElementById('ImgSize').innerHTML = '图片应为<font color="#FF0000">'+tmp1[0]+'*'+tmp1[1]+'</font>或相应比例';
											ImgSizeStr = tmp1[0]+'|'+tmp1[1]+'|'+str[i][0];
										}
									}
								}
								if(str[i][0]=='FileAddress'){
									obj = document.getElementById('FileSize');
									if(obj!=null){
										if(str[i][3]!='0|'&&str[i][3]!=''){
											tmp1 = str[i][4].split('|');
											if(FormReplyType=='half_auto') document.getElementById('FileSize').innerHTML = '上传文件大小不能超过<font color="#FF0000">'+tmp1[0]+'</font>Ｍ';
											if(tmp1[1]!='') FileSizeStr = tmp1[0]+'|#'+tmp1[1]+'#|'+str[i][0]; else FileSizeStr = tmp1[0]+'||'+str[i][0];
										}
									}
								}
							}
							break;
						}
						if(tmp=='radio'||tmp=='checkbox'){
							obj = document.getElementsByName(FormObj[ii].name);
							ii = ii+obj.length-1;
						}
						TitlePos++
					}
				}
				if(!Valid){
					FormValid = false;
					alert('固定表单元素名为'+str[i][0]+'在本页面的名为'+FormKindPara[ItemIndex][1]+'的Form表单中未被发现,不符合后台表单管理原则,请重新设置本页面的表单元素!');
					break;
				}
			}
		}
	}

	if(!FormValid) return;
	//如果是全自动，自动生成固定和非固定的表单输入框
	if(FormReplyType=='auto'){
		AutoCreateInput();
	}
	if(FormReplyType=='half_auto'||FormReplyType=='no_auto'){
		//如果是半自动,再判断可选表单元素
		str = FormPara[ItemIndex];
		TitlePos = 0;
		for(var i=0;i<str.length;i++){
			Valid = false;
			TitlePos = 0;
			for(var ii=0;ii<FormObj.length;ii++){
				tmp = FormObj[ii].type;
				if(tmp=='text'||tmp=='checkbox'||tmp=='radio'||tmp=='select-one'||tmp=='select--multiple'||tmp=='password'||tmp=='textarea'){
					if(str[i][3]==FormObj[ii].name){
						Valid = true;
						TitleIndex[1][TitleIndex[1].length] = FormTitle[TitlePos];
						if(FormReplyInits) str[i][str[i].length-1] = FormTitle[TitlePos];
						CurrSortPara[TitlePos] = new Array(FormObj[ii].name, 2, i);
						break;
					}
					if(tmp=='radio'||tmp=='checkbox'){
						obj = document.getElementsByName(FormObj[ii].name);
						ii = ii+obj.length-1;
					}
					TitlePos++;
				}
			}
			if(!Valid){
				alert('可选表单元素名为'+str[i][3]+'在本页面的名为'+FormKindPara[ItemIndex][1]+'的Form表单中未被发现,不符合后台表单管理原则,请重新设置本页面的表单元素!');
				break;
			}
		}
		if(!FormValid) return;
	}
	if(FormReplyType=='half_auto'||FormReplyType=='no_auto'){
		SortPara[ItemIndex] = CurrSortPara;
	}
	if(FormReplyType=='half_auto'){
		str = FormPara[ItemIndex];
		for(var i=0;i<str.length;i++){
//  		0           									 1											  2	    3	   4			    5		 6		   7				8		9
//new Array(字段样式(input,textarea,select,radio,checkbox),(如果字段样式为select,radio,checkbox)可选项目,初始值,字段名,正则验证数据格式,是否必填,输入框度,最大输入字符长度,是否检索,输入框标签)
			InputInits(str[i][3], str[i][0], str[i][1], str[i][2], str[i][4], str[i][6], str[i][7], 'obj', '');
		}
	}
}

/**************************************************
				        0        1          2          3        4           0            1            2                3                   4              5           6            7
TableParaStr:		表单项目名,表单名,输入框生成状态,表单状态,表单参数（Table的ID名|标签TD样式名|输入框TD样式名|输入框说明TD样式名|作为参照的行的序号|标签TD序号|输入框TD序号|输入框说明TD序号
FormPara:			0:输入框类型		1:可选项目(如果类型为下拉框)		2:初始值		3:字段名		4:数据格式		5:是否必填		6:输入框长度	7:最大输入字符长度		8:是否检索		9:输入框标签						   10:标签说明		   11:暂时备用						   12:数据单位
字段说明列:			表单的列数由CellNum决定,实际上是预先就确定了,列的宽度值在Submit.asp中也预先确定好.至于说明列,表单样式1没有,其它的都有.
部分局部变量含义:	OriginIndex:当前表单元素在表单的原始位置				IsExplainTD:是否有说明栏		InsertRowNum:当前要插入的行的Index,因为有组合框的存在,因此InsertRowNum会小于CurrSortPara的i;
**************************************************/
function AutoCreateInput(){
	var tmp, tmp1, tmp2, str, str1, CurrSortPara, obj, row, cell, TableObj, CellNum, Para, TableParaStr, OriginIndex, IsEndInsert, InputTypeStr, SubStyleStr, IsExplainTD, CurrStaticPara, InsertRowNum;
	InputTypeStr = new Array('radio', 'checkbox', 'select');
	TableParaStr = FormKindPara[ItemIndex][4].split('|');
	TableObj = document.getElementById(TableParaStr[0]);
	if(TableObj==null){
		alert('名为'+TableParaStr[0]+'未在本页面找到')
		return;
	}
	Para = new Array();
	CurrStaticPara = StaticPara[ItemIndex];
	CurrSortPara = SortPara[ItemIndex];
	CellNum = TableObj.rows[TableParaStr[4]].cells.length;
	if(parseInt(TableParaStr[4])>=TableObj.rows.length) IsEndInsert = true; else IsEndInsert = false;	//IsEndInsert:是否在TableObj的尾部增加新行
	IsExplainTD = false;																				//如果没有字段说明，就将生成的输入框说明TD隐含，这样整个表单好看些
	if(FormStyle>1&&CellNum>2&&TableParaStr[7]!=''){
		for(var i=0;i<StaticPara[ItemIndex].length;i++){
			if(StaticPara[ItemIndex][i][0]!=''&&(i==11||i==12||i==15||i==16)){
				tmp = StaticPara[ItemIndex][i][4].split('|');
				if(tmp[5]!=''){
					IsExplainTD = true;
					break;
				}
			}
		}
		if(!IsExplainTD){
			for(var i=0;i<FormPara[ItemIndex].length;i++){
				if(FormPara[ItemIndex][i][10]!=''){
					IsExplainTD = true;
					break;
				}
			}
		}
	}

	InsertRowNum = 0;
	for(var i=0;i<CurrSortPara.length;i++){
		if(IsEndInsert){																				//生成相应的行,根据TableParaStr[3]的不同可分为在尾部或头部插入行
			row = TableObj.insertRow(-1);
		}else{
			row = TableObj.insertRow(parseInt(TableParaStr[4])+InsertRowNum+1);
		}
		if(CurrSortPara[i][3]=='2'||CurrSortPara[i][3]=='3'||CurrSortPara[i][3]=='4'){					//如果是组合框
			cell = row.insertCell(-1);
			cell.colSpan = CellNum;
			cell.className = 'FormDiv1';
			str = new Array();
			str1 = new Array();
			for(var ii=i; ii<CurrSortPara.length;ii++){
				str[str.length] = CurrSortPara[ii];
				OriginIndex = parseInt(CurrSortPara[ii][2]);
				if(CurrSortPara[ii][1]=='1'){
					tmp = StaticInputPara[OriginIndex].split('|');										//StaticInputPara: 0:输入框类型|1:如果类型是下拉框,则为下拉框内容,以#分割,否则为空|2:初始值|3:正则限制|4:值段长度
					if(CurrStaticPara[OriginIndex][3]=='') tmp1 = FormTitleStr[OriginIndex]; else tmp1 = CurrStaticPara[OriginIndex][3];
					if(CurrStaticPara[OriginIndex][0]=='Add1'||CurrStaticPara[OriginIndex][0]=='Add2'||CurrStaticPara[OriginIndex][0]=='Add3'||CurrStaticPara[OriginIndex][0]=='Add4'){
						tmp2 = CurrStaticPara[OriginIndex][4].split('|');								//tmp2: 输入框类型|名集合(以#分割)|值集合(以#分割)|输入框长度|数据单位|输入框说明
						if(tmp2[0]=='text'||tmp2[0]==''){
							Para[Para.length] = new Array(tmp[0], tmp[1], '', CurrStaticPara[OriginIndex][0], tmp[3], CurrStaticPara[OriginIndex][1], tmp2[3], tmp[4], CurrStaticPara[OriginIndex][2], tmp1, tmp2[5], '', tmp2[4]);
						}else{
							Para[Para.length] = new Array(tmp2[0], tmp2[1], '', CurrStaticPara[OriginIndex][0], tmp[3], CurrStaticPara[OriginIndex][1], tmp2[3], '', CurrStaticPara[OriginIndex][2], tmp1, tmp2[5], '', tmp2[4]);
						}
					}else{
						Para[Para.length] = new Array(tmp[0], tmp[1], '', CurrStaticPara[OriginIndex][0], tmp[3], CurrStaticPara[OriginIndex][1], '0', tmp[4], CurrStaticPara[OriginIndex][2], tmp1, '', '', '');
					}
				}else if(CurrSortPara[ii][1]=='2'){
					Para[Para.length] = FormPara[ItemIndex][OriginIndex];
				}
				str1[str1.length] = Para[Para.length-1];
				if(CurrSortPara[ii][4]=='1') break;
			}
			GroupUniID = GroupUniID+1;
			if(CurrSortPara[i][3]=='2') BuildMultiFill1(cell, str, str1, GroupUniID);
			i = ii+1;
			InsertRowNum = InsertRowNum+1;
			continue;																					//跳出本次循环,进行下次循环
		}

		OriginIndex = parseInt(CurrSortPara[i][2]);
		if(CurrSortPara[i][1]=='1'){																	//如果属于固定表单,需要把相关参数组合成与Formpara一致的数组
			tmp = StaticInputPara[OriginIndex].split('|');
			if(CurrStaticPara[OriginIndex][3]=='') tmp1 = FormTitleStr[OriginIndex]; else tmp1 = CurrStaticPara[OriginIndex][3];
			if(CurrStaticPara[OriginIndex][0]=='Add1'||CurrStaticPara[OriginIndex][0]=='Add2'||CurrStaticPara[OriginIndex][0]=='Add3'||CurrStaticPara[OriginIndex][0]=='Add4'){
				tmp2 = CurrStaticPara[OriginIndex][4].split('|');													//要区别对待附加字段,因为它的输入框类型不是确定的. 对于附加字段的参数处理
				if(tmp2[0]=='text'||tmp2[0]==''){
					Para[Para.length] = new Array(tmp[0], tmp[1], '', CurrStaticPara[OriginIndex][0], tmp[3], CurrStaticPara[OriginIndex][1], tmp2[3], '', CurrStaticPara[OriginIndex][2], tmp1, tmp2[5], '', tmp2[4]);
				}else{
					Para[Para.length] = new Array(tmp2[0], tmp2[1], '', CurrStaticPara[OriginIndex][0], tmp[3], CurrStaticPara[OriginIndex][1], tmp2[3], '', CurrStaticPara[OriginIndex][2], tmp1, tmp2[5], '', tmp2[4]);
				}
			}else{
				Para[Para.length] = new Array(tmp[0], tmp[1], '', CurrStaticPara[OriginIndex][0], tmp[3], CurrStaticPara[OriginIndex][1], '', '', CurrStaticPara[OriginIndex ][2], tmp1, '', '', '');
			}
		}else if(CurrSortPara[i][1]=='2'){
			Para[Para.length] = FormPara[ItemIndex][OriginIndex];
		}

		if(CurrSortPara[i][1]=='0'){																	//如果是解释行
			cell = row.insertCell(-1);
			cell.colSpan = CellNum;
			cell.className = 'FormDivide1';
			cell.innerHTML = CurrSortPara[i][0];
		}else{
			for(var ii=0;ii<CellNum;ii++){
				if(ii<=parseInt(TableParaStr[6])){
					cell = row.insertCell(-1);
				}else{
					if(IsExplainTD) cell = row.insertCell(-1);
				}
				if(ii==parseInt(TableParaStr[5])&&TableParaStr[1]!=''){									//标签样式
					SubStyleStr = TableParaStr[1].split('#');
					cell.className = SubStyleStr[0];
					if(Para[Para.length-1][5]=='true'){													//必填
						if(SubStyleStr.length>1){
							cell.className = SubStyleStr[1];
							tmp = '';
						}else{
							tmp = '* ';
						}
					}else{
						tmp = '';
					}
					cell.innerText = tmp+Para[Para.length-1][9]+'∶';
				}
				if(ii==parseInt(TableParaStr[6])&&TableParaStr[2]!=''){									//输入框样式
					SubStyleStr = TableParaStr[2].split('#');
					if(SubStyleStr.length>1){
						if(Para[Para.length-1][0]=='text'){
							cell.className = SubStyleStr[0];
						}else{
							cell.className = SubStyleStr[1];
						}
					}else{
						cell.className = SubStyleStr[0];
					}
					if(IsExplainTD){
						if(TableParaStr[3]!=''&&Para[Para.length-1][10]=='') cell.colSpan = CellNum-1;
					}else{
						cell.colSpan = CellNum-1;
					}
					tmp = '';																			//如果是日期型或者文件型,还要传递额外的参数
					if(CurrSortPara[i][1]){
						if(CurrStaticPara[OriginIndex][0]=='Birthday'||CurrStaticPara[OriginIndex][0]=='Date1'||CurrStaticPara[OriginIndex][0]=='ImgAddress'||CurrStaticPara[OriginIndex][0]=='FileAddress'){
							tmp = CurrStaticPara[OriginIndex][4];
						}
					}
					if(Para[Para.length-1][12]!='') tmp1 = ' '+Para[Para.length-1][12]; else tmp1 = '';
					cell.innerHTML = InputInits(Para[Para.length-1][3], Para[Para.length-1][0], Para[Para.length-1][1], Para[Para.length-1][2], Para[Para.length-1][4], Para[Para.length-1][6], Para[Para.length-1][7], 'htm', tmp)+tmp1;
				}

				if(IsExplainTD&&ii==TableParaStr[7]){
					if(Para[Para.length-1][10]!=''){													//输入框说明样式
						cell.innerText = Para[Para.length-1][10];
						if(TableParaStr[3]!='') cell.className = TableParaStr[3];
					}
				}
			}
		}
		InsertRowNum = InsertRowNum+1;
	}
	//alert(TableObj.innerHTML)
}
//为表单元素加相应的正则规范,目前暂时不完成这个功能
function AddInputValid(obj, RegexIndex){


}

//为相应的表单元素初始化
function InputInits(InputName, InputType, SelectValue, InitsValue, RegexTypeIndex, InputLength, MaxTextLength, InitsType, ParaStr){
	var ParentObj, obj, tmp, tmp1, str, str1, str2, ClassStr, StyleStr, patrn, ii, MaxWidth, InputParaStr, StyleStr;
	var RegexStr = 'onBlur="if(this.value==\'\') this.value=\''+InitsValue+'\';" onKeyPress="return regInput(this, /^[0-9]*$/,String.fromCharCode(event.keyCode))" onpaste="return regInput(this, /^[0-9]*$/,  window.clipboardData.getData(\'Text\'))" ondrop="return regInput(this, /^[0-9]*$/,event.dataTransfer.getData(\'Text\'))"'
	if(InitsType=='obj'){
		obj = document.getElementsByName(InputName)[0];
		ParentObj = obj.parentElement;
		str1 = ParentObj.innerHTML;
		//保留ClassName和style
		if(InputType=='text'||InputType=='Textarea'){
			patrn = new RegExp("style\\s*=\\s*([\'|\"]?).*?\\1", "igm");
			StyleStr = patrn.exec(str1);
			patrn = new RegExp("class\\s*=\\s*([\'|\"]?)\\w*\\1", "igm");
			ClassStr = patrn.exec(str1);
		}
		patrn = /<input.*?>/gi;
		str1 = str1.replace(patrn,'');
		patrn = /<\s*select[^>]*>[^<]*<\/select>/igm;
		str1 = str1.replace(patrn,'');
	}

	switch (InputType){
		case 'text':
			str = '<input name="'+InputName+'" type="text" value="'+InitsValue+'" ';
			if(RegexTypeIndex==1||RegexTypeIndex==2||RegexTypeIndex==3||RegexTypeIndex==4||RegexTypeIndex==5||RegexTypeIndex==6) str = str+RegexStr+' ';
			if(InputLength!='0'&&InputLength!=''){
				if(parseInt(InputLength)>0) str = str+' size="'+InputLength+'" '; else str = str+' style="width:'+InputLength+'px;" ';
			}
			if(MaxTextLength) str = str+'maxlength="'+MaxTextLength+'"';
			if(InputName=='Date1'||InputName=='Birthday'){
				str = str+' id="'+InputName+'" onFocus="calendar()"';
				if(ParaStr=='1') str = str+' ShowTime="1"';
			}
			break;

		case 'textarea':
			str = '<textarea name="'+InputName+'" value="'+InitsValue+'" ';
			if(InputLength!='0'&&InputLength!=''){
				if(parseInt(InputLength)>0) str = str+' cols="'+InputLength+'" '; else str = str+' style="width:'+Math.abs(InputLength)+'px;" ';
			}else{
				str = str+' cols="45" ';
			}
			if(MaxTextLength) str = str+'rows="'+MaxTextLength+'" '; else str = str+'rows="6" ';
			break;
		case 'select':
			if(InputLength!='0'&&InputLength!=''){
				StyleStr = ' style="width:'+Math.abs(InputLength)+'px;"';
			}else{
				StyleStr = '';
			}
			str = '<select name="'+InputName+'" type="select"'+StyleStr+'>';
			tmp = SelectValue.split('#');
			str2 = '';
			for(var i=0;i<tmp.length;i++){
				str2 = str2+'<option value="'+tmp[i]+'"';
				if(InitsValue!=''&&InitsValue==tmp[i]) str2 = str2+' selected';
				str2 = str2+'>'+tmp[i]+'</option>'
			}
			str = str+str2;;
			break;
		case 'double':
				str1 = new Array();
				str2 = new Array();
				tmp = SelectValue.split('#');
				ii = 0;
				for(var i=0;i<tmp.length;i++){
					if(tmp[i].substring(0,1)=='　'){

						if(str2[ii-1]!='') str2[ii-1] = str2[ii-1]+'|';
						str2[ii-1] = str2[ii-1]+tmp[i].replace(/^[ 　]*|[ 　]*$/g,'');
					}else{
						str1[ii] = tmp[i];
						str2[ii] = ''
						ii++;
					}
				}

				str = '<select onChange="if(this.value!=\'\'){document.getElementById(\''+InputName+'_2\').style.display=\'inline\';create_select(\''+InputName+'_2\',this.value.split(\'|\'),this.value.split(\'|\'),0);document.getElementById(\''+InputName+'_2\').disabled=false;}else{document.getElementById(\''+InputName+'_2\').style.display=\'none\';document.getElementById(\''+InputName+'_2\').disabled=true;}" name="'+InputName+'_1" id="'+InputName+'_1" type="select">';
				for(var i=0;i<str1.length;i++){
					str = str+'<option value="'+str2[i]+'">'+str1[i]+'</option>';
				}
				str = str+'</select>';
				if(str2[0]!=''){
					tmp1 = str2[0].split('|');
					str = str+'　<select id="'+InputName+'_2" name="'+InputName+'_2">'
					for(var i=0;i<tmp1.length;i++){
						str = str+'<option value="'+tmp1[i]+'">'+tmp1[i]+'</option>';
					}
					str = str+'</select>';
				}else{
					str = str+'　<select id="'+InputName+'_2" name="'+InputName+'_2"></select>'
				}

			break;
		case 'radio':
			tmp = SelectValue.split('#');
			//首先计算出span的width值,这样就可以使checkbox对齐
			str = tmp[0];
			for(var i=1;i<tmp.length;i++){
				if(str.length<tmp[i].length) str = tmp[i];
			}
			MaxWidth = 15+str.length*13+10;
			str = '';

			for(var i=0;i<tmp.length;i++){
				str = str+'<span style="width:'+MaxWidth+'px;display:inline;"><input name="'+InputName+'" type="radio" value="'+tmp[i]+'"';
				if(InitsValue!=''){
					if(InitsValue==tmp[i]) str = str+'checked';
				}else{
					if(i==0) str = str+' checked';
				}
				str = str+' >'+tmp[i]+'</span> ';
			}
			break;
		case 'checkbox':
			tmp = SelectValue.split('#');
			//首先计算出span的width值,这样就可以使checkbox对齐
			str = tmp[0];
			for(var i=1;i<tmp.length;i++){
				if(str.length<tmp[i].length) str = tmp[i];
			}
			MaxWidth = 15+str.length*13+10;
			str = '';
			for(var i=0;i<tmp.length;i++){
				str = str+'<span style="width:'+MaxWidth+'px"><input name="'+InputName+'" type="checkbox" value="'+tmp[i]+'"';
				if(InitsValue!=''&&InitsValue==tmp[i]) str = str+'checked';
				str = str+'>'+tmp[i]+'</span>';
			}
			break;
		case 'file':
			InputParaStr = ParaStr.split('|');

			if(InputName=='ImgAddress'){

				if(ThumbPara[0]=='true'&&ThumbPara[1]&&(InputParaStr[0]!='0'||InputParaStr[1]!='0')){
					if(InputParaStr[0]!='0'&&InputParaStr[1]!='0'){
						tmp = 'onChange="ThumbPicChange(\'ImgAddress\', 0);return false;"';
						tmp1 = '<span id="img_icon0"></span> 图片应为<font color="#FF0000">'+InputParaStr[0]+'*'+InputParaStr[1]+'</font>或相应比例<div style="position:relative;width:0px;height:0px;"><div id="img1" style="position:absolute;visibility:hidden;"></div></div>';
					}else{
						tmp = 'onChange="ThumbPicChange(\'ImgAddress\', 0);return false;"';
						tmp1 = '<div id="img1" style="position:absolute;visibility:hidden;"></div>';
					}

					ImgSizeStr = InputParaStr[0]+'|'+InputParaStr[1]+'|'+StaticPara[ItemIndex][9][0];

				}else{
					tmp = '';
					tmp1 = '<div style="position:relative;width:0px;height:0px;"><div id="img1" style="position:absolute;visibility:hidden;"></div></div>';
				}
				str = '<input name="ImgAddress" type="file" '+tmp+' onKeyDown="if(event.keyCode!=8) event.returnValue=false;" onpaste="event.returnValue=false;" style="width:'+FormGlobePara[0]+';">'+tmp1;

			}
			if(InputName=='FileAddress'){
				str = '<input type="file" name="FileAddress" onKeyDown="if(event.keyCode!=8) event.returnValue=false;" onpaste="event.returnValue=false;" style="width:'+FormGlobePara[0]+';">';
				if(InputParaStr[0]!='0') str = str+'文件大小不超过<font color="#FF0000">'+InputParaStr[0]+'</font>Ｍ';

				if(InputParaStr[1]!='') FileSizeStr = InputParaStr[0]+'|#'+InputParaStr[1]+'#|'+StaticPara[ItemIndex][13][0]; else FileSizeStr = InputParaStr[0]+'||'+StaticPara[ItemIndex][13][0];
			}
			break;
		default:
	}

	if(InitsType=='obj'){
		if(InputType=='text'||InputType=='Textarea'){
			if(StyleStr!=null) str = str+StyleStr;
			if(ClassStr!=null) str = str+ClassStr;
		}
	}
	if(InputType=='text'){
		str = str+'>'
		if(InputName=='Date1'||InputName=='Birthday'){
			if(InputName=='Date1') tmp = 1;
			if(InputName=='Birthday') tmp = 2;
			str = str+'<img src="../images/ico/Calender.gif" width="21" height="14" align="absmiddle" onClick="if(document.getElementById(\'meizzCalendarLayer\').style.display==\'none\'){document.getElementById(\''+InputName+'\').focus();}else{hiddenCalendar();document.getElementById(\''+InputName+'\').blur();};" style="cursor:hand;" id="CalendarHandle'+tmp+'">';
		}
	}
	if(InputType=='textarea') str = str+'></textarea>'
	if(InputType=='select') str = str+'</select>';
	if (InitsType=='obj'){
		str = str+str1;
		ParentObj.innerHTML = str;
	}
	if(InitsType=='htm'){
		return str;
	}
}

//输入格式:   InputName:输入框ID, TitleStr:输入框标签  IsMust:是否必填  DateType:正则类型  InputType:输入框类型
//返回至格式: 输入框的值是否有效(true或false)|输入框标签|如果是ImgAddress或FileAddress,是上传到服务器的文件名
function ValidInput(InputName, TitleStr, IsMust, DateType, InputType){
	var str, tmp, tmp1, FormObj, obj, result;
	//FormObj = document.forms[FormKindPara[ItemIndex][1]];
	str = '';
	if(InputType=='text'||InputType=='textarea'||InputType=='file'){
		obj = document.getElementsByName(InputName)[0];
		if(InputType=='textarea'){
			obj.value = txt_htm(obj.value, 'htm');

		}else if(InputType=='text'){
			obj.value = str_safe(obj.value, 'strict')
		}
		str = obj.value
	}
	//alert(TitleStr+'  '+InputName+'   '+str)
	if(IsMust=='true'&&(InputType=='text'||InputType=='textarea'||InputType=='file')&&str==''){
		result = 'false|'+TitleStr+'不能为空！';
		return result;
	}
	if(DateType!='-1'&&DateType!='-2'){
		if(str!=''){
			tmp = valid_judge(str,DateType);
			if(tmp!=true){
				result = 'false|'+TitleStr+tmp;
				return result;
			}
		}
	}
	if(DateType=='-2'&&obj.value!=''){
		tmp = '';
		if(InputName=="ImgAddress"){
			str = JudgeImg('', 'img1', 2);
			if(str[0]==0){
				tmp = '图片载入中，稍候！';
			}else if(str[0]==1){
				tmp = '图片格式不识别！';
			}else{
				if(str[1]!='jpg'&&str[1]!='gif'){
					tmp = '图片应为jpg或gif格式！';
				}
			}
		}

		if(InputName=='FileAddress'){
			if(FileSizeStr!=''){
				tmp1 = FileSizeStr.split('|');
				str = JudgeImg(obj.value, '', 3);
				if(tmp1[1]==''){
					tmp1[1] = "#asp#htm#exe#js#com#dll#";
					if(tmp1[1].indexOf('#'+str[1]+'#')!=-1){
						tmp = '文件不能为'+tmp1[1].replace(/\#/g, ' ')+'格式';
					}
				}else{

					if(tmp1[1].indexOf('#'+str[1]+'#')==-1){
						tmp = '文件应为'+tmp1[1].replace(/\#/g, ' ')+'格式';
					}
				}
			}
		}

		if(tmp!=''){
			result='false|'+TitleStr+tmp;
			return result;
		}else{
			tmp = new Date();
			tmp = Date.parse(tmp);
			tmp = tmp.toString();
			tmp = ItemIndex+'_'+tmp.substring(0, tmp.length-3)+'.'+str[1];
			return 'true|'+TitleStr+'|'+tmp;
		}

	}else{
		return 'true|'+TitleStr+'|'
	}
	return 'true|'+TitleStr
}

function PreCheck(){
	if(!FormValid){
		alert('此表单参数有误，请重新设置参数');
		return;
	}
	var str, str1, obj, tmp, tmp1, tmp2, Paras, FormObj, Para, OnlyPreview, CreatePreview, TypeIsImg, ii, CurrSortPara, OriginIndex, IsImgFirst;
	var info = new Array();
	info[0] = '表单提交';
	FormObj = document.forms[FormKindPara[ItemIndex][1]];
	if(FormAspPara[ItemIndex][1]=='true'){
		if(FormObj.mofei.value==''){
			info[info.length] = '验证码不能为空!';
		}
	}
	FormObj.CheckCode.value = ItemIndex;
	Para = new Array();
	str = StaticPara[ItemIndex];
	str1 = FormPara[ItemIndex];
	CurrSortPara = SortPara[ItemIndex];

	ii = 0;
	IsImgFirst = new Array(-1, -1);

	for(var i=0;i<CurrSortPara.length;i++){
		OriginIndex = parseInt(CurrSortPara[i][2]); //当前表单元素在表单的原始位置
		if(CurrSortPara[i][1]!='0'){
//InputName:输入框ID, TitleStr:输入框标签  IsMust:是否必填  DateType:正则类型  InputType:输入框类型
			if(CurrSortPara[i][1]=='1'){//表单固定元素

				tmp = StaticInputPara[OriginIndex].split('|');
				if(str[OriginIndex][3]=='') tmp2 = FormTitleStr[OriginIndex]; else tmp2 = str[OriginIndex][3];

				tmp1 = ValidInput(str[OriginIndex][0], tmp2, str[OriginIndex][1], tmp[3], tmp[0]); //判断表单固定元素的合法性
				tmp1 = tmp1.split('|');
				if(tmp1[0]=='false'){
					info[info.length] = tmp1[1];
				}else{
					if(tmp[0]=='text'){

						Para[Para.length] = new Array(str[OriginIndex][0], tmp1[1], 'text', 'static');
					}else{
						if(tmp[0]=='file'){
							Para[Para.length] = new Array(str[OriginIndex][0], tmp1[1], 'file', 'static');
							if(str[OriginIndex][0]=='ImgAddress'){
								if(IsImgFirst[1]==-1) IsImgFirst[0] = 0; else IsImgFirst[0] = 1;
								IsImgUpLoad = tmp1[2];
							}else{
								IsFileUpLoad = tmp1[2];
								if(IsImgFirst[0]==-1) IsImgFirst[1] = 0; else IsImgFirst[1] = 1;
							}

						}else{
							Para[Para.length] = new Array(str[OriginIndex][0], tmp1[1], '-1', 'static');
						}
					}
				}
			}
			if(CurrSortPara[i][1]=='2'){//表单可选元素
				//字段样式(input,textarea,select,radio,checkbox)|(如果字段样式为select,radio,checkbox)可选项目|初始值|字段名|正则验证数据格式|是否必填|输入框长度|最大输入字符长度
				tmp1 = ValidInput(str1[OriginIndex][3], str1[OriginIndex][9], str1[OriginIndex][5], str1[OriginIndex][4], str1[OriginIndex][0]);
				tmp1 = tmp1.split('|');
				if(tmp1[0]=='false'){
					info[info.length] = tmp1[1];
				}else{
					Para[Para.length] = new Array(str1[OriginIndex][3], tmp1[1], '-1', 'new');
				}
			}
			ii = ii+1;
		}
	}

	if(info[1] != null){
		window.showModalDialog(InfoHandle+'info.htm',info,'dialogHeight:292px;dialogWidth:343px;scroll:no;help:no;status:no');
		return false;
	}else{
		//对Para按当前页面顺序排序
		tmp = '';
		for(var i=0;i<Para.length;i++){
			if(tmp!='') tmp = tmp+'$$';
			tmp = tmp+Para[i].join('|');
		}
		FormObj.InputPara.value = tmp;
		//如果有图片，则先传图片
		if((IsImgFirst[0]!=-1||IsImgFirst[1]!=-1)&&(IsImgUpLoad!=''||IsFileUpLoad!='')){
			str = '';
			if(IsImgFirst[0]!=-1){

				if(IsImgUpLoad!=''){

					str = '?Upfile'+IsImgFirst[0]+'='+'../upfile/formReply/'+IsImgUpLoad;
					if(ThumbPara[0]=='false'||!ThumbPara[1]){
						CreatePreview = 'False';
					}else{
						if(ImgSizeStr!=''&&ImgSizeStr!='0|0'){
							str1 = ImgSizeStr.split('|');
							CreatePreview = 'True';
							if(str1[0]!='0'&&str1[1]!='0'){
								OnlyPreview = 'True';
								str = str+'&PreviewImageWidth'+IsImgFirst[0]+'='+str1[0]+'&PreviewImageHeight'+IsImgFirst[0]+'='+str1[1]
							}else{
								OnlyPreview = 'OverWrite';
								if(str1[0]!='0'){
									str = str+'&LimitedType=1&LargeImgLimited='+str1[0];
								}else{
									str = str+'&LimitedType=2&LargeImgLimited='+str1[1];
								}
							}
						}else{
							CreatePreview = 'False';
							OnlyPreview = '';
						}
					}
					str = str+'&CreatePreview'+IsImgFirst[0]+'='+CreatePreview+'&TypeIsImg'+IsImgFirst[0]+'=True&OnlyPreview'+IsImgFirst[0]+'='+OnlyPreview;
					if(OnlyPreview=='True'){
						if(PreviewRatio[0] instanceof Array){
							if(PreviewRatio[0].length==3) str = str+'&PreviewRatio'+IsImgFirst[0]+'='+PreviewRatio[0][0]+':'+PreviewRatio[0][1]+':'+PreviewRatio[0][2]; else str = str+'&PreviewRatio0=0.5:0.5:1';
						}else{
							str = str+'&PreviewRatio'+IsImgFirst[0]+'='+PreviewRatio[1];
						}
					}
				}else{
					str = '?Upfile'+IsImgFirst[0]+'=&CreatePreview'+IsImgFirst[0]+'=';
				}
			}
			if(IsImgFirst[1]!=-1){
				if(IsImgFirst[0]==-1) str = str+'?'; else str = str+'&';
				if(IsFileUpLoad!=''){
					str = str+'Upfile'+IsImgFirst[1]+'=../upfile/formReply/'+IsFileUpLoad;
					str = str+'&CreatePreview'+IsImgFirst[1]+'=False';
					if(FileSizeStr!=''){
						Paras = FileSizeStr.split('|');
						if(Paras[0]!='0'){
							UpLoadInfo[1] = parseInt(Paras[0]);
							str = str+'&UploadTotalSize='+Paras[0];
						}

					}
					UpLoadInfo[0] = (new Date()).getTime() % 1000000000;
					str = str+'&ProgressID='+UpLoadInfo[0];

				}else{
					str = str+'Upfile'+IsImgFirst[1]+'=&CreatePreview'+IsImgFirst[1]+'=';
				}
			}

			if(HaveParentIF==''){
				tmp1 = 'admin1/';
				tmp = '&ComeFrom=form';

			}else{
				tmp1 = '../';
				tmp = ''

			}
			if(IsFileUpLoad!=''){
				FormObj.action = tmp1+'savetofile1.asp'+str+tmp;
				UpLoadStatus = 0;
				CheckLoadStatus('');
			}else{
				FormObj.action = tmp1+'savetofile.asp'+str+tmp;
				UpLoadStatus = -1;
			}
			FormObj.encoding = 'multipart/form-data';
			FormObj.target = 'send_var';

			//显示进度条
			if(UpLoadStatus==0){
				var Ver = navigator.appVersion;
				if (Ver.indexOf('MSIE') > -1 && Ver.substr(Ver.indexOf('MSIE') + 5, 1) > 4) {
					OpenDialog = window.showModelessDialog('../Progress.htm', window, 'dialogWidth=392px; dialogHeight:210px; help:no; status:no');
				}else{
					window.open('../Progress.asp?Count=0&ProgressID='+UpLoadInfo[0], '_blank', 'left=240,top=240,width=360,height=160');
				}
			}
			FormObj.submit();
		}else{
			UpLoadStatus = 1;
			CheckLoadStatus('1')
		}
	}
}

function CacelUpload(){
	window.location.reload();
}

function CheckLoadStatus(Strs){
	var str, tmp, Infos, UpLoadFileType, Para, Para1;
	Infos = new Array();
	Infos[0] = '表单提交';
	//说明:如果只是图片提交,则由savetofile.asp来完成上传过程,为了整个系统的兼容性和少修改原来的程序(比如文章发布,网页管理等),在这些系统的js中就不定义UpLoadStatus和ULResutStr则两个参数,但上传成功时,有savetofiel.asp通过此函数的Strs传入.而在文件上传时,由savetofile1.asp来完成,为了实现在上传前判断文件大小,需要不停的执行CheckLoadStatus,所以在整个系统中预先定义了UpLoadStatus和ULResutStr这两个参数
	if(typeof UpLoadStatus=='undefined'||UpLoadStatus==null){
		UpLoadFileType = 'img';
		if(Strs==''){
			alert('文件上传返回结果参数不对!');
		}else{
			tmp = Strs.split('#');
			Para = parseInt(tmp[0]);
			if(Para==2){
				Para1 = tmp[1];
			}
		}
	}else{
		UpLoadFileType = 'file';
		Para = UpLoadStatus;
		Para1 = ULResutStr
		if (Para==-1){
			window.setTimeout("CheckLoadStatus()", 200);
			return;
		}
	}

	if(theUniqueID!=-1){
		if(OpenDialog&&OpenDialog.open &&!OpenDialog.closed){
			OpenDialog.focus();
			OpenDialog.close();
		}
	}
	if(Para==0){//文件整个大小超过指定尺寸
		tmp = FileSizeStr.split('|');
		Infos[1] = '文件上传不能超过'+tmp[0]+'Ｍ';
		window.showModalDialog('../info.htm', Infos, 'dialogHeight:0px;dialogWidth:0px;scroll:no;help:no;status:no');
		CacelUpload();
	}
	if(Para==2){//其它异常造成文件上传不成功
		Infos[1] = Para1;
		window.showModalDialog('../info.htm', Infos, 'dialogHeight:0px;dialogWidth:0px;scroll:no;help:no;status:no');
	}
	if(Para==1){//文件上传正常
		FormObj = document.forms[FormKindPara[ItemIndex][1]];
		FormObj.FormName.value = CurrentFormItem;
		if(IsImgUpLoad!='') FormObj.ImgAddr.value = IsImgUpLoad;
		if(IsFileUpLoad!='') FormObj.FileAddr.value = IsFileUpLoad;
		FormObj.encoding = 'application/x-www-form-urlencoded';
		FormObj.FormType.value = FormKindPara[ItemIndex][2];
		if(FormKindPara[ItemIndex][2]=='auto') FormObj.action = 'FormReply.asp'; else FormObj.action = 'admin1/form/FormReply.asp';
		if(FormKindPara[ItemIndex][2]=='auto') FormObj.AfterReplyAddress.value = FormGlobelPara[0]+FormKindPara[ItemIndex][8];
		FormObj.target = 'send_var';
		FormObj.submit();
	}
}

function CheckLoadStatus(Strs){//savetofile.asp和savetofiel1.asp都可能调用此函数
	var str, tmp, Infos, Para;
	Infos = new Array();
	Infos[0] = '表单提交';
	Para = Strs.split('#');
	if(typeof UpLoadStatus!='undefined'){
		if (UpLoadStatus==0){//文件上传中
			window.setTimeout("CheckLoadStatus('')", 200);
			return;
		}else if(UpLoadStatus==-1){
			return;
		}
		if(UpLoadStatus!=1){
			if(UpLoadStatus==2){//文件整个大小超过指定尺寸
				Infos[1] = '上传文件总尺寸不能超过'+UpLoadInfo[1]+'M';
			}
			if(UpLoadStatus==4){
				Infos[1] = '你已取消本次上传';
			}

		}
		if(OpenDialog&&OpenDialog.open &&!OpenDialog.closed){
			OpenDialog.focus();
			OpenDialog.close();
		}
	}
	//如果是savetofile.asp返回参数,格式为 2#错误信息 或者 1#上传文件个数#各上传文件的服务端的名字(以|分割) 如果是savetofiel1.asp返回,格式为: 2#错误信息 或者 1#软件大小#软件服务端名|图片服务端名(如果是software) 或者 1#上传文件个数#各上传文件的服务端的名字(以|分割)
	if(Infos[1]!=null){
		//如果UpLoadStatus不为0,表明此函数肯定为savetofile1.asp调用,表明文件已停止上传或已上传完毕
		window.showModalDialog('../info.htm',Infos,'dialogHeight:0px;dialogWidth:0px;scroll:no;help:no;status:no');
		if(UpLoadStatus==2||UpLoadStatus==4){
			window.location.reload();
		}
		return false;
	}
	if(Para[0]=='1'){
		FormObj = document.forms[FormKindPara[ItemIndex][1]];
		FormObj.FormName.value = CurrentFormItem;
		if(IsImgUpLoad!='') FormObj.ImgAddr.value = IsImgUpLoad;
		if(IsFileUpLoad!='') FormObj.FileAddr.value = IsFileUpLoad;
		FormObj.encoding = 'application/x-www-form-urlencoded';
		FormObj.FormType.value = FormKindPara[ItemIndex][2];
		if(FormKindPara[ItemIndex][2]=='auto') FormObj.action = 'FormReply.asp'; else FormObj.action = 'admin1/form/FormReply.asp';
		if(FormKindPara[ItemIndex][2]=='auto') FormObj.AfterReplyAddress.value = FormGlobelPara[0]+FormKindPara[ItemIndex][8];
		FormObj.target = 'send_var';
		FormObj.submit();
	}
}


function ThumbPicChange(InputName, IdIndex){
	var str, FormObj, tmp, tmp1;
	FormObj = document.forms[FormKindPara[ItemIndex][1]];
	JudgeImg(FormObj.elements[InputName].value, 'img1', 1);
	if(ThumbPara[0]=='false'||!ThumbPara[1]) return;
	if(ImgSizeStr!=''){
		str = ImgSizeStr.split('|');
		if(str[0]!='0'&&str[1]!='0'){
			if(HaveParentIF=='') tmp1 = 'admin1/images/'; else tmp1 = 'images/|admin1/images/';

			preview_me(FormKindPara[ItemIndex][1]+'.'+str[2], parseInt(str[0]), parseInt(str[1]), '', tmp1, IdIndex, HaveParentIF);
		}
	}
}
