/* JavaScript Document 2007-2008 jsFunction By bit_ and copy net */
/***********************************************************/
//测试载入
function TestOwn()
{
	alert('Congratulation,succeed load js file!');
}
/************************************************************ About String ********************************************************/
//去空格
String.prototype.trim = function()
{
    return this.replace(/(^[\s]*)|([\s]*$)/g, "");
}
String.prototype.lTrim = function()
{
    return this.replace(/(^[\s]*)/g, "");
}
String.prototype.rTrim = function()
{
    return this.replace(/([\s]*$)/g, "");
}
//得到左边的字符串
String.prototype.Left = function(len)
{

        if(isNaN(len)||len==null)
        {
                len = this.length;
        }
        else
        {
                if(parseInt(len)<0||parseInt(len)>this.length)
                {
                        len = this.length;
                }
        }
       
        return this.substr(0,len);
}
//得到右边的字符串
String.prototype.Right = function(len)
{

        if(isNaN(len)||len==null)
        {
                len = this.length;
        }
        else
        {
                if(parseInt(len)<0||parseInt(len)>this.length)
                {
                        len = this.length;
                }
        }
       
        return this.substring(this.length-len,this.length);
}
//得到中间的字符串,注意从0开始
String.prototype.Mid = function(start,len)
{
        return this.substr(start,len);
}
//在字符串里查找另一字符串:位置从0开始
String.prototype.InStr = function(str)
{

        if(str==null)
        {
                str = "";
        }
       
        return this.indexOf(str);
}
//在字符串里反向查找另一字符串:位置0开始
String.prototype.InStrRev = function(str)
{

        if(str==null)
        {
                str = "";
        }
       
        return this.lastIndexOf(str);
}
//转换成日期
String.prototype.toDate = function()
{
        try
        {
                return new Date(this.replace(/-/g, "\/"));
        }
        catch(e)
        {
                return null;
        }
}
//对字符串进行Html编码
String.prototype.toHtmlEncode = function()
{
        var str = this;

        str=str.replace(/&/g,"&amp;");
        str=str.replace(/</g,"&lt;");
        str=str.replace(/>/g,"&gt;");
        str=str.replace(/\'/g,"&apos;");
        str=str.replace(/\"/g,"&quot;");
        str=str.replace(/\n/g,"<br>");
        str=str.replace(/\ /g,"&nbsp;");
        str=str.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");

        return str;
}
//转换成全角
String.prototype.toCase = function()
{
        var tmp = "";
        for(var i=0;i<this.length;i++)
        {
                if(this.charCodeAt(i)>0&&this.charCodeAt(i)<255)
                {
                        tmp += String.fromCharCode(this.charCodeAt(i)+65248);
                }
                else
                {
                        tmp += String.fromCharCode(this.charCodeAt(i));
                }
        }
        return tmp
}
/******************************************* About Numeric *******************************************/
function tofloat(value)
{ 
	 value=Math.round(parseFloat(value)*100)/100;
	 if(value.toString().indexOf(".")<0)
		value = value.toString()+".00";
	 return value;
}
//检查输入的数字是否是0-9
function chknum(snumber)
{
	var len=snumber.length;
 	for (var i=0;i<len;i++)
	{
		var onechar= snumber.charAt(i);
		if((onechar<"0" || onechar>"9")&&(onechar !="."))
		{
			alert("请正确输入数值：0~9");
			return false;
		}
	}
	return true;
}
/*******************************************About Date *******************************************/
//检查两个日期的间隔天数
function daysDiff(date1,date2) {

    var difference = Date.UTC(date1.getYear(),date1.getMonth(),date1.getDate(),0,0,0)-Date.UTC(date2.getYear(),date2.getMonth(),date2.getDate(),0,0,0);
	return difference/1000/60/60/24;
}
//计算年龄
function getAge(dateString,dateType) 
{
	var now = new Date();
    var today = new Date(now.getYear(),now.getMonth(),now.getDate());
    var yearNow = now.getYear();
    var monthNow = now.getMonth();
    var dateNow = now.getDate();
    if (dateType == 1)
        var dob = new Date(dateString.substring(0,4), dateString.substring(4,6)-1,dateString.substring(6,8));
	else if (dateType == 2)
		var dob = new Date(dateString.substring(0,2),dateString.substring(2,4)-1,dateString.substring(4,6));
	else if (dateType == 3)
		var dob = new Date(dateString.substring(6,10),dateString.substring(3,5)-1,dateString.substring(0,2));
	else if (dateType == 4)
		var dob = new Date(dateString.substring(6,8),dateString.substring(3,5)-1,dateString.substring(0,2));
	else
		return '';
	var yearDob = dob.getYear();
	var monthDob = dob.getMonth();
	var dateDob = dob.getDate();
	yearAge = yearNow - yearDob;
	if (monthNow > monthDob)
		var monthAge = monthNow - monthDob;
	else 
	{
		yearAge--;
		var monthAge = 12 + monthNow -monthDob;
	}

    if (dateNow > dateDob)
		var dateAge = dateNow - dateDob;
	else 
	{
		monthAge--;
        var dateAge = 31 + dateNow - dateDob;
    }
	return yearAge + ' years ' + monthAge + ' months ' + dateAge + ' days';
	//document.write(getAge("19650104",1)+'BR>')
//	
//	document.write(getAge("650104",2)+'BR>')
//	
//	document.write(getAge("04/01/1965",3)+'BR>')
//	
//	document.write(getAge("04/01/65",4)+'BR>')
}
/************************************************ About Document ************************************************/
//简化documentElementById
function GetE(Id)
{
	return document.getElementById(Id);
}
//简化以form对象取值
function GetForm(formName,elementName)
{
	return eval("document."+formName+"."+elementName+".value");
}
//禁止鼠标右键
function nocontextmenu() 
{
	event.cancelBubble = true
	event.returnvalue = false;
	return false;
}
 
function norightclick(e) 
{
	if (window.Event) 
	{
		if (e.which == 2 || e.which == 3)
　		return false;
	} 
	else if (event.button == 2 || event.button == 3) 
	{
　 		event.cancelBubble = true
　 		event.returnvalue = false;
　 		return false;
	} 
}
//全选函数
    function CheckAll(form)  
    {
//		var chkflag=document.createElement("input");
//		chkflag.name="value";
//		chkflag.id="value";
//		chkflag.value="0";
//		chkflag.size=20;
//		chkflag.type="text";
//		form.appendChild(chkflag);
//		return false;
		var flag=form.chkflag.value;
		var button=form.chkall;
		if(flag=='0')
		{
			form.chkflag.value='1';
			for (var i=0;i<form.elements.length;i++)    
        	{
        	    var e = form.elements[i];
        	    e.checked = "checked";
        	}
			button.value='反 选';
		}
		else
		{
			form.chkflag.value='0';	
			for (var i=0;i<form.elements.length;i++)    
        	{
        	    var e = form.elements[i];
        	    e.checked = "";
        	}
			button.value='全 选';
		}
    }
//打开窗口
function openwindow(url,width_,height_,left_,top_) 
{
	window.open (url, "newwindow", "height="+height_+", width="+width_+",left="+left_+",top="+top_+",toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")
}
//文档最后修改日期
function AmendDate()
{
	document.write(document.lastModified);
	alert("hi"+str+"!");
}
/*************************************************** About Check** ***************************************************/
//是否为空
function IsEmpty(str)
{
	return ((str == null) || (str.length == 0));
}
//是否含有空格
function IsWhitespace (str)
{
  var whitespace = " \t\n\r";
  var i;
  for (i = 0; i < str.length; i++){
     var c = str.charAt(i);
     if (whitespace.indexOf(c) >= 0) {
		    return true;
	   }
  }
  return false;
}
//是否符合指定长度
function IsLength(leng,minl,maxl)
{
	if(maxl==0)
	{
		return true;
	}
	else
	{
		if(leng>=minl && leng<=maxl)
		{

			return true;
		}
		else
		{
			return false;
		}
	}
}
//检查空字符串
function chkStr(str)
{
    if(str.trim()=="")
        return false;
    else
        return true;
}
//检查是否为中文 
function IsChinese(str)
{
    //如果值为空，通过校验
    if (str == "")
        return false;
    var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;
    if (pattern.test(str))
        return true;
    else
        return false;
}
//检查是否符合自定义的表达式
function chkRep(str,pat)
{
    //如果值为空，通过校验
    if (str=="")
        return false;
    var pattern = new RegExp(pat,"gi")
    if (pattern.test(str))
        return true;
    else
        return false;
}
//检查是否是Email
function chkmail(str)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf('@', 0) == -1
        || str.indexOf('.', 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1)
        return false;
    else
        return true;
}
//检查是否为实数
function chkdouble(str)
{
    //如果为空，则通过校验
    if(str == "")
        return false;
    //如果是整数，则校验整数的有效性
    if(str.indexOf(".") == -1)
    {
        if(checkIsInteger(str) == true)
            return true;
        else
            return false;
    }
    else
    {
        if(/^(\-?)(\d+)(.{1})(\d+)$/g.test(str))
            return true;
        else
            return false;
    }
}
//检查是否符合限制的最大值
function chkmax(str,val)
{
    //如果为空，则通过校验
    if(str=="")
        return false;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsInteger(str) == true)
    {
        if(parseInt(str,10)<=parseInt(val,10))
            return true;
        else
            return false;
    }
    else
        return false;
}
//校验是否全由数字组成
function isdigit(s)
{

    var patrn=/^[0-9]{1,20}$/;

    if (!patrn.exec(s)) return false

    return true

}
//校验登录名：只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
function isRegName(s)
{
    var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
    if (!patrn.exec(s)) return false
    return true
}

