$r("domReady",function(){
	var eleList=new function(){
		var form=this.form=__.forms[0];
		this.uid=$(form["signup_uid"]);
		this.nickname = $(form["signup_nickname"]);
		this.pwd=form["signup_pwd"];
		this.pwd2=form["signup_pwd2"];
		this.mobilePhone=form["signup_mobilephone"];
		this.email=form["signup_email"];
		this.private=form["signup_private"];
		this.promotionCode=form["PromotionCode"];
		this.submitBtn=form["signup_submit"];
		this.checkCode = form["checkCode"];
	};
	var classList={
		"true":"reg_correct",
		"false":"reg_info reg_warning",
		"load":"reg_info reg_loading",
		"refresh" : "reg_info"
	};
	var chkList=[];
	for (var name in eleList)
		$(eleList[name]);

// valiate no ajax element(pwd,pwd2,mobile,email)
	function validateInit(obj,re,func){
		if (!obj)
			return;
		var clock;
		var chkObj=$("chk_"+obj.name);
		if (!chkObj)
			return;
		obj.lastValue="";
		obj.tip=chkObj.innerHTML;
		obj.msg={
			"signup_pwd":$s2t("请输入密码，")+obj.tip,
			"signup_pwd2":$s2t("您两次输入的密码不一致，请重新输入。"),
			"signup_mobilephone":obj.tip,
			"signup_email":obj.tip
		}[obj.name];
		obj.check=function(chkFlag){
			var value=obj.value;
			if (chkFlag!==true&&value==obj.lastValue)
				return;
			obj.lastValue=value;
			var flag=re?re.test(value):true;
			if (func)
				flag=flag&&func(value);
			chkObj.className=classList[flag]; 
			/*if (chkObj.id=="chk_signup_mobilephone")
				chkObj.className+=" primemcenregister_position0"+(flag?3:2);*/
			chkObj.innerHTML=flag?"&nbsp;":obj.tip;
			chkObj.style.display = '';
			return flag;
		};
		obj.$r("focus",function(){
			clock=setInterval(obj.check,100);
		});
		obj.$r("blur",function(value){
			clearInterval(clock);
			obj.check();
		});
		chkList.push(function(){
			var flag=obj.check(true);
			if (!flag)
				$alert(obj,obj.msg);
			return flag;
		});
	}

// ajax validate code
	function ajaxChkKey(obj , re){
		if (!obj)
			return;
		var chkImg = $(obj.name+"_img");
		var chkText = $(obj.name+"_text");
		var timeout;
		obj.flag = false;
		obj.msg = {
			"refresh" : $s2t("看不清，点击图片更换"),
			"false" : $s2t("请正确输入验证码"),
			"load" : $s2t("检测中..."),
			"true" : "&nbsp;"
		};
		obj.$r('focus' , function(){
			obj.chclass("refresh");
			obj.$r('blur' , obj.check);
		});
		
		
		obj.chclass = function(type,isSubmit){
			obj.flag = type=="true"?true:false;
			chkImg.style.display = (type=="true"||type=="load")?"none":"";
			chkText.className =classList[type];
			chkText.innerHTML = obj.msg[type];
			if(type=="refresh") obj.value = "";
			if(isSubmit===true){
				if(type=="true")
					eleList.submitBtn.click();
				if(type=="false")
					$alert(obj,obj.msg["false"]);
			}
		};

		obj.check = function(isSubmit){
			if(re.test(obj.value)){
				if (isSubmit===true&&obj.flag)
					return true;
				obj.chclass("load");
				$ajax(obj.getAttribute("ajaxUrl"), 'checkCode=' + obj.value, function(txt){
					if(txt && txt.indexOf("check succeed") >= 0)
						obj.chclass("true" , isSubmit);
					else
						obj.chclass("false" , isSubmit);
				});
			}
			else
				obj.chclass("false" , isSubmit);
			obj.$ur('blur' , obj.check);
			return false;
		};

		chkImg.$r('mousedown' , function(e){
			this.src='Safecode.asp?'+Math.random();
			obj.chclass("refresh");
			obj.$ur('blur' , obj.check);
		});

		chkList.push(function(){
			return obj.check(true);
		});
	}

//ajax validate userid and promotioncode
	function ajaxValidateInit(obj,re,isAllowNull){
		if (!obj)
			return;
		var chkObj=$("chk_"+obj.name);
		if (!chkObj)
			return;
		obj.passValue={};
		obj.tip=chkObj.innerHTML;
		obj.msg={
			"signup_uid":$s2t("请正确填写用户名，用户名")+obj.tip,
			"PromotionCode":$s2t("请正确填写特惠活动代码。"),
			"signup_nickname": $s2t("请正确填写昵称，昵称为")+obj.tip
		}[obj.name];
		obj.msgExist=obj.name=="signup_uid"?$s2t("用户名已经存在，请使用其他用户名"):obj.name=='signup_nickname'?$s2t('昵称已经存在，请使用其他昵称'):null;
		obj.showClass=function(flag,isSubmit,isAjax,msg){
			if (isSubmit){
				if (flag){
					if (isAjax)
						eleList.submitBtn.click();
				}else
					$alert(obj,msg||obj.msg);
			}
			chkObj.className=flag=="null"?"":classList[flag];
			chkObj.innerHTML=flag===true?"&nbsp;":(flag=="load"?$s2t("检测中..."):msg||obj.tip);
			return flag;
		};
		obj.check=function(isSubmit){
			chkObj.style.display = obj.isNull() ? 'none' : '';
			var value=obj.value;
			if (!value)
				return obj.showClass(isAllowNull?"null":false,isSubmit);
			if (re&&!re.test(value))
				return obj.showClass(false,isSubmit);
			if (value in obj.passValue)
				return obj.showClass(obj.passValue[value],isSubmit,null,obj.msgExist)===true?true:false;
			else{
				obj.passValue[value]="load";
				$ajax(obj.getAttribute("ajaxUrl"),obj.name+"="+escape(value),function(txt){
					obj.showClass(obj.passValue[value]=txt.indexOf("check succeed")>-1,isSubmit,true,obj.msgExist);
				});
				obj.showClass("load",isSubmit);
				return false;
			}
		};
		obj.$r('focus', function(){
			if (!obj.value) chkObj.style.display = '';
		});
		obj.$r("blur",function(){
			obj.check();
		});
		chkList.push(function(){
			return obj.check(true);
		});
	}
	//即时校验初始化
	ajaxValidateInit(eleList.uid,/^[a-z][a-z0-9_]*$/i);
	validateInit(eleList.pwd,/^.{4,}$/,function(){
		return eleList.pwd2.check(true)||true;
	});
	validateInit(eleList.pwd2,/^.{4,}$/,function(value){
		return eleList.pwd.value==value;
	});
	ajaxChkKey(eleList.checkCode,/^\d{4}$/);
	validateInit(eleList.mobilePhone,$$.status.version=="zh-cn"?/^1([358]\d{9}|47\d{8})$/:/^((852|853)(5|6|8|9)\d{7}|1[358]\d{9}|659\d{7}|601[1-9]\d{7}|8869\d{8})$/);
	validateInit(eleList.email,null,function(value){
		return value.isEmail();
	});
	ajaxValidateInit(eleList.promotionCode,null,true);
	ajaxValidateInit(eleList.nickname, /^[a-z\u4e00-\u9fa5][a-z0-9_\u4e00-\u9fa5]*$/i);
	//cdchu 2009-10-09
	/*
	if (eleList.nickname){
		(function(){
			var nick = eleList.nickname;
			var chkObj = $('chk_' + nick.name)
			nick.$r('focus', function(){
				if (!this.value) chkObj.style.display = '';
			});
			nick.check = function(){
				if (nick.isNull()) {
					chkObj.style.display = 'none';
					return false;
				} else if (/^([a-zA-Z\u4e00-\u9fa5])+$/.test(nick.value)) {
					var flag = false;
					chkObj.className = 'reg_info reg_loading';
					chkObj.innerHTML = $s2t('检测中...');
					$ajax(nick.getAttribute('ajaxurl'), nick.name + '=' + escape(nick.value), function(txt){
						if (txt && txt.indexOf('check succeed') >= 0) flag = true;
						else flag = false
					});
					chkObj.style.display = 'none';
					return true;
				} else {
					chkObj.style.display = '';
					return false;
				};
			}
			nick.$r('blur', function(){
				nick.check();
			});
		})();

		chkList.push(function(){
			if (eleList.nickname.check()) return true;
			else {
				$alert(eleList.nickname, $s2t('请正确填写昵称，昵称由中文或英文字母组成。'));
				return false;
			}
		});
	}*/
	
	//提交校验
	//__.ondblclick=
	eleList.form.onsubmit=function(){
		return chkList.each();
	};
});