/**
 * @author:    SnowTao.Li
 * @date:      2009-2-2
 * @time:      17:01:22
 * @E-mail:    SnowTao.Li@gmail.com
 * @desc:      Login
 */

var login_type  = 1;
function loginSumit(type) {
    var username   = document.getElementById('USER_NAME_LOGIN').value;
    var PSSWORD    = document.getElementById('PSSWORD').value;
    if ('' == username) {
        alert(Lang["UsersLoginJs"]["InputUserName"]);
        return false;
    }
    
    if ('' == PSSWORD) {
        alert(Lang["UsersLoginJs"]["InputPassword"]);
        return false;
    }
    
    var sendstr = '';
    if (undefined != type) {
    	login_type = type;
    	if (3 == login_type) {
    		var url = "index.do?PageModule=UsersAjax&method=UserLogin";
    	} else {
            var url = "facebook/facebook.Ajax.php?Method=LinkEvonyLogin&type="+type;
    	}
    } else {
    	var url = "index.do?PageModule=UsersAjax&method=UserLogin";
        var obj_remeberme  = document.getElementById('remeberme');
	    if (obj_remeberme.checked) {
	        sendstr += '&remeberme=true';
	    }
    }
    
    sendstr += "&USER_NAME=" + encodeURIComponent(username);
    sendstr += "&PSSWORD=" + encodeURIComponent(PSSWORD); 
    new Ajax('POST',url,true,sendstr,'login_info',treateLoginSumit);
}

function treateLoginSumit(p_data) {
    if (/E05::/.test(p_data)) {
    	js_str  = p_data.replace("E05::",'');
        p_data  = "E05";
    } 
    switch (p_data) {
        case 'E01': 
            alert(Lang["UsersLoginJs"]["InputUsername"]);
            break;
        case 'E02':
            alert(Lang["UsersLoginJs"]["InputPassword"]);
            break;
        case 'E03':
            alert(Lang["UsersLoginJs"]["NotExistsUserName"]);
            break;
        case 'E04':
            alert(Lang["UsersLoginJs"]["ErrorPassword"]);
            break;
        case 'E05': 
            // -- longin success
            if (3 == login_type) {
            	window.location.reload();
                return false;
            } else if (4 == login_type) {
            	window.location.href   = "index.do?PageModule=UsersLinkAccountWithFacebook&step=2";
            	return false;
            } else {
                showLoginInfo(js_str);
            }
            break;
        case 'E06':
            alert(Lang["UsersLoginJs"]["UserDisabled"]);
            break;
        case 'E07':
            alert(Lang["UsersLoginJs"]["fbAccountConnected"]);
            try {
                closeMoreServer();
            } catch (e) {}
            break;
        case 'E08':
            alert(Lang["UsersLoginJs"]["fbFacebookConnected"]);
            closeMoreServer();
            break;
        case 'E09':
            showMoreServer({S:'SOA',A:'',T:'Select one account'});
            break;
        case 'E10':
            alert(Lang["UsersLoginJs"]["fbNeedConnect"]);
            facebook.fb_logout();
            closeMoreServer();
            break;
      default:
           break;
    }
}
  
function showLoginInfo(p_js_str) {
    try { 
        eval(p_js_str);
        var doc = checkBrowser();
        var user_id = arr_info[0];
        var user_name = arr_info[1];
        document.getElementById('user_logout').style.display  = 'none';
        document.getElementById('user_login').style.display  = '';
        document.getElementById('login_user_name').innerHTML    = user_name;
       
        // -- show the last login server
        var obj_last_login_info = document.getElementById('last_login_info');
        obj_last_login_info.innerHTML   = '';
        
        
        if (doc.ie) {
            var obj_input  = document.createElement("<input type='radio' checked='checked' name='playGameServer' value='"+user_last_login_server[0]+"' id='radio"+user_last_login_server[0]+"' />");
        } else {
        	var obj_input  = document.createElement('input');
            obj_input.type = 'radio';
	        obj_input.setAttribute('name','playGameServer');
	        obj_input.id   = 'radio' + user_last_login_server[0];
	        obj_input.value    = user_last_login_server[0]; 
	        obj_input.setAttribute('checked','checked');
        }
        
        
        obj_last_login_info.appendChild(obj_input);
        
        var obj_span   = document.createElement('span');
        obj_span.innerHTML = ' ' + user_last_login_server[1];
        obj_last_login_info.appendChild(obj_span);
        
        var obj_span   = document.createElement('span');
        obj_span.innerHTML   += '&nbsp;' + Lang["UsersLoginJs"]["LastLogin"] + "&nbsp;" + user_last_login_server[2];
        obj_span.setAttribute('style',"font-weight:normal;");
        obj_last_login_info.appendChild(obj_span);
        
    } catch (e) {alert(e);}
}

