/*
   名字：Common.js
   功能：通用JavaScript脚本函数库
   包括：
		1.Trim(str)－－去除字符串两边的空格
		2.XMLEncode(str)－－对字符串进行XML编码
		3.ShowLabel(str,str)－－鼠标提示功能（显示字符，提示字符）
		4.IsEmpty(obj)－－验证输入框是否为空
		5.IsInt(objStr,sign,zero)－－验证是否为整数
		6.IsFloat(objStr,sign,zero)－－验证是否为浮点数
		7.IsEnLetter(objStr,size)－－验证是否为26个字母
		8.getCheckBoxValue(obj) -- 获取复选框的值
		9.getRadioButtonValue(obj)-- 获取单选框的值
		9.selectAllCheckBox(obj1, obj2) -- 根据obj1的状态选择obj2. obj2是checkbox控件数组
		10.getStrLen(str) -- 得到字符串长度(中文字符算两个)
    作者：申旺，kevin huang
    日期：2004/04/14
*/
function removeLastChar(vStr,vChar){
	/* 如果vStr的最后一个字符是vChar,则删除此字符 */
	var result = "";
	if (vStr.length==0 )
		return vStr;
	var c = vStr.substr(vStr.length-vChar.length,vStr.length);
	if (c==vChar){
		result = vStr.substr(0,vStr.length-vChar.length)
	}else{
		result = vStr;
	}
	return result;
}

function disableenter(){
	if(event.keyCode==13){
		return false;
	}
}
/*
==================================================================
LTrim(string):去除左边的空格
==================================================================
*/
function LTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);
    if (whitespace.indexOf(s.charAt(0)) != -1)
    {
        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
        {
            j++;
        }
        s = s.substring(j, i);
    }
    return s;
}
/*
==================================================================
RTrim(string):去除右边的空格
==================================================================
*/
function RTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);
    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {
            i--;
        }
        s = s.substring(0, i+1);
    }
    return s;
}
/*
==================================================================
Trim(string):去除前后空格
==================================================================
*/
function Trim(str)
{
    return RTrim(LTrim(str));
}
/*
================================================================================
XMLEncode(string):对字符串进行XML编码
================================================================================
*/
function XMLEncode(str)
{
       str=Trim(str);
       str=str.replace("&","&amp;");
       str=str.replace("<","&lt;");
       str=str.replace(">","&gt;");
       str=str.replace("'","&apos;");
       str=str.replace("\"","&quot;");
       return str;
}
/*
================================================================================
验证类函数
================================================================================
*/
function IsEmpty(obj)
{
    obj=document.getElementsByName(obj).item(0);
    if(Trim(obj.value)=="")
    {
        alert("字段不能为空。");
        if(obj.disabled==false && obj.readOnly==false)
        {
            obj.focus();
        }
    }
}

/*
	IsInt(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
	功能：判断是否为整数、正整数、负整数、正整数+0、负整数+0
*/
function IsInt(objStr,sign,zero)
{
    var reg;
    var bolzero;
    if(Trim(objStr)==""){
        return false;
    }
    else{
        objStr=objStr.toString();
	}

    if((sign==null)||(Trim(sign)=="")){
        sign="+-";
    }

    if((zero==null)||(Trim(zero)=="")){
        bolzero=false;
    }
    else{
        zero=zero.toString();
        if(zero=="0"){
            bolzero=true;
        }
        else{
            alert("检查是否包含0参数，只可为(空、0)");
        }
    }

    switch(sign){

        case "+-":	//整数            
            reg=/(^-?|^\+?)\d+$/;
            break;

        case "+":
            if(!bolzero) {	//正整数				
                reg=/^\+?[0-9]*[1-9][0-9]*$/;
            }
            else{	//正整数+0                
                //reg=/^\+?\d+$/;
                reg=/^\+?[0-9]*[0-9][0-9]*$/;
            }
            break;

        case "-":
            if(!bolzero) {	//负整数                
                reg=/^-[0-9]*[1-9][0-9]*$/;
            }
            else {	//负整数+0                
                //reg=/^-\d+$/;
                reg=/^-[0-9]*[0-9][0-9]*$/;
            }
            break;

        default:
            alert("检查符号参数，只可为(空、+、-)");
            return false;
            break;
    }

    var r=objStr.match(reg);
    if(r==null){
        return false;
    }
    else{
        return true;
    }
}



/*
	IsFloat(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
	功能：判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
*/

