window.onload   = pageLoad;
var sid = 0;

var refer_url = '';
var ldp_url = '';
try {
	var refer_url_ldp = escape(document.referrer.toLowerCase());
	var ldp_url = escape(window.location.href);
	
} catch (e) {}

function pageLoad() {
    //document.getElementById('king').focus();
    //document.getElementById('reg_sid').value    = sid;
    parseUrlParam();
    setAdvCookie();
}
//manyServer();   // -- 需要多服务器

// -- 多个服务器
function manyServer() {
    var arr_many_server  = new Array(30,30);  // -- 常规服务器
    var arr_many_world_server  = new Array(18,18);  // -- 是否注册word服务器
    
    var world_state = false;
    var refer_url   = window.top.location;
    if ((/\?googlew[0-9]{1,}/i.test(refer_url)) || (/\?googlew_[0-9]{1,}/i.test(refer_url)) || (/\?ad4gamew/i.test(refer_url)) || (/\?googlen1w/i.test(refer_url)) || (/\?yahoow/i.test(refer_url)) ) {
        world_state = true;
    }
    if ( (/\?google[0-9]{1,}/i.test(refer_url)) || (/\?google_[0-9]{1,}/i.test(refer_url)) ) {
        world_state = false;
    }
    
    if (!world_state) {
        // -- 不是注册到world服务器,随机分配一个常规服务器
	    // -- 生成随机数
	    var now = new Date();
	    var number  = now.getMilliseconds()%2;
        sid = arr_many_server[number];
    } else {
    // -- 生成0-2的随机数
	    var now = new Date();
	    var number  = now.getMilliseconds()%2;
        sid = 'w' + arr_many_world_server[number];
    }
    return sid;
}

var username_state  = false;
var king_state  = false;
var show_loading_state  = false;    // -- 是否显示载入状态

function strTrim(str)
{
    return str.replace(/(^\s*)|(\s*$)/g, ""); 
}

function changeState(type) {
    switch (type) {
        case 1: 
            king_state  = true;
            var obj_nickname    = document.getElementById('king');
			var nicknametxt = (obj_nickname.value.replace(/[^0-9a-zA-Z ]/g,''));
			if (nicknametxt != obj_nickname.value)
            	obj_nickname.value=(obj_nickname.value.replace(/[^0-9a-zA-Z ]/g,''));
        break;
        case 2:
            username_state  = true;
        break;
        case 3:
            
        break;
        case 4:
            
        break;
    }
}

function checkUserName() {
    if (username_state) {
        var type    = 'username';
        var _value  = document.getElementById(type).value;
        var obj_img = document.getElementById(type+'_img');
        var obj_error_info  = document.getElementById(type+'_errorinfo');
        if (!isEmail(_value)) {
            if ('' != _value) {
                obj_img.src = "Images/xxx.jpg";
                obj_img.style.display   = 'inline';
                ////obj_error_info.style.display    = 'block';
                //obj_error_info.style.top    = '-20px';
                obj_error_info.innerHTML    = 'Invalid email address.';//'Your Highness, where is your email address?';
                return false;
            } else {
                obj_img.style.display   = 'none';
                obj_error_info.innerHTML    = '';
            }
        } else {
            if (show_loading_state) {
                var loging_img  = obj_img.getAttribute('loging_img');
                if (null == loging_img) {
                    loging_img  = 'Images/mm_loading.gif';
                }
                obj_img.style.display   = "inline";
                obj_img.src = loging_img;
                obj_error_info.innerHTML = 'Checking availability';
                obj_error_info.style.color  = '#00FF00';
            } else {
                obj_img.style.display   = "none";
                obj_error_info.innerHTML = '';
                obj_error_info.style.display = '';
            }
            var url = 'LdpCheck.php?method=CheckUserName&username='+_value;
            new Ajax('get',url,true,null,'ajax_info',treateCheckUserName);
            
        }
        username_state  = false;
    }
}

