
/*****************************************************************************************************
 **                        可配置部分  begin
 ******************************************************************************************************/
var image_path = "../../images/";
var success_image_path = image_path + "r.gif";
//成功提示图片路径
var fail_image_path = image_path + "w.gif";
//失败提示图片路径
/*****************************************************************************************************
 **                        可配置部分  end
 ******************************************************************************************************/

/*****************************************************************************************************
 **                        公共函数部分  begin
 ******************************************************************************************************/
function checkRegisterForm()
{
    var flag = true;
    if(
    !checkNick($('username'))|!checkEmail($('email'))| !checkPassword($('password'))|
    !confirmPassword($('password'),$('passwordConfirm'))| !checkMemberName($('PetName'))|
    !checkBirthday($('BirthDate'))|!checkMarriageStatus($('IsMarried'))
    )
    {
        alert("您还有资料未填写完-或-填写错误，请参考资料项相应的红色提示。");
        flag = false;
    }
	else if($('nameFlag').value==2)
	{
		alert("您填写的用户名:"+$('username').value+"已经被注册过，请重新填写用户名。");
		$('username').focus();
		flag = false;
	}
	else{
        if(confirm("即将使用您的用户名："+$('username').value+"进行注册，注册后将不能修改，请确认？") == true){
            flag = true;
        }else{
            flag = false;
        }
    }
    return flag;

}
function checkcpForm()
{
    var flag = true;
    if(
    !checkOldpassword($('oldpassword'))|
    !checkPassword($('password'))|
    !confirmPassword($('password'),$('passwordConfirm'))
    )
    {
        alert("您有资料未填写完-或-填写错误，请参考资料项相应的红色提示。");
        flag = false;
    }
	else if($('oldpassword').value!=$('checkpassword').value)
	{
		//alert("您填写的原密码不正确！。");
		failTip("oldpasswordPanel", "您填写的原密码不正确！");
		$('oldpassword').focus();
		flag = false;
	}
	else{
        successTip("oldpasswordPanel", "原密码输入正确！");
        if(confirm("即将对您的密码进行修改，请确认？") == true){
            flag = true;
        }else{
            flag = false;
        }
    }
    return flag;
}
function checkbaseinfoForm()
{
    var flag = true;
    if(
    !checkEmail($('email'))| !checkMemberName($('PetName'))|
    !checkBirthday($('BirthDate'))|!checkMarriageStatus($('IsMarried'))
    )
    {
        alert("您还有资料未填写完-或-填写错误，请参考资料项相应的红色提示。");
        flag = false;
    }
    else{
            flag = true;
        }
    return flag;
}
var myproxy =
{ 
    showtime:
    function(username, callback)
    {
        
       if (checkNick($('username')))
       {
            $('namePanel').innerHTML = '检测中....';  
            var r=new Ajax.Request('showtime.sjgy',
            {
                parameters: '_=&username=' + username ,
                asynchronous: !!callback,
                onComplete: callback
            });
            if(!callback) 
            {
                if (r.transport.responseText=="success")
                {
                    $('nameFlag').value="1";
                    successTip("namePanel","用户名可以使用！");
                } else
                {
                    $('nameFlag').value="0";
                    failTip("namePanel","用户名已存在！")
                }
            
            }
        }
    }
}
function markDirty()
{
    $('namePanel').innerHTML='';

}

/*
*   找回密码功能
*/
function forgetPassword() {
    window.location = "/lostpass.htm";
}

/*
*  刷新验证码
*/
function DoFresh() {
    document.getElementById('valideImage').src = "GenerateImage";
}
/*
 *    输出数据通过验证提示信息
 */
function successTip(obj, msg){
    var successTip = document.getElementById(obj);
    successTip.innerHTML = "<img src=" + success_image_path + " width='12' height='12' /><span class='b12'><font color='blue'>" + msg + "</font></span>";
}
/**
 * 检查生日是否合法。
 * 合法时返回 true，否则返回 false。
 */
 var MIN_AGE = 18;
