/**
 * ?????????????????????????????????
 */ 
function MouseOver()
{
	var S=event.srcElement;
	while (S.tagName!="TD")
	{S=S.parentNode;}
	S.className="transfer";
}
/**
 * ?????????????????????????????????
 */ 
function MouseUp()
{
	var S=event.srcElement;
	while (S.tagName!="TD")
	{S=S.parentNode;}
	S.className="tdPaddingStyle";
}

function portableEvent(e){
   if(!e){
     return window.event;
   }else{
     return e;
   }
}
/**
 *获得事件背后的元素
 */
function getEventTarget(e){
  e=portableEvent(e);
  if(document.all){
     return e.srcElement;
  }else{
     return e.target;
  }
}

function MakeFull(){
	var args = MakeFull.arguments;
	var url = args[0];
	var name = "";
	if (args.length > 1){
		name = args[1];
	}
	var closeSelf = false;
	if (args.length > 2){
		closeSelf = args[2];
	}

    var width=1024;
    var height=735;
    if (screen.width == 800){
        width = 800;
        height = 570;
    }

    var win = window.open(url,name,'toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes');
	win.moveTo(0,0);
	win.resizeTo(width,height);
    win.focus();

	if (closeSelf)
		CloseWin();
}

function CloseWin(){
    var ua=navigator.userAgent;
    var ie=navigator.appName=="Microsoft Internet Explorer"?true:false;
    if(ie){
        var IEversion=parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE "))));
        if(IEversion< 5.5){
            var str  = '<object id=noTipClose classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">';
            str += '<param name="Command" value="Close"></object>';
            document.body.insertAdjacentHTML("beforeEnd", str);
            document.all.noTipClose.Click();
        } else{
            window.opener =null;
            window.close();
        }
    } else {
        window.close();
    }
}


function turnit(name, index, count){
	var currentTree = eval(name+index);
	
	if (currentTree.style.display=="none") {
		for (var i=1; i<=count; i++) {
			try{   
				var tree = eval(name+i);
				tree.style.display="none";
			} catch(e){
			}
		}
		currentTree.style.display="block";
	} else {
		currentTree.style.display="none"; 
	}
}

function MM_changeSearchBarStyle(bar) { 
    if ((obj=MM_findObj(bar))!=null) { 
  		if (obj.style.visibility == 'hidden'){
  		    obj.style.visibility = 'visible';
  		    obj.style.display = 'block';
  		} else {
  		    obj.style.visibility = 'hidden';
  		    obj.style.display = 'none';
  		}
    }
}

function MM_showHideLayers() { //v6.0
  showHiden(MM_showHideLayers.arguments);
}

function showHiden(args)
{
  var i,p,v,obj;
  for (i=0; i<(args.length-2); i+=3){
  	if ((obj=MM_findObj(args[i]))!=null) { 
  		v=args[i+2];
    	if (obj.style) { 
    		obj=obj.style; 
    		v=(v=='show')?'visible':(v=='hide')?'hidden':v; 
    	}
    	obj.visibility=v;     	
    }
  } 
}

function highlightButton(s) {
	if ("INPUT"==event.srcElement.tagName)
		event.srcElement.className=s;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; 
  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++){
    x.src=x.oSrc;
  }
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function popupCommonWindow(url)
{
	var name = '';
	if (popupCommonWindow.arguments.length > 1){
		name = popupCommonWindow.arguments[1];
	}

    var width = 500;
    var height = 600;
    if (popupCommonWindow.arguments.length > 2)
       width = popupCommonWindow.arguments[2];
    if (popupCommonWindow.arguments.length > 3)
       height = popupCommonWindow.arguments[3];
    
    var win = window.open(url, name, 'scrollbars=yes,width='+width+',height='+height+',status=no,resizable=yes,depended=yes');
	win.self.resizeTo(width, height);
	win.self.moveTo((screen.width-width)/2, (screen.height-height)/2);
	win.self.focus();
}

function popupCommonSelector(url){
	var name = '';
	if (popupCommonSelector.arguments.length > 1)
	{
		name = popupCommonSelector.arguments[1];
	}
	popupCommonWindow(url, name);
}

