/* edit by ws
 -------------- 函数检索 ---------------------------------------
 GetScrollY()                       获取网页被卷去的高，制作浮动窗体可用
 chk_pwd(pwd)                       判断密码强度
 chk_name(name)                     用户名仅可使用汉字、数字、字母和下划线
 chk_cn_asc(str)                    通过判断字符的ascii码来检测是否中文
 chk_cn_ergi(str)                   通过正则表达式来校验字符串是否为中文
 Zoom(div_id,size)                  字体大小控制
 copy_input(item)                   拷贝到剪切板
 getoffset(e)                       取得绝对位置，返回数组含 top 与 left 两个值
 set_position(obj,vid,left,top)     用jq把 vid 定位到 obj 的位置
 str_len(str)                       返回指定字符串的长度
 get_file_fix(oFile)                得到文件的后缀名， oFile为file控件对象
 chk_email(str)                     邮件地址检测
 chk_valid_date(str)                校验字符串是否为日期型
 chk_date_earlier(strStart,strEnd)  校验两个日期的先后，只能是日期
 -------------- 函数检索 ---------------------------------------
*/ 

/* 获取网页被卷去的高，制作浮动窗体可用 */
function GetScrollY(){
    if (typeof window.pageYOffset == 'number'){
        return window.pageYOffset;
    }

    var CompatMode = window.document.compatMode;
    var DocumentElement = window.document.documentElement;

    if ((typeof CompatMode == 'string') && (CompatMode.indexOf('CSS') >= 0) && (DocumentElement) && (typeof DocumentElement.getAttribute("scrollTop") == 'number')){
        return DocumentElement.getAttribute("scrollTop");
     } 

    var Body = window.document.body ;

    if ((Body) && (typeof Body.getAttribute("scrollTop") == 'number')){
        return Body.getAttribute("scrollTop");
    }

    return 0;
}

/*
规则如下:
四种组合指 数字,小写字母,大写字母,其它字符
把密码强度分为四等:
1. 密码长度小于或等于四位.或者密码只有一种组合
2. 密码长度大于四位, 且有两种组合.
3. 密码长度大于四位, 且有三种组合.
4. 密码长度大于四位, 且有四种组合.
如果没有输入则返回0
*/
function chk_pwd(pwd){
    return pwd.replace(/^(?:([a-z])|([A-Z])|([0-9])|(.)){5,}|(.)+$/g, "$1$2$3$4$5").length;
}

/*用户名仅可使用汉字、数字、字母和下划线，有非法字符，返回false*/
function chk_name(name){ 
	var b=/^[a-zA-Z0-9\u4e00-\u9fa5\_]+$/; 
	if(b.test(name)) { 
		return true; 
	} else {
		return false;
	}
} 

//通过判断字符的ascii码来检测是否中文
function  chk_cn_asc(str){  
	var flag = true;
	if(str.length  ==  0){
		  flag = false;
		  return flag;
	}
	for(i  =  0;  i  <  str.length;  i++){  
		if(str.charCodeAt(i)  <=  128){
			flag = false;
			break;
		}
	}
	return  flag;
}

/**
*通过正则表达式来校验字符串是否为中文
*返回值：
*如果为空，定义校验通过，           返回true
*如果字串为中文，校验通过，         返回true
*如果字串为非中文，             返回false    参考提示信息：必须为中文！
*/
function chk_cn_ergi(str){
    //如果值为空，通过校验
    if (str == "")
        return true;
    var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;
    if (pattern.test(str))
        return true;
    else
        return false;
}

//字体大小控制
function zoom(div_id,size) {
	document.getElementById(div_id).style.fontSize=size+'px';
}

//拷贝到剪切板
function copy_input( item ) {
	copied = item.createTextRange();
	item.focus();
	item.select();
	copied.execCommand("Copy");
}

//取得绝对位置，返回数组含 top 与 left 两个值
function getoffset(e) {  
	var t=e.offsetTop;  
	var l=e.offsetLeft;  
	while(e=e.offsetParent) {  
		t+=e.offsetTop;  
		l+=e.offsetLeft;  
	}  
	var rec = new Array(1); 
	rec[0]  = t; 
	rec[1] = l; 
	return rec 
} 

/**把 vid 定位到 obj 的位置， left and top 是左边与上边的偏差值。
 * obj 一般都是用 this 代替，要用到函数 getoffset() 与 JQuery 库 */
function set_position(obj,vid,left,top){
	var t_l = getoffset(obj);
	$("#"+vid).css("left",t_l[1]+left);
	$("#"+vid).css("top",t_l[0]+top);
	$("#"+vid).show();
}

/* 返回指定字符串的长度，一个汉字算两个字符*/
function str_len(str){  
	var len;  
	var i;  
	len = 0;  
	for (i=0;i<str.length;i++){  
		if (str.charCodeAt(i)>255){  
			len+=2;   
		}else{  
			len++;  
		}  
	}  
	return len;  
} 

