//获取对象
function $(obj)
{
    return document.getElementById(obj);
}

//计算字节数
function getTotalByte(obj)
{
	  var t = 0;
	  for(var i=0;i<obj.length;i++)	  
	  {
			if(obj.substring(i,i+1).charCodeAt() > 255)
			{
				  t += 2;
			}
			else
			{
				  t += 1;
			}
	  }
	  return t;
}

//设定提交按钮焦点
function doEnterFocus(obj)
{

	  if(event.keyCode == 13)
	  {
			document.all[obj].focus();
	  }
}
var t1 = 0,l1 = 0;
//显示层
function doShowLetter(sobj,tobj,str,left,top)
{
        var oElement;
        oElement = document.getElementById(sobj);
        var t = oElement.offsetTop;
        var l = oElement.offsetLeft;
        
        	
        while (oElement=oElement.offsetParent)
        {
	          t+=oElement.offsetTop;
	          l+=oElement.offsetLeft;
        }
        
        
        if (str != "")
        {
	        document.all[tobj].innerText = " " + str + " ";			
        }
        
        
        document.all[tobj].style.left = l+left;
        document.all[tobj].style.top = t+top;
        document.all[tobj].style.display = "block";
}


//隐藏层
function doHideLetter(obj)
{
    document.all[obj].style.display ="none";
	  
}

function MM_findObj(n, d) 
{
    var p,i,x;
    if(!d) d = document; 
    if((p = n.indexOf("?")) > 0 && parent.frames.length) 
    {
        d = parent.frames[n.substring(p+1)].document;
        n = n.substring(0,p);
    }
    if(!(x=d[n]) && d.all) x = d.all[n]; 
    for ( i=0;!x && i< d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x && d.layers && i < d.layers.length;i++) x = MM_findObj(n,d.layers[i].document);
    if(!x && document.getElementById) x = document.getElementById(n); 
   
   
    return x;
}

function MM_showHideLayers() 
{
    var i,p,v,obj,args = MM_showHideLayers.arguments;
    for (i=0; i<(args.length-2); i+=3) 
    if ((obj = MM_findObj(args[i])) != null) 
    { 
        v = args[i+2];
        if (obj.style) 
        { 
            obj=obj.style;
            
           
            v = (v == 'show')?'visible':(v = 'hide')?'hidden':v;
        }
        obj.visibility = v;
    }
    
}

