/* 取得字符串的字节长度 */
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;
}

/* 检测字符串是否为空 */
function isnull(str){
	var i;
	for (i=0;i<str.length;i++){
	  if (str.charAt(i)!=' ') return false;
	}
	 return true;
}

/* 检测字符串是否全为数字 */
function isnumber(str){
	var number_chars = "1234567890";
	var i;
	for (i=0;i<str.length;i++){
		if (number_chars.indexOf(str.charAt(i))==-1) return false;
	}
	return true;
}

function chkEmail(str){ 
	var i,flag=0; 
	var at_symbol=0; 
	//“@”检测的位置 
	var dot_symbol=0; 
	//“.”检测的位置 

	for (i=1;i<str.length;i++) 
	  if(str.charAt(i)=='@'){ 
	    at_symbol=i; 
    	break; 
	    } 
	//检测“@”的位置 

	if(at_symbol==str.length-1 || at_symbol==0) 
	  return(2); 
	//没有邮件服务器域名 

	if(at_symbol<3) 
	  return(3); 
	//帐号少于三个字符 

	if(at_symbol>19 ) 
	  return(4); 
	//帐号多于十九个字符 

	for(i=1;i<at_symbol;i++) 
	  if(char_test(str.charAt(i))==0 && spchar_test(str.charAt(i))==0) 
    	return (5); 
	for(i=at_symbol+1;i>str.length;i++) 
	  if(char_test(str.charAt(i))==0 && spchar_test(str.charAt(i))==0) 
	    return (5); 
	//不能用其它的特殊字符    
    
	for(i=at_symbol+1;i<str.length;i++) 
	  if(str.charAt(i)=='.') dot_symbol=i; 
	for(i=at_symbol+1;i>str.length;i++)  
	  if(dot_symbol==0 || dot_symbol==str.length-1) 
	//简单的检测有没有“.”，以确定服务器名是否合法 
	  return (6); 
	   
	return (0);  
	//邮件名合法 
} 



/* 检测指定文本框输入是否合法 */
function verifyInput(input){
	var image;
	var i;
	var error = false;
	/* 长度校验 */
	if (strlen(input.value)>parseInt(input.maxsize)){
		alert("Maximum length of "+input.caption+" is "+input.maxsize);
		error = true;
	}
	else
	/* 非空校验 */
	if (input.nullable==0&&isnull(input.value)){
		alert(input.caption+" is required");
		error = true;
	}
	else
	{
		/* 数据类型校验 */
		switch(input.datatype){
			case "number": 
				if (isnumber(input.value)==false){
					alert(input.caption+" is ought to a NUMBER");
					error = true;
				}
				break;
			case "email": 
				if (chkEmail(input.value)!=0){
					alert("Incorrect email format");
					error = true;
				}
				break;
			/* 在这里可以添加多个自定义数据类型的校验判断 */
			/*  case datatype1: ... ; break;        */
			/*  case datatype2: ... ; break;        */
			/*  ....................................*/
			default		: break;
		}
	}

	/* 根据有无错误设置或取消警示标志 */
	if (error){
		//image = document.getElementById("img_"+input.name);
		//image.src="img/warning.gif";
		return false;
	}
	else
	{
		//image = document.getElementById("img_"+input.name);
		//image.src="img/space.gif";
		return true;
	}
}

/* 检测指定FORM表单所有应被检测的元素
（那些具有自定义属性的元素）是否合法，此函数用于表单的onsubmit事件 */
function verifyAll(myform){
	var i;
	for (i=0;i<myform.elements.length;i++){
		/* 非自定义属性的元素不予理睬 */
		if (myform.elements[i].caption+""=="undefined") continue;
		/* 校验当前元素 */
		if (verifyInput(myform.elements[i])==false){
			myform.elements[i].focus();
			return false;
		}
	}
	return true;
}


function checkAll(eChk){
	var a = document.getElementsByName(eChk);
  	var n = a.length;
  	for (var i=0; i<n; i++){
  		a[i].checked = window.event.srcElement.checked;
	}
}

function chkDelete(eChk){
	var a = document.getElementsByName(eChk);
  	var n = a.length;
	var isselected=0;
  	for (var i=0; i<n; i++){
  		if(a[i].checked==true)isselected++;
	}
	if(isselected==0){
		alert('No item(s) selected');
		return false;
	}

	var prt;
	prt=confirm('Are you sure to Do Operation '+isselected+' selected item(s)?');
	if(!prt){
		return false;
	}
	else
	{
	return true;
	}
}