var nhn = {};
nhn.register = (function(){
	var oMail = oUserID = oPassWord = oRe_passWord = oGetCode = time = null,
			oOtherInfo = oSubmit = http = null, show = true, url = '';

	// 检测email地址
	var checkMail = function(){
		var vMail = oMail.value,
				mailPatten = /^([a-zA-Z0-9]*[-_.]?[a-zA-Z0-9]+)+@(\w+\.)+[a-zA-Z]{2,3}$/;

		if(mailPatten.test(vMail)){
			return vMail;
		}else{
			//setInfo(oMail,SPS.text('MAIL_ADDRESS_FORMAT'));
			return;
		}
	};

	// 显示提示信息
	var setInfo = function(obj,infoText){
		var self = obj,
				parent = self.parentNode,
				info = parent.getElementsByTagName('strong')[0];
		if(info){
			info.innerHTML = infoText;
		}else{
			info = parent.getElementsByTagName('span')[0];
			info.innerHTML = infoText;
		}
	};

	// 删除提示信息
	var deleteInfo = function(obj){
		var self = obj,
				parent = self.parentNode,
				info = parent.getElementsByTagName('strong')[0];
		if(info){
			info.innerHTML = '';
		}else{
			info = parent.getElementsByTagName('span')[0];
			info.innerHTML = '';
		}
	}

	// 输入email时也同时录入用户ID
	var setUserName = function(){
			oUserID.value = '';
			if(oMail.value.indexOf('@') == -1){
				oUserID.value = oMail.value;
			}else{
				var index = oMail.value.indexOf('@');
				oUserID.value = oMail.value.substring(0,index);
			}
	};

	// 检测用户ID格式
	var checkUserID = function(){
		var vUser = oUserID.value,
				mix = 6, max = 20,
				pattern = /^[a-zA-Z0-9._-]*$/,
				hPattern = /^[a-zA-Z0-9]/;

		if(hPattern.test(vUser)){
			if(pattern.test(vUser) && (vUser.length >= mix) && (vUser.length <= max)){
				//setInfo(oUserID,'用户名格式正确');
				return vUser;
			}else{
				setInfo(oUserID,SPS.text('MAIL_USER_FORMAT'));
				return false;
			}
		}else{
				setInfo(oUserID,SPS.text('MAIL_USER_FORMAT'));
				return false;
		}
	};

	// 检测密码强弱
	var checkPassWordStrong = function(){
		var vPass = oPassWord.value;
		if(vPass.length <= 5){
				setInfo(oPassWord,SPS.text('MAIL_PASSWORD_SHORT'));
		}else if(vPass.length <= 6){
				setInfo(oPassWord,SPS.text('MAIL_PASSWORD_WEAK'));
		}else if(vPass.length >= 9 && vPass.length < 13){
				setInfo(oPassWord,SPS.text('MAIL_PASSWORD_GOOD'));
		}else if(vPass.length >= 13){
				setInfo(oPassWord,SPS.text('MAIL_PASSWORD_STRONG'));
		}
	};

	// 检测两次输入密码的一致性
	var checkPassWord = function(){
		var vPass = oPassWord.value,
				vRePass = oRe_passWord.value;
		if(vRePass){
			vPass == vRePass ? setInfo(oRe_passWord,SPS.text('MAIL_REPASSWORD_MATCHED')) : setInfo(oRe_passWord,SPS.text('MAIL_REPASSWORD_UNMATCHED'));
		}
	};

	// 展开/关闭附加信息
	var setOtherInfo = function(){
		var oBtn = document.getElementById('off');
		oBtn.title = SPS.text('MAIL_ICO_TITLE_OPEN');
		oBtn.onclick = function(){
			var src = this.src,
					lastIndex = src.lastIndexOf('_'),
					src = src.substring(0,lastIndex+1);
			if(oOtherInfo.style.display == 'none'){
				this.src = src + 'show.gif';
				this.title = SPS.text('MAIL_ICO_TITLE_CLOSE');
				oOtherInfo.style.display = 'block';
			}else if(oOtherInfo.style.display == 'block'){
				this.src = src + 'hide.gif';
				this.title = SPS.text('MAIL_ICO_TITLE_OPEN');
				oOtherInfo.style.display = 'none';
			}
		}
	};

	// 提交判断必填项
	var checkImportantValue = function(){
		var oImportant = document.getElementsByTagName('input'),
				oImportant_len = oImportant.length,
				important = '', flg = true,
				oAgree = document.getElementById('agree');
		for(var i = 0; i < oImportant_len; i++){
			if(oImportant[i].getAttribute('important') && oImportant[i].getAttribute('important') == 'yes'){
				if(!oImportant[i].value){
					switch(oImportant[i].id){
						case 'loginmail':
							setInfo(oImportant[i],SPS.text('MAIL_ADDRESS_NOVALUE'));
							break;
						case 'loginid':
							setInfo(oImportant[i],SPS.text('MAIL_USER_NOVALUE'));
							break;
						case 'Password':
							setInfo(oImportant[i],SPS.text('MAIL_PASSWORD_NOVALUE'));
							break;
						case 'verifyPassword':
							setInfo(oImportant[i],SPS.text('MAIL_REPASSWORD_NOVALUE'));
							break;
						case 'code':
							var oCodeError = document.getElementById('codeError');
							oCodeError.innerHTML = SPS.text('MAIL_CODE_NOVALUE');
							break;
					}
					flg = false;
				}
			}
		}

		if(flg){
			if(oAgree.checked){
				if(oPassWord.value != oRe_passWord.value){
					setInfo(oRe_passWord,SPS.text('MAIL_PASSWORD_SAME'));
				}else{
					alert('submit');
				}
			}else{
				alert(SPS.text('MAIL_SERVICE'));
			}
		}else if(!oAgree.checked){
				alert(SPS.text('MAIL_SERVICE'));
		}
	};


	// AJAX检测Email及用户名
	var ajaxMail = function(){
		var vMail = checkMail(),
				vUser = checkUserID();
		if(vMail && vUser){
			common.fun.ajax(url,function(){
				if(this.status == 200){
					if(this.readyState != 4){
						setInfo(oMail,'<img src="img/tts_autoplayload.gif">');
						setInfo(oUserID,'<img src="img/tts_autoplayload.gif">');
					}else{
						var info = http.responseText;
						deleteInfo(oMail);
						deleteInfo(oUserID);
						setInfo(oUserID,SPS.text('MAIL_USER_AVAILABLE'));
					}
				}
			},['mail='+vMail,'user='+vUser]);
		}
	}

	return{
		// 初始化元素
		init: function(mail_id,user_id,passWord_id,Re_passWord_id,oGetCode_id,otherInfo_id,submit_id){
			oMail = document.getElementById(mail_id);
			oUserID = document.getElementById(user_id);
			oPassWord = document.getElementById(passWord_id);
			oRe_passWord = document.getElementById(Re_passWord_id);
			oGetCode = document.getElementById(oGetCode_id);
			oOtherInfo = document.getElementById(otherInfo_id);
			oSubmit = document.getElementById(submit_id);
		},

		// 检测email相关信息
		mail: function(){
			//oMail.onblur = checkMail;
			//oMail.onkeyup = setUserName;
			//oUserID.onblur = checkUserID;
			//oPassWord.onblur = checkPassWord;
			//oPassWord.onkeyup = checkPassWordStrong;
			//oRe_passWord.onkeyup = checkPassWord;
			//oGetCode.onclick = setMailInfo;
			//oSubmit.onclick = checkImportantValue;
			setOtherInfo();
		},

		// email及用户名的AJAX检测
		ajax: function(ajaxUrl){
			url = ajaxUrl;
			oMail.onblur = ajaxMail;
		}
	}
})();
