/**
 * @author Loning
 */
var king = new Object();
king.Ajax = function(url, mydata, callback,asyncbool) {
	if(asyncbool==null)
		asyncbool=true;
    $.ajax({
        type: "POST",
        contentType: "application/json;utf-8",
        data: mydata,
        url: king.home+"service/" + url,
        success: callback,
		async:asyncbool
    })
}
king.deserializeJson=function(data){
	var exp = data.replace(new RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)\\)\\\\/\\"', 'g'), "$1new Date($2)");
    return eval('(' + exp + ')');
}
king.GetJsonFromForm = function(formData){
    var str = "";
    for (var i in formData) {
        str += "{0}:\"{1}\",".format(formData[i].name, formData[i].value.replace("\"", "\\\""));
    }
    str = "{" + str.substr(0, str.length - 1) + "}";
    return str;
}
king.cookie = function(name,key){
		var str = $.cookie(name);
		var myregexp = /([^&]*?)=([^&]*)/g;
		
		while ((match = myregexp.exec(str)) != null) {
			if (match[1].toLowerCase() == key.toLowerCase()) 
				return match[2];
		}
		return null;
}
king.srv=new Object();
king.Message = function(msg, title){
	tb_remove();
	var msgBox = $('#king_msgBox');
	if (msgBox.length == 0)
	{
		var msgBox = $('<div id="king_msgBox" ><div id="king_message"></div></div>').hide();
		$('body').append(msgBox);
	}
	$('#king_message').html(msg);
	if(title==null)
		title="";
	tb_show(title,"#TB_inline?height=150&width=400&inlineId=king_msgBox",false);
}
king.user=new Object();
king.user.login=function(username,password,remeberMe,showMsg){
	if(remeberMe==null)
		remeberMe="false";
	king.Ajax(king.srv.user+"Login", "{"+"username:{0},password:{1},remeberMe:{2}".format(username,password,remeberMe)+"}", function(msg){
                if (msg == "false") {
                    if(showMsg) king.Message("用户名密码错误");
                }
                else {
					king.currentUser=username;
					if(showMsg) king.Message("欢迎{0}".format(king.currentUser));
					showLoginStatus();
                }
            });
}
king.user.userDetail=function(){
	if(king.currentUser==null){
		$(".kingUserDetail .loginItem").show();
		$(".kingUserDetail .detailItem").hide();
	}else{
		$(".kingUserDetail .loginItem").hide();
		$(".kingUserDetail .detailItem .username").html(king.currentUser);
		$(".kingUserDetail .detailItem").show();
		
	}
}
king.user.logout=function(showMsg){
	if(king.currentUser==null){
		if(showMsg) king.Message('您未登录');
		return;
	}
	king.Ajax(king.srv.user+"Logout","{}",function(msg){
		king.currentUser=null;
		king.user.userDetail();
		king.user.showLoginStatus();
		
		if(showMsg) king.Message('您成功注销');
	});
}

king.user.showLoginStatus=function(){
	var str;
	
	if(king.currentUser==null){
		var sb=new StringBuilder();
		sb.append("<a href=\"javascript:tb_show('登录','{0}',false);\">登录</a>".format(king.home+"templates/ajax/userLogin.html?height=260&width=320&modal=true"));
		sb.append(",<a href=\"javascript:tb_show('注册','{0}',false);\">注册</a>".format(king.home+"templates/ajax/createUser.html?height=260&width=320&modal=true"));
		str=sb.toString();
	}else{
		str='{0},<a href="javascript:king.user.logout(true);">注销</a>'.format(king.currentUser);
	}
	$('#king_loginStatus').html(str);
	$('.king_loginStatus').html(str);
}
