/**
 * <p>File: CommonMethod.js</p>
 * <p>Description: 通用javascript方法的包装</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * @version 1.0 2004-6-12
 */
 
 
/**
 * 显示弹出窗口，注意调用此函数的页面必须放在Web Content的一级子目录下面
 * @param title 标题
 * @param info 提示信息
 * @param info 弹出窗口的类型：ok,info,err
 * @return void  
 */
function confirm(info){	
    var Args = new Array("操作询问",info);
	var locationURL = "/common/Confirm.jsp";
    var x=window.showModalDialog(locationURL,Args,"dialogWidth=420px;dialogHeight=190px;resizable:no;scroll:no;status:no");
    return x;
}
 
/**
 * 显示弹出窗口，注意调用此函数的页面必须放在Web Content的一级子目录下面
 * @param title 标题
 * @param info 提示信息
 * @param info 弹出窗口的类型：ok,info,err
 * @return void  
 */
function showMessage(title,info,type){
	
    //var Args = new Array(title,info,type);
    //var locationURL = "/common/Message.jsp";
    //window.showModalDialog(locationURL,Args,"dialogWidth=420px;dialogHeight=190px;resizable:no;scroll:no;status:no");
    alert(info);
}

/**
 * 弹出新浏览器窗口
 * @param filename 页面的url
 * @param width 新窗口的宽度
 * @param height 新窗口的高度
 * @return void  
 */
function openWnd(filename, width, height)
{		
	window.open(filename,"_blank","location=yes,resizable=yes,toolbar=yes,scrollbars=yes,directories=yes,menubar=yes,width="+width+",height="+height+"\"");
}

/**
 * 弹出新浏览器窗口，宽度为固定宽度800,高度为固定高度600
 * @param filename 页面的url
 * @return void  
 */
function openWndB(filename)
{		
	window.open(filename,"_blank","location=yes,resizable=yes,toolbar=yes,scrollbars=yes,directories=yes,menubar=yes,width=800,height=600,top=20,left=20");
}

/**
 * 弹出新浏览器窗口 宽度为固定宽度800,高度为固定高度600
 * @param filename 页面的url
 * @return void  
 */
function openWndA(filename)
{		
	window.open(filename,"_blank","location=no,resizable=yes,toolbar=no,scrollbars=yes,directories=no,menubar=no,width=830,height=600");
}

/**
 * 获取当前页面的根路径
 * @return  返回当前页面的根路径
 */
function getUrlRoot()
{
	var url = document.URL;
	var array = url.split("//");
	var sPrefix = array[0];
	var sRoot = array[1];
	array = sRoot.split("/");
	sRoot = sPrefix + "//";
	for(var i = 0; i < 2; i++)
		sRoot += array[i] + "/";
	return sRoot;
}

/**
 * 清除页面的文本框和下拉选择框的属性，注意文本框的名字必须以txt开头，下拉选择框的名字必须以sel开头
 * @return  void
 */
function clearItems(){
	var i;
	for(i=0;i<document.forms[0].elements.length;i++){
		var obj=document.forms[0].elements[i];
		if(obj.disabled==false){
			if(obj.name.indexOf("txt")==0){
				obj.value="";
			}
			if(obj.name.indexOf("sel")==0){
				obj.options[0].selected=true;
			}
		}
	}
}

/**
 * 全选或反选指定的一组checkBox
 * @param obj 全选的控件，类型为span
 * @param name 一组checkBox的名字的前缀，该组checkBox的名字的前缀必须为name
 * @return void  
 */
function checkAll(obj,name){
	var bf;
	if(obj.innerText=="全选"){
		bf=true;
		obj.innerText="清空";
	}
	else{
		bf=false;
		obj.innerText="全选";
	}
	var i;
	for(i=0;i<document.forms[0].elements.length;i++){
		var obj=document.forms[0].elements[i];
		if(obj.name.indexOf(name)==0&&obj.disabled==false){
			obj.checked=bf;
		}		
	}
}

/**
 * 检查文本框的值是否在strTemp字符串中所指定的字符
 * @param obj 文本框控件
 * @param strTemp 标准字符串
 * @return 如果发现有非法字符，则返回true,否则返回false  
 */
function check(obj,strTemp){		
	var str=obj.value;
	var len=str.length;
	var bf=false;
	var t="";
	var n=0;
	for(i=0;i<len;i++){
		if(strTemp.indexOf(str.charAt(i))<0){			
			bf=true;
		}		
		else{
			t+=str.charAt(i);
		}
	}
	if(bf){
		showMessage("信息提示","只能输入下列字符:"+strTemp+"！","info");
		obj.value=t;
	}	
	obj.focus();
	return bf;
}