function popupMiniCommonSelector(){
    var args = popupMiniCommonSelector.arguments;
    
	var url = args[0];
	var top = 0;
	var left = 0;
	if (args.length>1){top=args[1];}
	if (args.length>2){left=args[2];}
	
    var selector = 0;
    if (selector&&(selector.closed)){
        selector.close();
    }    
	var selector= window.open(url, 'selector', 'scrollbars=yes,status=yes,resizable=yes,depended=yes,width=1,height=1,left=1000,top=1000');		
	selector.self.moveTo(top,left);
	selector.self.resizeTo(430,735);
    
}

function disableButton(){
    var args = disableButton.arguments;
    var formObjName = args[0];
    if (args.length >1){
       for (var i=1; i<args.length; i++){
         if (checkObjExist(formObjName, args[i])){
             var objName = args[i];
             document.forms[formObjName].elements[objName].disabled = true;
         }
       }
    }
}
 
function checkObjExist(formObjName, objName){
    var formObj = document.forms[formObjName];
    if (formObj.elements[objName] != "undefined") {
       return true;
    }else{
       return false;
    }
}
 
// TOGGLE OBJECT DISPLAY ==============
function toggleDisplay(objId) {

    if (document.all['mainTable'].height=='100%') {
        document.all['mainTable'].height='83%';
    }else{
        document.all['mainTable'].height='100%';
    }
    
	document.all[objId].style.display = (document.all[objId].style.display == "none") ? "block" : "none";
	if (document.all[objId + "_handle"]) {
		//alert(document.all[objId + "_handle"].src);
		var fullpath = document.all[objId + "_handle"].src;
		var filename = fullpath.substr(fullpath.lastIndexOf("/")+1, fullpath.length);
		
		switch (filename) {
			case "push_top.jpg":
				document.all[objId + "_handle"].src = fullpath.substr(0,fullpath.lastIndexOf("/")+1)+"pull_top.jpg";
				break;
			case "pull_top.jpg":
				document.all[objId + "_handle"].src = fullpath.substr(0,fullpath.lastIndexOf("/")+1)+"push_top.jpg";
				break;
			case "push_left.jpg":
				document.all[objId + "_handle"].src = fullpath.substr(0,fullpath.lastIndexOf("/")+1)+"pull_left.jpg";
				break;
			case "pull_left.jpg":
				document.all[objId + "_handle"].src = fullpath.substr(0,fullpath.lastIndexOf("/")+1)+"push_left.jpg";
				break;	
		}

	}
}

function toggleUnDisplay(objId) {
	document.all[objId].style.display = document.all[objId].style.display = "none" ;
}

//???????????????????????????????????????????????????????????????
var currClass="";
var swapClass="";
//????????????					
function swapOverTR(obj,objClass){
							
    if(objClass!="roll_down"){    	
	    currClass=objClass;
	    obj.className="highlight";
	    swapClass=objClass;
	}
}
//????????????
function swapOutTR(obj){
  if(obj.className!="roll_down"){
	obj.className=swapClass;
  }
}
/**
 * ??????????????????????????????TR??????onRowChange(this)??????
 * ??????????????????????????????????????????????????????checkbox ??????radio
 */
function onRowChange(event){    
    ele =  getEventTarget(event);
    var changed=true;
    if(null!=ele&&ele.tagName=="TD"){
       var firstChild = ele.parentNode.firstChild;
       if(firstChild.tagName!="TD"){
          firstChild=firstChild.nextSibling;
       }
       ele=firstChild.firstChild;
       while(((typeof ele.tagName)=="undefined")||ele.tagName!="INPUT"){
            ele=ele.nextSibling;
       }
       ele.checked = !ele.checked;
    }else if((ele.type=="checkbox")||(ele.type=="radio")){
    }else{
      changed=false;
    }
    //改变选定行的颜色
    if(null!=ele&&changed){
      if(typeof ele.onchange =="function"){
         ele.onchange();
      }      
      if(ele.type=="radio") return;
      changeTRColor(ele);
    }
}
/**
 * 改变选定单选框和复选框所在的行的颜色
 * 用法在checkbox或者radiobox中增加一个onchange
 */
