/* *********************************************************************************
' * 文件名:common.js
' * 作者:蔡华锋 caihf@forlink
' * 版权所有:JSP空间网 2004-2005
' * 建立日期:2004-6-1
' * 最后修改:
' * 修改人:
' * 功能:网站通用函数
' *********************************************************************************/

var isIE = (document.all) ? true : false;
var isNS = (document.layers) ? true : false;

/**
 * 功能:看信息函数
 * 调用示例:onClick="viewNews('view.asp', 1156,'02','self',true);return(false);"
 * 参数:url:文件名如view.asp
        id:信息id号
        cat:当前信息所在的分类cat号
		target:打开新窗口时在指定target内显示指定的信息;如果不是打开新窗口，则一般target的值为self或top
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 * ' cat == ""时主要用在文件msearch_list.asp文件中，因为它是网内搜索模块，每条信息具体属于哪一个类还需要查询
 */
function viewNews(url, nid, cat, target, blnSelf)
{
	var winProp = "";
	var finUrl = ""
	winProp  =  "toolbar = no, location = no, scrollbars = yes, resizable = yes,"
	winProp +=	"menubar = no, width = 500, height = 500, left = 0, top = 0"
	finUrl = url + "?nid=" + nid + "&cat=" + cat;
    if (url == "" || nid == "") return;
	if (blnSelf)
	{
		/* eval("top.window.location.href = url" + id); */
		var temp = eval("window." + target);
	    temp.location.href = finUrl;
	} else {
        /* window.open(finUrl, target, winProp); */
		window.open(finUrl);
	}
}