// 替换特殊字符
function HTMLEncode(text)
{
	  text = text.replace(/<script/ig,'&ltscript');
	  text = text.replace(/<\/script>/ig,'&lt;/script&gt;');
	  text = text.replace(/<iframe[^>]*>.*<\/iframe>/ig,'');
	  text = text.replace(/<iframe[^>]+>.*<\/iframe>/ig,'');
	  text = text.replace(/<input[^>]+>/ig,'<input>');
	  text = text.replace(/&/g, "&amp;");
	  text = text.replace(/"/g, "&quot;");
	  text = text.replace(/</g, "&lt;");
	  text = text.replace(/>/g, "&gt;");
	  text = text.replace(/'/g, "’");
	  //text = text.replace(/\ /g,"&nbsp;");
	  //text = text.replace(/\n/g,"<br>");
	  text = text.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");  
	  
	  return text;
}
//邮政编码验证
function isZipcode(obj)
{
    
	if (parseInt(obj.value.length) == 6 && isInt(obj.value)) 
	{
	    return true;
	}
	else
	{
	    return false;
	}
}

//身份证号码验证
function CheckIdentityCard(obj){
 
    var str = obj.value;
   
    var patn = /^(\d{18}|\d{17}[xX]|\d{15})$/;
    if(!patn.test(str)){
        return false;
    }  

    var y,m,d,r,f
    if (str.length == 15)
    {
        y = str.substr(6,2);
        m = str.substr(8,2);
            if(m>12 || m<1){
                return false;
            }
        d = str.substr(10,2);
            if(d<1 || d>31){
            return false;
        }
    }
	else if(str.length == 18)
	{
	    var d = str.substr(6, 4) + "/" +str.substr(10, 2) + "/" + str.substr(12, 2);
	    if (isDate(d))
        {
            return true;
        }
        else
        {
            return false;
        }
	}
    r = new Date(parseInt(y)+parseInt(18),parseInt(m)-1,d);
    f = new Date();
    if(r>f)
    {
        return false;
    }
    else
    {
        return true;
    }
    return true;
}


//手机号码的正则验证
function isMobileTel(arg)
{
	var patn = /^0{0,1}13[0-9]{9}|15[0-9]{9}$/;

	if (!patn.exec(arg))
	{
		return false;
	}
	return true;
}

//检查字符长度
function checkMaxLength(obj, length)
{
	if (parseInt(obj.value.length) > parseInt(length) ) {		
		return false;
	}
	else
	{
	    return true;
	}
}


//范围的确定
function isBetween(val,lo,hi)
{	
	if ((val < lo) || (val > hi))
	{	
		return (false);
	}
	else
	{	
		return (true);
	}
}

//闰年的确定
function isLeapyear(year)
{	if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
	{	
		return (true);
	}
	else
	{	
		return (false);
	}		
}

//时期的确定格式为(YYYY-MM-DD or YYYY/MM/DD)
function isDate(theStr)
{	
	var flag = true;
	var the1st;
	var the2nd;
	var str = new Array(4);
	
	
	str[0] = theStr.indexOf('-');	 
	str[1] = theStr.lastIndexOf('-');
	str[2] = theStr.indexOf('/');
	str[3] = theStr.lastIndexOf('/');
	
	if(str[0] == -1 || str[1] == -1)
	{
			the1st = str[2];
			the2nd = str[3];
	}
	else
	{
			the1st = str[0];
			the2nd = str[1];
	}


	if (the1st == the2nd)
	{
	    flag = false;		
	}
	else
	{
		var y = theStr.substring(0,the1st);
		var m = theStr.substring(the1st + 1,the2nd);
		var d = theStr.substring(the2nd + 1,theStr.length);
		var maxDays = 31;
		if (isInt(m) == false || isInt(d) == false || isInt(d) == false)
		{
			flag = false;			
		}
		else if (y.length != 4)
		{
			flag = false;		
		}
		else if (!isBetween(m,1,12))
		{
			flag = false;			
		}
		else if (m == 4 || m == 6 || m == 9 || m == 11) maxDays = 30;
		else if (m == 2)
		{
			if (isLeapyear(y))
				maxDays = 29;
			else
				maxDays = 28;
		}
		if (isBetween(d,1,maxDays) == false)
		{
			flag = false;			
		}
		
	}
	return flag;
}

//时间的确定(格式为HH:MM)
function isTime(theStr)
{
	var colonDex = theStr.indexOf(':');
	if ((colonDex < 1) || (colonDex > 2))
	{
		return (false);
	}
	else
	{
		var hh = theStr.substring(0,colonDex);
		var ss = theStr.substring(colonDex+1,theStr.length);
		if ((hh.length < 1) || (hh.length > 2) || (!isInt(hh)))
		{
			return (false);
		}
		else if ((ss.length < 1) || (ss.length > 2) || (!isInt(ss)))
		{
			return (false);
		}
		else if ((!isBetween(hh,0,23)) || (!isBetween(ss,0,59)))
		{
			return (false);
		}
		else
		{
			return (true);
		}
	}
}

//数字的确定
function isDigit(theNum)
{	
	var theMask = "0123456789";
    if (isEmpty(theNum)) return (false);
	else if (theMask.indexOf(theNum) == -1) return (false);
	return (true);
}


//电子邮件的确定
function isEmail(theStr)
{
	var atIndex = theStr.indexOf('@');
	var dotIndex = theStr.indexOf('.',atIndex);
	var flag = true;
	theSub = theStr.substring(0,dotIndex + 1);
	if ((atIndex < 1) || (atIndex != theStr.lastIndexOf('@')) || (dotIndex < atIndex + 2) || (theStr.length <= theSub.length))
	{
		flag = false;
	}
	else
	{
		flag = true;
	}
	return (flag);
}

//检查是否为空
function isEmpty(str)
{
	if ((str==null) || (str.length ==0)) return (true);
	else return (false);
}

//整数的确定
function isInt(theStr)
{
	var flag = true;
	if (isEmpty(theStr))
	{
		flag = false;
	}
	else
	{
		for (var i = 0;i < theStr.length;i ++)
		{
			if (isDigit (theStr.substring(i,i+1)) == false)
			{
				flag = false;
				break;
			}
		}
	}
	return (flag);
}

//实数的确定
//decLen为小数位数
function isFloat(theStr,decLen)
{
	var dot1st = theStr.indexOf('.');
	var dot2nd = theStr.lastIndexOf('.');
	if (isEmpty(theStr)) return (false);
	if (dot1st == -1)
	{
		if (!isInt(theStr)) return (false);
		else return (true);
	}
	else if (dot1st != dot2nd) return (false);
	else if (dot1st == 0) return (false);
	else
	{
		var intPart = theStr.substring(0,dot1st);
		var decPart = theStr.substring(dot2nd+1,theStr.length);
		if (decPart.length > decLen) return (false);
		else if (!isInt(intPart) || !isInt(decPart)) return (false);
		else if (isEmpty(decPart)) return (false);
		else return (true);
	}
}
function CKD(d, dateLen){
	if(d.length < dateLen){
		if (dateLen == 10){
           alert("无效的日期格式!!!请输入YYYY/MM/DD的日期格式!");
        }
		if (dateLen == 7){
           alert("无效的日期格式!!!请输入YYYY/MM的日期格式!");
        }
		return false;
	}else{
		try{
            if (dateLen == 10) {
               var a = new Date(d);
               var d1 = a.getYear();
			   var d2 = a.getMonth()+1;
			   var d3 = a.getDate();
			   if (d2 < 10)	d2 = "0" + d2;
			   if (d3 < 10)	d3 = "0" + d3;
			   var dd = d1 + "/" + d2 + "/" + d3;
			   //alert(dd);
			   if (d!=dd){
		       		alert("日期" + d + "输入错误!!!!");
			        	return false;
			   }
			}else if (dateLen == 7){
               var a = new Date(d + "/01");
               var d1 = a.getYear();
			   var d2 = a.getMonth()+1;
			   var d3 = a.getDate();
			   if (d2 < 10)	d2 = "0" + d2;
			   if (d3 < 10)	d3 = "0" + d3;
			   var dd = d1 + "/" + d2;
			   //alert(dd);
			   if (d!=dd){
		       		alert("日期" + d + "输入错误!!!!");
			        	return false;
			   }
			}
			return true;
		}catch(e){
			//date format error
			if (dateLen == 10){
               alert("无效的日期格式!!!请输入YYYY/MM/DD的日期格式!");
            }
			if (dateLen == 7){
               alert("无效的日期格式!!!请输入YYYY/MM的日期格式!");
            }
			return false;
		}
	}
}

//格式化日期
function DateFormat(obj, dateLen, noChkEpy)
{
	if (obj.value != "")
	{
		if (window.event.keyCode != "13")
		{
			if (obj.value.length == 4 || obj.value.length == 7)
			{
				var str = obj.value;
				obj.value = str + "/";
			}
		}
		else
		{
			if (!CKD(obj.value, dateLen))
			{
				obj.focus();
			}
		}
	}
	else
	{
		if ((!noChkEpy) && (window.event.keyCode == "13"))
		{
			alert("日期不得空白");
			obj.focus();
		}
	}
}

//全选复选框
function checkAll(chk, chkAll)
{
	if (isNaN(chk.length))
	{
		chk.checked = chkAll.checked;
	}
	else
	{
		for (var iFor = 0; iFor < chk.length; iFor ++)
		{
			chk[iFor].checked = chkAll.checked;
		}
	}
}


//反选
function reCheckAll(chk, chkAll)
{
	if (isNaN(chk.length))
	{
		if (chk.checked) chkAll.checked = true;
		else chkAll.checked = false;
	}
	else
	{
		for (var iFor = 0; iFor < chk.length; iFor ++)
		{
			if (!chk[iFor].checked)
			{
				chkAll.checked = false;
				return;
			}
		}
		chkAll.checked = true;
	}
}

//得到当前已选中的复选框的总数
function getChkCount(chk)
{
	var iCount = 0;
	if (isNaN(chk.length))
	{
		if (chk.checked) return 1;
		else return 0;
	}
	else
	{
		for (var iFor = 0; iFor < chk.length; iFor ++)
		{
			if (chk[iFor].checked)
			{
				iCount ++;
			}
		}
		return iCount;
	}
}

//得到选中的复选框的value, 值与值之间用","隔开
function getChkId(chk)
{
	var sId = "";
	if (isNaN(chk.length))
	{
		if (chk.checked) return chk.value;
		else return "";
	}
	else
	{
		for (var iFor = 0; iFor < chk.length; iFor ++)
		{
			if (chk[iFor].checked)
			{
				if (sId == "")
					sId = chk[iFor].value;
				else
					sId = sId + "," + chk[iFor].value;
			}
		}
		return sId;
	}
}

function addZeroStr(val, leastLength)
{
	var ret = new String(val);
	var j = leastLength - ret.length;
	for (var i = 0; i < j; i ++) ret = "0" + ret;
	return(ret);
}


//获取完整日期
function getFullDate(dDate)
{
	var sReturn = dDate.getFullYear() + "/";
	sReturn += (dDate.getMonth() + 1) + "/";
	sReturn += dDate.getDate();
	return sReturn;
}


//去除字符串两边空格
function trim(sInput)
{
	var sReturn;
	sReturn = sInput.replace(/(^\s*)|(\s*$)/g, "");
	return sReturn;
}




//下拉列表框内可输入值
function getDropdownKeydown(sel) 
{ 
	switch(event.keyCode) 
	{ 
		case 13: //Enter; 
			sel.options[sel.length] = new Option("","",false,true); 
			event.returnValue = false; 
			break; 
		case 27: //Esc; 
			alert("text:" + sel.options[sel.selectedIndex].text + ", value:" + sel.options[sel.selectedIndex].value + ";"); 
			event.returnValue = false; 
			break; 
		case 46: //Delete; 
			if(confirm("确定删除!?")) 
			{ 
				sel.options[sel.selectedIndex] = null; 
				if(sel.length>0) { sel.options[0].selected = true;}						
			} 
			event.returnValue = false; 
			break; 

		case 8: //Back Space; 
			var s = sel.options[sel.selectedIndex].text; 
			sel.options[sel.selectedIndex].text = s.substr(0,s.length-1); 
			event.returnValue = false;
			break; 
	} 
}

function catch_press(sel) 
{
	sel.options[sel.selectedIndex].text = sel.options[sel.selectedIndex].text + String.fromCharCode
	(event.keyCode);
	event.returnValue = false;
} 