/**
 * 检查文本框的值是否包含"字符
 * @param obj 文本框控件
 * @return 如果发现包含了"字符，则返回true,否则返回false  
 */
function checkChar(obj){	
	var str=obj.value;
	var len=str.length;
	var bf=false;
	var t="";
	var n=0;
	for(i=0;i<len;i++){
		if(str.charAt(i)=='\"'){			
			bf=true;
		}		
		else{
			t+=str.charAt(i);
		}
	}
	if(bf){
		showMessage("信息提示","不能输入字符\"！","info");
		obj.value=t;
	}	
	obj.focus();
	return bf;
}

/**
 * 检查文本框的值是否为数字和小数点
 * @param obj 文本框控件
 * @return 如果发现包含了非法字符，则返回true,否则返回false  
 */
function checkInputNumber(obj){
	var strTemp="0123456789.";
	var str=obj.value;
	var len=str.length;
	var bf=false;
	var t="";
	var n=0;
	for(i=0;i<len;i++){
		if(strTemp.indexOf(str.charAt(i))<0){			
			bf=true;
		}
		else if(str.charAt(i)=='.'){
			n++;
			if(n<2)
				t+=str.charAt(i);
		}
		else{
			t+=str.charAt(i);
		}
	}
	
	if(bf){
		showMessage("信息提示","只能输入数字和一个小数点！","info");
		obj.value=t;
	}
	else if(n>=2){
		showMessage("信息提示","只能输入一个小数点！","info");
		obj.value=t;
		bf=true;
	}	
	obj.focus();
	return bf;
}

/**
 * 检查文本框的值是否为数字和小数点和负号
 * @param obj 文本框控件
 * @return 如果发现包含了非法字符，则返回true,否则返回false  
 */
function checkInputNumberA(obj){
	var strTemp="0123456789.";
	var str=obj.value;
	var len=str.length;
	var bf=false;
	var t="";
	var n=0;
	if(len<1)
		return false;
	var c=str.charAt(0);
	var i=0;
	if(c=='-'){
		i=1;
		t="-";
	}
	var bN=false;
	for(;i<len;i++){
		if(str.charAt(i)=='-'){
			bN=true;
		}
		else if(strTemp.indexOf(str.charAt(i))<0){
			bf=true;
		}
		else if(str.charAt(i)=='.'){
			n++;
			if(n<2)
				t+=str.charAt(i);
		}
		else{
			t+=str.charAt(i);
		}
	}
	if(bN){
		showMessage("信息提示","只能输入一个负号！","info");
		obj.value=t;
	}
	if(bf){
		showMessage("信息提示","只能输入数字和一个小数点！","info");
		obj.value=t;
	}
	else if(n>=2){
		showMessage("信息提示","只能输入一个小数点！","info");
		obj.value=t;
		bf=true;
	}	
	obj.focus();
	return bf;
}

/**
 * 检查文本框的值是否为整数字
 * @param obj 文本框控件
 * @return 如果发现包含了非法字符，则返回true,否则返回false  
 */
function checkInputNumberB(obj){
	var strTemp="0123456789";
	var str=obj.value;
	var len=str.length;
	var bf=false;
	var t="";
	var n=0;
	for(i=0;i<len;i++){
		if(strTemp.indexOf(str.charAt(i))<0){			
			bf=true;
		}		
		else{
			t+=str.charAt(i);
		}
	}
	if(bf){
		showMessage("信息提示","只能输入整数！","info");
		obj.value=t;
	}	
	obj.focus();
	return bf;
}

/**
 * 检查文本框的值是否为整数字
 * @param obj 文本框控件
 * @return 如果发现包含了非法字符，则返回true,否则返回false  
 */
function checkInputNumberC(obj){
	var strTemp="0123456789.";
	var str=obj.value;
	var len=str.length;
	var bf=false;
	var t="";
	var n=0;
	if(len<1)
		return false;
	var c=str.charAt(0);
	var i=0;
	if(c=='-'){
		i=1;
		t="-";
	}
	var bN=false;
	for(;i<len;i++){
		if(str.charAt(i)=='-'){
			bN=true;
		}
		else if(strTemp.indexOf(str.charAt(i))<0){			
			bf=true;
		}
		else if(str.charAt(i)=='.'){
			n++;
			if(n<2)
				t+=str.charAt(i);
		}
		else{
			t+=str.charAt(i);
		}
	}
	if(bN){
		showMessage("信息提示","只能输入一个负号！","info");
		obj.value=t;
	}
	if(bf){
		showMessage("信息提示","只能输入数字！","info");
		obj.value=t;
	}
	else if(n>=1){
		showMessage("信息提示","只能输入整数！","info");
		obj.value=t;
		bf=true;
	}	
	obj.focus();
	return bf;
}

