﻿//-----------bf user login start-----------
var bf_stills_md5 = null;
Validate = {
	validateName : function(str){
		//1:正常,2:为空,3:长度限制,4:含有特殊字符
		if(str == null || str.length == 0) return 2;
		if(!/^.{3,32}$/.test(str)) return 3;
		if(!/^[\u0391-\uFFE5·a-zA-Z0-9_\.\@\-]+$/.test(str)) return 4; 
		return 1;
	},
	validatePwd : function(str){
		//1:正常,2:为空,3:密码长度超出限制,4:含非法字符
		if(str == null || str.length == 0) return 2;
		if(!/^.{4,32}$/.test(str)) return 3;
		if (!/^[A-Za-z0-9]+$/.test(str)) return 4;
		return 1;
	},
	validateVcode : function(str){
		//1:正常,2:为空,3:验证码长度超出限制,4:验证码不合法
		if(str == null || str.length == 0) return 2;
		if(!/^.{4,4}$/.test(str)) return 3;
		if (!/^[A-Za-z0-9]+$/.test(str)) return 4;
		return 1;
	},
	validateEmail : function(str){
		//1:正常,2:为空,3:邮箱不合法
		if(str == null || str.length == 0) return 2;
		if (!/^\w+((-\w+)|(\.\w+)|(_\w))*\@{1}\w+(\.{1}\w+)*\.{1}[a-zA-Z]{2,5}$/.test(str)) return 3;
		return 1;
	},
	validateIP : function(str){
		//1:正常,2:为空,3:ip地址不合法
		if(str == null || str.length == 0) return 2;
		if (!/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/.test(str)) return 3;
		return 1;
	},
	validateStr : function(str,maxlength){
		//1:正常,2:为空,3:长度限制,4:含有特殊字符
		if(str == null || str.length == 0) return 2;
		if(getStrLen(str)>maxlength) return 3;
		return 1;
	},
	validateNum : function(str){
		//1:正常,2:为空,3:不是数字
		if(str == null || str.length == 0) return 2;
		if (!/^[0-9]+$/.test(str)) return 3;
		return 1;
	}
};
/*
1:在页面具有特定ID的区域内显示信息
	var obj = {value:'test',msgid:'showid',msg:'正确',errorStyle:'color:red',rightStyle:'color:green',flg:1,showType:1,flg:0};
2:以传统alert方式显示信息
    var obj = {value:'test',msg:'正确',showType:0,flg:0};
参数含义：
value:"需要验证的值"
msgid:"显示信息的区域的ID"
msg:"验证信息"
errorStyle:"验证错误时的样式"
rightStyle:"验证成功时的样式"
flg:"信息验证成功还是失败的标识,成功为1，失败为0"
showType:"信息显示的方式,在页面特定ID的区域内显示信息时，其值为1;以alert方式显示,其值为0"
*/
Message = {
	show : function(obj){
		if(obj.showType==1)
			Message.showMessage(obj);
		else
			Message.showAlert(obj);
	},
	showMessage : function(obj){
		var element = $(obj.msgid);
		element.innerHTML = "<font style='"+obj.style+"'>"+obj.msg+"</font>";
		element.style.display = "";
	},
	showAlert : function(obj){
		alert(obj.msg);
	},
	hideMessage : function(id){
		var element = $(id);
		element.innerHTML = "";
		element.style.display = "none";
	},
	addMsg : function(obj,msg){
		obj.msg = msg;
		if(obj.showType==1){
			if(obj.flg==0)
				obj.style = obj.errorStyle;
			else if(obj.flg==1)
				obj.style = obj.rightStyle;
		}
		return obj;
	}
};
Check = {
	checkUserName : function(obj){
		var result = Validate.validateName(obj.value);
		if(result == 1){
			if(obj.userCheckFlg != undefined){
				User.checkUserName(obj.value,"Check.checkUserNameResult");
			}
			return true;	
		}else if(result == 2){
			Message.show(Message.addMsg(obj,"请输入用户名"));
		}else if(result == 3){
			Message.show(Message.addMsg(obj,"用户名长度超出限制，应该3-32位"));
		}else if(result == 4){
			Message.show(Message.addMsg(obj,"用户名含有非法字符"));
		}
		return false;
	},
	//验证用户名是否被占用
	checkUserNameResult : function(result) {
		if(result.status == 0) {
			Message.showMessage({msgid:'user_msg',msg:'此用户名已被使用',style:'color:red'});
		} else if(result.status == 1) {
			Message.showMessage({msgid:'user_msg',msg:'用户名可用',style:'color:green'});
			return true;
		} else {
			Message.showMessage({msgid:'user_msg',msg:'此用户名含非法字符',style:'color:red'});
		}
		return false;
	},
	checkPwd : function(obj){
		var result = Validate.validatePwd(obj.value);
		if(result == 1){
			if(obj.showType==1 && obj.userCheckFlg != undefined){
				obj.flg = 1;
				Message.show(Message.addMsg(obj,"密码正确"));
			}
			return true;	
		}else if(result == 2){
			Message.show(Message.addMsg(obj,"请输入密码"));
		}else if(result == 3){
			Message.show(Message.addMsg(obj,"密码长度为4--32位"));
		}else if(result == 4){
			Message.show(Message.addMsg(obj,"密码含有非法字符"));
		}
		return false;
	},
	checkRepwd : function(obj){
		var result = Validate.validatePwd(obj.value);
		if(result == 1){
			if(obj.value1 == obj.value){
				obj.flg = 1;
				Message.show(Message.addMsg(obj,"两次输入的密码一致"));
				return true;
			}else{
				Message.show(Message.addMsg(obj,"两次输入的密码不一致"));
			}
		}else if(result == 2){
			Message.show(Message.addMsg(obj,"请输入确认密码"));
		}else if(result == 3){
			Message.show(Message.addMsg(obj,"确认密码长度为4--32位"));
		}else if(result == 4){
			Message.show(Message.addMsg(obj,"确认密码含有非法字符"));
		}
		return false;
	},
	checkVcode : function(obj){
		var result = Validate.validateVcode(obj.value);
		if(result == 1){
			if(obj.showType==1){
				if(obj.userCheckFlg != undefined){
					obj.flg = 1;
					Message.show(Message.addMsg(obj,"验证码输入正确"));
				}
			}
			return true;	
		}else if(result == 2){
			Message.show(Message.addMsg(obj,"请输入验证码"));
		}else if(result == 3){
			Message.show(Message.addMsg(obj,"验证码必须是6位"));	
		}else if(result == 4){
			Message.show(Message.addMsg(obj,"验证码含有非法字符"));	
		}
		return false;
	},
	checkEmail : function(obj){
		var result = Validate.validateEmail(obj.value);
		if(result == 1){
			obj.flg = 1;
			Message.show(Message.addMsg(obj,"邮箱格式正确"));
			return true;	
		}else if(result == 2){
			Message.show(Message.addMsg(obj,"请输入邮箱"));
		}else if(result == 3){
			Message.show(Message.addMsg(obj,"请输入正确的邮箱"));
		}
		return false;
	},
	checkAgree : function(obj)
	{
		if(!obj.value){
			Message.show(Message.addMsg(obj,"请阅读并同意本网站服务协议"));
			return false;
		}
		return true;
	}
};
User = {
	popLogin : function() {
		var uname = $("uname").value;
		if(!Check.checkUserName({value:uname,showType:0}))
			return false;
		var pwd = $("pwd").value;
		if(!Check.checkPwd({value:pwd,showType:0}))
			return false;
		var vcode = "";
		if(Cookie.get('login_count')>4){
			vcode = $("vcode").value;
			if(!Check.checkVcode({value:vcode,showType:0}))
				return false;
		}
		var url = "ajaxlogin.asp?act=login&username=" + encodeURIComponent(uname) + "&password=" + encodeURIComponent(pwd) + "&callback=User.popLoginResult";
		jsonRequest(url,null,1);
		
		return false;
	},
	popLoginResult : function(result){
		if(result.status==1){
			User.storeCookie(result,"remember");
			User.clearPopInputUserData(1);
			User.popOnline();
		}else if(result.status == -1) {
			Message.showAlert({msg:"验证码错误!"}); 
			User.refreshVcode("vcode","imgvcode");
			return false;
		}else{
			Message.showAlert({msg:"用户名或者密码错误!"});
			Cookie.put('login_count',parseInt(Cookie.get('login_count')==null?0:Cookie.get('login_count'))+1,1);
			if(Cookie.get('login_count')>4){
				User.refreshVcode("vcode","imgvcode");
				$('vcode_container').style.display="";
			}
		}
	},
	popLogout : function(){
		jsonRequest("ajaxlogin.asp?act=logout&callback=User.popLogoutResult",null,0);
		return false;
	},
	popLogoutResult : function(result){
		if(result.status == 1 || result.status == 0) {
			User.removeCookie();
			User.popOffline();
		} else {
			return false;
		}
	},
	checkLogin : function() { //检测是否登录
		if(Cookie.get("bf_sid")) { //在线状态
			User.popOnline();
		} else { //未知状态向服务器请求
			var url = "ajaxlogin.asp?act=checklogin&info=1&callback=User.checkLoginResult";
			jsonRequest(url);
		}
	},
	checkLoginResult : function(result) { //是否登录回调
		if(result.status == 1) {
			User.storeCookie(result,0);
			User.popOnline();
		}else{
			User.popOffline();
		}
	},
	storeCookie : function(result,rememberid) { //存储用户信息 j回调数据 t储存时间 c是否存密码
		Cookie.put("bf_sid", result.bf_sid);
		if($(rememberid)){
			if($(rememberid).checked){
				Cookie.put("bf_hd_user_name", result.userinfo.username,30);
				Cookie.put("bf_hd_remember", 1,30);
			}else{
				Cookie.remove("bf_hd_remember");
				Cookie.put("bf_hd_user_name", result.userinfo.username);
			}
		}else{
			Cookie.put("bf_hd_user_name", result.userinfo.username);
		}
	},
	removeCookie : function(){
		Cookie.remove("bf_sid");
		if(!Cookie.get("bf_hd_remember"))
			Cookie.remove("bf_hd_user_name");
	},
	popOnline : function(){
		$('login_container').style.display='none';
		$('login_pop').style.display='none';
		$('openWidows').style.display="none";
		$('openWid').style.display="none";
		
		$('logined_container').style.display="";
		$('logined_username').innerHTML = Cookie.get("bf_hd_user_name");
	},
	popOffline : function(){
		$('logined_container').style.display='none';
		$('login_container').style.display="";
		$('a_login').className='';
	},
	clearPopInputUserData : function(flg){
		if(flg==1)
			$('uname').value = '';
		$('pwd').value = '';
		if(Cookie.get('login_count')>4)
			$('vcode').value = '';
	},
	setUsername : function(unameid,rememberid){
		var name =  Cookie.get('bf_hd_user_name');
		var remmber = Cookie.get('bf_hd_remember');
		if(name != null && remmber==1){
			$(unameid).value = name;
			$(rememberid).checked = true;
		}else{
			$(unameid).value = "";
			$(rememberid).checked = false;
		}
	},
	checkUserName : function(str,fn) {
		var url = "ajaxlogin.asp?act=checkuser&username=" + encodeURIComponent(str) + "&callback="+fn;
		jsonRequest(url,null,1);
	},
	refreshVcode : function(vcodeid,imgvcodeid){
		$(vcodeid).value='';
		$(imgvcodeid).src = "../include/checkcode/checkcode.asp?r=" + Math.random();
	},
	showBox : function(){
		//抓取id为openWidows的结构
		var bodyGao = $("openWidows");
		//body元素高度
		var bodyHeight = document.documentElement.scrollHeight;
		bodyGao.style.height = bodyHeight + "px";
		//一直执行js命令
		window.setInterval(function(){
			scrTop = document.documentElement.scrollTop;	
			scrContent = document.documentElement.clientHeight;
			$("openWid").style.top = (Number(scrContent)/2 + Number(scrTop)) + "px";
		},10);
	},
	showPop : function(){
		User.showPopLogin();
		$('a_login').className='cur';
		User.showVcode('vcode','imgvcode');
		$('login_pop').style.display="";
	},
	hidePop : function(){
		$('a_login').className='';
		User.clearPopInputUserData(0);
		$('openWidows').style.display="none";
		$('openWid').style.display="none";
		$('login_pop').style.display="none";
	},
	showPopLogin : function(){
		//$('openWidows').innerHTML = "";
		//$('openWidows').style.display="none";
		
		//$('openWid').innerHTML = "";
		//$('openWid').style.display="none";
		
		$('login_pop').innerHTML = User.getLoginCode();
		$('login_pop').style.display="";
		User.showBox();
	},
	showFloatLogin: function(){
		$('openWidows').innerHTML = "";
		$('openWidows').style.display="";
		
		$('login_pop').innerHTML = "";
		$('login_pop').style.display="none";
		
		$('openWid').innerHTML = User.getLoginCode();
		$('openWid').style.display="";
		User.showVcode("vcode","imgvcode");
		User.showBox();
	},
	showVcode : function(vcodeid,imgvcodeid){
		if(Cookie.get('login_count')>4)
			$('vcode_container').style.display="";
		User.setUsername("uname","remember");
		User.refreshVcode(vcodeid,imgvcodeid);
	},
	getLoginCode : function(){
		var str = '<div class="dlBox clearfix">';
        str += '<form id="pop_form" method="get" onsubmit="User.popLogin();return false;">';
		str += '<ul>';
		str += '<li>';
		str += '<b>用户名：</b>';
		str += '<em><input type="text" id="uname" name="uname" class="srInput" /></em>';
		str += '<em><input type="checkbox" id="remember" name="remember" value="" />记住用户名</em>';
		str += '</li>';
		str += '<li>';
		str += '<b>密码：</b>';
		str += '<em><input type="password" id="pwd" name="pwd" class="srInput" /></em>';
		str += '<em><a href="Membergetpass.asp" target="_blank">忘记密码？</a></em>';
		str += '</li>';
		str += '<li id="vcode_container" style="display:none;">';
		str += '<b>验证码：</b>';
		str += '<em><input type="text" id="vcode" name="vcode" class="srInput" maxlength="4"/></em>';
		str += '<em><img id="imgvcode" src="../include/checkcode/checkcode.asp" onclick="User.refreshVcode();" style="cursor:pointer;"/></em>';
		str += '</li>';
		str += '<li class="zcSub">';
		str += '<input type="submit" name="submit" class="submitBtn" value="">';
		str += '<a href="Memberregister.asp" class="zhuce">注册</a>';
		str += '</li>';
		str += '</ul>';
		str += '</form>';
		str += '<p><a href="javascript:void(0);" class="closeArrow" onclick="User.hidePop();">关闭</a></p>';
		str += '</div>';
		str += '<em class="shadowBg"></em>';
		return str;
	}
};
//-----------bf user login end-----------
//-----------cookie begin------------------
Cookie = {
	times : 7, 
	put : function(key, value, times){
		var cookieString = key + "=" + escape(value) + ";path=/;";
		if(times){
			var exp = new Date();
			exp.setTime(exp.getTime() + (times*24*60*60*1000));
			cookieString += "expires=" + exp.toGMTString();
		}
		document.cookie = cookieString;
	},
	get : function(key){
		var arr = document.cookie.split("; ");
		for (var i = 0; i < arr.length; i = i + 1) {
			var indx = arr[i].indexOf("=");
			var _key = arr[i].substring(0, indx);
			var value = arr[i].substring(indx + 1, arr[i].length);
			if (_key == key) {
				return unescape(value);
			}
		}
		return null;
	},
	remove : function(key){
		Cookie.put(key, "", -1);
	}
};
//-----------cookie end------------------
/*******************通用函数区域************************/
function $(element){return typeof element == 'string' ? document.getElementById(element) : element;}
function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); };
function abPos(o) { var o=(typeof(o)=='object'?o:$(o)), z={X:0,Y:0}; while(o!=null) { z.X+=o.offsetLeft; z.Y+=o.offsetTop; o=o.offsetParent; }; return(z); };
function XY(e,v) { var o=agent('msie')?{'X':event.clientX+document.body.scrollLeft,'Y':event.clientY+document.body.scrollTop}:{'X':e.pageX,'Y':e.pageY}; return(v?o[v]:o); };
function send(url) { window.sendLog = new Image();window.sendLog.src = url;};
function showhide(element){ element.style.display=='none'?$element.style.display="":element.style.display='none';};
function getStrLen(str)
{
     var i,sum=0;
     for(i=0;i<str.length;i++)
     {
         if ((str.charCodeAt(i)>=0) && (str.charCodeAt(i)<=255))
             sum=sum+1;
         else
             sum=sum+2;
     }
     return sum;
};
function jsonRequest(url, callBack, removeFlg){
    var head = document.getElementsByTagName("head")[0];
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = url;
    script.onload = script.onreadystatechange = function() {
        if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete") {
            if (typeof(callBack) == "string") {
                eval(callBack);
            }else if(typeof(callBack) == "function"){
                callBack.apply(this, arguments);
            }
            if(removeFlg) {
                try {
                    head.removeChild(this);
                } catch(e) {}
            }
        }
    };
    head.appendChild(script);
}; 
/*****************通用函数区 end****************************/
//window onload事件
function init() {
	User.checkLogin();
};
//window onload方法
if (typeof window.addEventListener != "undefined") {
    window.addEventListener("load", init, false);
} else if(typeof window.attachEvent != "undefined") {
    window.attachEvent("onload", init);
} else {
    window.onload = function(){init();};
};


