var oAjaxCheckName;
var oAjaxCheckEmail;
var oAjaxCheckAuth;

//登录验证参数 bool类型
var bName = false;
var bPwd = false;
var bEmail = false;
var bVerifyCode = false;
	
/**
 * 刷新验证码
 */
function refreshAuth(){
	var ran = Math.random();
	document.getElementById('authImg').src = 'operator/ranImg.php?ran=' + ran;
}


/**
 * 判断用户名是否合法,
 * 合法的话,进一步发送请求验证,该用户是否被注册过
 */
function checkUserReq(){
	var uName = getEle('registerName').value;
	if(uName==''){
		getEle('nameSpan').innerHTML = '';
		bName = false;
		return ;
	}
	if(uName.length < 4){
		getEle('nameSpan').innerHTML = "<span style='color:#6c3f1a'>用户名太短</span>";
		bName = false;
		return;
	}
	//合法用户名
	if(!legalUserName(uName)){
		bName = false;
		getEle('nameSpan').innerHTML = "<span style='color:#6c3f1a'>用户名非法</span>";
		return ;
	//用户名合法,ajax发送请求
	}else{
		oAjaxCheckName = AJAX_objRedefine(oAjaxCheckName);
		var params = 'userName=' + uName + "&ran=" + Math.random();
		var url = 'operator/checkUser.php';
		AJAX_sendRequestByPost(oAjaxCheckName,url,params,checkUser);	
	}
	
}///~checkUser()

function checkUser(){
	if(oAjaxCheckName.readyState == 4 && oAjaxCheckName.status == 200){
		var result = AJAX_getResponseText(oAjaxCheckName);
		var oDomNameSpan = getEle('nameSpan');
		//用户存在
		if(result == 2){
			bName = false;
			oDomNameSpan.innerHTML = "<span style='color:#6c3f1a'>用户名不合法</span>";
		//用户不存在,可以注册
		}else if(result == 1){
			oDomNameSpan.innerHTML = "<span style='color:#037d85'>正确</span>";
			bName = true;
		}else if(result == 3){
			bName = false;
			oDomNameSpan.innerHTML = "<span style='color:#6c3f1a'>用户名不合法</span>";
		
		}else if(result == 4){
			bName = false;
			oDomNameSpan.innerHTML = "<span style='color:#6c3f1a'>用户名已使用</span>";
		}
	}
}///~checkUser()


/**
 * 验证email,需要传入参数name,pwd,email
 */ 
function checkEmailReq(){
	oAjaxCheckEmail = AJAX_objRedefine(oAjaxCheckEmail);
	var email = getEle('mail').value;
	var oDOMEmailSpan = getEle('emailSpan');
	if( email == ''){
		bEmail = false;
		oDOMEmailSpan.innerHTML = '';
		return false;
	}
	if( !isEmail(email) ){
		bEmail = false;
		oDOMEmailSpan.innerHTML = "<span style='color:#6c3f1a'>格式不正确<span>";
		return false;
	}
	//用户输入均合法
	var params = '&email=' + email + '&ran=' + Math.random();
	var url = 'operator/checkEmail.php';
	AJAX_sendRequestByPost(oAjaxCheckEmail,url,params,checkEmail);
}///~checkEmailReq()

/**
 * 
 */
function checkEmail(){
	if(oAjaxCheckEmail.readyState == 4 && oAjaxCheckEmail.status == 200){
		var oDOMEmailSpan = getEle('emailSpan');
		var result = AJAX_getResponseText(oAjaxCheckEmail);
		//email没有被使用过
		if(result == 2){
			bEmail = false;
			oDOMEmailSpan.innerHTML = "<span style='color:#6c3f1a'>Email 格式有误<span>";
		}else if(result == 1){
			oDOMEmailSpan.innerHTML = "<span style='color:#037d85'>正确</span>";
			bEmail = true;
		}else if(result == 3){
			bEmail = false;
			oDOMEmailSpan.innerHTML = "<span style='color:#6c3f1a'>不允许注册<span>";
		}else if(result == 4){
			bEmail = false;
			oDOMEmailSpan.innerHTML = "<span style='color:#6c3f1a'>邮箱被使用<span>";
		}
	}
}///~checkEmail()


/**
 * js 验证用户密码
 */
