﻿// JavaScript Document

var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
var lastUserName = lastPassword = lastEmail = lastSecCode = '';

function $(id) {
	return document.getElementById(id);
}

function in_array(needle, haystack) {
	if(typeof needle == 'string' || typeof needle == 'number') {
		for(var i in haystack) {
			if(haystack[i] == needle) {
					return true;
			}
		}
	}
	return false;
}

function trim(str) { 
	var re = /\s*(\S[^\0]*\S)\s*/; 
	re.exec(str); 
	return RegExp.$1; 
}

//验证码
function seccode() {
	var img = 'http://passport.8181.com.cn/index.php?ac=seccode&rand='+Math.random();
	document.writeln('<a href="javascript:updateseccode()"><img id="img_seccode" src="'+img+'" align="absmiddle" alt="看不清重新换一张" /></a><span>看不清？<a href="javascript:updateseccode()" title="看不清？换一张">换一张</a></span>');
}

function updateseccode() {
	var img = 'http://passport.8181.com.cn/index.php?ac=seccode&rand='+Math.random();
	if(('img_seccode')) {
		$('img_seccode').src = img;
	}
}


function doSubmit(){

	var username  = $('username').value;
	var password  = $('password').value;
	var password2 = $('password2').value;
	var email     = $('email').value;

	if (username == "") {
		alert("您没有输入用户名");
		$('username').focus();
		return false;
	}
	if (username.length < 4) {
		alert("用户名不能小于4个字符");
		$('username').focus();
		return false;
	}
	if (username.length > 16) {
		alert("用户名长度不能超过16个字符");
		$('username').focus();
		return false;
	}

	if (username.match(/[\s|　]/ig)) {
		alert("用户名不允许包含空格");
		$('username').focus();
		return false;
	}

	if (password == null || password == "") {
		alert("请输入密码");
		$('password').focus();
		return false;
	}
	if (password.length < 4) {
		alert("密码长度不能小于4位");
		$('password').focus();
		return false;
	}
	if (password.match(/\s/ig)) {
		alert("密码不允许有空格！");
		$('password').focus();
		return false;
	}
	if (password.length > 15) {
		alert("密码长度不能超过15位");
		$('password').focus();
		return false;
	}

	if (password2 != password) {
		alert("两次输入的密码不一致");
		$('password2').focus();
		return false;
	}

	if (email == "") {
		alert("请输入电子邮件地址");
		$('email').focus();
		return false;
	}

	if (email.match(/\s/ig)) {
		alert("电子邮件地址不允许有空格");
		$('email').focus();
		return false;
	}

	var re = new RegExp("^[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+.[a-zA-Z]+$");
	var flag = re.test(email);
	if (!flag) {
		alert("请填写正确的电子邮件地址");
		$('email').focus();
		return false;
	}

	if($('agreement').checked) {
		return true;
	} else {
		alert("您必须同意服务条款后才能注册");
		return false;
	}
	return true;
}

function checkPwd(pwd){

	if (pwd == "") {
		$("chkpswd").className = "psdiv0";
		$("chkpswdcnt").innerHTML = "";

	} else if (pwd.length < 3) {
		$("chkpswd").className = "psdiv1";
		$("chkpswdcnt").innerHTML = "太短";
	} else if(!isPassword(pwd) || !/^[^%&]*$/.test(pwd)) {
		$("chkpswd").className = "psdiv0";
		$("chkpswdcnt").innerHTML = "";
	} else {
		var csint = checkStrong(pwd);
		switch(csint) {
			case 1:
				$("chkpswdcnt").innerHTML = "很弱";
				$("chkpswd").className = "psdiv"+(csint + 1);
				break;
			case 2:
				$("chkpswdcnt").innerHTML = "一般";
				$("chkpswd").className = "psdiv"+(csint + 1);
				break;
			case 3:	
				$("chkpswdcnt").innerHTML = "很强";
				$("chkpswd").className = "psdiv"+(csint + 1);
				break;
		}
	}
}

//返回密码的强度级别 
function checkStrong(pwd){ 
	modes=0; 
	for (i=0;i<pwd.length;i++){ 
		//测试每一个字符的类别并统计一共有多少种模式. 
		modes|=charMode(pwd.charCodeAt(i)); 
	}
	return bitTotal(modes);
}

function charMode(iN){ 
	if (iN>=48 && iN <=57) //数字 
		return 1; 
	if (iN>=65 && iN <=90) //大写字母 
		return 2; 
	if (iN>=97 && iN <=122) //小写 
		return 4; 
	else 
		return 8; //特殊字符 
}

//计算出当前密码当中一共有多少种模式 
function bitTotal(num){ 

	modes=0;
	for (i=0;i<4;i++){ 
		if (num & 1) modes++; 
		num>>>=1; 
	} 
	return modes; 
} 

function isPassword(str){
	if (str.length < 3) return false;
	var len;
	var i;
	len = 0;
	for (i=0;i<str.length;i++){
		if (str.charCodeAt(i)>255) return false;
	}
	return true;
}