function treateCheckUserName(getData) {
    var obj_img = document.getElementById('username_img');
    var obj_error_info  = document.getElementById('username_errorinfo');
    
    obj_error_info.style.color  = '#FF0000';
    if('E1' == getData) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        //obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '-20px';
        obj_error_info.innerHTML    = 'A Nickname is required';
        return false;
    } else if('E2' == getData) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        //obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '-20px';
        obj_error_info.innerHTML    = 'Invalid email address.';
        return false;
    } else if('E3' == getData) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        //obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '-20px';
        obj_error_info.innerHTML    = 'Email already in use.';
        return false;
    } else {
        if (show_loading_state) {
            obj_img.src = "Images/rrr.jpg";
            obj_img.style.display   = 'inline';
            //obj_error_info.style.display    = 'none';
            obj_error_info.innerHTML    = '';
        } else {
            obj_img.style.display   = "none";
            obj_error_info.innerHTML = '';
            obj_error_info.style.display = '';
        }
        return true;
    }
}

function checkPassword() {
    var type    = 'pwd';
    var _value  = document.getElementById(type).value;
    var obj_img = document.getElementById(type+'_img');
    var obj_error_info  = document.getElementById(type+'_errorinfo');
    var password2    = document.getElementById('pwd2').value;
    var obj_password2_info    = document.getElementById('pwd2_errorinfo');
    
    if ('' == _value) {
        obj_img.style.display   = 'none';
        obj_error_info.innerHTML    = '';
        return false;
    }
    
    if (6 > _value.length) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        ////obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '28px';
        obj_error_info.innerHTML    = 'Must be at least 6 characters.';//'Highness, would you please summon a password?';
        return false;
    }
    
    if (password2 != _value && '' != password2) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        obj_error_info.innerHTML    = 'Passwords don\'t match.';
        return false;
    } else {
        if (show_loading_state) {
            obj_img.src = "Images/rrr.jpg";
            obj_img.style.display   = 'inline';
            obj_error_info.innerHTML    = '';
        } else {
            obj_img.style.display   = "none";
            obj_error_info.innerHTML = '';
            obj_error_info.style.display = '';
        }
        if ('' != password2) {
            if (show_loading_state) {
                obj_password2_info.innerHTML    = '';
                document.getElementById('pwd2_img').src = 'Images/rrr.jpg';
                document.getElementById('pwd2_img').style.display   = 'inline';
            } else {
                obj_password2_info.innerHTML    = '';
                document.getElementById('pwd2_img').style.display   = 'none';
            }
        }
    }
}

function checkRePassword() {
    var type    = 'pwd2';
    var _value  = document.getElementById(type).value;
    var obj_img = document.getElementById(type+'_img');
    var obj_error_info  = document.getElementById(type+'_errorinfo');
    var password    = document.getElementById('pwd').value;

    if ('' == _value) {
        obj_img.style.display   = 'none';
        obj_error_info.innerHTML    = '';
        return false;
    }
    
    if (6 > _value.length) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        ////obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '28px';
        obj_error_info.innerHTML    = 'Must be at least 6 characters.';//'Highness, would you please summon a password?';
        return false;
    }
    
    if (password != _value && '' != password) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        //obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '82px';
        obj_error_info.innerHTML    = 'Passwords don\'t match.';
        return false;
    } else {
        if (show_loading_state) {
            obj_img.src = "Images/rrr.jpg";
            obj_img.style.display   = 'inline';
            //obj_error_info.style.display    = 'none';
            obj_error_info.innerHTML    = '';
        } else {
            obj_img.style.display   = "none";
            obj_error_info.innerHTML = '';
            obj_error_info.style.display = '';
        }
        if ('' != password) {
            if (show_loading_state) {
                document.getElementById('pwd_errorinfo').innerHTML    = '';
                document.getElementById('pwd_img').src = 'Images/rrr.jpg';
                document.getElementById('pwd_img').style.display   = 'inline';
            } else {
                document.getElementById('pwd_errorinfo').innerHTML    = '';
                document.getElementById('pwd_img').style.display   = 'none';
            }
        } else {
            document.getElementById('pwd_errorinfo').innerHTML    = '';
            document.getElementById('pwd_img').src = 'Images/rrr.jpg';
            document.getElementById('pwd_img').style.display   = 'none';
        }
        
    }
}

