	function winOpen(left,top,w,h,url)
	{
		var newwin=null;
		newwin=window.open("","","toolbar=no,scrollbars=yes,location=no");
		if(newwin==null)
		{
			alert("要使用本系统，必须允许弹出窗口，设置方法如下：\r\n"+
			"IE菜单->工具->弹出窗口阻止程序->总是允许来自此站点的弹出窗口");
			return null;
		}
		newwin.moveTo(left,top);
		newwin.resizeTo(w,h);
		newwin.location=url;
		return newwin;
	}
	function winOpenInCenter(w,h,url)
	{
		var left=Math.round((screen.width-w)/2);
		var top=Math.round((screen.height-h)/2);
		return winOpen(left,top,w,h,url);
		
	}
	function showSplash()
	{
		winopen((screen.availWidth-600)/2,(screen.availHeight-400)/2,600,400,'ProgressBar.htm');
		if(newwin!=null)
		this.closeWindow(false);
	}
	function showImageInNewWindow()
	{
		var imgWin=winOpenInCenter(800,600,"");
		if(imgWin!=null)
			imgWin.document.write('<img src="'+event.srcElement.src+'"></a>');
		else
			imgWin=window.open(event.srcElement.src);
			imgWin.document.body.focus();
			imgWin.document.body.onblur=function(){self.focus();};
	}
	//权限配置对话框
	function showPurview(url,objectID,assignType,objectName,moduleID,workflowID,caseID,nodeID)
	{
		return window.showModalDialog(url+'?ObjectID='+escape(objectID)+'&AssignType='+assignType+'&ObjectName='+escape(objectName)
		+(moduleID?'&ModuleID='+moduleID:'')+(workflowID?'&WorkflowID='+workflowID:'')+
		(caseID?'&CaseID='+caseID:'')+(nodeID?'&NodeID='+nodeID:''),null,'dialogHeight:500px; dialogWidth: 550px; status:no');		
	}
	//模态对话框
	function showModalDlg(url)
	{
		return window.showModalDialog(url,null,'dialogHeight:500px; dialogWidth: 450px; ');		
	}

	//设置为默认项
	function setDefault(url)
	{
		if(RequestWithAJAX(url,true))
			__refresh();
		/*
			var objForDefault=document.createElement('input');
			objForDefault.name="$$objectID";
			objForDefault.type='hidden';
			objForDefault.value=objectID;
			document.forms[0].insertAdjacentElement("afterBegin",objForDefault);
			event.cancelBubble=true;
			document.forms[0].submit();*/
	}
	//grid 公共函数库
		function	setButttonStyle(obj,idx)
		{
			switch(idx)
			{
				case 0://默认
					
					//document.all(obj.id+'_Cell')
					obj.className='ToolbarButton';
					break;
				case 1://鼠标移动
					//document.all(obj.id+'_Cell')
					obj.className='ToolbarButton_Focused';
					break;
				case 2://鼠标按下
					if(event.button&1==1)
					//document.all(obj.id+'_Cell')
					obj.className='ToolbarButton_Clicked';
					break;
			}
		}

	//设定grid为选中
		function setGridRow(rowChecker)
		{
			var parent=rowChecker.parentElement;
			while(parent.tagName!="TD")
				parent=parent.parentElement;
			if(parent.id)
			{
			  var cell=igtbl_getCellById(parent.id);
			  cell.Row.setSelected(rowChecker.checked);
			}
		}
		
		//选中列的列头复选框
		function selectAllRows(sender)
		{
			if(!sender)
				sender=document.all('RowsChecker');
			if(sender.length)
				sender=sender[0];
			var rows= document.getElementsByName("RowChecker");
			for(var i=0;i<rows.length;i++)
			{
				var row=rows[i];
				if(!row.disabled)
					row.checked=sender.checked;
				setGridRow(row);
			}
		}
		//选中一行的选择标记框
		function onRowChecked(sender)
		{
			setGridRow(sender);
			var rowsChecker=document.all('RowsChecker');
			var rows= document.getElementsByName("RowChecker");
			if(!sender.checked)
			{
				if(rowsChecker.length)
				{
					for(var i=0;i<rowsChecker.length;i++)
						rowsChecker[i].checked=false;
				}
				else
					rowsChecker.checked=false;
				return;
			}
			else
			{
				for(var i=0;i<rows.length;i++)
				{
					var row=rows[i];
					if(!row.checked&&!row.disabled)
					{
						if(rowsChecker.length)
						{
							for(var j=0;j<rowsChecker.length;j++)
								rowsChecker[j].checked=false;
						}
						else
							rowsChecker.checked=false;
						return;
					}
				}
				if(rowsChecker.length)
				{
					for(var i=0;i<rowsChecker.length;i++)
						rowsChecker[i].checked=false;
				}
				else
					rowsChecker.checked=false;
			}			
		}
		function createSelectedRowsTextBox()
		{
			var selectedRows=document.getElementById('txtSelectedRows');
		  if(selectedRows==null)
		  {
			  selectedRows=document.createElement("input");
  			
			  selectedRows.type='hidden';
			  selectedRows.id='txtSelectedRows';
			  selectedRows.name='txtSelectedRows';
  			
			  document.forms[0].insertAdjacentElement("afterBegin",selectedRows);
		  }
			selectedRows.value='';
			return selectedRows;
		}
		
		//是否有被选中的行
		function hasCheckedItems()
		{
			var rows= document.getElementsByName("RowChecker");
			var hasSelected=false;	
			var txtSelectedRows=createSelectedRowsTextBox();
			for(var i=0;i<rows.length;i++)
			{
				var row=rows[i];
				if(row.checked)
				txtSelectedRows.value+=row.rowID+",";
				if(!hasSelected&&row.checked)
				{
					hasSelected=true;					
				}
			}		
			if(!hasSelected)
				txtSelectedRows.removeNode(true);	
			return hasSelected;
		}
		function beforeRowDelete()
		{
			if(hasCheckedItems())
			{
				if(!confirm(deleteWarning))
				{
					document.forms[0].txtSelectedRows.removeNode(true);	
					return false;
				}
				return showCover('正在删除选定记录，请稍候');
			}
			else
			{
			  alert('请先选择待删除的数据');
				return false;			
		  }
		}
		//附件管理
		function deleteSelectedAttachments(sender)
			{
				var allSelectMark=document.all('fileSelectedMark');
				var allSelected=[];
				var senderID=sender.parentNode.nextSibling.childNodes[0].id;
				var ids="";
				if(allSelectMark.length)//不止一个附件
				{
					for(var i=0;i<allSelectMark.length;i++)
					{
						if(allSelectMark[i].checked||allSelectMark[i].id==senderID)
						{
							allSelected[allSelected.length]=	allSelectMark[i];
							ids+=allSelectMark[i].id+',';
						}
					}
				}
				else//只有一个附件
				{
					ids=allSelectMark.id;
					allSelected[allSelected.length]=allSelectMark;
				}
				if(ids!="")
				{
					//ids=ids.substr(0,ids.length-1);
					returnValue=window.showModalDialog("Attachment.aspx?Action=2&AttachmentID="+ids,'_blank');
					if(returnValue)
					{
						for(var i=allSelected.length-1;i>=0;i--)
						{
							allSelected[i].parentNode.parentNode.removeNode(true);
						}
					}
				}
				else
				{
					alert('请选中要删除的附件');
				}
			}
			function addFileInput()
			{
				var files=document.getElementsByName('attachment');
				if(files.length>0&&files[files.length-1].value=="")
				return;
				var tblAttachments=document.all('tblAttachments');
				var row=tblAttachments.insertRow();
				var cell=row.insertCell();
				cell.innerHTML="<a href='javascript:void(0)' onclick='removeFile()'>删除</a>";
				cell.noWrap=true;
				cell=row.insertCell();
				cell.colSpan=2;
				cell.innerHTML="<input type=file name=attachment class='inputbg' style='width:100%' onclick='validateFile(this)'>";
				cell.style.width='100%';
				document.all('hrefAddAttach').childNodes[0].nodeValue='继续添加附件';
			}
			function removeFile()
			{
				event.srcElement.parentNode.parentNode.removeNode(true);
				if(document.getElementsByName('attachment').length==0)
					document.all('hrefAddAttach').childNodes[0].nodeValue='添加附件';
			}
			function validateFile(sender)
			{
				var files=document.getElementsByName('attachment');
				for(var i=0;i<files.length;i++)
				{
					if(sender!=files[i]&&files[i].value==sender.value)
					{
						alert('请先删除已经存在附件：\r\n'+files[i].value);
						sender.focus();
						sender.select();
						return;
					}
				}																
}
 /*
      var divCover;
      var hideCover_hiddenSelectedList=[];
      var bodyCursor;
      function hideSelects()
      {
        var allSelects=document.getElementsByTagName("Select");
        //记忆所有使能得下拉列表框
        for(var i=0;i<allSelects.length;i++)
        {
            if(!allSelects[i].disabled)
            {
                //hideCover_hiddenSelectedList[hideCover_hiddenSelectedList.length]=allSelects[i];
				        //hideCover_hiddenSelectedList[hideCover_hiddenSelectedList.length-1].disabled=true;
            }
        }
      }
      function showCover(caption)
      {
		    hideSelects();
        divCover=document.createElement("div");
        bodyCursor=document.body.style.cursor;
        document.body.style.cursor="wait";
        divCover.style.cssText="cursor:wait;text-align:center; FILTER: alpha(opacity=70); BACKGROUND-COLOR: gray; opacity: 0.7;z-index:99999;left:0;top:0;position:absolute;width:100%;height:100%";
        document.body.insertAdjacentElement("afterBegin",divCover);
        divCover.innerHTML='<table style="width:100%;height:100%;"><tr><td valign="middle" align="center" id="progressBar" style="font-size:24pt;color:red;border:bolder">'+caption+'</td></tr></table> ';
        
        //<MARQUEE loop=-1  SCROLLAMOUNT=20 SCROLLDELAY=20 behavior=scroll direction=left></MARQUEE>
        divCover.style.width=document.body.scrollWidth;
        divCover.style.height=document.body.scrollHeight;
        divCover.setActive();
	    return true;
    }
    //页面回发变灰的效果
    function hideCover()
    {
        if(typeof divCover!='undefined')
            divCover.removeNode(true);
        document.body.style.cursor=bodyCursor;
        for(var i=0;i<hideCover_hiddenSelectedList.length;i++)
            hideCover_hiddenSelectedList[i].disabled=false;
        hideCover_hiddenSelectedList=[];
        return true;
    }
   */
   var iframeCover=null;
    var divCover=null;
    var ajaxProPreTimeoutPeriod;

    function showCover(text)
    {
        ajaxProPreTimeoutPeriod = AjaxPro.timeoutPeriod;
        AjaxPro.timeoutPeriod = 1000 * 3600; //设定1个小时的超时限制
       document.body.style.cursor="wait";
      if(iframeCover==null)
      {
	    iframeCover=window.document.createElement("iframe");
	    window.document.body.insertAdjacentElement("beforeEnd",iframeCover);
	      iframeCover.frameBorder="no";
	      iframeCover.tabIndex=0;
	      iframeCover.style.cssText="border:0px;\
			    FILTER: progid:DXImageTransform.Microsoft.Alpha( style=0,opacity=25);\
			    position:absolute;\
			    z-index:99998;\
			    left:expression(body.scrollLeft);top:expression(body.scrollTop);\
			    width:expression(body.clientWidth);height:expression(body.clientHeight);\
			    background-color:blue;";
	      iframeCover.contentWindow.document.open();
	      iframeCover.contentWindow.document.write("<html><body style='' bgcolor='blue' align='center' color='red'></body></html>");
	      iframeCover.contentWindow.document.close();

	      iframeCover.contentWindow.document.body.onkeydown =function()
	      {
		    if(iframeCover!=null)
		    {
			    if(iframeCover.contentWindow.event.keyCode==9)
			    {
			      iframeCover.contentWindow.event.returnValue=false;
			      iframeCover.contentWindow.event.cancelBubble=true;
			    }	
			    else if(iframeCover.contentWindow.event.keyCode==27)
			    {
			      iframeCover.removeNode(true);
			    }
		    }
	      }
	      iframeCover.focus();
      }
      else
        iframeCover.style.display='';
      if(divCover==null)
      {
	      divCover=window.document.createElement("div");
	      window.document.body.insertAdjacentElement("beforeEnd",divCover);
	      divCover.style.cssText="position:absolute;\
				    z-index:99999;\
				    left:expression(body.scrollLeft);top:expression(body.scrollTop);\
				    width:expression(body.clientWidth);height:expression(body.clientHeight);";
	      divCover.onclick=noFocus;
	      divCover.ondblclick=noFocus;
	      divCover.onselectstart =function(){return false;}
	      divCover.innerHTML="\
	      <table height='100%' width='100%'>\
		    <tr><td align=center valign=bottom><img src='/ThkCOSResource/images/progress.gif'></td></tr>\
		    <tr><td valign=top align=center style=\"color:red;font-weight:bolder;font-size:18pt\">"+(text?text:"")+"</td></tr>\
	      </table>";
      }
      else
	    divCover.style.display='';
	  return true;
	}
    function hideCover()
    {
        if(iframeCover)
	     iframeCover.style.display='none';
	    if(divCover)
	     divCover.style.display='none';
	 AjaxPro.timeoutPeriod = ajaxProPreTimeoutPeriod;
	 document.body.style.cursor = "default";


	  return true;
	}
    function noFocus()
    {
      if(iframeCover!=null&&iframeCover.style.display!='none')
        iframeCover.focus();
    } 

	//要填充明细的列表框
	var controlDropdownList=null;
	/// <summary>
	/// 获取主代码’mainCodeNO ‘的明细代码列表，并填充sel列表框控件
	/// </summary>
	/// <param name=" mainCodeNO "> 主代码名称</param>
	/// <param name="sel">要填充的列表框的id或列表框对象</param>
	/// <returns>无返回值</returns>
	function fillDropdownListWithDetailCode(mainCodeNO,dropdownList)
	{
		try
		{
  		if(typeof dropdownList=='string')
				dropdownList=document.getElementById(dropdownList);
			if(dropdownList==null)
				return;
			controlDropdownList=dropdownList;
			ThkCOS.Components.ThkCOSPage.GetDetailCodes(mainCodeNO,fillDropdownListWithDetailCode_callback);
		}
		catch(e)
		{
			alert('提取“'+mainCodeNO+'”明细代码出错,原因是:\r\n'+e.message);
		}  
	}
		//提取明细代码的回调函数
	function fillDropdownListWithDetailCode_callback(response)
	{
		if(response.error!=null)
		{
			alert(response.error.Message);		
			controlDropdownList=null;
		}
		else if(response.value!=null)
		{
	    
		 var detailCodes=response.value;
		 if(controlDropdownList!=null&&controlDropdownList.tagName=='SELECT')
		 {
				var existedSelectValue=controlDropdownList.value;
				var valueField=null;

				if(valueField&&detailCodes.length>0)
					valueField.value=detailCodes[0];
				controlDropdownList.options.length=0;
			 for(var i=0;i<detailCodes.length;i++)
			 {
				 controlDropdownList.options.add(new Option(detailCodes[i],detailCodes[i]));
			 }
			 if(existedSelectValue)
			 {
				controlDropdownList.value=existedSelectValue;
			 }
		 }
		}
		controlDropdownList=null;
    }
    //显示明细代码维护窗体
    function showDetailCodeView(mainCodeNO)
    {
      var url="/admin/detailcodeview.aspx?MainCodeNO="+escape(mainCodeNO);
      var hasChanged=window.showModalDialog(url,window,"dialogHeight:460px; dialogWidth: 545px; status:no");  
      return hasChanged;  
    }
    //重新加载明细代码列表到下拉列表框中
    function refillDropdownListWithDetailCode(mainCodeNO,dropdownList)
    {
      var hasChanged=showDetailCodeView(mainCodeNO);
      if(hasChanged)
      {
      fillDropdownListWithDetailCode(mainCodeNO,dropdownList);
      }
}