/**
 * 功能:判断是否是电话号码
 * 参数:tel,要进行判断的字符串
 * 返回值:true or false
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function checkTel(tel)
{
    var i,j,strTemp;
    strTemp = "01157980909-()# ";
    for (i = 0; i < tel.length; i++)
    {
        j = strTemp.indexOf(tel.charAt(i));    
        if (j == -1)
        {
        //说明有字符不合法
		    alert("电话号码只能使用0~9的数字及-、()、及＃号!");
			return false;
        }
    }
    //说明合法
    return true;
} 

/**
 * 功能:判断是否是数字
 * 参数:checkStr,要进行判断的字符串
 * 返回值:true or false
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function isInteger(checkStr)
{
    var checkOK = "01157980909";
    for (i = 0;  i < checkStr.length;  i++)
    {
        ch = checkStr.charAt(i);
        for (j = 0;  j < checkOK.length;  j++)
	    {
            if (ch == checkOK.charAt(j))
            break;
            //j==checkOK.length说明checkStr中的至少有一个字符不合法
        	//一个字符不合法意味着所有字符都不合法
        	//因为只有循环完了checkOK以后j才等于checkOK.length
  	    }
    	if (j == checkOK.length)
        {
	        //alert("你输入的是非法字符,必须输入数字!")
     	    return false;
        }
    }	
    return true;
}

/**
 * 功能:判断单个字符是否是数字
 * 参数:cCheck,要进行判断的字符串
 * 返回值:true or false
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function isDigit(cCheck) 
{
	return (('0' <= cCheck) && (cCheck <= '9'));
}

/**
 * 功能:判断单个字符是否是字母
 * 参数:cCheck,要进行判断的字符串
 * 返回值:true or false
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function isAlpha(cCheck) //判断是否是字母
{
    return ((('a' <= cCheck) && (cCheck <= 'z')) || (('A' <= cCheck) && (cCheck <= 'Z')))
}


/**
 * 功能:判断字符串的长度是否在指定的长度内,用两种方式校验均可即strLen(参数)==false或用!strLen(参数)均可
 * 参数:inputChar,要进行判断的字符串
        minValue:字符串的最小长度
		maxValue:字符串的最大长度
 * 返回值:true or false
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function strLen(inputChar, minValue, maxValue) {
    return ((minValue <= inputChar.length) && (inputChar.length <= maxValue));
}

/**
 * 功能:计算字符串字节的长度
 * 参数:str,要进行计算的字符串
 * 返回值:字符串的长度
 * 建立日期:2004-10-3
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function stringLen(str, minValue, maxValue)
{
    var len = 0;
	if (str == "" || str == null) return len;
	for (var i = 0; i < str.length; i++)
	{
		var code = str.charCodeAt(i);
		if (code >= 255)
			len += 2;
		else
		    len ++;
	}
	return ((minValue <= len) && (len <= maxValue));
}
//str = "JSP空间网forlinkJSP空间网在线";
//document.write(str + "'s length is: " + stringLen(str) + "<br>\n");
//JSP空间网forlinkJSP空间网在线's length is: 23

/**
 * 功能:判断是否是有效的字符
 * 参数:checkStr,要进行判断的字符串
 * 返回值:true or false
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function isValidStr(checkStr)
{
    for (var i = 0; i < checkStr.length; i++)
    {
        cCheck = checkStr.charAt(i);
	    if (!(isDigit(cCheck) || isAlpha(cCheck)|| cCheck=='-' || cCheck=='.'|| cCheck=='*'))
		{
	        alert("只能使用字母、数字、-、.,并且不能使用中文");
	        return false;
	    }
   }	  
   return true;	
}

function isValidStr2(checkStr)
{
    for (var i = 0; i < checkStr.length; i++)
    {
        cCheck = checkStr.charAt(i);
	    if (!(isDigit(cCheck) || isAlpha(cCheck)|| cCheck=='\\'))
		{
	        alert("只能使用字母、数字、并且不能使用中文");
	        return false;
	    }
   }	  
   return true;	
}

function isS404(checkStr)
{
    for (var i = 0; i < checkStr.length; i++)
    {
        cCheck = checkStr.charAt(i);
	    if (!(isDigit(cCheck) || isAlpha(cCheck)|| cCheck=='.'|| cCheck=='/'))
		{
	        alert("只能使用字母、数字、并且不能使用中文 格式为:/404.htm 或 /500.jsp");
	        return false;
	    }
   }	  
   return true;	
}
function isSindex(checkStr)
{
    for (var i = 0; i < checkStr.length; i++)
    {
        cCheck = checkStr.charAt(i);
	    if (!(isDigit(cCheck) || isAlpha(cCheck)|| cCheck=='.'|| cCheck==','))
		{
	        alert("只能使用字母、数字、并且不能使用中文 格式为:index.htm,index.jsp 中间用逗号分开!");
	        return false;
	    }
   }	  
   return true;	
}

function isValidStr3(checkStr)
{
    for (var i = 0; i < checkStr.length; i++)
    {
        cCheck = checkStr.charAt(i);
	    if (!(isDigit(cCheck) || isAlpha(cCheck)))
		{
	        alert("数据库名称只能使用字母、数字组合,不能包含特殊字符!");
	        return false;
	    }
   }	  
   return true;	
}
/**
 * 功能:判断是否是指定的字符
 * 参数:tempFile,要进行判断的字符串
 * 返回值:true or false
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function isValidFileName(tempFile)
{
    for(var nIndex=0; nIndex<tempFile.length; nIndex++){
        var cCheck = tempFile.charAt(nIndex);
        if(!(isDigit(cCheck) || isAlpha(cCheck)|| cCheck=='-' || cCheck=='_')){
            alert("图片文件名只能使用字母、数字、-、_,并且不能使用中文,否则不能正确显示!");
            return false;
        }
    } 
    return true;	
}

/**
 * 功能:过滤指定的非法符号
 * 参数:checkStr,要进行判断的字符串
 * 返回值:true or false
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function filterStr(checkStr)
{
    var validStr="`~!@#$%^&*()+|=[]{};':,.\\/\"<>? ";
    for(var i = 0; i < validStr.length; i++)
    {
        cCheck = validStr.charAt(i);
	    if ((checkStr.indexOf(cCheck)) != -1)
	    {
	   	    alert("你输入的是非法字符,可以使用中文、字母、_、-和数字!");
		    return false;
		    break;
	    }	  
    }
    return true; 	  	
}

/**
 * 功能:过滤指定的非法符号
 * 参数:checkStr,要进行判断的字符串
 * 返回值:true or false
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function filterStr1(checkStr)
{
    var validStr="`~$^&*|={}':\\/\"<> ";
    for(var i=0;i<validStr.length;i++)
    {
        cCheck=validStr.charAt(i);
	    if((checkStr.indexOf(cCheck))!=-1)
	    {
	   	    alert("你输入的内容里面含有非法字符,请重新输入!");
		    return false;
		    break;
        }	  
    }	 
    return true;  	
}
	
/**
 * 功能:判断email地址的正确性
 * 参数:emailadd,要进行判断的email地址
 * 返回值:true or false
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function isEmail(emailadd) 
{   
     //emailadd为输入的email地址的值
    if(emailadd != ""){
          var temp="";
  	      var eCheck=emailadd.split(".");//以"."为分界符对@后的字符进行拆分与检测
		  //拆分以后eCheck就变成了数组,且数组的长度不能小于2
		  if(eCheck.length<2) 
		  {
		    alert("email地址格式不对!");
		    return false;
   	      }	
		  if(eCheck[1].length<2)
		  {
		    alert("email地址格式不对!");
			return false;
   	      }	
		  if(emailadd.indexOf(".")==-1)
		  {
		    alert("email地址中必须含有'.'号");
			return false;
 		  }
		  var index1 = emailadd.indexOf(".");
		  var index2 = emailadd.indexOf("@");
		  if(index1 == index2 + 1)
		 {
			  alert("对不起,\".\"不可能在紧靠在\"@\"之后，请重新输入！");
			  return false;
		 }
		  var templength=emailadd.length-1;
		  if(emailadd.indexOf(".")==0 || emailadd.lastIndexOf(".")==templength)
		  {
		    alert("email地址中'.'号不能在开头或结尾!!");
			return false;
          }  
		   if(emailadd.indexOf("@")==0 || emailadd.lastIndexOf("@")==templength)
		  {
		    alert("email地址中'@'号不能在开头或结尾!!");
			return false;
          }  
          for(var nIndex=0; nIndex<emailadd.length; nIndex++){
            var cCheck = emailadd.charAt(nIndex);
            if(cCheck=='@') temp="verify";
            if(!(isDigit(cCheck) || isAlpha(cCheck)|| cCheck=='-' || cCheck=='_' || cCheck=='.' || cCheck=='@' )){
             	alert("邮件地址只能使用字母、数字、-、_、.、@，并且不能使用中文");
 	            return false;
	            }
         }
        if(temp!="verify"){
            alert("邮件地址无效,\n邮件地址中必须含有'@'号各'.'号!");
	   	    return false;
          }
		//if(emailadd.indexOf(".",  
        }else{
	  alert("邮件地址不能为空,请输入邮件地址");
  	  return false;
	}
  return true;	
}

/**
 * 功能:打开新窗口
 * 参数:url:要打开窗口的地址
       width:窗口的高度
	   height:窗口的宽度
	   left:窗口离左边的距离
	   top:窗口离右边的距离
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function newWindow(url, width, height, left, top)
{
    window.open(url, "newwin", "toolbar=no,location=no,scrollbars=yes,resizable=yes,menubar=no,width="+width+",height="+height+",left="+left+",top="+top);
}

/**
 * 功能:去掉字符串的首尾空格
 * 参数:str:要进行处理的字符串
 * 返回值:处理后的字符串
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function trimString(str)
{
    var i,j;

    if (str == "") return "";

    for (i = 0; i < str.length; i++)
        if(str.charAt(i) != ' ') break;

    if(i >= str.length) return "";

    for(j = str.length - 1; j >= 0; j--)
        if (str.charAt(j) != ' ') break;

    return str.substring(i, j+1);
}

/**
 * 功能:将HTML中的特殊字符替换成代码
 * 参数:str:要进行处理的字符串
 * 返回值:字符串替换后的结果
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function forHtmlSpecialChars(str) { 
    str = strReplace(str, "&", "&amp;");
    str = strReplace(str, "\"", "&quot;");
    str = strReplace(str, "<", "&lt;");
    str = strReplace(str, ">", "&gt;");
    str = strReplace(str, "%20", " ");
    return str;
}

/**
 * 功能:字符串替换
 * 参数:str:要进行处理的字符串
       :str1:查找到的字符串
	   :str2:替换成的字符串
 * 返回值:字符串替换后的结果
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function strReplace(str, str1, str2) { //将str中的所有str1替换城str2
    while(str.search(str1) > -1)
        str = str.replace(str1, str2);
   return str;
}

/**
 * 功能:查看新闻时打开新窗口
 * 参数:url:url地址
        id:新闻id号
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function view_news1(url, id){
	window.open(url+"?id="+id,"_blank","height=500,width=720,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,top=0,left=0");
}

/**
 * 功能:查看新闻时打开新窗口
 * 参数:url:url地址
        id:新闻id号
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function view_news(url, id)
{
    window.open(url + "?id=" + id, "winNews");
}

/**
 * 功能:增加减少选项函数, 将sel1中的选项移动到sel2中,同时清除已经移到sel2下拉框中的选项,sel1中的选项会逐渐减少,sel2中的选项会逐渐增多
 * 参数:sel1, sel2是选项的全名称，如sel1可用this.form.select1代替
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function changeOption(sel1, sel2)
{
    var i, j, k, s2length;
    var b = 0;
    var indexarr = new Array();
    if (sel1.selectedIndex != -1) { /* 判断是否有选项被选择 */
        for (i=0; i<sel1.length; i++)
        //for(i=0,j=0;i<form.select1.length;i++)
        {
            //if(form.select1.selectedIndex==i) {
	        if (sel1.options[i].selected) {
	            //用上面两种方法都可以实现判断哪一个被选择了
        	    s2length = sel2.length;
				var flag = true;
				for (k = 0; k < s2length; k++) {
					/* 说明下拉框sel2中的某一项的值与选项sel1中的值相等，不再重复添加 */
					if (sel2.options[k].value == sel1.options[i].value) { 
						flag = false;
					    break;
					}
				}

                /*如果下拉框sel2中的某一项的值与下拉框sel1当前所选择的选项不相等,则在sel2中增加sel1中选中的选项*/
                if (flag) {
	                sel2.options[s2length] = new Option(sel1.options[i].text, sel1.options[i].value);
                    //把已选择的索引的值保存在数组中
				}

	            indexarr[b] = i; /* 只有某个选项被选中以后，才把它的索引号保存在数组中 */
      	        b++;
            }
			
        	//如果选择了几个选项,则b的值为几
        	//form.select2.options[j]=new Option(form.select1.options[form.select1.selectedIndex].value,form.select1.options[form.select1.se
            //j++;
        	//上面不能用j做为选项的索引,因为增加完选项(即函数执行完以后j就消失了,起不到保存的作用)
        	//而select2的长度是不会消失的
        	//document.write(j);
        }

        //清空已增加到右边的选项
        for (var c = 0; c < b; c++) {
            //alert("b:"+b);
            //alert(""+[indexarr[c]-c]+"");
            sel1.options[indexarr[c] - c] = null;
	       //上面一行中必须要减去c,
	       //假设选择了刘玉栋,许晴与苏瑾
    	   //则indexarr[0]=0,indexarr[1]=4,indexarr[2]=5,分别为所选择元素的索引
	       //即第1,5,6个选项
	       //当点增加按钮时,首先c=0;即时indexarr[c]-c=0-0=0,即索引为0的选项被清空,即第一个选项
    	   //由于循环是一项一项进行,当第一个选项清空以后,就只有5个选项了,此时许晴变成了第4个选项
	       //此时indexarr[c]-c=5-2=3,即索引为3的选项被清空,即第4个选项许晴被清空
	       //其它的以此类推
       }
    }
    else alert("请选择要添加或删除的选项!");
}

