
/*********************
*系统方法
*
*
*******************************/

/****
*获取应用程序根路径
*载asp.net的无cookie session 方式下，提取sessionIDs
*
***********/
function Application_GetRoot(){
		
		var pathArr =  window.location.pathname.split("/") ;
		
		if( pathArr.length == 1 ){
			return "/";
		}else if( pathArr.length == 2 ){
			return pathArr[0];
		}else{
			
			if( pathArr[0] == "" ){  //模式对话框
			 
				if( pathArr[2].indexOf("(") > -1 &&  pathArr[2].indexOf(")") > -1 )
					return "/" + pathArr[1] + "/" + pathArr[2] ;
				else
					return "/" + pathArr[1];
					
			}else{
			
				if( pathArr[2].indexOf("(") > -1 &&  pathArr[2].indexOf(")") > -1 )
					return "/" + pathArr[0] + "/" + pathArr[1] ;
				else
					return "/" + pathArr[0];
			
			}
			 
		}
			
}

function ShowCalendar(target)
{
	var obj = eval(formName + "." + preName + "_" + target);
	ShowCalSel(obj);
}

// 新版日期控件
function ShowCalSel(obj)
{
	// 判断传入参数是对象还是字符串
	if ( typeof(obj) == "object" )
	{
		var oTxtDate = obj;
		window("ifrCal_Sel").document.all("Cal_sel").targetElement=obj.id
		var szDate=oTxtDate.value
	
		var oEle=event.srcElement

		document.all("ifrCal_Sel").style.top   =event.y + document.body.scrollTop
		document.all("ifrCal_Sel").style.left  =event.x + document.body.scrollLeft
		
		if (szDate!='') window("ifrCal_Sel").cal_sel.value=szDate
		document.all("ifrCal_Sel").style.display ="inline" 
	}
	else
	{
		var oEle=event.srcElement
		var szDate=''
		document.all("ifrCal_Sel").style.top   =event.y + document.body.scrollTop
		document.all("ifrCal_Sel").style.left  =event.x + document.body.scrollLeft
		if (szDate!='')	window("ifrCal_Sel").cal_sel.value=szDate
		document.all("ifrCal_Sel").style.display ="inline" 
	}
}

function showCal(obj)
{

			if (!obj) var obj = event.srcElement;
			var obDate;
			
			if ( obj.value == "" ) {
				obDate = new Date();
			} else {
			
				var v = obj.value;
				var arr = v.split( " " );
				if( arr.length > 1 ) v = arr[0];
				
				var obList = v.split( "-" );
				obDate = new Date( obList[0], obList[1]-1, obList[2] );
			}
			
			//url = "../Common/calendar/calendarFrame.aspx?date=" + obj.value ;
			url = "../../Common/calendar/dlgCal.htm";
			
			//alert( event.srcElement.offsetTop );
			
			x = event.x + window.screenLeft ;//+ document.body.scrollLeft + document.body.scrollTop
			y = event.y + window.screenTop;
		
			
			var retVal = showModalDialog( url  , obDate , "dialogWidth=206px; dialogHeight=206px; help=no; scroll=no; status=no;dialogLeft=" + x + ";dialogTop=" + y );
				
			if ( retVal != null && typeof(retVal) != "undefined" ) {
				var year = retVal.getFullYear();
				var month = retVal.getMonth()+1;
				var day = retVal.getDate();
				obj.value =year + "-" + month + "-" + day;
				//obj.value = retVal ;
				//Form1.submit();
			}
}