function changeTRColor(box){
  if(box.checked){
     box.parentNode.parentNode.className="roll_down";
  }else{
     box.parentNode.parentNode.className="tableBrightColumnStyle";
  }
}
/**
 * modify by chaostone 2006-8-2
 * 将反选取消,改为全选或者全部取消
 */
function boxAction(box, action,event){
	var val = "";
	if (box){
		if (! box[0]){
			if (action == "selected"){
				return box.checked;
			} else if (action == "value"){
				if (box.checked)
					val = box.value;
			} else if (action == "toggle"){
				var srcElement = getEventTarget(event);
				box.checked = srcElement.checked;
				if(typeof box.onchange =="function"){
                  box.onchange();
                }
			}
		} else{
			for (var i=0; i<box.length; i++){
				if (action == "selected"){
					if (box[i].checked)
						return box[i].checked;
				} else if (action == "value"){
					if (box[i].checked){
						if (box[i].type == "radio"){
							val = box[i].value;
						} else if (box[i].type == "checkbox"){
							if (val != "")
								val = val + ",";	
							val = val + box[i].value;
						}
					}
				} else if (action == "toggle"){
				    var srcElement = getEventTarget(event);
					box[i].checked = srcElement.checked;
					if(typeof box[i].onchange =="function"){
                       box[i].onchange();
                    }
				}
			}
		}
	}

    if (action == "selected")
        return false;
	else
        return val;
}
/**
 * 根据点击选择框的选中状态，确定一批复选框的选中状态
 */
function checkboxSelected(chk){
	return boxAction(chk, "selected");
}

function getRadioValue(radio){
	return boxAction(radio, "value");
}
	
function getCheckBoxValue(chk){
	return boxAction(chk, "value");
}

function getCheckBoxRelativeValue(input, chkBox){
	var val = "";
	if (chkBox)
	{
		if (! chkBox[0])
		{
			if (chkBox.checked)
				val = input.value;
		} else
		{
			for (var i=0; i<chkBox.length; i++)
			{
				if (chkBox[i].checked)
				{
					if(val!="")
					{
					  val = val + ",";	
					}
					val = val + input[i].value;
					
				}
			}
		}
	}
	return val;
}

//
function toggleCheckBox(chk,event){
    boxAction(chk, "toggle",event);
}

function getAllOptionValue(select)
{
	var val = "";
	var options = select.options;
	for (var i=0; i<options.length; i++)
	{   
		if (val != "")
			val = val + ",";	
		val = val + options[i].value;
	}
	return val;
}

function getSelectedOptionValue(select)
{
	var val = "";
	var options = select.options;
	for (var i=0; i<options.length; i++)
	{   
		if (options[i].selected)
		{
			if (val != "")
				val = val + ",";	
			val = val + options[i].value;
		}
	}
	return val;
}

function hasOption(select, op){ 
	for (var i=0; i<select.length; i++ ){

    		if (select.options[i].value == op.value)
            return true;
    }    
	return false;
}

function clearSelectStatus(select){
    //CLEAR
    for (var i=0; i<select.length; i++)
        select.options[i].selected = false;
}

function appendSelectedOption(srcSelect, destSelect){ 
	for (var i=0; i<srcSelect.length; i++){
	   
		if (srcSelect.options[i].selected){ 
		 
			var op = srcSelect.options[i];
			if (hasOption(destSelect, op)){
			   window.alert("?????????????????????");
			}else{
			   destSelect.options[destSelect.length]= new Option(op.text, op.value);
			}
		 }
	 }
              
     clearSelectStatus(srcSelect);
}

function removeSelectedOption(select){
	var options = select.options;
	for (var i=options.length-1; i>=0; i--){   
		if (options[i].selected){  
			options[i] = null;
		}
	}
}

function moveSelectedOption(srcSelect, destSelect){
	for (var i=0; i<srcSelect.length; i++){
	   
		if (srcSelect.options[i].selected){ 
		 
			var op = srcSelect.options[i];
			if (!hasOption(destSelect, op)){
			   destSelect.options[destSelect.length]= new Option(op.text, op.value);
			}
		 }
	 }      
	 removeSelectedOption(srcSelect);   
     clearSelectStatus(srcSelect);
}