//年龄下限
var MAX_AGE = 72;
//年龄上限
var MOBILE_FLAG = true;
var legal = true;
function checkBirthday(field) {
    var birthdayValue = field.value;
    //alert(field.value);
    var ymd = birthdayValue.split("-");
    if (ymd[0] == 1900) {
        failTip("BirthDatePanel", "请选择你的生日");
        return false;
    }
	
	var diff = new Date().getFullYear - ymd[0];
    if (diff < MIN_AGE || diff > 72) {
        failTip("BirthDatePanel", "年龄必须介乎 18 到 72 岁之间");
        return false;
    } else {
        successTip("BirthDatePanel","");
        return true;
    }
}
/*自定义javascript的Hashtable类
*hashtabl的key是返回值，value是对应的提示信息
*/
function Hashtable() {
    this._hash = new Object();
    this.add = function(key, value) {
        if (typeof(key) != "undefined") {
            if (this.contains(key) == false) {
                this._hash[key] = typeof(value) == "undefined"?null:value;
                return true;
            } else {
                return false;
            }
        }
        else {
            return false;
        }
    }
    this.remove = function(key) {
        delete this._hash[key];
    }
    this.count = function() {
        var i = 0;
        for (var k in this._hash) {
            i++;
        }
        return i;
    }
    this.items = function(key) {
        return this._hash[key];
    }
    this.contains = function(key) {
        return typeof(this._hash[key]) != "undefined";
    }
    this.clear = function() {
        for (var k in this._hash) {
            delete this._hash[k];
        }
    }
}
var msgs = new Hashtable();
msgs.add("memberName", "非法昵称，请重新输入.不超过5个汉字或10个英文字母");
msgs.add("memberVO.memberName", "非法昵称，请重新输入.不超过5个汉字或10个英文字母");
msgs.add("stature", "身高必须在130~260厘米之间");
msgs.add("weight", "体重必须在35~250公斤之间");
msgs.add("realName", "请输入您的真实姓名，仅用于网站与您沟通，不公开");
msgs.add("mobile", "请填写真实的手机号码");
msgs.add("IsMarried", "请选择您目前的婚姻状况");
msgs.add("education", "请选择您的教育程度");
msgs.add("incoming", "请选择您的收入水平");
msgs.add("contactProvince", "请选择您工作地区所属的省份和城市");
msgs.add("contactCity", "请选择您工作地区所属的省份和城市");
msgs.add("selfDescription", "您的独白还不到20个字，耐心一点，缘分更近！");

/**
 * 检查用户昵称是否合法。
 * 合法时返回 true，否则返回 false。
 */
function checkMemberName(field) {

	//if (!checkRequired(field)) {
     //   return false;
    //}
    if (!validateMemberName(field.value)) {
        failTip("PetNamePanel","非法昵称，请重新输入.不超过5个汉字或10个英文字母");
        return false;
    } else {
        successTip("PetNamePanel", "恭喜您，昵称有效！");
        return true;
    }
}
function validateMemberName(memberName) {
    if (isValidMember(memberName) == false) {
        return false;
    }
    var limitCount = 10;
    var baseCount = 1;
    var count = memberName.length;
    if (count < baseCount) {
        return false;
    }
    //计算长度和检查非法字符
    var chinesePattern = new RegExp("^[^\\x00-\\xff]");
    var numberPattern = new RegExp("^[\\d]");
    var literPattern = new RegExp("^[a-zA-Z]");
    var _total = 0;
    for (i = 0; i < memberName.length; i ++) {
        var c = memberName.charAt(i);
        var validFlag = false;
        if (chinesePattern.test(c)) {
            _total += 2;
            //一字汉字算两个字符
            validFlag = true;
        }
        if (numberPattern.test(c)) {
            _total += 1;
            validFlag = true;
        }
        if (literPattern.test(c)) {
            _total += 1;
            validFlag = true;
        }
        if (!validFlag || _total > limitCount) {
            return false;
        }
    }
    return true;
}
/**
 * 检查婚姻是否合法。
 * 合法时返回 true，否则返回 false。
 */
function checkMarriageStatus(field) {
    return checkRequiredForBlankMessage(field);
}
/**
 *        检查用户是否在必填项里面输入了内容，用户没有填写时提示用户输入，如果用户已经输入了
 *        数据则不输出任何信息
 */
