
/**
 * 功能： 显示隐藏的对象
 * 输入： 隐藏对象的ID
 * 输出：
 */
function disObject(Object){
	document.all.item(Object).style.display="block";
}

function confirm_add(msg)
{
	if(arguments.length==0)
	{
		alert("操作成功!");
	}
	else
	{
		alert(arguments[0]);
		return 0;
	}
	
}


function getParameter(objWindow, paramName){
	var paramValue = "";
	var url = objWindow.location.href;
	var paramStr = url.substr(url.indexOf("?") + 1 );
	var pos1 = paramStr.indexOf(paramName + "=" );
	if (pos1 != -1) {
		var pos2 = paramStr.indexOf("&", pos1 );
		if (pos2 == -1) {
				paramValue = paramStr.substr(pos1 + paramName.length + 1);
		} else {
				paramValue = paramStr.substring(pos1 + paramName.length + 1, pos2);
		}
	}

	return paramValue;
}


/*
*功能:在指定的表格对象上增加一列并填入序号
*输入:
*	objTable 	表格的ID
*	n 				(可选)所要插入列的位置(1~表格的列数+1)
*输出:
*/
function insNumColToTable(objTable,n)
{
	var j; 
	if(arguments.length==1)
	{j=0;}
	else
	{j=n-1;}
	
	if(j>=0 && j<=objTable.rows[1].cells.length)
	{
		for(var i=0;i<objTable.rows.length;i++)
		{
			var tdEle = objTable.rows[i].insertCell(j);
			if(i>0)
			{tdEle.innerText = i;}
			else
			{
				tdEle.innerText = "No.";
				tdEle.style.width="10px";
			}
			
		}
	}
	else
	{
		alert("指定插入列号超出范围!");
	}
}

/**
 * 功能： 根据系统ACTOR,控制一些控件的显示
 * 输入： 第一个参数是要控制的控件或区域的ID,后面的参数代表有权使用此控件的ACTOR
 * 输出： 
 * 使用方法:首先要给所要控制的控件一个ID,给控件加属性style="display:none" ,然后调用此方法,例:actorDisp("id01","actor1","actor2","actor3")
 * 注意:因为浏览器对网页的解释是从上到下进行的,所以方法的调用要在出现这个控件以后,否则,永远是style="display:none起作用.
 */


function actorDisp(){
   var actor= getParameter(window,"actorId");

   if(arguments.length<2){
   	alert("缺少参数!");
      return;
   }

   for(var i=1;i < arguments.length;i++){
     if(actor==arguments[i]){
        document.all.item(arguments[0]).style.display="block";
        return;
     }
   }

}

function checkFormData(arrValidateRule){
	var msg = "";
	for( var i = 0; i < arrValidateRule.length; i++) {
			var value = arrValidateRule[i][0];
			var rule = arrValidateRule[i][1];
			var tip = arrValidateRule[i][2];
			switch (rule) {
					case "REQUIRED":
						if ( value.trim().length == 0 ) {
								msg += tip + "\n";
						}
						break;
			}
	}
	return msg;
}

/**
 * 功能： 
 * 输入： 
 * 输出： 
 * 使用方法:
 * 注意:
 */

function showDataFromArray(arrKey,arrValue){

       for (var i=0; i < arrKey.length; i++) {
				if (arrValue[i] != null) {
                        //页面有定义此id名后，才执行
                        eval("if(document.all('" + arrKey[i] + "')!= null)" + "document.all('" + arrKey[i] + "').innerHTML=\"" +arrValue[i] +"\"");
				}
		}

}

/**
 * 功能： 
 * 输入： 
 * 输出： 
 * 使用方法:
 * 注意:
 */

function showDataFromArrayToInput(arrKey,arrValue){

       for (var i=0; i < arrKey.length; i++) {
				if (arrValue[i] != null) {
                        //页面有定义此id名后，才执行
                        eval("if(document.all('" + arrKey[i] + "')!= null)" + "document.all('" + arrKey[i] + "').value=\"" +arrValue[i] +"\"");
				}
		}

}


/**
 * 功能： 
 * 输入： 
 * 输出： 
 * 使用方法:
 * 注意:
 */
function showDataFromXml(xmlid, rootpath, itemArray){
	//alert(xmlid.xml);
   //遍历取所需要的数据
   for (var i=0; i < itemArray.length; i++) {
		var cmd = "document.all('" + itemArray[i] + "').innerHTML=\"" + getValueFromXml(xmlid, rootpath + "/" + itemArray[i]) +"\"";
        //页面有定义此id名后，才执行
        eval("if(document.all('" + itemArray[i] + "')!= null)" + cmd);
        //eval();
		//alert(itemArray[i]);
		//alert(cmd);
	} 
}