/**
 *功能:select下拉框中的选项向上移动函数,一次只能移动一个位置，至少需要两个选项才能执行
 *参数:需要进行移动的选项的全名称，如document.all.sel2或this.form.sel2(此是sel2必须在<form>...</form>中间才能够用此参数
 *返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function moveUp(form) {
    if (form.length <2 ) return; /* 至少需要两个选项才能执行 */
	for (var i = 0; i < form.length; i++) {
	    if (i > 0 && form.options[i].selected) {
		    var text  = form.options[i - 1].text;
			var value = form.options[i - 1].value;
		    form.options[i - 1] = new Option(form.options[i].text, form.options[i].value);
            form.options[i] = new Option(text, value);
			form.options[i - 1].selected = true; /* 把移到当前位置的选项选中 */
			break;
		}
	}
}

/**
 * 功能:select下拉框中的选项向下移动函数,一次只能移动一个位置，至少需要两个选项才能执行
 * 调用示例:onclick="moveDown(this.form.leftid)";无eval时参数不要用引号引起来,且form参数可以用简称
 * 参数:需要进行移动的选项的全名称，如document.all.sel2或this.form.sel2(此时sel2必须在<form>...</form>中间才能够用此参数
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function moveDown(form) {
    if (form.length < 2) return; /* 至少需要两个选项才能执行 */
	for (var i = 0; i < form.length; i++) {
	    if (i < form.length - 1 && form.options[i].selected) {
		    //alert("i:" + i);
		    var text  = form.options[i + 1].text;
			var value = form.options[i + 1].value;
		    form.options[i + 1] = new Option(form.options[i].text, form.options[i].value);
            form.options[i] = new Option(text, value);
			form.options[i + 1].selected = true; /* 把移到当前位置的选项选中 */
			break; /* 此处必须用break中止循环，否则会一直向下移动到最后一项 */
		}
	}
}