/** 得到文件的后缀名， oFile为file控件对象 */
function get_file_fix(oFile){
    if(oFile == null)return null;
    var pattern = /(.*)\.(.*)$/gi;
    if(typeof(oFile) == "object"){
        if(oFile.value == null || oFile.value == "")
            return null;
        var arr = pattern.exec(oFile.value);
        return RegExp.$2;
    }else if(typeof(oFile) == "string"){
        var arr = pattern.exec(oFile);
        return RegExp.$2;
    }else
        return null;
}

/** 邮件地址检测
1   必須包含一個並且只有一個符號'@'   
2   第一個子符不能是'@'或者'.'   
3   不允許出現'@.'或者'.@'或者'-@'或者'@-'   
4   結尾不得是子符'@'或者'.'     
5   子符@後面只能是'A-Za-z0-9'   
*/   
function chk_email(str){   
	var   strReg="";                   
	var   r;   
	strReg=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/i;                                   
	r=str.search(strReg);   
	if(r==-1) {  
		return false;   
	}else{
		return true;   
	}
}

/**
*校验字符串是否为日期型，间隔线目前只能是中划线
*返回值：
*如果为空，定义校验通过，           返回true
*如果字串为日期型，校验通过，       返回true
*如果日期不合法，                   返回false    参考提示信息：输入域的时间不合法！（yyyy-MM-dd）
*/
function chk_valid_date(str){
    //如果为空，则通过校验
    if(str == "")return true;
    var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;
    if(!pattern.test(str))return false;
    var arrDate = str.split("-");
    if(parseInt(arrDate[0],10) < 100)arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
    var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
    if(date.getYear() == arrDate[0]
       && date.getMonth() == (parseInt(arrDate[1],10) -1)+""
       && date.getDate() == arrDate[2])
        return true;
    else
        return false;
}


/**
*校验两个日期的先后，只能是日期，不能分辨时间
*返回值：
*如果其中有一个日期为空，校验通过,          返回true
*如果起始日期早于等于终止日期，校验通过，   返回true
*如果起始日期晚于终止日期，                 返回false    参考提示信息： 起始日期不能晚于结束日期。
*/
function chk_date_earlier(strStart,strEnd){
    if(chk_valid_date(strStart) == false || chk_valid_date(strEnd) == false)return false;
    //如果有一个输入为空，则通过检验
    if (( strStart == "" ) || ( strEnd == "" ))return true;
    var arr1 = strStart.split("-");
    var arr2 = strEnd.split("-");
    var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
    var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
    if(arr1[1].length == 1)
        arr1[1] = "0" + arr1[1];
    if(arr1[2].length == 1)
        arr1[2] = "0" + arr1[2];
    if(arr2[1].length == 1)
        arr2[1] = "0" + arr2[1];
    if(arr2[2].length == 1)
        arr2[2]="0" + arr2[2];
    var d1 = arr1[0] + arr1[1] + arr1[2];
    var d2 = arr2[0] + arr2[1] + arr2[2];
    if(parseInt(d1,10) > parseInt(d2,10))
       return false;
    else
       return true;
}

/* 弹出框 打开 div_id 弹出窗口ID号，div_width 为此DIV的宽度，
   bool_bg 此为DIV下方的大背景开关，值为 true 或 false; bool_set_pos 据此判断是否需要人工设置弹出框显示的位置 */
function open_alter(div_id,div_width,bool_bg,bool_set_pos){
	if(bool_bg == true){
		if(!document.getElementById("my_bg")){
			mybg = document.createElement("div");
			mybg.setAttribute("id","my_bg");
			mybg.style.background = "#000";
			if(navigator.userAgent.indexOf("MSIE")>0) { 
				if(document.body.scrollHeight < window.screen.availHeight){
					mybg.style.width = document.body.scrollWidth+"px";//现在宽度是定死的，所以此处写法无所谓
					mybg.style.height = window.screen.availHeight+"px";
				}else{
					mybg.style.width = document.body.scrollWidth+"px";
					mybg.style.height = document.body.scrollHeight+"px";
				}
			} 
			if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ 
				mybg.style.width =document.documentElement.scrollWidth+"px";
				mybg.style.height = document.documentElement.scrollHeight+"px";
			} 
			mybg.style.position = "absolute";
			mybg.style.top = "0";
			mybg.style.left = "0";
			mybg.style.opacity = "0.3";
			mybg.style.filter = "Alpha(opacity=30)";
			mybg.style.zIndex = "500";
			document.body.appendChild(mybg);
		}
		else{
			document.getElementById("my_bg").style.display = "block";
		}
	}
	
	var broY = GetScrollY(); //取得已滚动过去的高度
	var CreatePF = document.getElementById(div_id);
	CreatePF.style.display = "block";
	CreatePF.style.position = "absolute";
	CreatePF.style.top = "50%";
	CreatePF.style.left = (document.body.scrollWidth - div_width) / 2 + "px";
	if(bool_set_pos == false){//当不需要人工设置位置时，就固定位置显示即可
		CreatePF.style.marginTop = (broY - 250) + "px";
	}
	//CreatePF.style.marginLeft = "-300px";
	CreatePF.style.zIndex = "1000";
}
/*弹出框 关闭*/
function close_alter(div_id,bool_bg){
	document.getElementById(div_id).style.display = "none";
	if(bool_bg == true){
		document.getElementById("my_bg").style.display = "none";
	}
}