function getValueFromXml(xmlid, xpath){
   	var value = xmlid.selectSingleNode(xpath).text;
	return value;
}

function showMessage()
{
	var message = window.open("", 'message', 'height=180, width=500, menubar=no, status=no, toolbar=no, location=no, top=200, left=260');
}

/**
 *   ???:????/????
 *   ??:sid  tr?table?id??
 *   ?:<table id="idname" ...... >?<tr id="idname" .......>
 *   author: liaowf
 */
function changeDisplay(obj, flag)
{
  switch(flag)
  {
       case "SHOW":
				 	obj.style.display = "block";
  	      break;
       case "HIDE":
          obj.style.display="none";
        break;         
  }
}
/**
 *在弹出窗口中显示页面
 */  
function openInNewWindow(url){
	window.open(url,"","toolbar=0,menubar=0,scrollbars=1,top=0,left=0");
}

/**
 * 功能： 页面控制函数， 显示dataFrame和subMenuFrame
 * 输入： url 为 dataFrame中欲显示的页面, 无参数显示空白
 * 输出： 
 */
function showFullFrameYy(url)
{
	parent.document.body.rows = '*,8,50%';
	if(arguments.length > 0)
	{
		parent.dataFrame.location = arguments[0];
	}
	else
	{
		parent.dataFrame.location = 'about:blank';
	}
}

/**
?úselect?D??ê??°?§?o?±??ó|μ??°?μ?ù?±áD±í
*/
function showXiSuoSelectList(xueYuanId, xiSuoObj, actionPath) {
	var action;
	
	//??3yselectObjμ?options
	var option = null;
	var len = xiSuoObj.options.length;
	if (len > 0){
		for (var i=len - 1; i>=0; i--){
			xiSuoObj.options[i] = null;
		}
	}	
	if (xueYuanId == ""){
		return;
	}
	action = actionPath + "?method=getXiSuoSelectList&xy=" + xueYuanId;

	//í¨1yXmlHttp???ó·t???÷μ?μ?Dèòaμ?êy×é
    var allContent = httpGet(action);
	if (allContent == null || allContent == "")
		return;
	var optsData = getArray(allContent);

	
	//?ˉì?éú3éoptions	
  	for(var i=0;i<optsData.length;i=i+2){
  		option = document.createElement("option");
  		option.value = optsData[i];
  		option.text = optsData[i+1];
  		xiSuoObj.add(option);
  	}
}


/**
* 显示Select控件的所有选项。原有的选项会首先清除。
* param objSelect Select控件对象
* param arrData  存放选项数据的数组，数据次序必须是，数组元素的前两项数据的次序必须是“选项的Text”、“选项的Value”。
* 				数组元素的可以只有一项数据，此时“选项的Value”和“选项的Text”使用同一数据。如果数组元素的数据项
*				多于两个，则其他数据项均忽略。
* param needAll 指出是否需要在所有的选项前增加一个“<<全部>>”的选项，该选项的Value是""。只有参数的值是
				NEEDALL（不分大小写）时，才自动增加全部选项，为空或者其他任何值，则不增加全部选项。
* param initValue Select控件的初始选项的value
*/
function showOptions(objSelect,arrData, needAll,initValue){
	if (objSelect == null) {		// 如果Select控件为空，则返回
		return;
	}
	if (arrData == null || arrData.length == 0) {	// 如果选项数据数组的为空，则返回
		return;
	}
	if (arrData[0].length == 0) {		// 如果数组中的选项数据为空，则返回
		return;
	}
	
	var textIsValue = false;				// Text和value是否相同
	if (arrData[0].length == 1) {
		textIsValue = true;
	}

	objSelect.options.length = 0;					// 清除已有选项
	
	if (needAll.toUpperCase() == "NEEDALL") {		// 增加“全部”选项
		objSelect.options[0] = new Option("<<全部>>","");
	}
	if (needAll.toUpperCase() == "NEEDEMPTY") {		// 增加“空”选项
		objSelect.options[0] = new Option("","");
	}
	if (needAll.toUpperCase() == "NONE") {		// 增加“不限”选项
		objSelect.options[0] = new Option("不限","不限");
	}


	for (var i = 0; i < arrData.length; i++) {		// 遍历所有的选项数据
		var value = arrData[i][0];
		var text = value;
		if (textIsValue == false ){
			text = arrData[i][1];
		}
		var objOption = new Option(text, value);			// 创建一个新的选项
		var index = objSelect.options.length;
		objSelect.options[index] = objOption;				
		//if (initValue != null && initValue == value) {		//比较是否是初始值
		//	objSelect.options[index].selected = true;
		//}
    // alert("initvale"+initValue);
	//added by tangyh
	if ((initValue != null && initValue == value) || (initValue != null && initValue == text)) {		//比较是否是初始值
			objSelect.options[index].selected = true;
		}
	}
}