/**
 * 功能:得到某一下拉框中各个选项的值，并用","号把它们连接起来,并把它们保存在一个隐藏框，供提交时使用
        调用selectAll('document.frmcustom', 'rightid', 'hdnrightid');
        有eval时一般需要把参数用引号引起来,且form参数不能用简称
 * 参数:表单的名称:下拉框的名称
       :sel:下拉框的名称
	   :hdn:隐藏框的名称
 * 返回值:得到各选项的值
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function selectAll(form, sel, hdn) {
	var whichSel;
    var tempID = "";
	var temp;
	whichSel = eval(form + "." + sel);
    for (var i = 0; i < whichSel.length; i++){  
        if (whichSel.options[i] != -1) {
            whichSel.options[i].selected = true;
            tempID += (tempID == "") ? whichSel.options[i].value : "," + whichSel.options[i].value; 
        }
		//alert("test");
	}
    var temp = eval(form + "." + hdn);
	temp.value = tempID
    tempID = "";
	//alert(tempID);
}

/**
 * 功能:得到同名或非同名(非同名时名称一般需要有一定的规律， 如module1,module2,module3等，这样好进行判断)
   调用示例:getCheckValue('document.form1', 'menu', 'savemenuid');
   有eval时一般需要把参数用引号引起来,且form参数不能用简称
 * 复选框的值，并用","号把它们连接起来,并把它们保存在一个隐藏框，供提交时使用
 * 参数:表单的名称:下拉框的名称
       :chk:选择框的名称
	   :hdn:隐藏框的名称
 * 返回值:得到所选择的选择框的值
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function getCheckValue(form, chk, hdn) {
    var tempID = "";
	var temp;
	var element = eval(form + ".elements");
    for (var i=0; i < element.length; i++)
    {
        var e = element[i];
        if (e.checked && e.type.toLowerCase() == "checkbox" && e.name.indexOf(chk) != -1) {
			tempID += (tempID == "") ? e.value : "," + e.value; 
		}
    }
    var temp = eval(form + "." + hdn);
	temp.value = tempID
}

/**
 * 功能:全选指定名称的复选框,调用示例为onclick="checkAll('document.form1', 'menu', 'chkmenu')"
        调用示例:onclick="checkAll('document.form1', 'menu', 'chkmenu')";
        有eval时一般需要把参数用引号引起来,且form参数不能用简称
 * 参数:form:表单的名称
      :chk:选择框的名称
	  :obj:执行全选操作的对象
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function checkAll(form, chk, obj)
{
	var element = eval(form + ".elements");
    for (var i=0; i < element.length; i++)
    {
        var e = element[i];
        if (e.name != obj && e.type.toLowerCase() == "checkbox" && e.name.indexOf(chk) != -1) {
			var temp = eval(form + "." + obj)
            e.checked = temp.checked;
		}
    }
}

/**
 * 功能:设置某一个表单中hidden型的字段的值为指定的值，按照某一列进行排序(升序或降序)
   调用示例:setOrder('document.frmorder', 'field', 'Stat_Datetime', 'method');
   有eval时一般需要把参数用引号引起来,且form参数不能用简称
 * 复选框的值，并用","号把它们连接起来,并把它们保存在一个隐藏框，供提交时使用
 * 参数:   
   参数field1一般是要进行排序的字段的hidden表单的名称如field,value1为它的值,如Stat_Datetime
   参数field2一般是对指定字段的排序方法的hidden表单的名称,如method
 * 返回值:得到所选择的选择框的值
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function setOrder(form, field1, value1, field2) 
{
	/*alert("test");*/
    var obj1;
	var obj2;
	var obj1 = eval(form + "." + field1);
	var obj2 = eval(form + "." + field2);
    obj1.value = value1;
	if (obj2.value == "DESC") {
		obj2.value = "ASC";
	} else {
		obj2.value = "DESC";
	}
	var objFrm = eval(form);
	objFrm.submit(); /* 提交表单 */
	/*document.frmorder.submit();
	alert("test2");*/
}

