//控制checkbox全选/清除
function selectCheck(checkAll,maxlen,arrName,formName){
  A=checkAll.checked;
  if(A){
    selectAll(maxlen,arrName,formName);
  }else{
    cleaAll(maxlen,arrName,formName);
  }
}
function selectAll(maxlen,arrName,formName)
{
	var B=maxlen.value;
	var i=0;
	if (B!=null)
	{
		for (i=0;i<B;i++)
		{
			C=eval("document."+formName+"."+arrName+i);
                        C.checked=true;
		}
	}

}
function cleaAll(maxlen,arrName,formName)
{
	var B=maxlen.value;
	var i=0;
	if (B!=null)
	{
		for (i=0;i<B;i++)
		{
			C=eval("document."+formName+"."+arrName+i);
                        C.checked=false;
		}
	}

}
/**
*	更改所有的checkbox的显示状态：全部选中/不选
*	itemName:checkbox的名称
*	checked:要变成的状态
*/
function changBoxStatus(itemName,checked){
		
	var selecters = document.getElementsByName(itemName);
	for (i=0; i<selecters.length; i++){
		if (selecters[i].type == "checkbox"){
            selecters[i].checked= checked;
		}
	}
}

/**
*校验字符串是否符合自定义正则表达式
*str 要校验的字串  pat 自定义的正则表达式
*返回值：
*如果字串符合，校验通过，           返回true
*如果字串不符合，                   返回false    参考提示信息：必须满足***模式
*/

function checkMask(str,pat){

    var pattern = new RegExp(pat,"gi");
    if (pattern.test(str)){
       return true;
    } else{
        return false;
   }
}

//判断是否为整数
function checkNumber(number,checktip){
	var mask="^[0-9]+$";
	
 	if(checkMask(number,mask)){
 		return true;
 	}else{
 		if(checktip!=undefined)
 		{
 			alert(checktip+"必须为整数!");
 		}
	 	return false;
 	}
}

//去除左侧空格   
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;
} 

//去除右侧空格
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;
}

//去左右空格
function Trim(str)
{
    return RTrim(LTrim(str));
}

//过滤空格
function formatTrim(str){
	document.getElementById(str).value=Trim(document.getElementById(str).value);
}



/* 取得字符串的字节长度 */
function strlen(str)
{
	var i;
	var len;
	len = 0;
	for (i=0;i<str.length;i++)
	{
		if (str.charCodeAt(i)>255) len+=2; else len++;
	}
	return len;
}

/*
* @todo 中文截取
*/
function substr(s,nStart,nEnd)
{
//实际长度
var reg =/[^\x00-\xff]/g ; 
var sSize=s.replace(reg,'aa').length;

var i=0; //记数
var j=nStart;//开始位置

var nLen = sSize;//结束位置
if(nLen>nEnd){
	nLen=nEnd;
}

while(i<nLen){

	if(s.charCodeAt(j)>256) //返回指定下标字符编码，大于265表示是中文字符
	{ i = i+2 } //是中文字符，那计数增加2
	else
	{ i = i+1 } //是英文字符，那计数增加1

	j+=1;

}

if(i>nLen){
	j-=1;
}

var result = s.substring(nStart,j);

if(j<s.length){
	return result+'...';

}
return result;
}



	Function.prototype.bind = function () {
		var $A = function (a) {
			return a ? Array.apply(null, a) : new Array;
		};
		var obj = this, a = $A(arguments), o = a.shift();
		return function () {
			obj.apply(o, a.concat($A(arguments)));
		};
	};
	
	
	/* 向页面table 中td 显示字符串进行格式化输出，控制显示长度以及注册点击事件
	*  调用方式如下：
	*	
	*
	*/
	function writeStrToTableField(str,length,parentID,ClickHanderObject,isHref){
		var str2 = substr(str,0,length);
		var htmlSpan = document.createElement('span');
		if(ClickHanderObject!=undefined){ 
			if (typeof ClickHanderObject.funcName != "function") {
				alert("函数调用失败，设置的onclik事件句柄不是一个有效的函数！");
				return;
			}
			htmlSpan.attachEvent("onclick",ClickHanderObject.funcName.bind(htmlSpan, ClickHanderObject.args));
		}
		if(strlen(str)>length){
			htmlSpan.title=str;
		}
		if(isHref == 1){
			htmlSpan.innerHTML="<a  href='#' >"+str2+"</a>";
		}else{
			htmlSpan.innerHTML=str2;
		}
		document.getElementById(parentID).appendChild(htmlSpan);
		
}


// ?????checkbox
// name :??????checkbox?name??
function checkAll(name)
{
 var ids = document.getElementsByName(name);
 for(var i=0;i<ids.length;i++)
 {
  if(ids[i].checked)
  {
   ids[i].checked = false;
  }
  else
  {
  ids[i].checked = true;
  }
 }
}


/*
??checkbox???????
???? 1???????
       2?????????
       0??????
 name:??????checkbox?name??
*/
function getCheckFlag(name)
{
	 var names = document.getElementsByName(name)
	 var j=0;
	 //alert(names.length)
	 for(var i=0;i<names.length;i++)
	 {
		  if(names[i].checked && !names[i].disabled)
		  {
		  j++;
		  }
	 }
	 if(j==0)
	 {
	  alert("请选择对象");
	  return  0;
	 }
	 else if(j>1)
	 {
	  return 2;
	 }
	 else
	 {
	 return 1;
	 }
}
/*
 *设置按钮短时失效
 *<input type="button" value="hello" onclick="alert('hello'); setBtnBrevityDisable(this )">
 *<input type="button" value="hello" onclick="alert('hello'); setBtnBrevityDisable(this，5000 )">
 */