function IsFloat(objStr,sign,zero)
{
    var reg;
    var bolzero;
    if(Trim(objStr)=="")
    {
        return false;
    }
    else
    {
        objStr=objStr.toString();
    }

    if((sign==null)||(Trim(sign)==""))
    {
        sign="+-";
    }

    if((zero==null)||(Trim(zero)==""))
    {
        bolzero=false;
    }
    else
    {
        zero=zero.toString();
        if(zero=="0")
        {
            bolzero=true;
        }
        else
        {
            alert("检查是否包含0参数，只可为(空、0)");
        }
    }

    switch(sign)
    {
        case "+-":
            //浮点数
            reg=/^((-?|\+?)\d+)(\.\d+)?$/;
            break;
        case "+":
            if(!bolzero)
            {
                //正浮点数
                reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                //正浮点数+0
                reg=/^\+?\d+(\.\d+)?$/;
            }
            break;
        case "-":
            if(!bolzero)
            {
                //负浮点数
                reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                //负浮点数+0
                reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
            }
            break;
        default:
            alert("检查符号参数，只可为(空、+、-)");
            return false;
            break;
    }

    var r=objStr.match(reg);
    if(r==null)
        return false;
    else
        return true;
}

/*
	获取复选框内的值,多值以“|”分开。
	为了以防万一，特别做了控件的类型检查
*/
function getCheckBoxValue(obj){
	if(obj == null)
		return "";
	var result = "";
	if(obj.length == null){
		if(obj.type == 'checkbox' && obj.checked)
			result = obj.value;
	}
	else{
		for(var i=0; i<obj.length; i++){
			if(obj[i].type == 'checkbox' && obj[i].checked){				
				if(result == "") result = obj[i].value;
				else result += "|" + obj[i].value;
			}
		}
	}
	return result;
}

/*
	获取RadioButton的值
	为了以防万一，特别做了控件的类型检查
*/
function getRadioButtonValue(obj){
	if(obj == null)
		return "";
	var result = "";
	if(obj.length == null){
		if(obj.type == 'radio' && obj.checked)
			result = obj.value;
	}
	else{
		for(var i=0; i<obj.length; i++){
			if(obj[i].type == 'radio' && obj[i].checked){
				result = obj[i].value;
				break;
			}
		}
	}
	return result;
}

/*
	obj1 为全选框，obj2 为其余的复选框
	为了以防万一，特别做了控件的类型检查
	如果复选框有设置事件处理方法，则同时调用其事件处理方法
*/
/*
function selectAll2(obj1, obj2) {
	if(obj1 == null || obj2 == null)
		return;
	if(obj2.length == null){
		if(obj2.type != 'checkbox')	return;
		obj2.checked = obj1.checked;
		if(obj2.onclick)	obj2.onclick();
		return;
	}
	var isChecked = (obj1.length == null && obj1.checked) || (obj1.length > 1 && obj1[1].checked);
	for(var i=0; i<obj2.length; i++){
		if(obj2[i].type == 'checkbox'){
			obj2[i].checked = isChecked;
			if(obj2[i].onclick)	obj2[i].onclick();
		}
	}	   
}*/

/*
	obj1 为全选框，obj2 为其余的复选框
	如果复选框有设置事件处理方法，则同时调用其事件处理方法
*/
function selectAllCheckBox(obj1, obj2) {
	if(obj1 == null || obj2 == null)
		return;
	if(obj2.length == null){
		if(obj2.type != 'checkbox')	return;
		obj2.checked = obj1.checked;
		if(obj2.onclick)	obj2.onclick();
		return;
	}
	for(var i=0; i<obj2.length; i++){
		if(obj2[i].type == 'checkbox'){
			obj2[i].checked = obj1.checked;
			if(obj2[i].onclick)	obj2[i].onclick();
		}
	}
	   
}

/*
	得到字符串的字节数(中文为两个字节)
*/
function getStrLen(str) {
	var len = 0;
	for (var i=0;i<str.length;i++){
		if (str.charCodeAt(i)>255) len+=2; 
		else len++;
	}
	return len;
}

/*
	为指定url打开新窗口
	无工具栏，菜单栏，滚动条，地址栏，状态栏，不可resize，位于左上角(10,10)处
*/
function openWin(url){
	var iHeight = screen.availHeight-200;
	var feature = "left=10,top=10,fullscreen=0,width=700,height=" + iHeight +
    	",toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no"
	window.open(address,"_blank",feature);
	return false;
}
function openwindow1(url,w,h, t){
	var sh=screen.availHeight;
	var sw=screen.availWidth;
	if (!w) w=sw*3/4;
	if (!h) h=sh*3/4
	var mode='toolbar=no,location=no,directions=no,status=no,menubar=no,scrollbars=yes,revisable=no,resizable=yes,';
	var size='width='+w+',height='+h+',top='+(sh-h)/2+',left='+(sw-w)/2+'';
	if (t == undefined || t==null)
		t = "";	
	return window.open(url,t,mode+size);
}
/*
	提供地址/名称/大小等参数,在屏幕中间打开窗口
*/
function openFixWin(address, winname, height, width, scrollbars) {
	var iHeight = height;
	var iWidth = width;
	var iLeft = (screen.width - iWidth)/2;
	var iTop = (screen.height- iHeight)/2;
	var iScrollbars = scrollbars;
	if(iScrollbars == null || iScrollbars=="") iScrollbars = "yes";
	var feature = "left="+iLeft+",top="+iTop+",fullscreen=0,width= " + iWidth + ",height=" + iHeight +
    	",toolbar=no, menubar=no, scrollbars=" + iScrollbars + ", resizable=no, location=no, status=no"
	var win =window.open(address,winname,feature);	
	win.focus();
	return win;
}