function showCalEx(obj)
{
	if (!obj) var obj = event.srcElement;
	var obDate;

	//解决模板解析里面某个节点不可用的时候，不应该可以点击显示日期输入框
	try{
		var editNodes=","+obj.editable_nodes+",";
		var bEditable=editNodes.search(","+document.all.node_name.value+",");
		if (bEditable==-1) return;
	}
	catch(e){};

	if ( obj.value == "" ) {
		obDate = new Date();
	} else {
		var val=new String(obj.value.replace(/-/i,"/"));
		if (val.indexOf("/")==-1)
		{
			var curDate = new Date();
			val=curDate.getFullYear() +"/"+curDate.getMonth() +"/"+curDate.getDate() +" "+val;
		}

		obDate = new Date(val);
	}
	
	var retVal = showModalDialog( Application_GetRoot() +  "/common/calendar/dlgCalEx.htm", obDate,
		"dialogWidth=206px; dialogHeight=234px; help=no; scroll=no; status=no; " );
	var Date1=new Date(retVal);

	if ( typeof(retVal) != "undefined" ) {
		var year = Date1.getFullYear();
		var month = Date1.getMonth()+1;
		var day = Date1.getDate();
		var hour =Date1.getHours();
		var Min = Date1.getMinutes();
		if (Min.toString().length<2)
		Min="0"+Min
		//var Sec = Date1.getSeconds();
		var Sec = "00";
		obj.value =year + "-" + month + "-" + day + " " + hour + ":" + Min + ":" + Sec;
		//obj.value =year + "-" + month + "-" + day + " " + hour + ":" + Min;
	}
}

//********************
/**
*页面选择基函数
*@param string IDElement  name属性s
*@param string NameElement /newCommon/choose/中的页面名
*@param string page 
*/
function baseChoose( IDElement, NameElement, page , param ){
	if( typeof( param ) == "undefined" )
		param = "dialogWidth=280px; dialogHeight=550px; help=no;status=no; scroll=no; resizable=yes;"
		
	var idObj = document.formData.item( IDElement );
	var nameObj = document.formData.item( NameElement );
	
	if( idObj == null ){
		alert( "IDElement参数错误！（找不到指定元素 IDElement:" + IDElement + "）" );
		return;
	}
	
	if( nameObj == null ){
		alert( "NameElement参数错误！（找不到指定元素 NameElement:" + NameElement  + "）" );
		return;
	}
	
	var o = new Object();
	o.SelectedUserIDs =  idObj.value;
	o.SelectedUserNames = nameObj.value;
	
	//window.open( Application_GetRoot() + "/" + page );

	var r = window.showModalDialog( Application_GetRoot() + "/" + page, o , param );
	
	if( r==null ) return;

	idObj.value = r.SelectedUserIDs;
	nameObj.value = r.SelectedUserNames;

}

//********************
/**
*页面选择通用函数
*@param string IDElement id属性s，必须
*@param string NameElement name属性s，必须
*@param string ChooseType 选择类型："user","dept","meta"等，必须。若为"meta"，请指定XML文件名。如：meta#metaGenderXmlTree
*@param string EnableMultiSelect 是否可以多选
*@param string Url 选择页面所在路径，默认为 common/dialog/choose.aspx
*@param string Param 选择页面窗口的样式，默认为 dialogWidth=280px; dialogHeight=550px; help=no;status=no; scroll=no; resizable=yes;
*/
function chooseCommon(IDElement, NameElement, ChooseType, MetaDir, EnableMultiSelect, Url, Param)
{
	var arrChooseType;
	if ( typeof( Param ) == "undefined" || Param == "" )
		Param = "dialogWidth=280px; dialogHeight=550px; help=no;status=no; scroll=no; resizable=yes;";
		
	if ( typeof( Url ) == "undefined" || Url == "" )
		Url = "common/dialog/choose.aspx";
	
	if ( typeof( ChooseType ) == "undefined" || ChooseType == "" )
	{
		alert( "ChooseType参数错误！（参数不能为空 ChooseType:" + ChooseType + "）" );
		return;
	}
	else
	{
		if ( ChooseType.search("#") > 0 )
		{
			arrChooseType = ChooseType.split('#');
			Url = Url + "?chooseType=" + arrChooseType[0] + "&xmlFileName=" + arrChooseType[1];
		}
		else
		{
			Url = Url + "?chooseType=" + ChooseType;
		}
	}
		
	if ( typeof( MetaDir ) != "undefined" && MetaDir != "" )
	{
		Url = Url + "&metaDir=" + MetaDir;
	}
	
	if ( typeof( EnableMultiSelect ) != "undefined" && EnableMultiSelect != "" )
	{
		Url = Url + "&enableMultiSelect=" + EnableMultiSelect;
	}
	else
	{
		Url = Url + "&enableMultiSelect=false";
	}

	var idObj = document.formData.item( IDElement );
	var nameObj = document.formData.item( NameElement );
	
	if( idObj == null ){
		alert( "IDElement参数错误！（找不到指定元素 IDElement:" + IDElement + "）" );
		return;
	}
	
	if( nameObj == null ){
		alert( "NameElement参数错误！（找不到指定元素 NameElement:" + NameElement  + "）" );
		return;
	}
	
	var o = new Object();
	o.SelectedUserIDs =  idObj.value;
	o.SelectedUserNames = nameObj.value;
	
	//window.open( Application_GetRoot() + "/" + Url );
	var r = window.showModalDialog( Application_GetRoot() + "/" + Url, o , Param );
	
	if( r == null ) return;

	idObj.value = r.SelectedUserIDs;
	nameObj.value = r.SelectedUserNames;

}
 