function setBtnBrevityDisable(bt , time){
	if(time == undefined){
		time = 3000;
	}
	bt.disabled = true;	
	window.setTimeout(function(bu){bt.disabled = false},time);
}

/** 
 * checkBox全选 、全不选
 * @param totalBoxId 全选的checkbox的id
 * @param boxName 循环多个checkbox的name
 * <input type="checkbox" id="allDicBox" value="all" onClick="selectAllCheckBox('allDicBox','ids');"/>
 */
 function selectAllCheckBox(totalBoxId,boxName){
	var totalBox = document.getElementById(totalBoxId);
	var boxes = document.getElementsByName(boxName);
	
	for(var i=0;i < boxes.length;i++){
			boxes[i].checked=totalBox.checked;
	}
}

/** 
 * checkBox全选 、全不选
 * @param totalBoxId 全选的checkbox的id
 * @param boxName 循环多个checkbox的name
 * <input type="checkbox" id="allDicBox" value="all" onClick="chkBoxChangeAll('allDicBox','ids');"/>
 */
 function chkBoxChangeAll(totalBoxId,boxName){
	var totalBox = document.getElementById(totalBoxId);
	var boxes = document.getElementsByName(boxName);
	
	for(var i=0;i < boxes.length;i++){
			boxes[i].checked=totalBox.checked;
	}
}
/** 
 * checkBox是否选中。如果所有的单选框都没选中，提示用户需要进行选择再进行执行。
 * @param boxName 循环多个checkbox的name
 * if(!chkBoxSeldOneIs('ids')){
		alert("请选择需要被删除的字典项！");
		return;
	}
 */
 function chkBoxSeldOneIs(boxName){
	var boxes = document.getElementsByName(boxName);
	
	var destCheckIs = false;
	for(var i=0;i < boxes.length;i++)
	{
		destCheckIs = boxes[i].checked;
		if(destCheckIs)
		{
			break;
		}	
	}
	return destCheckIs;
}

/** 
 * checkBox是否选中。如果所有的单选框都没选中，提示用户需要进行选择再进行执行。
 * 有选中 返回 true；否则 返回 false；
 * @param boxName 循环多个checkbox的name
 * chkBoxSeldOneIs('ids',"请选择需要被删除的字典项！");
 */
 function chkBoxSeldOneIs(boxName,msg){
	var boxes = document.getElementsByName(boxName);
	
	var destCheckIs = false;
	for(var i=0;i < boxes.length;i++)
	{
		destCheckIs = boxes[i].checked;
		if(destCheckIs)
		{
			break;
		}	
	}
	
	if(undifined != msg){
		if(!destCheckIs){
			alert(msg);
		}
	}
	return destCheckIs;
}

/** 
 * checkBox修改单个状态。如果某个单选框不选中，那么总体的那个checkbox 自动不选中；如果所有的单选框都选中，总体的checkbox自动选中。
 * @param totalBoxId 全选的checkbox的id
 * @param boxName 循环多个checkbox的name
 * @param checkIs 单个checkbox是否选中 
 * <input type="checkbox" name="ids" value="${sysDic.id}" onClick="selectSingleCheckBox('allDicBox','ids',this.checked);"/>
 */
 function selectSingleCheckBox(totalBoxId,boxName,checkIs){
	var totalBox = document.getElementById(totalBoxId);
	var boxes = document.getElementsByName(boxName);
	
	if(totalBox.checked)
	{
		totalBox.checked = checkIs;
	}else{
		var destCheckIs = false;
		for(var i=0;i < boxes.length;i++)
		{
			destCheckIs = boxes[i].checked;
			if(!destCheckIs)
			{
				break;
			}	
		}
		totalBox.checked = destCheckIs;
	}
}

/** 
 * checkBox是否选中。如果所有的单选框都没选中，提示用户需要进行选择再进行执行。
 * @param boxName 循环多个checkbox的name
 * if(!singleCheckBoxCheckedIs('ids')){
		alert("请选择需要被删除的字典项！");
		return;
	}
 */
 function singleCheckBoxCheckedIs(boxName){
	var boxes = document.getElementsByName(boxName);
	
	var destCheckIs = false;
	for(var i=0;i < boxes.length;i++)
	{
		destCheckIs = boxes[i].checked;
		if(destCheckIs)
		{
			break;
		}	
	}
	return destCheckIs;
}


//检查radio是否选中
 function hasRadioChecked(radioName, errorMsg)
{
	var rdo = document.getElementsByName(radioName);
	for (var i = 0;i < rdo.length ;i++ )
	{
		if (rdo[i].checked)
		{
			return true;
		}
		
	}
	if(errorMsg!=undefined){
		alert(errorMsg);
	}
	return false;
}

/** 
 * checkBox是否选中。如果所有的单选框都没选中，提示信息。
 * @param checkBoxName 循环多个checkbox的name
 * @param errorMsg 如果没有被选中的提示信息 
 * if(!singleCheckBoxCheckedIs('ids')){
		alert("请选择需要被删除的字典项！");
		return;
	}
 */
function hasCheckBoxChecked(checkBoxName, errorMsg)
{
	if(!singleCheckBoxCheckedIs(checkBoxName)){
		if(errorMsg!=undefined){
			alert(errorMsg);
		}
		return false;
	}else
	{
		return true;
	}
}
//检查select是否选中
function hasOptionSelected(selectName, errorMsg)
{
	var select = document.getElementsByName(selectName);
	for (var i = 0;i < select.length ;i++ )
	{
		if (select[i].selected && (trim(select[i].value).length > 0))
		{
			return true;
		}
	}
	if(errorMsg!=undefined){
		alert(errorMsg);
	}
	return false;
}