function checkPwd(){
	var pwd = getEle('registerPwd').value;
	var rePwd = getEle('repwd').value;
	var oDOMPwdSpan = getEle('pwdSpan');
	var oDOMRePwdSpan = getEle('repwdSpan');
	//2个密码都没有填写
	if( (pwd == '') && (rePwd == '')){
		oDOMPwdSpan.innerHTML = '';
		oDOMRePwdSpan.innerHTML = '';
		return false;
	//填写了密码没有填密码确认
	}else if((pwd != '') && (rePwd == '')){
		oDOMRePwdSpan.innerHTML = "<span style='color:#6c3f1a'>密码不为空<span>";
		return false;
	//密码 只填写了确认密码
	}else if((pwd == '') && (rePwd != '')){
		oDOMPwdSpan.innerHTML = "<span style='color:#6c3f1a'>密码不为空<span>";
		return false;
	//2个密码都填了
	}else{
		if(pwd.length < 4){
			oDOMPwdSpan.innerHTML = "<span style='color:#6c3f1a'>长度4-10<span>";
			return false;
		}else if(rePwd.length > 10){
			oDOMPwdSpan.innerHTML = "<span style='color:#6c3f1a'>长度4-10<span>";
			return false;
		}else if(pwd != rePwd ){
			oDOMRePwdSpan.innerHTML = "<span style='color:#6c3f1a'>密码不一致<span>";
			return false;
		}else{
			oDOMPwdSpan.innerHTML = "<span style='color:#037d85'>正确</span>";
			oDOMRePwdSpan.innerHTML = "<span style='color:#037d85'>正确</span>";
			return true;
		}
	}
	return true;
}///~checkPwd()


/**
 * 验证码匹配请求
 */
function checkAuthReq(){
	oAjaxCheckAuth = AJAX_objRedefine(oAjaxCheckAuth);
	var verifyCode = getEle('verify').value;
	if(verifyCode != ''){
		var url = 'operator/checkAuth.php';
		var params = 'verCode=' + verifyCode + "&ran=" + Math.random();
		AJAX_sendRequestByPost(oAjaxCheckAuth,url,params,checkAuth);
	}else{
		bVerifyCode = false;
		getEle('verifySpan').innerHTML='';
	}
}///~checkAuthReq()


/**
 * 
 */
function checkAuth(){
	if(oAjaxCheckAuth.readyState == 4 && oAjaxCheckAuth.status == 200){
		var oDOMVerifySpan = getEle('verifySpan');
		var result = AJAX_getResponseText(oAjaxCheckAuth);
		//alert('result = ' + result);
		//匹配
		if(result == 1){
			bVerifyCode = true;
			oDOMVerifySpan.innerHTML= "<span style='color:#037d85'>正确</span>";
		//不匹配
		}else if(result == 2){
			bVerifyCode = false;
			oDOMVerifySpan.innerHTML="<span style='color:#6c3f1a'>验证码错误<span>";
		//会话中不存在验证码
		}else if(result == 3){
			bVerifyCode = false;
			oDOMVerifySpan.innerHTML="<span style='color:#6c3f1a'>验证码未知<span>";
		}else{
			bVerifyCode = false;
			oDOMVerifySpan.innerHTML='';
		}
		
	}
}///~checkAuth()

/**
 * 获得用户注册资源信息
 */

/**
 * 获得操作系统名
 * @return string  [ 'Window','Linux' ,'Mac' ]
 */
function getOS(){
	var ua = navigator.userAgent.toLowerCase();
	if(ua == ''){
		return 'error os';
	}
	
	//windows系统
	if(ua.indexOf('windows') != -1 || ua.indexOf('win32') != -1){
		return 'Windows';
	}
	
	//Mac 系统
	if(ua.indexOf('macintosh') != -1 || ua.indexOf('mac os x') != -1){
		return 'Mac';
	}
	
	//linux系统
	if(ua.indexOf('linux') != -1){
		return 'Linux';
	}
	return 'others';
}///~getOS()


/**
 * 获得浏览器的类型
 */
function getUserAgent(){
	var ua = navigator.userAgent.toLowerCase();
	var agent = '';
	//浏览器类型
	if(ua.indexOf('msie') > -1){
	
		agent = 'IE: 6.0';	
	}else if(ua.indexOf('msie 7') > -1){
	
		agent = 'IE: 7.0';
	}else if(ua.indexOf('msie 8') > -1){
	
		agent = 'IE: 8.0';
	}else if(ua.indexOf('firefox') > -1){
	
		agent = 'Firefox';
	}else if(ua.indexOf('opera') > -1){
	
		agent = 'Opera';
	}else if(ua.indexOf("safari") > -1){
	
		agent = 'Safari';
	}else if(ua == ''){
		
		agent = 'error agent';
	}else{
	
		agent = 'other';
	}
	return agent;
}///~getUserAgent()



