/////////////////////////////////////////////////////////////////////////

/**
 * 调用动态选择或连接树
 * Add by LuZQ
 */
function DySelectOrgaUserTree()
{
	try{
	var param="";
	var url="/bas/OrgaUserTree.do?todo=dynamictree";
	var winp="dialogHeight:520px;dialogWidth:360px;status:no;help:no;";
	if(arguments.length==2)
	{
		param=arguments[1]; //"&root=true&upper=999&lower=7299&type=check&select=7299";
	}
	else if(arguments.length == 8 || arguments.length == 9)
	{
		if(arguments[1]) param += "&type="  + arguments[1];
		if(arguments[2]) param += "&upper=" + arguments[2];
		if(arguments[3]) param += "&lower=" + arguments[3];
		if(arguments[4]) param += "&root="  + arguments[4];
		if(arguments[5]) param += "&select="+ arguments[5];
		if(arguments[6]) param += "&links=" + arguments[6];
		if(arguments[7]) param += "&target="+ arguments[7];
		if(arguments.length == 9 && arguments[1] == "check")
		{
			param += "&relating="+arguments[8];
		}
	}
	else
	{
		alert("请填写正确的参数！详细说明参见帮助文档。");
		return false;
	}
	var obj = SearchObject(arguments[0]);
	var ret = window.showModalDialog(url+param,obj.value,winp);
	if(ret)
	{
		obj.value = ret;
	}
	}catch(e){
		alert(obj);
	}
}
//////////////////////////////
//选择一个节点时关联子节点
//////////////////////////////
function RelatingSubNode(check)
{
//alert(root);
var accord = null;
if(root.id == check.parentNode.id)
{
	accord = root;
}
else
{
	accord = findNodeById(root,check.parentNode.id); 
}

if(accord!=null)
{
	//alert(accord.target);
	toCheckSubNode(accord,check.checked);
}
else
{
	alert("find Error!");
}
}

//////////////////////////////////
//取消选择一个节点时关联上级节点
//////////////////////////////////
function RelatingParentNode(check)
{
	var accord = null;
	if(root.id == check.parentNode.id)
	{
		accord = root;
	}
	else
	{
		accord = findNodeById(root,check.parentNode.id); 
	}

	if(accord!=null && (!check.checked))
	{
		//如果用户取消选择某个节点，则需要取消上级所有节点的选择
		var tmpnode = accord;
		while(tmpnode.parentNode)
		{
			tmpnode = tmpnode.parentNode;
			changeNodeStatus(tmpnode,check.checked);
		}
	}
}

///////////////////////////////
// 改变节点选择状态
///////////////////////////////
function changeNodeStatus(node,tselected)
{
var div=document.getElementById(node.id);
var checkbox=div.getElementsByTagName("input");
if(checkbox.length > 0)
{
	checkbox[0].checked = tselected;
}
}

//////////////////////////////
//选择或取消子节点的
//////////////////////////////
function toCheckSubNode(node,tselected)
{
for(var i=0;i<node.childNodes.length;i++)
{
	changeNodeStatus(node.childNodes[i],tselected);
	toCheckSubNode(node.childNodes[i],tselected);
}
}

//////////////////////////////////
//根据id查询子节点
//////////////////////////////////
function findNodeById(node,sid)
{
for(var i=0;i<node.childNodes.length;i++)
{
	if(node.childNodes[i].id==sid)
	{
		return node.childNodes[i];
	}
	var accord=findNodeById(node.childNodes[i],sid);
	if(accord != null)
	{
		return accord;
	}
}
return null;
}
/**
 * 异常提示
 * @param e
 * @return
 */
function showError(e)
{
	if(e == null)
	{
		return "没有异常！";
	}
	var infos  = "错误类型:" + e.name + "\n";
	    infos += "错误信息:" + e.message + "\n";
	var browsern = navigator.appName;
	if(browsern.indexOf("Microsoft") == -1)
	{
		infos += "出错文件名:" + e.fileName + "\n";
		infos += "出错的行数:" + e.lineNumber + "\n";
		infos += "错 误   堆 栈:" + e.stack;
	}
	else
	{
		infos += "错误代码:" + e.number;
	}
	return infos;
}

////////////////////////////////
//搜索对象，参数可以是对象id、name，
//还可以是对象本身
////////////////////////////////
function SearchObject(para)
{
	if(typeof para =="string")
	{
		var obj=document.getElementById(para);
		if(obj == null)
		{
			obj=document.getElementsByName(para);
			if(obj.length == 0)
			{
				return new Object();
			}
			else
			{
				return obj[0];
			}
		}
		else
		{
			return obj
		}
	}
	return para;
}

function uploadWin2(fldname,rowid)
{
	var sReturn = window.showModalDialog("/info/uploadfile.jsp?mode=start","abc",'dialogHeight:296px;dialogWidth:586px;status:no;help:no;');
	if(sReturn!="")
	{
 		if(rowid>0)
 			document.form1[fldname][rowid].value=sReturn;
		else
			document.form1[fldname].value=sReturn;
	}
}