function unCheckAllBox(box){
     for (var i=0; i<box.length; i++){
           box[i].checked = false;
     }
}

function setSelectorIdAndDescriptions(){

   var args = setSelectorIdAndDescriptions.arguments;
   var ids = args[0]; 
   var descriptions = args[1];
   var idsTarget = args[2];
   var descriptionsTarget = args[3];
   
   var tempIds, tempDescriptions;
   
   if (args.length>4){
       if (args[4]=="join"){
          tempIds = joinIds(document.all[idsTarget].value, ids);
          tempDescriptions = joinNames(document.all[descriptionsTarget].value, descriptions);
       }
       if (args[4]=="reset"){
          tempIds = "";
          tempDescriptions = "";
       }
   } else {
       tempIds = ids;
       tempDescriptions = descriptions;
   }
   
   document.all[idsTarget].value = tempIds;
   document.all[descriptionsTarget].value = tempDescriptions;
}

/*?????????id????????????????????????*/
function joinIds(targetIds, joinIds){
   if (targetIds != ""){
       var tempIds = joinIds.split(",");
       var currentIds = "," + targetIds + ",";
       
       for (var i=0; i<tempIds.length; i++){
          if (!(currentIds.indexOf(tempIds[i]+",")>0)){
              currentIds = currentIds + tempIds[i] + ",";
          }
       }
       
       var ids = currentIds.split(",");
       var finalIds = ",";
       for (var i=0; i<ids.length; i++){
           if (ids[i]!=""){
              finalIds = finalIds + ids[i] + ",";
           }
       }
       return finalIds.substr(1, finalIds.length-2);
   } else {
       return joinIds;
   }
}

/*???????????????????????????????????????*/
function joinNames(targetNames, joinNames){
   if (targetNames!=""){
       var tempNames = joinNames.split(",");
       var currentNames = "," + targetNames + ",";
       
       for (var i=0; i<tempNames.length; i++){
          if (!(currentNames.indexOf(tempNames[i]+",")>0)){
              currentNames = currentNames + tempNames[i] + ",";
          }
       }
       
       var names = currentNames.split(",");
       var finalNames = ",";
       for (var i=0; i<names.length; i++){
          if (names[i]!=""){
              finalNames = finalNames + names[i] + ",";
          }
       }
       return finalNames.substr(1, finalNames.length-2);
   } else {
       return joinNames;
   }     
}

/*??????????????????????????????*/
function choiceTargetSelectorOption(selected, targetSelectorName){
    if (selected!=""){
        var targetSelector = document.all[targetSelectorName];
        for (var index=0; index<targetSelector.options.length; index++){
            if (targetSelector.options[index].value==selected){
                targetSelector.selectedIndex = index;
            }
        }
     }
}