//选择某一部门下用户
function chooseUserByOrg( IDElement, NameElement , orgLdap ){
	var url = "Common/Tree/ChooseUserByOrg.aspx?enableMultiSelect=false&orgLdap=" + orgLdap ;
	//window.open( Application_GetRoot() + "/" +url ,"","" );
	baseChoose(IDElement, NameElement , url ) ;
}

//选择本部门下用户
function chooseSelfDetpUser( IDElement, NameElement){
	var url = "common/dialog/chooseSelfDeptUser.aspx?enableMultiSelect=false";
	baseChoose(IDElement, NameElement , url ) ;
}
function chooseSelfDetpUsers( IDElement, NameElement){
	var url = "common/dialog/chooseSelfDeptUser.aspx?enableMultiSelect=true";
	baseChoose(IDElement, NameElement , url ) ;
}
//选择表单
function chooseForm( IDElement, NameElement){
	var url = "common/dialog/chooseForm.aspx?enableMultiSelect=false";
	baseChoose(IDElement, NameElement , url ) ;
}
//选择项目
function chooseProject( IDElement, NameElement){
	var url = "common/dialog/chooseProject.aspx?enableMultiSelect=false";
	p = "dialogWidth=380px; dialogHeight=550px; help=no;status=no; scroll=no; resizable=yes;"
	baseChoose(IDElement, NameElement , url , p ) ;
}

function chooseDept( IDElement, NameElement){
	var url = "common/dialog/chooseOrg.aspx?enableMultiSelect=false";
	baseChoose(IDElement, NameElement , url ) ;
}
function chooseDepts( IDElement, NameElement){
	var url = "common/dialog/chooseOrg.aspx?enableMultiSelect=true";
	baseChoose(IDElement, NameElement , url ) ;
}

function chooseUsers(IDElement, NameElement){
	var url = "common/dialog/choose/main.aspx?enableMultiSelect=true";
	var param = "dialogWidth=600px; dialogHeight=400px; help=no;status=no; scroll=no; resizable=yes;";
	baseChoose(IDElement, NameElement , url , param ) ;
}


function checkAll( ischeck )
{
	for( i = 0; i < document.forms[0].elements.length; i++ )
	{
		 var e = document.forms[0].elements[i];
     	 if ( e.type =="checkbox" ) e.checked = ischeck ;	 
	}
}


var popUpWin=0;
function popUpWindow(URLStr, left, top, width, height )
{
  if(popUpWin)
  {
    if(!popUpWin.closed) popUpWin.close();
  }
  popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
  popUpWin.focus() ;	
}