function selectDate(fldname)
{
	var sReturn=window.showModalDialog("/bas/calendar.htm","seldatewin",'dialogHeight:286px;dialogWidth:286px;status:no;help:no;');
	if(sReturn!="")
	{
 		document.form1[fldname].value=sReturn;
	}
}
function selectTime(fldname)
{
	var sReturn=window.showModalDialog("/bas/calendartime.htm","seldatewin",'dialogHeight:300px;dialogWidth:286px;status:no;help:no;');
	if(sReturn!="")
	{
 		document.form1[fldname].value=sReturn;
	}
}
function selectTree(treejspfile,fldname)
{
	var wheight = 520;
	var wwidth = 360;
	if(treejspfile.indexOf("calendar")>=0)
		wheight = 310 ;
	if(treejspfile.indexOf("Car")>=0)
		wwidth = 600 ;
		
	var selecturl = "";
	if(treejspfile.substring(0,1)=='/')	
		selecturl = treejspfile;
	else
		selecturl = "/bas/"+treejspfile;	
		
	var sReturn=window.showModalDialog(selecturl,document.form1[fldname].value,'dialogHeight:'+wheight+'px;dialogWidth:'+wwidth+'px;status:no;help:no;');
	if(sReturn!="")
	{
 		document.form1[fldname].value=sReturn;
	}
}
function selectTeachTree(treejspfile,fldname)
{
	var wheight = 520;
	var wwidth = 360;
	if(treejspfile.indexOf("calendar")>=0)
		wheight = 310 ;
	if(treejspfile.indexOf("Car")>=0)
		wwidth = 600 ;
		
	var sReturn=window.showModalDialog("/teacher/"+treejspfile,document.form1[fldname].value,'dialogHeight:'+wheight+'px;dialogWidth:'+wwidth+'px;status:no;help:no;');
	if(sReturn!="")
	{
 		document.form1[fldname].value=sReturn;
	}
}
function officeWin(txtformat,fldname,edittype)
{
	var  param ='';
	fileid = form1[fldname].value;
	if(fileid.indexOf(".")>=0)
	{
		fileid = form1[fldname].value.split(".")[0];		
	}
	param = 'msEdit.jsp?RecordID='+fileid+'&EditType='+edittype+'&FileType=.'+txtformat+'&fldid='+fldname;
	window.open(param,'officewin','top=0,left=0,width=screen.width,height=screen.height,scrollbars=yes,resizable=yes,center=no,status=yes');
}

function uploadWin(fldname,rowid)
{
	var  param ='';
	urlpopwin(500,340,'uploadwin','/bas/uploadfile.jsp?filefld='+fldname+'&rowid='+rowid);
}



// 检查字段fldname长度是否是vlen，是则返回0,否则返回-1
function validLength(ivalue,fldname,vlen,colnum)
{
		if (ivalue.length!=vlen)
		{
			if(colnum>0)
				alert(fldname+"输入长度必须为"+vlen+"！");
			else
				alert(fldname+"输入长度必须为"+vlen+"！");
			return -1;
		}
		else
		{
			return 0;
		}
}
// 检查指定字段是否为空
function validateRequired1(fldobj,fldtitle,inputmode,colno)
{
	var selvalue = "";
	if (inputmode=="select" || inputmode=="multisel")
	{
		var i;
		for(i=0;i<fldobj.length;i++)
		{
			if (fldobj[i].selected)
			{
				selvalue = fldobj[i].value;
				break;
			}
		}
		if (selvalue=="")
		{
			if(colno>0)
				alert('第'+colno+'行：您必须为['+fldtitle+']选择一个值！');
			else
				alert('您必须为['+fldtitle+']选择一个值！');
			return -1;
		}					
	}
	else if (inputmode=="radio" || inputmode=="checkbox")
	{
		for(i=0;i<fldobj.length;i++)
		{
			if (fldobj[i].checked)
			{
				selvalue = fldobj[i].value;
				break;
			}
		}
		if (selvalue=="")
		{
			if(colno>0)
				alert('第'+colno+'行：您必须为['+fldtitle+']选择一个值！');
			else
				alert('您必须为['+fldtitle+']选择一个值！');
			return -1;
		}					
	}
	else
	{
		if (fldobj.value=="")
		{
			if(colno>0)
				alert('第'+colno+'行：您必须输入['+fldtitle+']！');
			else
				alert('您必须输入['+fldtitle+']！');
			return -1;
		}	
	}
	return 0;
}

function validateNumber(fldobj,fldtitle,colno)
{
	if(isNaN(fldobj.value))
	{
			if(colno>0)
				alert('第'+colno+'行：['+fldtitle+']必须输入数字！');
			else
				alert('['+fldtitle+']必须输入数字！');
			return -1;		
		
	}
	return 0;
}
// 选择数据单元，传入数据类型字段名，值字段名称必须是linkdata
function selectDataUnit(selFld,valueFld)
{
	if(document.form1[selFld].value.indexOf("-")<=0)
	{
		alert('您必须先选择一种数据类别！');
		return;
	}
	var jspfile = document.form1[selFld].value.split("-")[1];
	if(jspfile.indexOf("?")>0)
		jspfile = jspfile + "&a="+Math.random();
	else
		jspfile = jspfile + "?a="+Math.random();
	var sReturn=window.showModalDialog(jspfile,document.form1[valueFld].value,'dialogHeight:580px;dialogWidth:420px;status:no;help:no;');
	if(sReturn!="")
	{
 		document.form1[valueFld].value=sReturn;
	}
}	

// 记录被修改的字段
function setchange(fldname)
{
	changeflds = form1.changelist.value;
	if (changeflds.indexOf(fldname)<0)
		form1.changelist.value += fldname + ",";
}

/////////////////////////////////
//默认情况下，在单击多选树节点时，
//选择某个节点后不做任何处理
/////////////////////////////////
function SelectSubNode(check)
{

}