/*
	打开业务表单窗口
*/
function openDomainFormWin(url, winName){
	var feature = "left=" + (screen.width - 800)/2 + ",top=100,width=800,height=600,resizable=yes,scrollbars=no";
	var win = window.open(url, winName, feature);
	return win;
}

/*
	打开组织机构树窗口
*/
function openTree(fieldIds,fieldNames){	
	var win;
	if (win!=null) win.close();
	var selectedNodes = document.forms[0].elements[fieldIds].value;
	//alert("selectNodes:" + selectedNodes);
	win = openFixWin("orgTree_new.jsp?fieldIds=" + fieldIds + "&fieldNames=" + fieldNames + "&selectedNodes=" + selectedNodes,"_atDetailTree",540,360,"no");
	win.focus();
	return true;
}
function openTree_zzy(fieldIds,fieldNames){	
	var win;
	if (win!=null) win.close();
	var selectedNodes = document.forms[0].elements[fieldIds].value;
	//alert("selectNodes:" + selectedNodes);
	win = openFixWin("orgTree_zzy.jsp?fieldIds=" + fieldIds + "&fieldNames=" + fieldNames + "&selectedNodes=" + selectedNodes,"_atDetailTree",540,360,"no");
	win.focus();
	return true;
}

/*
	清除组织机构树的选择域
*/
function doClear(fieldIds,fieldNames) {
	var namesField_show = fieldNames + "_show";
	document.forms[0].elements[fieldIds].value = "";
	document.forms[0].elements[fieldNames].value = "";
	document.forms[0].elements[namesField_show].value = "";
}

/*
	为指定url打开模式对话框
*/
function openModalDlg(url,varName,height,width){
	var feature = "dialogHeight:" + height + "px;dialogWidth:" + width+"px; " +			
			"center:yes; resizable:no; scroll:no; help:no; status:no";
	var result = window.showModalDialog(url,varName,feature);
	return result;
}

/*
	Change Cell Content - By SiC/CYAN
*/
function switchCell(n, hash) {
	nc=document.getElementsByName("navcell");
	if(nc){
		t=document.getElementsByName("tb")
		for(i=0;i<nc.length;i++){
			nc.item(i).className="tab-off";
			t.item(i).className="hide-table";
		}
		nc.item(n-1).className="tab-on";
		t.item(n-1).className="tab-content show-table";
	}else if(navcell){
		for(i=0;i<navcell.length;i++){
			navcell[i].className="tab-off";
			tb[i].className="hide-table";
		}
		navcell[n-1].className="tab-on";
		tb[n-1].className="tab-content show-table";
	}
	if(hash){
		document.location="#"+hash;
	}
}

/*	
	加入收藏夹
*/
function addFavorite(strHref){
	//strHref = top.location.href;
	window.external.AddFavorite(strHref,'合强行政审批系统')
}

/*
	设为首页
*/
function setHome(obj,strHref){
	//var strHref=top.location.href;
	obj.style.behavior='url(#default#homepage)';
	obj.setHomePage(strHref);
}

function onObjMore(url,name,height,width) {
	var feature = "dialogWidth:"+width+"px;dialogHeight:"+height+"px;scroll:yes;status:no;help:no;center:1";
	var returnTarget = window.showModalDialog(url, name, feature);
	if(returnTarget != undefined && returnTarget.length > 1) {
		document.location = returnTarget;
	}
	return false;
}

/*
	鼠标移到对象颜色变化,,
	本系统为table的tr中用<tr onMouseOver="mouseOver(this)" onMouseOut="mouseOut(this)">
*/
function mouseOver(obj){
	var kids = obj.childNodes;
	for (var i=0;i<kids.length;i++){
		kids[i].style.backgroundColor = "#CCCC99";
		kids[i].style.color = "#FF3300";
	}
}
function mouseOut(obj){
	var kids = obj.childNodes;
	for (var i=0;i<kids.length;i++){
		kids[i].style.backgroundColor = "#FFFFFF";
		kids[i].style.color = "#000000";
	}
}