function checkRequiredForBlankMessage(field) {
    var panelId = field.name + "Panel";
    if (field.tagName == "INPUT") {
        if (field.value == "") {
            failTip(panelId, msgs.items(field.name));
            legal = false;
            return false;
        }else{
            successTip(panelId,"");
            return true;
        }
    }
    if (field.tagName == "SELECT") {
        if (field.options[field.selectedIndex].value == "") {
            failTip(panelId, msgs.items(field.name));
            legal = false;
            return false;
        }else{
            successTip(panelId,"");
            return true;
        }
    }
    if (field.tagName == "TEXTAREA") {
        if (field.value == "") {
            failTip(panelId, msgs.items(field.name));
            legal = false;
            return false;
        } else {
            successTip(panelId,"");
            return true;
        }
    }
    legal = true;
    return true;
}
/**
 * 检查呢称是否非法。
 * 返回 true 表是昵称合法，false 表示非法
 */
function isValidMember(aword) {
    var valid = true;
    var num = new Number(aword);
    if (isNaN(num) == false) {
        if (num < 100000) {
            valid = false;
        }
    }


    var LIMIT_WORDS = new Array("嫁我", "嫁我网", "系统", "管理", "marry5", "客服", "服务", "OOOO", "通知", "中奖");
    for (var i = 0; i < LIMIT_WORDS.length; i ++) {
        if (aword.indexOf(LIMIT_WORDS[i]) != -1) {
            valid = false;
            break;
        }
    }
    return valid;
}
/*
*    输出数据没有通过验证提示信息
*/
function failTip(obj, msg){
    var failTip = document.getElementById(obj);
    failTip.innerHTML = "<table><tr><td><img src=" + fail_image_path + " width='12' height='12' /></td><td><span class='r12'>&nbsp;" + msg + "</span></td></tr></table>";
}