function checkusername() {
	var userName = $('username').value;
	if(userName == lastUserName) {
		return;
	} else {
		lastUserName = userName;
	}
	var cu = $('checkusername');
	var unLen = userName.replace(/[^\x00-\xff]/g, "**").length;

	if(unLen < 3 || unLen > 15) {
		warning(cu, unLen < 3 ? '用户名小于3个字符' : '用户名超过 15 个字符');
		return;
	}
	//ajaxresponse('checkusername', 'type=username&value=' + (is_ie && document.charset == 'gb2312' ? encodeURIComponent(userName) : userName));
	GetResult('checkusername','type=username&value=' + escape(userName));
}

function checkPassword(confirm) {
	var password = $('password').value;
	if(!confirm && password == lastPassword) {
		return;
	} else {
		lastPassword = password;
	}
	var cp = $('checkpassword');
	if(password == '' || /[\'\"\\]/.test(password)) {
		warning(cp, '密码空或包含非法字符');
		return false;
	} else {
		cp.style.display = '';
		cp.innerHTML = '<img src="images/check_right.gif" width="13" height="13">';
		if(!confirm) {

			checkPassword2(true);
		}
		return true;
	}
}

function checkPassword2(confirm) {
	var password = $('password').value;
	var password2 = $('password2').value;
	var cp2 = $('checkpassword2');
	if(password2 != '') {
		checkPassword(true);
	}
	if(password == '' || (confirm && password2 == '')) {
		cp2.style.display = 'none';
		return;
	}
	if(password != password2) {
		warning(cp2, '两次输入的密码不一致');
	} else {
		cp2.style.display = '';
		cp2.innerHTML = '<img src="images/check_right.gif" width="13" height="13">';
	}
}

function checkEmail() {
	var Email = $('email').value;
	if(Email == lastEmail) {
		return;
	} else {
		lastEmail = Email;
	}
	var ce = $('checkemail');

	var re = new RegExp("^[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+.[a-zA-Z]+$");
	var flag = re.test(Email);
	if (!flag) {
		warning(ce, '请填写正确的电子邮件地址');
		return;
	}else{
		ce.style.display = '';
		//ce.innerHTML = '<img src="images/check_right.gif" width="13" height="13">';
	}
	//ajaxresponse('checkemail', 'type=email&value=' + (is_ie && document.charset == 'gb2312' ? encodeURIComponent(Email) : Email));
	GetResult('checkemail','type=email&value=' + escape(Email));
}

function checkSeccode() {
	var seccodeVerify = $('seccode').value;
	if(seccodeVerify == lastSecCode) {
		return;
	} else {
		lastSecCode = seccodeVerify;
	}
	//ajaxresponse('checkseccode', 'type=seccode&value=' + (is_ie && document.charset == 'gb2312' ? encodeURIComponent(seccodeVerify) : seccodeVerify));
	//GetResult('checkcode','type=code&value=' + escape(seccodeVerify));
}

function ajaxresponse(objname, data) {
	var x = new Ajax('XML', objname);
	x.get('/include/AjaxCheck.asp?ac=ajaxcheck&' + data, function(s){
		var obj = $(objname);
		s = trim(s);
		if(s.indexOf('succeed') > -1) {
			obj.style.display = '';
			obj.innerHTML = '<img src="images/check_right.gif" width="13" height="13">';
			obj.className = "warning";
		} else {
			warning(obj, s);
		}
	});
}

function GetResult(objname,data) 
{   
     var exitdos;
       if(window.ActiveXObject){
           exitdos = new ActiveXObject("Microsoft.XMLHTTP");
          }
        else if(window.XMLHttpRequest){
         exitdos = new XMLHttpRequest();
		} 
 
    //特殊字符：+,%,&,=,?等的传输解决办法.字符串先用escape编码的. 
	//alert(unescape(data));
    exitdos.open("get",'/include/AjaxCheck.asp?ac=ajaxcheck&' + data ,false); 
    exitdos.send(); 
    //服务器端处理返回的是经过escape编码的字符串. 
	if (unescape(exitdos.responseText).indexOf('useryes') > -1) {
	   document.getElementById(objname).innerHTML = '<img src="images/check_error.gif" width="13" height="13"> &nbsp; 该用户已经存在';
		}
	if (unescape(exitdos.responseText).indexOf('email') > -1) {
	   document.getElementById(objname).innerHTML = '<img src="images/check_error.gif" width="13" height="13"> &nbsp; 该Email已经注册过！';
		}
	if (unescape(exitdos.responseText).indexOf('code') > -1) {
	   document.getElementById(objname).innerHTML = '<img src="images/check_error.gif" width="13" height="13"> &nbsp; 验证码不相符！';
		}
    if (unescape(exitdos.responseText).indexOf('no') > -1) {
	   document.getElementById(objname).innerHTML = '';
		}
   //document.getElementById(objname).innerHTML = unescape(exitdos.responseText);

} 

function warning(obj, msg) {
	obj.style.display = '';
	obj.innerHTML = '<img src="images/check_error.gif" width="13" height="13"> &nbsp; ' + msg;
	obj.className = "warning";
}