/*??????radioBox*/
function choiceTargetRadioBox(selected, targetRadioName){
   if (selected != ""){
       var targetRadio=document.all[targetRadioName];
	   for(var i=0; i<targetRadio.length; i++){
	      if (targetRadio[i].value == selected){
	          targetRadio[i].checked=true;
	      }
	  }
   }
}
	/**
	 * 向form中添加一个input。
	 * @param form 要添加输入的form
	 * @param name input的名字
	 * @param value input的值
	 * @param type input的类型，默认为hidden
	 * @author chaostone 2006-4-7
	 */
	function addInput(form,name,value,type){
	     if(form[name]!=null){
	         //alert("[addInput]update:name:"+name+" value:"+value);
	         form[name].value=value;
	     }else{
	         if(null==type)
		         type="hidden";
	         var input=null;
	     	 if(document.all){
		     	 var inputHTML="<input name='"+name+"' value='"+ value+"' type='"+type+"'>";
			     input = document.createElement(inputHTML);
		     }else{
			     input = document.createElement('input');
			     input.name=name;
			     input.value=value;
			     input.type=type;
		     }
		     form.appendChild(input);
	         //alert("[addInput]create:name:"+name+" value:"+value);
	     }
	}
	function addHiddenInput(form,paramSeq){
	     var params = paramSeq.split("&");
	     for(var i=0;i<params.length;i++){
	         if(params[i]!=""){
	            var name = params[i].substr(0,params[i].indexOf("="));
	            var value =params[i].substr(params[i].indexOf("=")+1);
	            addInput(form,name,value,"hidden");
	         }
	     }
	}
	function addParamsInput(form,value){
		addInput(form,"params",value,"hidden");
	}
	function transferParams(from ,to,prefix,getEmpty){
	    if(getEmpty==null)
	      getEmpty=true;
	    //alert(getEmpty);
	    var params = getInputParams(from,prefix,getEmpty);
	    addHiddenInput(to,params);
	}
	/**
	 * 收集给定form中的input||select参数（不论input的类型）.<b> 
	 * @param form  
	 * @param prefix 指明所有input||select的前缀，如果没有前缀可以忽略 
	 * @param getEmpty 是否收集值为空的属性
	 * @return 返回参数列表串形如：&input1=...&input2=... 
	 * @author chaostone 2006-4-7 
	 * 
	 */
	function getInputParams(form,prefix,getEmpty){
	   var elems = form.elements;
	   var params = "";
	   if(null==getEmpty) getEmpty=true;

	    for(i =0;i < elems.length; i++){
	      if(elems[i].name!=""){
	          //alert(elems[i].tagName+":"+elems[i].value);	         
	          if((elems[i].value=="")&&(getEmpty==false)) continue;
	 	      if(null!=prefix){
	      	      if(elems[i].name.indexOf(prefix)==0&&elems[i].name.indexOf(".")>1){
	      	        if((elems[i].type=="radio" ||elems[i].type=="checkbox")&& elems[i].checked==false)
	      	        continue;
	      	      	params+="&" + elems[i].name + "=" + elems[i].value;
	      	      }
	      	  }
	      	  else{
     	        if((elems[i].type=="radio" ||elems[i].type=="checkbox")&& elems[i].checked==false)
	      	        continue;
	      	    params+="&" + elems[i].name + "=" + elems[i].value;
	      	  }	          
	      }
	    }
	    //alert("[getInputParams]:"+params);
	    return params;
	}
	/**
	 * 设定选择框中的选择项(单项)
	 */
	function setSelected(select,id){
	   //alert("setSelected:option:"+id);
	   for(var i=0;i<select.options.length;i++){
	       if(select.options[i].value==id){
    	       select.options[i].selected=true;
    	       //alert("get:"+select.options[i].value)
    	       break;
    	    }
	   }
	}
	/**
	 * 设定选择框中的选择项(多项)
	 */
	function setSelectedSeq(select,idSeq){
	   if(idSeq.indexOf(',')!=0){
     	   idSeq=","+idSeq;
       }
       if(idSeq.lastIndexOf(',')!=idSeq.length-1){
     	   idSeq=idSeq+",";
       }     
	   for(var i=0;i<select.options.length;i++){
	       if(idSeq.indexOf(','+select.options[i].value+',')!=-1)
    	       select.options[i].selected=true;
	   }
	}
	/**
	 * 跳转到指定页的简便方法
	 * @param form 要提交的表单
	 * @param pageNumber 跳到指定页码
	 */
	function submitWithPageNumber(form,pageNumber){
	    form.pageNumber.value=pageNumber;
	    form.submit();
	}
	function goToFirstPage(form){
        form.pageNumber.value=1;
	    form.submit();
	}
	function goToPage(form,pageNumber,pageSize,orderBy){
	  if((typeof form)!="object"){alert("[goToPage:]form is not well defined.");return;}
	  //form.method="post"; for avoid "method" input
      if(null!=pageNumber){
         addInput(form,"pageNumber",pageNumber,"hidden");
      }else{
          addInput(form,"pageNumber",1,"hidden");
      }
      if(null!=pageSize){
          addInput(form,"pageSize",pageSize,"hidden");
      }else{
          addInput(form,"pageSize","","hidden");
      }
      if(null!=orderBy&&orderBy!="null"){
         addInput(form,"orderBy",orderBy,"hidden");
      }else{
         addInput(form,"orderBy","","hidden");
      }
      //alert("in goToPage");   
      form.submit();
	}
    function goToPageWithSize(form,pageNumber,pageSize){
      if(null!=pageNumber)
          form.action +="&pageNumber=" + pageNumber;
      if(null!=pageSize)
          form.action +="&pageSize=" + pageSize;
      form.submit();
    }
    /* iframe 页面自适应大小
     * @targObj    iframe
     * @extraHight 
     */
	function f_frameStyleResize(targObj,extraHight){
		if(targObj.name!=""&&targObj.name!='rightFrame'){
	       var frames = targObj.parent.document.getElementsByName(targObj.name);
	       if(frames.length<1) return;
	       var targWin=frames[0];
 		   if(targWin != null) {
	 			var HeightValue = targObj.document.body.scrollHeight;	
	 			if(null==extraHight)
	 			    extraHight=0;		 		
 			    targWin.style.height = HeightValue+extraHight;
	 		}

	 		if(targObj.parent && targObj.parent.f_frameStyleResize)
	 			targObj.parent.f_frameStyleResize(targObj.parent);
	 	}
 	}
 		
	function frameResize(frameName){
 			var targWin =parent.document.all[frameName];
		    if(targWin != null) {
		 		var HeightValue = document.body.scrollHeight;
				targWin.style.pixelHeight = HeightValue;
		     }
 		}
      function selfAdaptHeight(iframe,extraHight){
 			if(iframe != null) {
 			var HeightValue = iframe.document.body.scrollHeight; 			
 			if(null==extraHight){
  			    iframe.style.pixelHeight = HeightValue;
  			}
  			else
    		    iframe.style.pixelHeight = HeightValue+extraHight;
 			}
 		}
	function isMultiId(str)
	{
		return str.indexOf(",")>0;
	}

    /**
     * 计算id串中,id的个数
     * added by chaostone 2006-7-16
     */
 	function countId(ids){
 	   if(""==ids) return 0;
       var length=1;
       if(isMultiId(ids)) {
          var regex =/,/g;
          var matchArray = new Array();
          matchArray = ids.match(regex);
          length=matchArray.length +1;
        }
        return length;
    }
    /**
     * 从form表单中，抽出含有指定前缀的输出参数，
     * 将其作为一个参数加入到to表单中。
     */
    function setSearchParams(from,to,prefix){
        var params=getInputParams(from,prefix,false);
        addInput(to,'params',params)
    }
    function ecodeParams(params){
       if(""==params)return "";
       else{
          var paramsPair=params.split("&");
          var newParams="";
          for(var i=0;i<paramsPair.length;i++){
             if(paramsPair[i]!=""){
                var eqIndex = paramsPair[i].indexOf("=");
                newParams+="&"+paramsPair[i].substr(0,eqIndex);
                if(-1!=eqIndex){
                   newParams+="=";
                   newParams+=escape(paramsPair[i].substr(eqIndex+1));
                }
             }
          }
          return newParams;
       }
    }
    function noScolling(targObj){
       
       var targWin = targObj.parent.document.all[targObj.name];
 	   alert(targObj.name)
 	   targWin.scrolling="no";
 	   
    }
    
    var setError;
    setError=function (msg){
        setOperationMessage("error",msg);
    }
    var setMessage;
    setMessage=function (msg){
        setOperationMessage("message",msg);
    }
    function setOperationMessage(divId,msg){
        if(""==msg) return;
        var errorDiv = $(msg);
        if(null==errorDiv){
           errorDiv=parent.document.getElementById(msg);
           if(null==errorDiv) alert(msg);
        }
        if(null!=errorDiv)
          errorDiv.innerHTML=msg;
    }
    /**
     * 返回多选列表中选择的值<br>
     * @return 多个值以,相隔.没有选中时,返回"" 
     */
    function getSelectIds(checkBoxName){
       return getCheckBoxValue(document.getElementsByName(checkBoxName));
    }
    /**
     * 返回单选列表中选择的值<br>
     * @return 没有选中时,返回""
     */
    function getSelectId(radioBoxName){
       return getRadioValue(document.getElementsByName(radioBoxName))
    }
    /**
     * 初始化排序表格<br>
     * 此函数主要是向已经待排序表格的列头1)添加鼠标事件响应和显示效果.
     * 2)负责将事件传递到用户定义的函数中.
     *
     * 凡是要排序的列,请注名排序单元格的id 和class.
     * 其中id是排序要传递的字段,class为定值tableHeaderSort.
     * 除此之外,用户(使用该方法的人)需要自定义一个钩子函数"sortBy(what)",以备调用.
     * @param tableId 待排序表格的id
     * @param rowIndex 标题行的位置 
     * @param orderBy orderBy 字句
     * 用法:
     *    <table>
     */
    function initSortTable(tableId,rowIndex,orderBy){
      var table= document.getElementById(tableId);
      if(null==rowIndex)
         rowIndex=0;
      var head=table.tBodies[0].rows[rowIndex];
      if(null==head){
        alert("sortTable ["+tableId+"] with out thead"); 
        return;
      }
      //alert(head.innerHTML);
      for(var i=0;i<head.cells.length;i++){
         if(head.cells[i].className=="tableHeaderSort"){
           
           if(head.cells[i].id){             
	           head.cells[i].onclick=sort;
	           head.cells[i].onmouseover=overSortTableHeader;
	           head.cells[i].onmouseout=outSortTableHeader;
	           head.cells[i].title="点击按 ["+head.cells[i].innerHTML+"] 排序";
	           if(head.cells[i].id!=null){
	               var desc=head.cells[i].id+" desc";
	               if(typeof head.cells[i].desc !="undefined"){
	                  desc=head.cells[i].desc;
	               }
	               if(orderBy.indexOf(desc)!=-1){
		              head.cells[i].className="tableHeaderSortDesc"
		              head.cells[i].innerHTML=head.cells[i].innerHTML+'<img src="pages/images/operation/sortDesc.gif"  style="border:0"  alt="Arrow" />'
		              continue;
		           }
                   var asc=head.cells[i].id+" asc";
	               if(typeof head.cells[i].asc !="undefined"){
	                  asc=head.cells[i].asc;
	               }
	               if(orderBy==asc){
		              head.cells[i].className="tableHeaderSortAsc"
		              head.cells[i].innerHTML=head.cells[i].innerHTML+'<img src="pages/images/operation/sortAsc.gif"  style="border:0"  alt="Arrow" />'
		              continue;
		           }
	           }
           }
         }
      }
      //alert("complete init sortTable");
    }
    //鼠标经过和移出排序表格的表头时
    function overSortTableHeader(){
        this.style.color='white';
        this.style.backgroundColor ='green'
    }
    function outSortTableHeader(){
       this.style.borderColor='';
       this.style.color='';
       this.style.backgroundColor ='';
    }
    function sort(){
       if(typeof orderBy !="function" ){
          alert("you haven't define orderBy function:\n function orderBy(what){\n...}");
          return;
       }
       var orderByStr=null;
       if(this.className=="tableHeaderSort"){
          if(typeof this.asc!="undefined"){
             orderByStr=this.asc;
          }
          else{
             orderByStr=this.id+" asc";
          }
       }else if(this.className=="tableHeaderSortAsc"){
          if(typeof this.desc!="undefined"){
             orderByStr=this.desc;
          }
          else{
             orderByStr=this.id+" desc";
          }
       }else{
          orderByStr="null";
       }
       //alert(orderByStr);
       orderBy(orderByStr);
    }
    
    /**
     * 提交要求含有id的表单
     * @param form 带提交的表单
     * @param id 要提交id的名称
     * @param isMulti(可选)是否允许多个id选择,默认支持一个
     * @param action (可选) 指定form的action
     */
    function submitId(form,id,isMulti,action,promptMsg){
       var selectId = getSelectIds(id);
       if(null==isMulti)
         isMulti=false;
       if(""==selectId){
          alert(isMulti?"请选择一个或多个进行操作":"请选择一个进行操作");
          return;
       }
       if(!isMulti&&isMultiId(selectId)){
          alert("请仅选择一个");
          return;
       }
       if(null!=action){
         form.action=action;
       }
       if(isMulti){
          addInput(form,id+'s',selectId,"hidden");
       }else{
          addInput(form,id,selectId,"hidden");
       }
       if(null!=promptMsg){
          if(!confirm(promptMsg))return;
       }
       form.submit();
    }
    /**
     * 自动伸展iframe
     */
    function adaptFrameSize(){
       f_frameStyleResize(self);
    }    