/**
* 显示Select控件的所有联动选项。原有的选项会首先清除。
* param objSelect Select控件对象
* param arrData  存放选项数据的数组，每个数组元素包含两个一维数组，第一个数组存放需要匹配的联动值，可以是多个联动值。
				第二个存放选项数据，数据次序必须是，数组元素的前两项数据的次序必须是“选项的Text”、“选项的Value”。
* 				数组元素的可以只有一项数据，此时“选项的Value”和“选项的Text”使用同一数据。如果数组元素的数据项
*				多于两个，则其他数据项均忽略。
* param needAll 指出是否需要在所有的选项前增加一个“<<全部>>”的选项，该选项的Value是""。只有参数的值是
				NEEDALL（不分大小写）时，才自动增加全部选项，为空或者其他任何值，则不增加全部选项。
* param arrLinkedValue 从arrData中过滤选项数据的条件数据数组
* param initValue Select控件的初始选项的value
*/
function showLinkedOptions(objSelect,arrData, needAll, arrLinkedValue, initValue){
	if (objSelect == null) {		// 如果Select控件为空，则返回
		return;
	}
	if (arrData == null || arrData.length == 0) {	// 如果选项数据的数组为空，则返回
		return;
	}
	if (arrData[0].length != 2) {		// 选项数据的数组元素必须是一个长度为2，否则返回
		return;
	}
	var textIsValue = false;			// 每个选项的Text和Value是否一样
	if (arrData[0][1].length == 1) {
		textIsValue = true;
	}
	
	//while (objSelect.options.length > 0 ) objSelect.options.remove(0);
	clearOptions(objSelect);		// 清除Select控件的原有的选项

	if (needAll.toUpperCase() == "NEEDALL") {		// 增加“全部”选项
		objSelect.options[0] = new Option("<<全部>>","");
	}
	//added by tyh
	if (needAll.toUpperCase() == "NEEDEMPTY") {		// 增加“全部”选项
		objSelect.options[0] = new Option("","");
	}
	if (needAll.toUpperCase() == "NONE") {		// 增加“不限”选项
		objSelect.options[0] = new Option("不限","不限");
	}
	for (var i = 0; i < arrData.length; i++) {		// 遍历选项数组
		if (arrLinkedValue != null && arrLinkedValue.length == arrData[i][0].length) {		// 该选项是否满足联动条件
			var matched = true;
			for (var j =0; j < arrLinkedValue.length; j++) {
				if (arrData[i][0][j] != arrLinkedValue[j]) {
					matched = false;
					break;
				}
			}
			
			if (matched == false) continue;		// 如果不满足联动条件，则继续下一个
			
			var value = arrData[i][1][0];			// 获取Text和value
			var text = value;
			if (textIsValue == false ){
				text = arrData[i][1][1];
			}
			var objOption = new Option(text, value);   // 创建一个新的选项
			var index = objSelect.options.length;
			objSelect.options[index] = objOption;

			//if (initValue != null && initValue == value) {  // 是否是初始值
				//objSelect.options[index].selected = true;
			//}
			//added by tangyh
			//alert("here"+initValue+"hh");
	if ((initValue != null && initValue == value) || (initValue != null && initValue == text)) {		//比较是否是初始值
			objSelect.options[index].selected = true;
		}

		}
	}
	//alert(objSelect.length);
	
}

/**
* 清除Select控件的原有的选项
*
*/
function clearOptions(objSelect){
	objSelect.options.length = 0;		
	objSelect.options[0] = new Option("TEMP","");
	objSelect.options.remove(0);
}


/**
  居中显示非模拟对话框
  @url 打开页面的url
  @setObj 没使用
*/
function showNotModalDialogYY(url,width,height)
{
       var top = (screen.height - height)/2;
       var left = (screen.width - width)/2;
       ///////////////// 显示非模拟对话框 ////////////////////////////////      
       var head = "height=" + height + ",width=" + width + ",left="+left+",top="+top+",status=no,toolbar=no,menubar=no,location=no";
       var returnV = window.open(url,"chengyuan",head);
       //////////////////////////////////////////////////////////////////////
}
/**
	居中显示可以提交的模态对话框
	@ context		Webroot上下文
	@ url			弹出的对话框中显示的页面
	@ width			弹出的对话框的宽度
	@ height		弹出的对话框的高度
*/
function showModalWindowSubmitable(context,url,width,height)
{
         var obj = new Object();
         obj.args=url;
         return showModalDialogYY(context + "/application/yanyuan/public/generate_iframe.jsp",width,height,obj); 
}
/**
    居中显示模态对话框
    @url  url
	@ width			弹出的对话框的宽度
	@ height		弹出的对话框的高度
    @setObj 传给对话框的参数对象
*/
function showModalDialogYY(url,width,height,setObj)
{
         var top = (screen.height - height)/2;
         var left = (screen.width - width)/2;
         
        ////////////////  显示模拟对话框 /////////////////////////////////
         var returnV = window.showModalDialog(url,setObj,'dialogwidth:' + width + 'px;dialogtop:'+top+'px;dialogheight:' + height + 'px;dialogleft:'+left+'px;status:no;help:no;scroll:no');
        ///////////////////////////////////////////////////////////////////
        return returnV;
}