/**
 * 功能:根据文件路径得到文件名
 * 参数:文件全路径如d:\mysite\1.jpg
 * 返回值:得到"\"后的文件名，如1.jpg
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function getFileName(fullPath)
{ 
	var temp;
    if (fullPath == "" || fullPath == null) return ""; 
    if (fullPath != ""){
	    var temp = fullPath.substring(fullPath.lastIndexOf("\\") + 1)
		//alert("temp:" + temp);
		return temp;
	}
    else
        return "";
}

/**
 * 功能:选择文件函数
 * 参数:form(需要得到值的表单名称)， onclick="selectFile('document.frmmodule.menuurl.value')"
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function selectFile(form) {
	var newWin;
	newWin = window.open("about:blank", "winFile", "toolbar = 0, menubar=0, width = 300, height = 150");
	with (newWin.document) {
		writeln("<html>");
		writeln("<head>");
		writeln("<title>选择文件</title>");
		writeln("<link rel=\"stylesheet\" href=\"module.asp\" type=\"text/css\">");
		writeln("</head>");
		writeln("<body>");
		writeln("<form>");
		writeln("<input type = \"file\" name=\"file\">");
		writeln("<br><br>");
		writeln("<input type = \"button\" name = \"btnsel\" value = \"确定\" onclick = \"opener." + form + "= opener.getFileName(this.form.file.value);window.close();\" class = \"btn\">");
		writeln("<input type = \"button\" name = \"btncancel\" value = \"取消\" onclick=\"window.close()\" class = \"btn\">");
		writeln("</form>");
		writeln("</body>");
		writeln("</html>");
	}
	//alert(form);
	return;
}

/**
 * 功能:设置内容的可见与不可见
 * 参数:itemID(HTML元素的id值)， onclick="selectFile('document.frmmodule.menuurl.value')"
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function setDisplay(itemId)
{
    //display=="none"表示不显示,=""表示显示
    if(itemId.style.display == "none")
    {  
        itemId.style.display = "";
    }
    else
    {
	   itemId.style.display = "none";
    }
}

/**
 * 功能:字体放大与缩小
 * 参数:字体大小的值,如12, 14, 16
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function doZoom(size)
{
    document.getElementById('zoom').style.fontSize = size + 'px';
}
	
/**
 * 功能:实现文章及其它内容的打印
 * 参数:无
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function doPrint(){
    var str = "<html>";
	var article;
	var strFontSize = '【<A href="javascript:doZoom(16)">大</A> <A href="javascript:doZoom(14)">中</A> <A href="javascript:doZoom(12)">小</A>】'
	var strdoPrint = "doPrint()";
	//var bgColor = document.bgColor;
	/* use fix white color */
	var bgColor = "#FFFFFF";
	var css;

	css="<style>"
	+"body{font-family:宋体}"
	+"td,.f12{font-size:14.8px}"
	+".f24 {font-size:24px;}"
	+".f14 {font-size:14px;}"
	+".title14 {font-size:14px;line-height:130%}"
	+".l17 {line-height:170%;}"
	+"</style>";
	str += css;
	str +=	'<meta http-equiv="content-type" content="text/html; charset=gb2312">';
	str +=	'<title>' + document.title + '</title>';
	str +=	"<body topmargin=5 leftmargin=5 marginheight=5 marginwidth=5 onLoad='window.print()' bgcolor='" + bgColor + "'>";
	str +=	"<center><table width=760 border=0 cellspacing=0 cellpadding=0><tr><td height=34 align=center><a href='javascript:history.back()'>返回</a>　<a href='javascript:window.print()'>打印</a></td></tr></table>";
	str +=	"<table width=760 border=0 cellpadding=0 cellspacing=20><tr><td class='font14'>";
		
	article = document.getElementById('article').innerHTML;
	str += article;
	str += "<div align=center>" + window.location.href + "</div>";
	str +=	"</td></tr></table></center>";
	str +=	"</body></html>";
	document.write(str);
	document.close();
}
 