/*
	*使页面所有元素处于disable状态
	*
	*
	****/
	function disableAllElement(){
		for( i = 0; i < document.Form1.elements.length; i++ ){
			curObj = document.Form1.elements(i);
			//if( ( curObj.type=="button" )  ) continue;//&& ( curObj.name="back" || curObj.name="close" )
			curObj.disabled = true;	
		}
	}
	
	function disableAllInputElement(){
 
		for( i = 0; i < document.Form1.elements.length; i++ ){
			curObj = document.Form1.elements(i);
			if( curObj.type=="text" || curObj.type == "textarea" ){
				curObj.readOnly = true;	
			}
			else if( curObj.type == "radio" || curObj.type == "checkbox" )
				curObj.disabled = true;	
		}
	}
	
	function enableAllElement(){
		for( i = 0; i < document.Form1.elements.length; i++ ){
			curObj = document.Form1.elements(i);
			//if( ( curObj.type=="button" )  ) continue;//&& ( curObj.name="back" || curObj.name="close" )
			curObj.disabled = false;	
		}
	}
	
	function hiddenByName( name ){
		try{
			var obj = Form1.item( name );
			if( obj == null )return;
			obj.style.display = "none";
		}catch(e){}
	}
	
 /***********
	**
	*
	*************************/
	//以xml数据岛初始化页面数据
	function initXmlPageData( ){
		
			var root = xmlData.XMLDocument.documentElement
			var objValue = "";
			
			for( i = 0; i < document.Form1.elements.length; i++ ){
				curObj = document.Form1.elements(i);
				node = root.selectSingleNode( "e[@name='" + curObj.name + "']" );
				
				if( node == null ) continue ;
				objValue = node.text ;//.innerText;
				
				if( curObj.type=="text" || curObj.type=="textarea" || curObj.type=="hidden"  ){
					
					curObj.value = objValue;
				
				}else if( curObj.type == "radio" ){
					
					if( objValue == curObj.value  ) curObj.checked = true;
					else curObj.checked = false;
					
				}else if( curObj.type == "checkbox" ){
					objValue = "," + objValue + ",";
					if( objValue.indexOf( "," + curObj.value + "," ) > -1  ) curObj.checked = true;
					else curObj.checked = false;
					
				}else if( curObj.type == "select" ){
					alert( "select not support!" );
					
				}

				//特殊指令
				var command= curObj.command;
				if( command == "attachment" ){
					exeAttachmentCmd( curObj );
				}
								
		 }	
	}
	//处理附件，附件隐藏域 display 属性制定附件信息显示标签ID
	function exeAttachmentCmd( obj ){
		//var htmlObj = eval( "file_" + obj.name + "_html" );
		var htmlObj = eval( obj.display );
		htmlObj.innerHTML = parseFileXmlInfo( obj.value ) ;
	}
	
	/**************
	*
	*附件
	**********************/
	function upload( xmlElement , htmlElement , fileType ,errmessage ){
	
			if( typeof(fileType) == "undefined" ) fileType = "*";
			
			var xmlObj = document.Form1.item( xmlElement );
			var htmlObj = eval( htmlElement );
			
			var o = new Object();
			
			o.fileInfoHtml =  htmlObj.innerHTML ;
			o.fileInfoXml =   xmlObj.value   ;
			
			o.fileIDs = "" ;
 
			
			var param = "dialogWidth=500px; dialogHeight=400px; help=no;status=no; scroll=no; resizable=no;"
			var page = Application_GetRoot() + "/common/dialog/AttachmentAdapterFrame.aspx?fileType=" + fileType + "&TypeErrMessage=" + errmessage  ;
			
			var returnObj = window.showModalDialog( page , o , param );
			
			htmlObj.innerHTML = returnObj.fileInfoHtml ;
			xmlObj.value =  returnObj.fileInfoXml ;

	}
	//附件上传，扩展 
		function uploadEx( xmlElement , htmlElement  ){
	
			var xmlObj = document.Form1.item( xmlElement );
			var htmlObj = eval( htmlElement );
			
			var o = new Object();
			
			o.fileInfoHtml =  htmlObj.innerHTML ;
			o.fileInfoXml =   xmlObj.value   ;
			
			o.fileIDs = "" ;
 
			
			var param = "dialogWidth=500px; dialogHeight=400px; help=no;status=no; scroll=no; resizable=no;"
			var page = Application_GetRoot() + "/common/dialog/AttachmentAdapterFrameEx.aspx"  ;
			
			var returnObj = window.showModalDialog( page , o , param );
			
			htmlObj.innerHTML = returnObj.fileInfoHtml ;
			xmlObj.value =  returnObj.fileInfoXml ;

	}
	
	
	function parseFileXmlInfo( xml ){
	 
			if( xml == "" ) return "" ;
			 
 			xmlDoc = new ActiveXObject("microsoft.xmlDOM");
			xmlDoc.async = false; 
			
			xmlDoc.loadXML( xml );
		 
			var root =  xmlDoc.documentElement;
			
			var node , name , id , size ;
			var html = "" ;
			for( var i = 0  ; i < root.childNodes.length ; i ++ ){
				node = root.childNodes[i]; 
				id = node.getAttribute("id") ;
		 
				name = node.getAttribute("name") ;
				des = node.getAttribute("description") ;
				//html +=  "<u>" + name + "</u><br>"  ;
				//html +=  "<a href=\"javascript:viewFile(" + id + ")\">" + name + "</a>"  ;
				
				if( node.getAttribute("size") != null ) size = node.getAttribute("size") ;
				
				if( id != "0" ){

					html += ""+ ( i+1) + "、<a href=\"javascript:viewFile(" + id + ")\">[文件名]：" + name + "</a>"  ;
					
					if( des != null && des != "" ) html +=  " [" + des + "]";

					html += "【大小:" + size + "字节】&nbsp;&nbsp;";
					//html += "[<img title='保存文件' src='../images/icon/ic_zip.gif' onclick='downloadFile(" + id + ")' class=hand align=absMiddle border=0>]&nbsp;&nbsp;";
					html += "[<img title='查看文件' src='../images/icon/zoom.gif' onclick='viewFile(" + id + ")' class=hand align=absMiddle border=0>]";
					html += "<br>";
				
				}else{
					html += ""+ ( i+1) + "、[文件名]：" + name +  " [" + des + "]<br>"  ;
				}
				
				 
				

			}	
			xmlDoc = null ;
			return html ;
	}
	
	/////

 var xmlElementList = "";
 var htmlEmementList = "";

 function setParseAction( xmlE , htmlE ){
	if(  xmlElementList != "" ){  
		xmlElementList += ",";
		htmlEmementList += ",";
	}
	xmlElementList  +=  xmlE ;
	htmlEmementList +=  htmlE ;
 }
  
 function parseAllFileInfo(){
	if(  xmlElementList == "" ) return ;
	 
	var xmlArr = xmlElementList.split( "," );
	var htmlArr = htmlEmementList.split( "," );
	var htmlObj = null ;
	for( var i = 0 ; i < xmlArr.length ; i ++ ){
		htmlObj = eval( htmlArr[i] );
		htmlObj.innerHTML = parseFileXmlInfo( Form1.item( xmlArr[i] ).value ) ;
	}
 }
 