//鼠标异动事件,鼠标经过改变色
function chStyle(obj){
obj.style.background='#eeeeee';
}
//鼠标异动事件,鼠标离开改变色
function chStyleBack(obj){
obj.style.background='#ffffff';
}
//*****************************************
//  ???????????(????????)
//winToSet: ???????????,?win2
//winWidth: ??????????????,?:400
//winHeight: ??????????????,?:300
//
function setWinCenter(winToSet, winWidth, winHeight) {
  var left = (screen.availWidth - winWidth) / 2;
  var top = (screen.availHeight - winHeight) / 2;
  winToSet.moveTo(left < 0 ? 0 : left, top < 0 ? 0 : top);
}

//////////////////////////////
//  打开窗口并设置居中
//
//url: url
//width: width(可选，默认为640)
//height: height(可选，默认为480)
//target: target(可选，默认为"_blank")(不需要设置top,left,height,width)
//winOptions(可选，默认为"menubar=no,status=no,toolbar=no,location=no,resizable=yes")
//注：可选参数如不需要可填写null
function openWindowC(url, width, height, target, winOptions) {
  var lurl = url == null ? "" : url;
  var lwidth = parseInt(width == null || typeof parseInt(width) != "number" ? 640 : width);
  var lheight = parseInt(height == null || typeof parseInt(height) != "number" ? 480 : height);
  var ltarget = target == null ? "_blank" : target;
  var defaultOptions = "menubar=no,status=no,toolbar=no,location=no,resizable=yes,scrollbars=yes";
  var lwinOptions = winOptions == null ? defaultOptions : winOptions;
  var winX = (screen.availWidth - lwidth ) / 2;
  var winY = (screen.availHeight - lheight) / 2;
  winX = winX < 0 ? 0 : winX;
  winY = winY < 0 ? 0 : winY;
  lwinOptions += ",width=" + lwidth + ",height=" + lheight + ",left=" + winX + ",top=" + winY;
  
  var win2 = window.open(lurl, ltarget, lwinOptions);
  return win2;
}



//比较两个时间的大小，返回true或false
function compareDate(dateMin, dateMax) {
  function getDateByStr(strDate) {
    var ymd = strDate.split("-");
    return new Date(ymd[0], ymd[1], ymd[2]);
  }
  var min = getDateByStr(dateMin).valueOf();
  var max = getDateByStr(dateMax).valueOf();
  return min < max;
}

/**
 *数字校验和提示信息
 *
 */
function checkIsNum(curNum, message) 
	{

          if(curNum.charAt(0,1)=="0"&&curNum.length>1)
		  {
		    alert(message);
		    return false;
		   }
		  for(var i=0;i<curNum.length;i++)
		  {
		    
		     var num="1234567890";
			 
			 if(num.indexOf(curNum.charAt(i,i+1))<0)
			 {
			   alert(message);
			   return false;
			 }
		  }
		  return true;
}


/*
 *Function	:参照selectName1从selectName3自动匹配到selectName2,找不到匹配项则插入空行
 *				多用于导入导出中的选择字段对应关系页面
 *Imput		:formName 表单名称	selectName1 参照下拉框名称	selectName2	目标下拉框名称	selectName3	源下拉框名称
 *Output	:
 *Date		:2004-10-12
 *Author	:huangp 
 */
function autoMatch(formName,selectName1,selectName2,selectName3){
	var tempBoolean = false;
	with(document.forms[formName]){
		for(var i=0;i<selectName1.length;i++){
				tempBoolean = false;
				for(var j=0;j<selectName3.length;j++){
					//alert(selectName1.options[i].text + "\n" + selectName3.options[j].text);
					if(selectName1.options[i].value == selectName3.options[j].value || selectName1.options[i].value == selectName3.options[j].text){
						selectName2.options[i] = new Option(selectName3.options[j].text,selectName3.options[j].value);
						tempBoolean = true;
						break;
					}
				}
				//doInsertBlank(formName,selectName2,"","");
				//doInsertBlank(selectName2);
				if(!tempBoolean){
					selectName2.options[i] = new Option("","");
				}
		}
		if(selectName2.options[selectName2.length-1].value=="")
		{
			selectName2.options[selectName2.length-1] = null;
		}
		selectName1.options[0].selected = true;
		selectName2.options[0].selected = true;
	}
	
}