function checkNickName() {
    if (king_state) {
        var type    = 'king';
        var obj_nickname    = document.getElementById(type);
        obj_nickname.value = strTrim(obj_nickname.value);
        var _value  = document.getElementById(type).value;
        var obj_img = document.getElementById(type+'_img');
        var obj_error_info  = document.getElementById(type+'_errorinfo');
    	var reg_sid = document.getElementById('reg_sid').value;

        if ('' == _value) {
            obj_img.style.display   = 'none';
            obj_error_info.innerHTML    = '';
            return false;
        }
        
        if (30 < _value.length) {
            obj_img.src = "Images/xxx.jpg";
            obj_img.style.display   = 'inline';
            //obj_error_info.style.display    = 'block';
            //obj_error_info.style.top    = '134px';
            obj_error_info.innerHTML    = '30 characters maximum.';
            return false;
        }
        
        if (show_loading_state) {
            var loging_img  = obj_img.getAttribute('loging_img');
            if (null == loging_img) {
                loging_img  = 'Images/mm_loading.gif';
            }
            obj_img.style.display   = "inline";
            obj_img.src = loging_img;
            obj_error_info.style.color  = '#00FF00';
            obj_error_info.innerHTML = 'Checking availability';
        } else {
            obj_img.style.display   = "none";
            obj_error_info.innerHTML = '';
            obj_error_info.style.display = '';
        }
        var url = 'LdpCheck.php?method=CheckKing&king='+_value+'&reg_sid='+reg_sid;
        new Ajax('get',url,true,null,'ajax_info',treateCheckNickName);
        king_state  = false;
    }
}

function treateCheckNickName(getData) {
    var obj_img = document.getElementById('king_img');
    var obj_error_info  = document.getElementById('king_errorinfo');
    obj_error_info.style.color  = '#FF0000';
    if('E1' == getData) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        //obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '134px';
        obj_error_info.innerHTML    = 'A Nickname is required';
        return false;
    } else if('E2' == getData) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        //obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '134px';
        obj_error_info.innerHTML    = '10 characters maximum.';
        return false;
    } else if('E3' == getData) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        //obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '134px';
        obj_error_info.innerHTML    = 'Invalid characters.';
        return false;
    } else if('E4' == getData) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        //obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '134px';
        obj_error_info.innerHTML    = 'Nickname in use.';
        return false;
    } else if('E5' == getData) {
        obj_img.src = "Images/xxx.jpg";
        obj_img.style.display   = 'inline';
        //obj_error_info.style.display    = 'block';
        //obj_error_info.style.top    = '134px';
        obj_error_info.innerHTML    = 'Illegal naming.';
        return false;
    } else {
        if (show_loading_state) {
            obj_img.src = "Images/rrr.jpg";
            obj_img.style.display   = 'inline';
            //obj_error_info.style.display    = 'none';
            obj_error_info.innerHTML    = '';
        } else {
            obj_img.style.display   = "none";
            obj_error_info.innerHTML = '';
            obj_error_info.style.display = '';
        }
        return true;
    }
}
function doSubmit() {
    var username    = document.getElementById('username').value;
    var pwd         = document.getElementById('pwd').value;
    var pwd2        = document.getElementById('pwd2').value;
    var king        = document.getElementById('king').value;
    var obj_sex     = document.getElementsByName('sex');
    
    var obj_username_errorinfo  = document.getElementById('username_errorinfo');
    var obj_pwd_errorinfo       = document.getElementById('pwd_errorinfo');
    var obj_pwd2_errorinfo      = document.getElementById('pwd2_errorinfo');
    var obj_king_errorinfo      = document.getElementById('king_errorinfo');
    
    var obj_username_img  = document.getElementById('username_img');
    var obj_pwd_img       = document.getElementById('pwd_img');
    var obj_pwd2_img      = document.getElementById('pwd2_img');
    var obj_king_img      = document.getElementById('king_img');
    
    if (!isEmail(username)) {
        obj_username_img.src = "Images/xxx.jpg";
        obj_username_img.style.display   = 'inline';
        //obj_username_errorinfo.style.display    = 'block';
        //obj_username_errorinfo.style.top    = '-20px';
        obj_username_errorinfo.innerHTML    = 'Invalid email address.';//'Your Highness, where is your email address?';
        return false;
    }
    
    if (6 > pwd.length) {
        obj_pwd_img.src = "Images/xxx.jpg";
        obj_pwd_img.style.display   = 'inline';
        //obj_pwd_errorinfo.style.display    = 'block';
        //obj_pwd_errorinfo.style.top    = '28px';
        obj_pwd_errorinfo  = 'Must be at least 6 characters.';//'Highness, would you please summon a password?';
        return false;
    }

    if (pwd != pwd2) {
        obj_pwd2_img.src = "Images/xxx.jpg";
        obj_pwd2_img.style.display   = 'inline';
        //obj_pwd2_errorinfo.style.display    = 'block';
        //obj_pwd2_errorinfo.style.top    = '82px';
        obj_pwd2_errorinfo.innerHTML  = 'Passwords don\'t match.';//"Your Highness, the passwords did not match. \\nWould you please have a check?";
        return false;
    }
    
    try {
    	var obj_form      = document.unifyform;
    	obj_form.action = obj_form.action + '&refer_url='+refer_url_ldp+'&ldp_url='+ldp_url;
    } catch (e) {}
    return true;
    
    var sex_state   = false;
    for (i = 0; i < obj_sex.length; i ++) {
        if (obj_sex[i].checked) {
            sex_state   = true;
            break;
        }
    }
    if (!sex_state) {
        //alert("Oops, it seems you forget to choose your gender, your Highness.");
        document.getElementById('sex_errorinfo').innerHTML  = 'Your gender please.';
        return false;
    } else {
        document.getElementById('sex_errorinfo').innerHTML  = '';
    }
}
function isEmail(p_email) { 
    var eregi_email = /^[-_.0-9a-zA-Z]+@([-_0-9a-zA-Z][-_0-9a-zA-Z]*\.)+[a-zA-Z]{2,3}$/;
    if (eregi_email.test(p_email)) {
        return true;
    } else {
        return false;
    }
}