function logOut(type) {
	if (undefined != type) {
        login_type = type;
    } else {
    	login_type = 1;
    }
    var url = "index.do?PageModule=UsersAjax&method=UserLogout";
    new Ajax('GET',url,true,null,'login_info',treateLogOut);
}
function treateLogOut(getData) {
    if ('S01' == getData) {
        window.location.href    = "http://www.evony.com/index.html";
    } else {
    	if (login_type == 1) {
	        document.getElementById('user_logout').style.display  = '';
	        document.getElementById('user_login').style.display  = 'none';
	        document.getElementById('login_user_name').innerHTML    = '';
	        document.forms['form1'].reset();
	        document.forms['form2'].reset();
	        arr_server_list = new Array();
    	} else if (2 == login_type) {
    		facebook.showFbLinkFrame();
    	} else if (5 == login_type) {
    		window.location.href    = "index.do?PageModule=UsersLinkAccountWithFacebook&step=1";
    	} else if (7 == login_type) {
    		// -- my account, two different account ,logout evony
            window.location.reload();
        } else {
    		window.location.href    = "http://www.evony.com/index.html";
    	}
    }
}

function playGame() {
    var server_radio  = document.getElementsByName('playGameServer'); 
    var play_server_id = 0;
    for (i = 0; i < server_radio.length; i ++) {
        if (server_radio[i].checked) {
            play_server_id  = server_radio[i].value;
            break;
        }
    }
    if (0 == play_server_id) {
    	play_server_id = last_server_id;
    }
    document.getElementById('IframeSubmitForm').src = 'index.do?PageModule=UsersAjax&method=PlayGame&ID=' + play_server_id;
}

var obj_bg_div;
// -- show more server list
function showMoreServer(type) {
    document.getElementById('light').style.display  = 'block';
	// -- float div
    if (null == obj_bg_div) {
        obj_bg_div  = document.createElement('div');
        obj_bg_div.className    = 'black_overlay';
        var _height = document.body.scrollHeight < (window.screen.availHeight - window.screenTop) ? (window.screen.availHeight - window.screenTop) : document.body.scrollHeight;
        obj_bg_div.style.height = _height + "px";
        document.getElementsByTagName('body')[0].appendChild(obj_bg_div);
        obj_bg_div.style.display    = 'block';
    } else {
        obj_bg_div.style.display    = 'block';
    }
    
    if (undefined == type || '' == type) {
    	type   = 0;
    }
    
    ajaxGetMoreServer(type);
}
// -- cloase more server list
function closeMoreServer() {
    document.getElementById('light').style.display  = 'none';
	obj_bg_div.style.display    = 'none';

}