/**
 * 检查文本框的值是否为数字
 * @param obj 文本框控件
 * @return 如果发现包含了非法字符，则返回true,否则返回false  
 */
function checkInput(obj){
	var strTemp="0123456789";
	var str=obj.value;
	var len=str.length;
	var bf=false;
	var t="";
	var n=0;
	for(i=0;i<len;i++){
		if(strTemp.indexOf(str.charAt(i))<0){			
			bf=true;
		}		
		else{
			t+=str.charAt(i);
		}
	}
	if(bf){
		showMessage("信息提示","只能输入数字！","info");
		obj.value=t;
	}	
	obj.focus();
	return bf;
}

/**
 * 处理分页的go按钮提交事件
 */
function go(){
	if(document.forms[0].pageno.value==""){
		showMessage("信息提示","请输入页号！","info");		
		document.forms[0].ageno.focus();
		return;
	}
	else{
		document.all["command"].value="page";
		document.all["CurPage"].value=document.all["pageno"].value-1;
		document.forms[0].submit();		
	}
}

/**
 * 处理分页的go按钮提交事件
 */
function go1(){
	if(document.forms[1].pageno.value==""){
		showMessage("信息提示","请输入页号！","info");		
		document.forms[1].pageno.focus();
		return;
	}
	else{
		//document.all["command"].value="page";
		document.all["CurPage"].value=document.all["pageno"].value;
		document.forms[1].submit();		
	}
}

/**
 * 检查文本框的值是否为数字和小数点
 * @param pageIndex 当前页号，页号从0开始
 * @return void
 */
function goPage(pageIndex){
	document.all["command"].value="page";
	document.all["CurPage"].value=pageIndex;
	document.forms[0].submit();		
}

/**
 * 检查文本框的值是否为数字和小数点
 * @param pageIndex 当前页号，页号从0开始
 * @return void
 */
function goPage1(pageIndex){
	//document.all["command"].value="page";
	document.all["CurPage"].value=pageIndex;
	document.forms[1].submit();		
}


/**
 * 格式化数字，将数字格式化为带2位小数的数字
 * @param num 数字
 * @return 返回格式化后的数字
 */
function formatNumber(num){
	var f=Math.round(num*100)/100.0;
	var str=f.toString();	
	var n=str.indexOf('.');
	if(n==-1)
		str+=".00";
	else{
		str+="00";
		str=str.substring(0,n+3);
	}
	return str;
}

/**
 * 检查文本框是否为空，若为空则提示消息，并让用户重新输入
 * @param name 文本框的名字
 * @param msg 消息提示内容
 * @return 若文本框为空，则返回true，否则返回false
 */
function checkNull(name,msg){
	var str="";
	if(document.all[name])
		str=document.all[name].value;
	else{
		window.alert("没有找到对象："+name);
		return true;
	}
	var bf=true;
	var i;
	for(i=0;i<str.length;i++){
		if(str.charAt(i)!=' '){
			bf=false;
		}
	}
	if(bf){
		showMessage("信息提示",msg,"info");
		document.all[name].focus();
	}
	return bf;
}

/**
 * 获取文本框的值
 * @param name 文本框的名字
 * @return 若正确获取，返回文本框的值，否则提示错误信息
 */
function val(name){
	if(document.all[name])
		return document.all[name].value;
	else{
		window.alert("val():没有找到文本框："+name);
		return "";
	}
}

/**
 * 获取文本框的值，并将它转换为数值
 * @param name 文本框的名字
 * @return 若正确获取，返回文本框的数值，否则提示错误信息
 */
function num(name){
	if(document.all[name]){
		if(document.all[name].value==""){
			return 0;
		}
		if(isNaN(document.all[name].value)){
			showMessage("信息提示","输入了非法字符！","info");
			document.all[name].focus();
			return -1;
		}
		var f=parseFloat(document.all[name].value);
		return f;		
	}
	else{
		window.alert("num():没有找到文本框："+name);
		return "";
	}
}

/**
 * 检查一组的checkBox是否至少被选中一个
 * @param chkName 该组checkBox的名字的前缀
 * @return 若至少被选中一个则返回true，否则返回false
 */
function selectOne(chkName){
	var i;
	var bf=false;
	for(i=0;i<document.forms[0].elements.length;i++){
		var obj=document.forms[0].elements[i];
		if(obj.name.indexOf(chkName)==0){			
			if(obj.disabled==false&&obj.checked){
				bf=true;
				break;
			}
		}		
	}
	return bf;
}

/**
 * 设置下拉框的选中项目
 * @param chkName 该组checkBox的名字的前缀
 * @return 若至少被选中一个则返回true，否则返回false
 */