function viewFile(id){
	var url = Application_GetRoot() + "/common/dialog/showFile.aspx?fileID=" + id;
	popUpWindow( url, 0, 0, screen.Width, screen.Height ) ; 
}
function downloadFile(id){
	var url = Application_GetRoot() + "/common/dialog/showFile.aspx?isDownload=1&fileID=" + id;
	popUpWindow( url, 0, 0, screen.Width, screen.Height ) ; 
}
 
/****************************附件 END ***************/
 
 //获取选择列表
 function getCheckedList(name){
	var list = "";
	for( i = 0; i < document.Form1.elements.length; i++ ){
		curObj = document.Form1.elements(i);
		if( curObj.type == "checkbox" && curObj.name == name && curObj.checked ){
				if( list != "" ) list += ",";
				list += curObj.value;
		}				  
	}
	return list;
 }
 function selectAllCheckbox(){
	for( i = 0; i < document.Form1.elements.length; i++ ){
		curObj = document.Form1.elements(i);
		if( curObj.type == "checkbox"   )
 			  curObj.checked = true;
	}
 }
 function unSelectAllCheckbox(){
	for( i = 0; i < document.Form1.elements.length; i++ ){
		curObj = document.Form1.elements(i);
		if( curObj.type == "checkbox"   )
 			  curObj.checked = false ;
	}
 }
  function setAllCheckboxStatus(b){
	for( i = 0; i < document.Form1.elements.length; i++ ){
		curObj = document.Form1.elements(i);
		if( curObj.type == "checkbox"   )
 			  curObj.checked = b ;
	}
 }
 
 
 function showHelp(){
  var arr =  window.location.pathname.split( "/" ) ;
  
  if( arr.length < 2 ) return "";
  
  var page = "";
  
  for( i = 2 ; i < arr.length ; i ++ ){
	if( page != "" ) page += "/";
	page += arr[i];
  }
  
  var url = Application_GetRoot() + "/help/view_main.aspx?page=" +  ( page )  ;

  popUpWindow( url  , 0, 0, window.screen.width - 10 , window.screen.availHeight - 10 ) ;
 
 }
 
 function GetQueryString(){
	var arr = window.location.href.split("?");
	if( arr.length == 1 ) return "";
	else return arr[1];
 }
 
 /***********
 *下拉列表操作
 *
 *
 *****************/
 
 		function createOption(text,value){
			var oOption = document.createElement("OPTION");
			oOption.text=text;
			oOption.value=value;
			return oOption;
		}
		
		/********
		*移动下拉列表中所有项
		*@fromObj 要移动的列表对象
		*&toObj 移动到的列表对象
		*************/
		function moveAllOption( fromObj , toObj ){
			var toOp ;
			var fromOp
			var i = 0 ;
			for( i = 0 ; i < fromObj.options.length ; i ++ ){
				fromOp = fromObj.options( i );
				toOp = createOption( fromOp.text , fromOp.value  ) 
				toObj.add( toOp ) ;
			}
 
			for( i =  fromObj.options.length - 1 ; i >= 0 ; i -- ){
				fromObj.remove(i);
			} 
		}
		/********
		*移动下拉列表中所有选中项
		*@fromObj 要移动的列表对象
		*&toObj 移动到的列表对象
		*************/
		function moveSelectedOption( fromObj , toObj ){
		
			///alert( fromObj.selectedIndex )   ;
			
			var toOp ;
			var fromOp
			var i = 0 ;
			for( i = 0 ; i < fromObj.options.length ; i ++ ){
				
				fromOp = fromObj.options( i );
				if( !fromOp.selected  ) continue ;
				toOp = createOption( fromOp.text , fromOp.value  ) 
				toObj.add( toOp ) ;
			}
 
			for( i =  fromObj.options.length - 1 ; i >= 0 ; i -- ){
				fromOp = fromObj.options( i );
				if( fromOp.selected  ) fromObj.remove(i);
			} 
		}
		
	
	function close_back(){
	
		if( top.location != self.location ){
			history.back();
		}
		else{
			window.close();
		}
	}	
	
	/*************************
	*
	*项目察看
	**************************/
   	function viewProjectBaseInfo(projectID){
			url =  "../projectManage/projectEdit.aspx?readonly=true&action=newWinView&ProjectID=" + projectID  ;
			popUpWindow( url  , 0, 0, window.screen.width * 0.7 , window.screen.availHeight * 0.9 ) ;
		}
		
		function viewProjectStandardInfo(projectID){
			url =  "../projectManage/projectStandardMain.aspx?readonly=true&action=newWinView&ProjectID=" + projectID ;
			popUpWindow( url  , 0, 0, window.screen.width * 0.7 , window.screen.availHeight * 0.9 ) ;			
		}
		
		function viewProjectGoalsInfo(projectID){
			url = "../projectManage/projectGoalList.aspx?readonly=true&action=newWinView&ProjectID=" + projectID;
			popUpWindow( url  , 0, 0, window.screen.width * 0.7 , window.screen.availHeight * 0.9 ) ;
		}
		
		function viewFlowStepInfo(fID){
			url = "../flowManage/flowStepInfo.aspx?ID=" + fID ;
			popUpWindow( url  , 0, 0, window.screen.width * 0.6 , window.screen.availHeight * 0.8 ) ;
		}