/**
 * 获得源url
 */
function getPreviousUrl(){
	
	var ref = document.referrer;
	//alert('url对象 = ' + ref);
	//alert('上一个url = ' + ref.toString());
	return ref.toString();
}

function debugPrint(key , value){
	alert( key + ' = ' + value);
}

/**
 * 获得flash的版本
 */
function flashChecker()
{
	var hasFlash=0;         //是否安装了flash
	var flashVersion=0; //flash版本

	if(document.all)
	{
		var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); 
		if(swf) {
			hasFlash=1;
			VSwf=swf.GetVariable("$version");
			flashVersion=parseInt(VSwf.split(" ")[1].split(",")[0]); 
		}
	}else{
		if (navigator.plugins && navigator.plugins.length > 0)
		{
			var swf = navigator.plugins["Shockwave Flash"];
		    if (swf)
		    {
				hasFlash=1;
		        var words = swf.description.split(" ");
		        for (var i = 0; i < words.length; ++i)
				{
		            if (isNaN(parseInt(words[i]))) continue;
		            flashVersion = parseInt(words[i]);
				}
	   		}
		}
	}
	return {f:hasFlash,v:flashVersion};
}


/**
 *  获得url上 w1对应的参数值
 */
function getWebSite1Value(url){
    
    if(url == ''){
        return 'empty';
    }
    
    var w1Pos = url.indexOf('?w1');
    w1Pos = w1Pos == -1 ? url.indexOf('&w1') : w1Pos;
    if(w1Pos == -1){
        return 'empty';    
    } 
    
    var subUrl = url.substr(w1Pos + 1);
    //alert('subUrl = ' + subUrl);
    var pos = subUrl.indexOf('&');
    pos = pos == -1 ? subUrl.length : pos;
    
    //alert('pos = ' + pos);
    
    return subUrl.substring(3,pos);   
}

/**
 * 获得网址来源
 */
function getWebsites(){
	var url = window.location.href.toString();
	if(url.indexOf('?') == -1){
		return '';
	}
	var strWebsites = url.substring(url.indexOf('?') + 1,url.length);
	return '&' + strWebsites;
}

/**
 * 追踪用户来源,并将来源的url记录在cookie中
 */
 function registerTracing(){
     //获得源 url
     var ref = getPreviousUrl();
     var domainName = "";
     var webSite1 = "";
     var cookietime = 1440;
     var localUrl = window.location.href.toString();
     //alert('localUrl = ' + localUrl);
     if(localUrl != ""){
         //操作w1
         var w1 = getCookie('12_34_com_w1');
         if(w1 == "" || w1 == 'empty'){
         
	         if(localUrl.indexOf('w1') != -1){
	             webSite1 = getWebSite1Value(localUrl);
	             //alert('记录website1 =' + webSite1);
	             addCookie('12_34_com_w1',webSite1,cookietime);
	             
	         }else{
	             webSite1 = 'empty';
	             //alert('记录website1 =' + webSite1);
	         }
         }else{
            // alert('has_w1');
         }
     }
     //有源url,记录url 的domain,并将其domain添加到cookie中,失效时间为cookietime分钟
     if(ref != ''){
         
         
         //如果cookie中没有ref
         if(getCookie('12_34_com_ref') == ""){
         
             //取源url的domain name
             var pos = ref.indexOf("http://");
             var domainStr = ref.substr( (pos != -1) ? (pos + 7) : 0 ,ref.length - 1);
             
             var subPos = domainStr.indexOf("/");
             domainName = subPos != -1 ? domainStr.substr(0,subPos) : domainStr;
             
             //alert('记录' + domainName);
             //将domain 添加到cookie中,有效期为cookietime分钟
             addCookie('12_34_com_ref',domainName,cookietime);
             //alert('cookie_' + domainName );
             
         }//else{
            // alert('has_' + getCookie('12_34_com_ref'));
         //}
         
     //如果没有源url, 直接从12.34.com注册
     }else{
         
         if(getCookie('12_34_com_ref') == ""){
         
             addCookie('12_34_com_ref','direct',cookietime);
             //alert('cookie_direct');
           }//else{
             //alert('has_direct' + getCookie('12_34_com_ref'));
         //}
     }
 }
 
 /**
  * 获得注册追踪用户的来源
  */
  function getRegisterSource(){
      
      var source = getCookie('12_34_com_ref');
      return source != "" ? source : "no url";
  }
  
  /**
   * 获取参数w1的值
   */
  function getWebSite1(){
      var w1 = getCookie('12_34_com_w1');
      return w1 != "" ? w1 : 'empty';
  }
 