var arr_server_list= new Array();
// -- serve list
function ajaxGetMoreServer(type) {	
	var obj_div  = document.getElementById('t_s_list');
    obj_div.innerHTML = '';
    
    var obj_div1  = document.createElement('span');
    obj_div1.innerHTML  = 'Loading...... Please Wait.';
    obj_div1.className  = 'NowLoad';
    obj_div.appendChild(obj_div1);
        
	if (0 < arr_server_list.length) {
		formatServerShow();
	} else {
		var url = "index.do?PageModule=UsersAjax&method=SLIULP&T="+type;
        new Ajax('GET',url,true,null,'login_info',treateAjaxGetMoreServer);
	}
    
}
function treateAjaxGetMoreServer(getData) {
    try {
    	eval(getData);
        arr_server_list = php_all_server;
        formatServerShow();
    } catch (e) {alert(e);}
}
function formatServerShow() {
	var doc = checkBrowser();
	var obj_div  = document.getElementById('t_s_list');
	obj_div.innerHTML    = '';
	
	var obj_table1  = document.createElement('table');
	obj_div.appendChild(obj_table1);
	var obj_table  = document.createElement('tbody');
	obj_table1.appendChild(obj_table);
	
	obj_table1.width    = '100%';
    obj_table1.setAttribute('border',0);
    obj_table1.setAttribute('cellpadding',0);
    obj_table1.setAttribute('cellspacing',0);
    obj_table1.className = 'zone';
	
	var obj_tr  = document.createElement('tr');
    obj_table.appendChild(obj_tr);
    var obj_td  = document.createElement('td');
    obj_td.setAttribute('colSpan',6);
    obj_td.className    = 'serv_td';
    obj_td.innerHTML    = Lang["UsersLoginJs"]["LastLoginServer"];
    obj_tr.appendChild(obj_td); 

    var line_state  = true; // -- 循环是是否要添加line
    var not_login_state    = false; // -- 循环时,判断是否开始输出没有登录服务器的列表
    var empty_state_login = true;   // -- 循环时,输出空白列,补齐登录过的服务器列表的行
    var checked_state   = false;    // -- 是否已经默认选择服务器
	for (var i = 0,k=0; i < arr_server_list.length; i ++) {
		
		// -- login server list
		if ('' != arr_server_list[i][2]) {
			// -- don't show the latest login server
			if (i == 0) {
				continue;
			}
			if ((i-1)%3 == 0) {
		        var obj_tr = document.createElement('tr');
		        obj_tr.style.height   = '18px';
		        obj_table.appendChild(obj_tr);
			}
	        
	        var obj_td = document.createElement('td');
	        obj_td.setAttribute('colSpan',2);
	        if (doc.ie) {
	           //obj_td.width   = '33%';
	        }
	        obj_tr.appendChild(obj_td);
	        
	        
	        if (doc.ie) {
	        	var obj_input  = document.createElement("<input type='radio' name='playGameServer' value='"+arr_server_list[i][0]+"' id='radio"+arr_server_list[i][0]+"' />");
	        } else {
	        	var obj_input  = document.createElement('input');
	            obj_input.type = 'radio';
	            obj_input.setAttribute('name','playGameServer');
                obj_input.id   = 'radio' + arr_server_list[i][0];
                obj_input.value    = arr_server_list[i][0];
	        }
	        
	        obj_td.appendChild(obj_input);
	        
	        var obj_span   = document.createElement('span');
	        obj_span.innerHTML = arr_server_list[i][1];
	        obj_td.appendChild(obj_span);
	        
	        obj_td.innerHTML   += "&nbsp;&nbsp;" + Lang["UsersLoginJs"]["LastLogin"] + "&nbsp;" + arr_server_list[i][2];
	        
	        continue;
		}
		
		// -- empty login server td 
	    if (empty_state_login && (i-1)%3 != 0) {
            var _empty_td_nums_login = 3 - (i-1)%3; 
	        for (var j = 0; j < _empty_td_nums_login; j ++) {
	            var obj_td   = document.createElement('td');
	            obj_td.setAttribute('colSpan',2);
	            if (doc.ie) {
                    //obj_td.width   = '33%';
                } 
	            obj_tr.appendChild(obj_td);
	        }
	        empty_state_login    = false;   // -- not create empty td of login server
	    }
	    
		// -- line split
		if (line_state) {
            line_state  = false;
			var obj_tr = document.createElement('tr');
            obj_table.appendChild(obj_tr);
            var obj_td = document.createElement('td');
            obj_td.setAttribute('colSpan',6);
            obj_td.className    = 'td_line';
            obj_tr.appendChild(obj_td);
            
            var obj_img = document.createElement('img');
            obj_img.src = "Dhtml/images/NewThemes/server-line.jpg";
            obj_img.width   = '440';
            obj_img.height  = '5';
            obj_td.appendChild(obj_img);
            
            not_login_state = true;
            empty_state_login    = false;   // -- not create empty td of login server
		}
		// -- not login server list
		
		if (not_login_state || k%6 == 0 ) {
            var obj_tr = document.createElement('tr');
            obj_tr.style.height   = '18px';
            obj_table.appendChild(obj_tr);
        }
        not_login_state = false;
        var obj_td = document.createElement('td');
        obj_tr.appendChild(obj_td);
        
        if (doc.ie) {
            var obj_input  = document.createElement("<input type='radio' name='playGameServer' value='"+arr_server_list[i][0]+"' id='radio"+arr_server_list[i][0]+"' />");
        } else {
            var obj_input  = document.createElement('input');
	        obj_input.type = 'radio';
	        obj_input.id   = 'radio' + arr_server_list[i][0];
	        obj_input.setAttribute('name','playGameServer');
            obj_input.value    = arr_server_list[i][0];
        }
//        if (!checked_state) {
//            obj_input.setAttribute('checked','checked');
//            checked_state = true;
//        }
        obj_td.appendChild(obj_input);
        
        var obj_span   = document.createElement('span');
        obj_span.innerHTML = arr_server_list[i][1];
        obj_td.appendChild(obj_span);
        k ++;
	} 
	
	if (k%6 != 0) {
        var _empty_td_nums = 6 - k%6;
		for (var i = 0; i < _empty_td_nums; i ++) {
			var obj_td   = document.createElement('td'); 
			obj_tr.appendChild(obj_td);
		}
	}
	
	// -- foot
	var obj_tr = document.createElement('tr');
    obj_table.appendChild(obj_tr);
    var obj_td = document.createElement('td');
    obj_td.setAttribute('colSpan',6);
    obj_td.className    = 'td_line';
    obj_tr.appendChild(obj_td);
    
    var obj_img = document.createElement('img');
    obj_img.src = "Dhtml/images/NewThemes/server-line.jpg";
    obj_img.width   = '440';
    obj_img.height  = '5';
    obj_td.appendChild(obj_img);
    
    var obj_tr = document.createElement('tr');
    obj_table.appendChild(obj_tr);
    var obj_td = document.createElement('td');
    obj_td.setAttribute('colSpan',6);
    obj_td.className    = 'td_play';
    obj_tr.appendChild(obj_td);
    
    var obj_img = document.createElement('img');
    obj_img.src = "Dhtml/images/NewThemes/btn_playnow2.jpg";
    obj_img.onmouseover = "this.src='Dhtml/images/NewThemes/btn_playnow2_on.jpg';";
    obj_img.onmouseout  = "this.src='Dhtml/images/NewThemes/btn_playnow2.jpg';";
    obj_img.onclick     = playGame;
    obj_td.appendChild(obj_img);
}