/*
 **     检验用户名格式是否合法功能
*/
function trim(str)
{
  return str.replace(/^\s+|\s+$/g,'');
}
function checkStr(str)
{
  if (!str) return false;
  var str1;
  var exp=/[\/&@?<>'"[]/
	for(var i=0;i < str.length;i++)
	{
		str1=str.charAt(i);
		if(exp.test(str1)==true) return true;
	}
	return false;
}
function checkNick(user)
{
	if (trim(user.value) == "") 
	{
		failTip("namePanel", "请输入用户名！");
		  return false;
	}
	//alert(user.value);
	var exp1 = /^\w+$/;
	if (!exp1.test(user.value))
	 {
		//alert('用户名应该是数字、字母、下划线、连字符号，不允许出现汉字、空格、点等其他字符，请重新输入用户名！');
		failTip("namePanel", "用户名应该是数字、字母、下划线、连字符号，不允许出现汉字、空格、点等其他字符，请重新输入用户名！");
		user.focus();
		return false;
	 }
	//判断登陆名称中不能含有特殊字符@#$%&*/?
	if(checkStr(user.value))
	{
		//alert("用户名应该是数字、字母、下划线、连字符号，不允许出现汉字、空格、点等其他字符，请重新输入用户名！");
		failTip("namePanel", "用户名应该是数字、字母、下划线、连字符号，不允许出现汉字、空格、点等其他字符，请重新输入用户名！");
		user.focus();
		return false;
	}
	
	if (user.value.length < 3 || user.value.length > 16)
	{
		  //alert("会员名长度在3-16个字符之间！");
		failTip("namePanel", "会员名长度在3-16个字符之间！");
		user.focus();
		  return false;
	}
	//document.checkNickForm.userName2.value = user.value;
	//document.getElementById("checkButton").disabled = true ;
	//document.all("submitInfo").style.display = "none";
	//document.getElementById("luserName").innerHTML = "检测中,请稍等...";
	//document.getElementById("luserName").className = "ff4 NormalMsg";
	//document.checkNickForm.submit();
	return true;
}
/**
 **     检验Email格式是否合法功能
 **/
function jcv_checkEmail(emailStr) {
    if (emailStr.length == 0) {
        return false;
    }
    // TLD checking turned off by default
    var checkTLD = 0;
    var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat = /^(.+)@(.+)$/;
    var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars = "\[^\\s" + specialChars + "\]";
    var quotedUser = "(\"[^\"]*\")";
    var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom = validChars + '+';
    var word = "(" + atom + "|" + quotedUser + ")";
    var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");
    var matchArray = emailStr.match(emailPat);
    if (matchArray == null) {
        return false;
    }
    var user = matchArray[1];
    var domain = matchArray[2];
    for (i = 0; i < user.length; i++) {
        if (user.charCodeAt(i) > 127) {
            return false;
        }
    }
    for (i = 0; i < domain.length; i++) {
        if (domain.charCodeAt(i) > 127) {
            return false;
        }
    }
    if (user.match(userPat) == null) {
        return false;
    }
    var IPArray = domain.match(ipDomainPat);
    if (IPArray != null) {
        for (var i = 1; i <= 4; i++) {
            if (IPArray[i] > 255) {
                return false;
            }
        }
        return true;
    }
    var atomPat = new RegExp("^" + atom + "$");
    var domArr = domain.split(".");
    var len = domArr.length;
    for (i = 0; i < len; i++) {
        if (domArr[i].search(atomPat) == -1) {
            return false;
        }
    }
    if (checkTLD && domArr[domArr.length - 1].length != 2 &&
        domArr[domArr.length - 1].search(knownDomsPat) == -1) {
        return false;
    }
    if (len < 2) {
        return false;
    }
    return true;
}

/*
*     检测密码是否合法，返回 true 表示包含非法的密码字符
*/
function containIllegalChar(str) {
    var errorStr = '/<>&\\%+';

    for (var i = 0; i < str.length; i++) {
        if (errorStr.indexOf(str.charAt(i)) > -1) {
            return true;
        }
    }
}
/*****************************************************************************************************
 **                        公共函数部分  end
 ******************************************************************************************************/


/*****************************************************************************************************
 **                        单项数据验证  begin
 ******************************************************************************************************/
/*
* 邮箱格式,是否被人注册过检查
*
*/
function checkEmail(field) {
    var email = field.value;
    //var emailTip = document.getElementById("emailPanel");
   // var emailFlag = document.registerForm.emailFlag;
    if (!jcv_checkEmail(email)) {
        failTip("emailPanel", "请输入有效的邮箱！");
        //emailFlag.value = "0";
        return false;
    }else {
        successTip("emailPanel", "恭喜您，邮箱可用！");
    }
   /* var url = "CheckEmail?email=" + email;
    var req = initRequest(url);
    var rt = "valid";
    emailTip.innerHTML = "<font color='blue'>&nbsp;正在检查邮箱 ...</font>";
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseText == "0") {
                successTip("emailPanel", "恭喜您，邮箱可用！");
                emailFlag.value = "1";
				return false;
            }
            if (req.responseText == "1") {
                failTip("emailPanel", "邮箱已被注册！");
                emailFlag.value = "2";
				return false;
            }
            if (req.responseText == "2") {
                failTip("emailPanel", "marry5.com 邮箱为嫁我网内部邮箱帐号！");
                emailFlag.value = "0";
				return false;
            }
        }
    };
    req.open("GET", url, true);
    req.send(null);*/
    return true;
}
/*
*  检查旧密码
*/
function checkOldpassword(field) {
    var password = field.value;
    if (password=''){
        failTip("oldpasswordPanel", "请输入原密码！");
        return false;
    }else
{
        successTip("oldpasswordPanel", "");
    }
    return true;
}
/*
*  检查密码
*/
function checkPassword(field) {
    var password = field.value;
    if (password.length < 6) {
        failTip("passwordPanel", "密码长度不能小于6位！");
        return false;
    } else {
        successTip("passwordPanel", "密码符合规范，可以使用！");
    }
    var ss = containIllegalChar(password);
    if (ss) {
        failTip("passwordPanel", "密码含有非法字符（例如：/<>&\\%+），请重新输入！");
        return false;
    }
    return true;
}

/*
*  检查确认密码
*/
function confirmPassword(passwordField,field) {
    var password = passwordField.value;
    //密码
    var passwordConfirm = field.value;
    //确认密码
    var passwordTip = document.getElementById("passwordPanel");
    //密码提示
    var passwordConfirmTip = document.getElementById("passwordConfirmPanel");
    //确认密码提示
    if (passwordConfirm.length < 6) {
        failTip("passwordConfirmPanel", "密码长度不能小于6位！");
        return false;
    }
    if (password.length > 0 && passwordConfirm.length > 0) if (password != passwordConfirm) {
        failTip("passwordConfirmPanel", "两次输入的密码不一样！");
        return false;
    } else {
        successTip("passwordConfirmPanel", "密码确认通过！");
        return true;
    }

}

function checkSex(field){
    if(!field[0].checked && !field[1].checked){
        failTip("sexPanel","请选择您的性别，性别一旦选定,将无法进行修改。");
        return false;
	}else{
        successTip("sexPanel","性别一旦选定,将无法进行修改。");
    }
    return true;
}

/*
*  检查验证码
*/
function checkVerifyCode(field) {
    return !(field.value == "" || field.value.length < 4);

}

//检查条款
function checkTerm(field) {
    if (field.checked == false) {
        return false;
    }
    return true;
}


function setSourceCode() {
    var loc = window.location;
    var source = new String(loc);
    var index = source.indexOf("?source=");
    if (index != -1) {
        var code = source.substring(index + 8, source.length);
        if (isNaN(code) == false) {
            setCookie("REGISTER_SOURCE", code);
            registerForm.source.value = code;
        }
    }
}

/**
**   提交数据时验证
**/
/*function checkRegisterForm() {
    var flag = true;
    var f = document.registerForm;
    if(!checkEmail(f.email) | !checkPassword(f.password) | !checkMemberName(f.memberName) |
            !checkSex(f.sex) |  !checkStature(f.stature) | !checkBirthday(f.birthday) |
            !checkWeight(f.weight) | !checkMarriageStatus(f.marriageStatus) | !checkEducation(f.education) |
            !checkIncoming(f.incoming) | !checkContactProvince(f.contactProvince,f.contactCity) |
            !checkRealName(f.realName) | !checkMobile(f.mobile) | !checkDescription(f.selfDescription) |
            !checkTerm(f.term)){
        alert("您还有资料未填写完-或-填写错误，请参考资料项相应的红色提示。");
        flag = false;
    }
	else if(document.registerForm.emailFlag.value==2)
	{
		alert("您填写的电子邮箱:"+f.email.value+"已经被注册过，请重新填写注册邮箱。");
		document.registerForm.email.focus();
		flag = false;
	}
	else{
        if(confirm("即将使用您的电子邮箱："+f.email.value+"进行注册，注册后将不能修改，请确认？") == true){
            flag = true;
        }else{
            flag = false;
        }
    }

    f.action = "signUpStandard.m5";
    return flag;
}
*/
/**
**   提交数据时验证
**/
function checkQuickRegisterForm() {
    var flag = true;
    var f = document.registerForm;

    if(!checkEmail(f.email) | !checkPassword(f.password) | !checkSex(f.sex) | !checkVerifyCode(f.verifyCode) | !checkTerm(f.term)){
        alert("您还有资料未填写完，请检查后认真填写。");
        flag = false;
    }
	else if(document.registerForm.emailFlag.value==2)
	{
		alert("您填写的电子邮箱:"+f.email.value+"已经被注册过，请重新填写注册邮箱。");
		document.registerForm.email.focus();
		flag = false;
	}
	else{
        if(confirm("即将使用您的电子邮箱："+f.email.value+"进行注册，注册后将不能修改，请确认？") == true){
            flag = true;
        }else{
            flag = false;
        }
    }

    f.action = "signUp.m5";
    return flag;
}

/**
 * 检查表单数据的完整性。
 */
function checkIntegrity(){

	//检查邮箱
	var emailFlag = document.registerForm.emailFlag;
	if(emailFlag.value != "1"){
		return false;
	}

	//检查密码
    var psw = document.registerForm.password;
    var pswc= document.registerForm.passwordConfirm;
	if(psw.value == "" || psw.value.length < 6){
        return false;
    }
    if(psw.value != pswc.value){
        return false;
    }

	//检查验证码
    var verifyCode = document.registerForm.verifyCode;
	if(verifyCode.value == "" || verifyCode.value.length < 4){
        return false;
    }

    var term = document.registerForm.term;
	if(term.checked == false){
        return false;
    }

	//当表单完整时显示提交的图片
	var submitImage = document.getElementById("submitImage");
	submitImage.innerHTML = "<img SRC='images/mypage/reg_in_t1.jpg' align='absmiddle'  style='cursor:hand' onclick='javascript:registerForm.submit();'>";

	document.registerForm.action = "signUp.m5";
}

/*
*  页面加载时将鼠标定位到Email框
*/
function initComponent(){
	var email = document.registerForm.email;
	email.select();
	setSourceCode();
}
/*****************************************************************************************************
 **                        单项数据验证  end
 ******************************************************************************************************/