//校验密码：只能输入6-20个字母、数字、下划线
function isPasswd(s)
{
    var patrn=/^(\w){6,20}$/;
    if (!patrn.exec(s)) return false
    return true
}
//校验普通电话、传真号码：可以“+”开头，除数字外，可含有“-”
function isTel(s)
{
    //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;
    var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
    if (!patrn.exec(s)) return false
    return true
}
//校验手机号码：必须以数字开头，除数字外，可含有“-”
function isMobil(s)
{
    var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
    if (!patrn.exec(s)) return false
    return true
}
//校验邮政编码
function isZipCode(s)
{
    //var patrn=/^[a-zA-Z0-9]{3,12}$/;
    var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
    if (!patrn.exec(s)) return false
    return true
}
//ip
function isIP(s)  //by zergling
{
    var patrn=/^[0-9.]{1,20}$/;
    if (!patrn.exec(s)) return false;
    return true;
}
//检查**-**-**格式的日期
function chkDate(str0,str1)
{
	var re=/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$/;
	var re_=/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))\,((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$/;
	if(str1!="") 
		var testrep=re_.test(value_.value);
	else
		var testrep=re.test(value_.value);
	if(!testrep)
		return false;
	else
		return true;
}
//是否是颜色(#FFFFFF形式)
String.prototype.IsColor = function()
{
        var temp        = this;
        if (temp=="") return true;
        if (temp.length!=7) return false;
        return (temp.search(/\#[a-fA-F0-9]{6}/) != -1);
}
//检查是否是数字字符串
String.prototype.isNumeric = function(flag)
{
        //验证是否是数字
        if(isNaN(this))
        {

                return false;
        }

        switch(flag)
        {

                case null:        //数字
                case "":
                        return true;
                case "+":        //正数
                        return /(^\+?|^\d?)\d*\.?\d+$/.test(this);
                case "-":        //负数
                        return /^-\d*\.?\d+$/.test(this);
                case "i":        //整数
                        return /(^-?|^\+?|\d)\d+$/.test(this);
                case "+i":        //正整数
                        return /(^\d+$)|(^\+?\d+$)/.test(this);                       
                case "-i":        //负整数
                        return /^[-]\d+$/.test(this);
                case "f":        //浮点数
                        return /(^-?|^\+?|^\d?)\d*\.\d+$/.test(this);
                case "+f":        //正浮点数
                        return /(^\+?|^\d?)\d*\.\d+$/.test(this);                       
                case "-f":        //负浮点数
                        return /^[-]\d*\.\d$/.test(this);               
                default:        //缺省
                        return true;                       
        }
}
//是否是有效的电话号码(中国)
String.prototype.isPhoneCall = function()
{
        return /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/.test(this);
}
//是否是有效的身份证(中国)
String.prototype.isIDCard = function()
{
        var iSum=0;
        var info="";
        var sId = this;

        var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};

        if(!/^\d{17}(\d|x)$/i.test(sId))
        {
                return false;
        }
        sId=sId.replace(/x$/i,"a");
        //非法地区
        if(aCity[parseInt(sId.substr(0,2))]==null)
        {
                return false;
        }

        var sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));

        var d=new Date(sBirthday.replace(/-/g,"/"))
       
        //非法生日
        if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
        {
                return false;
        }
        for(var i = 17;i>=0;i--)
        {
                iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11);
        }

        if(iSum%11!=1)
        {
                return false;

        }
        return true;

}
//是否是有效链接
String.prototype.isUrl = function()
{
        return /^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-./?%&=]*)?$/i.test(this);
}
//计算字符串打印长度
String.prototype.LengthW = function()
{
        return this.replace(/[^\x00-\xff]/g,"**").length;
}