function setSelectItem(objName,selValue){
	var i;
	if(document.all[objName]){
		for(i=0;i<document.all[objName].length;i++){
			if(document.all[objName].options[i].value==selValue){
				document.all[objName].options[i].selected=true;
			}
			else{
				document.all[objName].options[i].selected=false;
			}
		}
	}
	else{
		window.alert("setSelectItem():没有找到下拉框："+objName);
		return "";
	}
}

/**
 * 两个double数相加减
 * @param name1 减数
 * @param name2 被减数
 * @return String 型结果
 */
function calString(name1,name2,operator){
	if(!document.all[name1]){
		window.alert("addChar():没有找到文本框："+name1);
		return "";
	}
	if(!document.all[name2]){
		window.alert("addChar():没有找到文本框："+name2);
		return "";
	}
	var str1=val(name1);
	var str2=val(name2);
	if(str1.indexOf('.')<0)
		str1+=".0";
	if(str2.indexOf('.')<0)
		str2+=".0";
	if(str1.indexOf('.')==str1.length-1)
		str1+="0";
	if(str2.indexOf('.')==str2.length-1)
		str2+="0";
	var n1=str1.length-str1.indexOf('.');
	var n2=str2.length-str2.indexOf('.');
	var n=Math.abs(n1-n2);
	var i;
	var str="";
	for(i=0;i<str1.length;i++){
		var c=str1.charAt(i);
		if(c!='.')
			str+=c;
	}
	str1=str;
	str="";
	for(i=0;i<str2.length;i++){
		var c=str2.charAt(i);
		if(c!='.')
			str+=c;
	}
	str2=str;
	if(n1>n2){
		for(i=0;i<n;i++){
			str2+="0";
		}
	}
	else{
		for(i=0;i<n;i++){
			str1+="0";
		}
	}
	n1=parseInt(str1);
	n2=parseInt(str2);
	var nn=0;
	if(operator=="+"){
		nn=n1+n2;
	}
	if(operator=="-"){
		nn=n2-n1;
	}	
	str=nn.toString();
	str1="";
	n1=str.length-n-1;
	for(i=0;i<str.length;i++){		
		if(i==n1)
			str1+='.';		
		str1+=str.charAt(i);
	}
	if(str1.indexOf('.')==0)
		str1="0"+str1;
	if(str1.indexOf('-.')==0)
		str1=str1.replace("-.","-0.");
	return str1;
}

/**
 * 检查Form中的文本框的非法字符
 * @return  void
 */
function checkFalseChar(){
	var i,j;
	var falseChar="$&\"";  //非法字符设置
	for(i=0;i<document.forms[0].elements.length;i++){
		var obj=document.forms[0].elements[i];
		if(obj.disabled==false){
			if(obj.name.indexOf("txt")==0){
				for(j=0;j<falseChar.length;j++){
					if(obj.value.indexOf(falseChar.charAt(j))>=0){
						showMessage("错误提示","此文本框输入了非法字符："+falseChar.charAt(j)+"","err");
						obj.focus();						
						return true;
					}
				}
			}			
		}
	}
	return false;
}

/**
 * 检查Form中的文本框的非法字符
 * @return  void
 */
function checkFalseCharA(falseChar){
	var i,j;
	if(falseChar==null)
		return false;
	for(i=0;i<document.forms[0].elements.length;i++){
		var obj=document.forms[0].elements[i];
		if(obj.disabled==false){
			if(obj.name.indexOf("txt")==0){
				for(j=0;j<falseChar.length;j++){
					if(obj.value.indexOf(falseChar.charAt(j))>=0){
						showMessage("错误提示","此文本框输入了非法字符："+falseChar.charAt(j)+"","err");
						obj.focus();						
						return true;
					}
				}
			}			
		}
	}
	return false;
}

/**
 * 检查Email地址是否合法
 * @return  void
 */
function isEmail(src){
	isEmail1 = /^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;
	isEmail2 = /^.*@[^_]*$/;
    return (isEmail1.test(src) && isEmail2.test(src));
}

/**
 * 检查邮编是否合法
 * @return  void
 */
function TestZipCode(src){
	var ZipCode,regex;
  	ZipCode="^[\\d]{6}$"
  	regex=new RegExp(ZipCode);
  	return regex.test(src);
}

/**
 * 检查身份证号码是否合法
 * @return  void
 */
function isIdCorrect(src){
    isIdCorrect1=/^\d{15}$/;
  	isIdCorrect2=/^\d{18}$/;
    return(isIdCorrect1.test(src)&&isIdCorrect2.test(src));
}

/**
 * 检查IP地址是否合法
 * @return  void
 */
function isIpCorrect(src){
	var isIPaddress;
	ip_ip = '(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)';
    ip_ipdot = ip + '\\.';
    isIPaddress = new RegExp('^'+ip_ipdot+ip_ipdot+ipdot+ip_ip+'$');
    return isIPaddress.test(src);
}