/*
	取得当前日期,按照"-年-月-日"格式排列
*/
function getFullDate() {
	var d = new Date();
	var year = d.getFullYear() + "年";
	var month = d.getMonth() + 1;
	var date = d.getDate() + "日";
	var weekday = "";

	switch(d.getDay()) {
		case 0:
			weekday = "星期天";break;
		case 1:
			weekday = "星期一";break;
		case 2:
			weekday = "星期二";break;
		case 3:
			weekday = "星期三";break;
		case 4:
			weekday = "星期四";break;
		case 5:
			weekday = "星期五";break;
		case 6:
			weekday = "星期六";
	}
	//str = year + month + "月" + date + "&nbsp;" + weekday;
	var strFullDate = year + month + "月" + date;
	return strFullDate;
}

/*
	使用透明帧显示忙信息，并屏蔽用户操作
*/
function showBusyMsg(msg){
	window.document.all.MsgText.innerHTML = msg;
	window.document.all.BusyMsg.style.display = "";
	window.document.all.BusyDiv.style.display = "";
}

/*
	关闭透明帧
*/
function closeBusyMsg(){
	window.document.all.BusyMsg.style.display = "none";
	window.document.all.BusyDiv.style.display = "none";
}

/*
	鼠标移过当前行时触发，传入对象为当前行tr
*/

function trMouseOver(obj){
	var id = obj.id.replace("row", "ckb");
	var objCkb = document.getElementById(id);
	if(objCkb == null || !objCkb.checked){
	//if(!document.getElementById(id).checked){
	    obj.className = "tableBodyHover";
	}
}

/*
	鼠标移出当前行时触发，传入对象为当前行tr
*/
function trMouseOut(obj){
	var id = obj.id.replace("row", "ckb");
	var objCkb = document.getElementById(id);
	if(objCkb == null || !objCkb.checked){
	//if(!document.getElementById(id).checked){
	    var index = id.substring(3, id.length);
	    if(index%2 == 0)
	    	obj.className = "tableBody";
	    else
	    	obj.className = "tableBody2"
	}
}

/*
	选择当前行时触发，传入对象为复选框
*/
function selectOne(obj){
	var tr = obj.parentNode.parentNode;
	if(obj.checked){
		tr.className="tableBodySelected";
	}
	else{
		var index = obj.id.substring(3, obj.id.length);
	    if(index%2 != 0)
		    tr.className="tableBody";
	    else
	    	tr.className="tableBody2";
	}
}

/*
	选择当前行时触发，传入对象为复选框,用于需要在一个页面中的两个区域都实现黑白效果
*/
function selectOne2(obj){
	var tr = obj.parentNode.parentNode;
	if(obj.checked){
		tr.className="tableBodySelected";
	}
	else{
		var index = obj.id.substring(3, obj.id.length);
	    if(index%2 != 0)
		    tr.className="tableBody";
	    else
	    	tr.className="tableBody2";
	}
}
	
/*
	鼠标移过当前行时触发，传入对象为当前行tr,用于需要在一个页面中的两个区域都实现黑白效果
*/
function trMouseOver2(obj){
	var id = obj.id.replace("rrow", "rckb");
	if(document.getElementById(id)==null || !document.getElementById(id).checked){
	    obj.className = "tableBodyHover";
	}
}
	
/*
	鼠标移出当前行时触发，传入对象为当前行tr,用于需要在一个页面中的两个区域都实现黑白效果
*/
function trMouseOut2(obj){
	var id = obj.id.replace("rrow", "rckb");
	if(document.getElementById(id)==null || !document.getElementById(id).checked){
	    var index = id.substring(4, id.length);
	    if(index%2 != 0)
	    	obj.className = "tableBody";
	    else
	    	obj.className = "tableBody2"
	}

}
/*
查看表单
*/
function viewForm(lczbh, lczt){
	var feature = "left=" + (screen.width - 750)/2 + ",top=100,width=750,height=600,resizable=yes,scrollbars=no";
	window.open("../test/viewForm.jsp?lczbh=" + lczbh + "&lczt=" + lczt, "form", feature);
	return false;
}
/*
 * 过滤特殊字符
 * 2005.06.28
 */
function checkchars(str)
{
	if(str.indexOf(",")>=0 || str.indexOf(";")>=0 || 
	   str.indexOf("%")>=0 || str.indexOf("_")>=0 ||
	   str.indexOf("<")>=0 || str.indexOf(">")>=0 ||
	   str.indexOf("\'")>=0 || str.indexOf("\"")>=0 ||
	   str.indexOf("\\")>=0 || str.indexOf("/")>=0 ||
	   str.indexOf("|")>=0 || str.indexOf("#")>=0)
		return false;
	else
		return true;
}