//是否是正确的IP地址
String.prototype.isIP = function()
{

        var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;

        if (reSpaceCheck.test(this))
        {
                this.match(reSpaceCheck);
                if (RegExp.$1 <= 255 && RegExp.$1 >= 0
                 && RegExp.$2 <= 255 && RegExp.$2 >= 0
                 && RegExp.$3 <= 255 && RegExp.$3 >= 0
                 && RegExp.$4 <= 255 && RegExp.$4 >= 0)
                {
                        return true;    
                }
                else
                {
                        return false;
                }
        }
        else
        {
                return false;
        }
  
}
//是否是正确的长日期
String.prototype.isLongDate = function()
{
        var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
        if(r==null)
        {
                return false;
        }
        var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);

}
//是否是正确的短日期
String.prototype.isShortDate = function()
{
        var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
        if(r==null)
        {
                return false;
        }
        var d = new Date(r[1], r[3]-1, r[4]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
//是否是正确的日期
String.prototype.isDate = function()
{
        return this.isLongDate()||this.isShortDate();
}

//是否是手机
String.prototype.isMobile = function()
{
        return /^0{0,1}13[0-9]{9}$/.test(this);
}
//是否是邮件
String.prototype.isEmail = function()
{
        return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(this);
}
//是否是邮编(中国)
String.prototype.isZipCode = function()
{
        return /^[\\d]{6}$/.test(this);
}
//是否是有汉字
String.prototype.existChinese = function()
{
        //[\u4E00-\u9FA5]為漢字﹐[\uFE30-\uFFA0]為全角符號
        return /^[\x00-\xff]*$/.test(this);
}
/****************************************** Bit's function by own 2007-2008 ******************************************/
//适应比例调整图片
function AdjustImage(w,h,id)
{
	var width=w,height=h;
	var el=document.getElementById(id);
	var imgWidth=el.width,imgHeight=el.height;
	var i=100,j=1,newWidth,newHeight;
	if(imgWidth>=width||imgHeight>=height)
	{
		while(i>0)
		{
			i=i-j;
			newWidth=imgWidth*(i/100);
			newHeight=imgHeight*(i/100);
			if(newWidth<width&&newHeight<height) break;
		}
		el.width=newWidth;
		el.height=newHeight;
	}
}
//创建XHR
function CreateXHR()
{
	if(typeof XMLHttpRequest!="undefined")
	{
		return new XMLHttpRequest(); 
	}
	else if(window.ActiveXObject)
	{
		var aVersions=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"]
		for(var i=0;i<aVersions.length;i++)
		{
			try
			{
				var oXHR=new ActiveXObject(aVersions[i]);
				return oXHR;
			}
			catch(oError)
			{
				//do nothing
			}
		}
	}
	throw new Error("XMLHttp Object could be created.")
}
//创建隐藏帧
function CreateIframe(Iname,url)
{
	var OIdIframe=document.createElement("iframe");
		OIdIframe.name=Iname;
		OIdIframe.id=Iname;
		OIdIframe.width=0;
		OIdIframe.height=0;
		OIdIframe.frameborder=0;
		OIdIframe.src=url;
		document.body.appendChild(OIdIframe);
		OFrames=frames[Iname];
}