// -- 分析url用户名密码等参数信息,自动注册
function deAscii(p_str) {
    
    var king_v  = '';
    for (i = 0; i < p_str.length; i+=2) {
        var _c = p_str.charAt(i);
        _c += p_str.charAt(i+1);
        var _c1 = parseInt(_c,16);
        king_v  += String.fromCharCode(_c1);
    }
    return king_v;
}

function parseUrlParam() {
    try {
        var Url=window.location.href;
        if(window.parent!=undefined) 
        {
            Url=window.parent.location.href;
        }
    
        var re = new RegExp("lordname=(.*)&email=(.*)&password=(.*)&sex=([0-9]{1})","ig");
        var arr = re.exec(Url); 
        var url1 = RegExp.$1;
        var url2 = RegExp.$2;
        var url3 = RegExp.$3;
        var url4 = RegExp.$4;

        if ('' !=url1) {
            var king_v  = deAscii(url1);
            document.getElementById('king').value = king_v;
        }
        if ('' != url3) {
            var pwd_v  = deAscii(url3);
            document.getElementById('pwd').value = pwd_v;
            document.getElementById('pwd2').value = pwd_v;
        }
        if ('' != url2) {
            var user_v  = deAscii(url2);
            document.getElementById('username').value = user_v;
        }
        if ('' != url4) {
            var obj_sex = document.getElementsByName('sex');
            for (i = 0 ;i < obj_sex.length; i ++) {
                if (url4 == obj_sex[i].value) {
                    obj_sex[i].checked  = true;
                }
            }
        }
    
        if ( ('' !=url1) && ('' !=url2) && ('' !=url3) && ('' !=url4) )
        {
            //reg.
            document.unifyform.submit();
        }
    } catch (e) {}
}

function setAdvCookie() {
	try {
		pageurl = window.location.href.toLowerCase();
		var tag    = '';
	    if (-1 != pageurl.indexOf("?")) {
	        var queryStr = pageurl.substring(pageurl.indexOf("?") + 1);
	        var params = queryStr.split("&");
	        tag    = params[0];
	    }
	    // -- no index
	    if (-1 != pageurl.indexOf("evony.com/index.html?") || -1 != pageurl.indexOf("evony.com/?") || 'index' == tag || 'unknow' == tag || 'www_evony_com_inde' == tag) {
	        tag   = '';
	    }
	    
		if ('' != tag) {
			var expdate = new Date();
			expdate.setTime(expdate.getTime() + ( 30*24*3600 * 1000 ));
			document.cookie = "TGC=" + escape (tag) + "; domain=.evony.com; expires=" + expdate.toGMTString();
		}
	} catch (e) {}
}