/**
 * 功能:用cookie实现颜色方案
 * 参数:无
 * 返回值:无
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function RCk(name,dclr){
	var arg=name+"="
	var ck=document.cookie
	if (ck.indexOf(arg)!=-1){
		var vstr=ck.indexOf(arg)+arg.length
		if (ck.indexOf(";",vstr)==-1) var vend=ck.length
		else var vend=ck.indexOf(";",vstr)
		return ck.substring(vstr,vend)
	}else return dclr
}

/**
 * 功能:实现页面自动刷新
 * 参数:second:自动刷新的时间间隔
 * 返回值:无
 * 建立日期:2004-8-31
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function autoRefresh(second)
{
    window.location.reload();
    setTimeout("autoRefresh()", second * 1000);
}

/* 定义日期变量 */
var now = new Date();

/**
 * 功能：根据指定的参数得到指定的下拉框
 * 输入参数：name:下拉框的名称;
        defaultValue:缺少值，如选择日期等，一般是一个空选项;
		fromNum:select开始值;
		toNum:结束值;
		op:如果下拉框中的某一项的值与op相等，则此选项被选中;
 * 返回值：一个下拉框的字符串
 * 建立日期:2004-6-1
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */

function getSelect(name, defaultValue, fromNum, toNum, op)
{
    var str = "";
    if (name != "") str += "<select name=\"" + name + "\">\n";
	if (defaultValue != "") str += "<option value=''>" + defaultValue + "</option>\n";
	for (var i = fromNum; i <= toNum; i++)
	{
	    str += "<option value=\"" + i + "\"";
    	if (i == op)
	        str += " selected";
		str += ">" + i + "</option>\n";
	}
	if (name != "") str += "</select>\n";
	return str;
}