/**
 * 注册信息填写验证
 */
function register_validate(){

	var name = getEle('name').value;
	var pwd =  getEle('pwd').value;
	var rePwd = getEle('repwd').value;
	var email = getEle('mail').value;
	var verify = getEle('verify').value;
	bPwd = checkPwd();
	if( !bName){
		alert('请输入或更换用户名');
		return false;
	}else if(!bPwd){
		alert('密码设置有误');
		return false;
	}else if(!bEmail){
		alert('请正确填写邮箱地址');
		return false;
	}else if( verify == ''){
		alert('验证码不能为空');	
		return false;
	}
	//return true;
	
	//注册来源信息 传递
	var w2 = getRegisterSource();
	var os = getOS();
	var agent = getUserAgent();
	var fl = flashChecker();
	var flashVersion = fl.f == 1 ? fl.v : -1;
	var websiteParam = getWebsites();
	var w1 = getWebSite1();
	var params = "?w2=" + w2 + '&w1=' + w1 + '&os=' + os
							+ '&agent=' + agent + '&flashVersion=' 
							+ flashVersion + '&ran=' + Math.random();
	//alert("params = " + "operator/register.php" + params);
	document.rgForm.action="operator/register.php" + params;
	document.rgForm.submit();
									
}///~register_validate()




///ajaxFun .js
/**
 *	获得 xmlHttpRequest对象函数
 */
function AJAX_getXMLHTTPRequest(){
	var xRequest = null;    
    if(window.XMLHttpRequest){
        xRequest = new XMLHttpRequest();
    }
    else if(typeof ActiveXObject != 'undefined'){
        xRequest = new ActiveXObject('Msxml2.XMLHTTP');
        //xRequest = new ActiveXObject('Microsoft.XMLHTTP');
    }
    return xRequest;
}///~getXMLHTTPRequest()


/**
 * xmlHttp对象 重新初始化,
 * 原因: IE的缓存, 导致onreadystatechange 的状态不会触发
 */
function AJAX_objRedefine(xmlHttp){
	//已经初始化过的话
	if(xmlHttp != null){
		xmlHttp = null;
		xmlHttp = AJAX_getXMLHTTPRequest();
	}else{
		xmlHttp = AJAX_getXMLHTTPRequest();
	}
	return xmlHttp;
}///~AJAX_objRedefined()

/**
 * xmlHttp对象按照post方法发送请求
 * @param onchangeMethod : 状态改变时候  触发的请求
 */
function AJAX_sendRequestByPost(xmlHttp,url,params,onchangeMethod){
	//重新初始化xmlhttp对象
	//AJAX_objRedefine(xmlHttp);
	if(onchangeMethod != null){
		xmlHttp.onreadystatechange = onchangeMethod;
	}
	xmlHttp.open('POST',url,true);
	xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlHttp.send(params);
}//~AJAX_sendRequestByPost()


/**
 * xmlHttp对象按照get方法发送请求
 */
function AJAX_sendRequestByGet(xmlHttp,url,onchangeMethod){
	//重新初始化xmlhttp对象
	//AJAX_objRedefine(xmlHttp);
	if(onchangeMethod != null){
		xmlHttp.onreadystatechange = onchangeMethod;
	}
	xmlHttp.open('GET',url,true);
	xmlHttp.send(null);
}///~AJAX_sendRequestByGet()

/**
 * 获得xmlHttp对象从服务器取得的text 文本
 */
function AJAX_getResponseText(xmlHttp){
	var text = xmlHttp.responseText;
	return text;
}///~AJAX_getResponseText

/**
 * 获得xmlHttp对象从服务器取得的xml 文本
 */
function AJAX_getResponseXML(xmlHttp){
	var xml = xmlHttp.responseXML;
	return xml;
}///~AJAX_getResponseXML()