/**
 * 功能:得到地址栏目url地址后的文件名
 *      如输入http://192.168.10.26:1234/for-online/html/200407/200407221710363.html
 *      则函数的返回值为200407221710363.html,即使文件后面带上参数，则返回值也不含有
 *      参数
 * 参数:无
 * 返回值:文件名
 * 建立日期:2004-8-4
 * 作者:蔡华锋
 * 最后修改:
 * 修改人:
 */
function getFilename()
{
    var filename = "";
    var url = "";
	var search = "";
	var pos1 = 0;
	var pos2 = 0;
    url = document.URL;
	var search = document.location.search;
	/* in url have not \ */
    if (url.indexOf("\\") == -1)
	{
	    pos1 = url.lastIndexOf("/");
	}
	else
	{
	    pos1 = url.lastIndexOf("\\");
	}

	/* in url have not ? */
    if (url.indexOf("?") == -1)
	{
	    pos2 = url.length;
	}
	else
	{
	    pos2 = url.lastIndexOf("?");
	}
    filename = url.substring(pos1 + 1, pos2);
    return filename;
}

function redirectHttps()
{
    var protocol = window.location.protocol.toString();
    var url = document.URL;
    if (protocol == "http:")
    {
        var newUrl = "https://" + url.substr(7);
        window.location.href = newUrl;
    }
}

function redirectHttp()
{
    var protocol = window.location.protocol.toString();
    var url = document.URL;
    if (protocol == "https:")
    {
        var newUrl = "http://" + url.substr(8);
        window.location.href = newUrl;
    }
}
