﻿var g_func = new Object();
g_func["img"] = funcHeadImg;
g_func["smg"] = funcFormSmgUrl;
g_func["rmd"] = funcRemind;
g_func["friend"] = funcFriend;
g_func["black"] = funcBlack;
g_func["addRemark"] = funcAddRemark;
g_func["editRemark"] = funcEditRemark;
g_func["cancelRemark"] = funcCancelRemark;
g_func["inpurRemark"] = funcClickText;
g_func["saveRemark"] = funcSaveRemark;
g_func["delRemark"] = funcDelRemark;

var g_step = 20;

function funcHeadImg()
{
    $(this).attr("src", $(this).attr("src0"));
}

function funcClickText()
{
    $(this).click(clickText);
}
function funcSaveRemark()
{
    $(this).click(saveRemark);
}
function funcDelRemark()
{ 
  $(this).click(doDelRemark);
}

function funcRemind()
{
    $(this).attr("href", "#");
    $(this).click(doRmd);
}
function funcFriend()
{
    $(this).attr("href", "#");
    $(this).click(doDelFriend);
}
function funcBlack()
{
    $(this).attr("href", "#");
    $(this).click(doAddBlack);
}
function funcAddRemark()
{
    $(this).attr("href", "#");
    $(this).click(doAddRemark);
}
function funcEditRemark()
{
    $(this).attr("href", "#");
    $(this).click(doEditRemark);
}

function funcCancelRemark()
{$(this).click(cancelRemark);}

function autoAttach(ch, key, gt, step)
{
    var len = $(ch).length;
    if(gt>=len || gt>250)
    {
	//alert("exit:"+gt);
	return;
    }
    var lt = gt+step;
    var sig = ch+":lt("+lt+"):gt("+(gt-1)+")";
    $(sig).each(g_func[key]);
    var str = 'autoAttach("'+ch+'", "'+key+'", '+lt+', '+step+')';
    window.setTimeout(str, 1000);
}


$(function(){
    $("#id_inputSearch").click(function()
		    {
//			if($(this).val() == "请输入叨友QQ号码或昵称")
			    $(this).val("");
		    });
    if(g_gbData)
    {
	$("#id_inputSearch").autoComplete(g_gbData);
    }
    $("#id_aBackAll").click(showAllFriend);
    autoAttach("img[@name=headImg]", "img", 0, g_step);
    autoAttach(".qqh_ld", "smg", 0, g_step);
    window.setTimeout("func3();", 3000);
});

function showAllFriend()
{
    $("div[@name=user_pane]").each(function(){$(this).show()});    
    $("#id_divTail").hide();
    $("#id_inputSearch").val("");
    return false;
}

function doChoseFromSearch(qq, name)
{
    $("div[@name=user_pane]").each(function(){$(this).hide()});    
    $("#id_main_"+qq).show();
    $("#id_divTail").show();
    return true;
}


function func1()
{
    autoAttach("a[@name=nameBlack]", "black", 0, g_step);
    //autoAttach(".openRmd", "rmd", 0, g_step);
    //autoAttach(".delFriend", "friend", 0, g_step);
    window.setTimeout("func2();", g_step);
}
function func2()
{
    autoAttach(".addRemark", "addRemark", 0, g_step);
    autoAttach("a[@name=delRemark]", "delRemark", 0, g_step);
    autoAttach(".ico_write", "editRemark", 0, g_step);
    window.setTimeout("func3();", 500);
}
function func3()
{
    autoAttach(".cancelRemark", "cancelRemark", 0, g_step);
   // autoAttach(".inpurRemark", "inpurRemark", 0, g_step);
    autoAttach(".saveRemark", "saveRemark", 0, g_step);
}

function doDelRemark(qq)
{
    //var parent_id = $(this).parent().attr("id");
    //var thisQQ = getQQFromId(parent_id);
    var thisQQ = qq;
    if(!window.confirm("确认删除备注好友信息?"))
    {
	return false; 
    }
    var parm = thisQQ;
    var dest = $.vs.cgiBase + "/userOper";
    $.ajax({
	    type:"post",
	    url:dest,
	    data:{
		"peer":thisQQ,
		"operName":"custom",
		"operType":1,
		"otype":"json"
		},
	    dataType:"json",
	    success:delRemarkSucc,
	    parm:parm
	    });
   return false; 
}

function delRemarkSucc(json)
{
    var thisQQ = this.parm; 
    var result = $.vs.checkJson(json, true);
    if(result=="o")
    {
	//del custom succed
	var html = '<a onclick="return doAddRemark('+thisQQ+');" id="id_aAddRemark_'+thisQQ+'" class="addRemark" href="#">添加备注</a>';	
	$("#id_divInfo_"+thisQQ).html(html);
	//$("#id_aAddRemark_"+thisQQ).click(doAddRemark);
    }
    else
    {
	alert($.vs.getErrMsg(result));
    }
    
}


function saveRemark()
{
    var parent_id = $(this).parent().attr("id");
    var thisQQ = getQQFromId(parent_id);
    var groupName = $("#id_select_"+thisQQ+" option:selected").val();
    var userName = $("#id_input_"+thisQQ).val();
    if(userName == "")
    {
	alert("请输入用户备注");
	return; 
    }
    if(userName.BLength()>12)
    {
	alert("用户备注信息不能超过12个字符哦");
	return;
    }
    var parm = thisQQ;
    var dest = $.vs.cgiBase + "/userOper";
    $.ajax({
	    type:"post",
	    url:dest,
	    data:{
		"peer":thisQQ,
		"operName":"custom",
		"operType":0,
		"group":groupName,
		"name":userName,
		"otype":"json"
		},
	    dataType:"json",
	    success:saveRemarkSucc,
	    parm:parm
	    });
    
}

function saveRemarkSucc(json)
{
    var thisQQ = this.parm; 
    var result = $.vs.checkJson(json, true);
    if(result=="o")
    {
	//TODO....	
	var info = json["info"];
	var group = info["group"];
	var name =  info["name"];
	var html = '<a href="#" onclick="return doEditRemark('+thisQQ+');" class="ico_write" gp="'+group+'" nm="'+name+'" id="id_aEditRemark_'+thisQQ+'">'+group+'：'+name+'</a>&nbsp;<a id="id_aDelRemark_'+thisQQ+'" name="delRemark" class="ico_no" href="#" onclick="return doDelRemark('+thisQQ+');">删除备注</a>';
	$("#id_divInfo_"+thisQQ).html(html);
	
	$("#id_divEditRemark_"+thisQQ).hide(); 
	$("#id_divInfo_"+thisQQ).show();
    }
    else
    {
	alert($.vs.getErrMsg(result));
    }
}

function renewHtml(thisQQ)
{
    $("#id_aEditRemark_"+thisQQ).click(doEditRemark);
    $("#id_aDelRemark_"+thisQQ).click(doDelRemark);
}

function clickText()
{
}

function cancelRemark()
{
    var parent_id = $(this).parent().attr("id");
    var thisQQ = getQQFromId(parent_id);
    $("#id_divEditRemark_"+thisQQ).hide(); 
    $("#id_divInfo_"+thisQQ).show();
}

function doEditRemark(qq)
{
    var thisId, thisQQ;
    if(!qq)
    {
	thisId = $(this).attr("id");
	thisQQ = getQQFromId(thisId);
    }
    else
    {
	thisId = "id_aEditRemark_"+qq;
	thisQQ = qq;
    }
    //$(this) = $("#"+thisId);
    var thisName = getNameFromQQ(thisQQ); 
    var group = $("#"+thisId).attr("gp");
    var name = $("#"+thisId).attr("nm");
    $("#id_divInfo_"+thisQQ).hide();
	
    $("#id_select_"+thisQQ+" option[@value=\""+group+"\"]").attr("selected", true);
    $("#id_input_"+thisQQ).val(name);
	
    $("#id_divEditRemark_"+thisQQ).show();
    return false;
}

function doAddRemark(qq)
{
    var thisId, thisQQ;
    if(!qq)
    {
	thisId = $(this).attr("id");
	thisQQ = getQQFromId(thisId);
    }
    else
    {
	thisQQ = qq;
    }
    var thisName = getNameFromQQ(thisQQ); 
    $("#id_divInfo_"+thisQQ).hide();
    $("#id_select_"+thisQQ+" option[@value=\"朋友\"]").attr("selected", true);
    $("#id_input_"+thisQQ).val("");
    $("#id_divEditRemark_"+thisQQ).show();
  return false;
}

function doRmd(qq)
{
    var thisId, thisQQ;
    if(!qq)
    {
	thisId = $(this).attr("id");
	thisQQ = getQQFromId(thisId);
    }
    else
    {
	thisQQ = qq;
	thisId = "id_aRemind_"+thisQQ;
    }
    var thisName = getNameFromQQ(thisQQ); 
    var thisOper = $("#"+thisId).attr("op");
    var nOperType = (thisOper=="open")?0:1;
    userOperRequest("remind", nOperType, thisQQ);
    return false;
}

function remindSuccCb(oldType, qq)
{
    var el_id = "id_aRemind_" + qq;
    var newOper = "";
    if(oldType==0)
    {
	newOper = "close"; 
	$("#"+el_id).text("关闭提醒");
    }
    else
    {
	newOper = "open"; 
	$("#"+el_id).text("打开提醒");
    }
    $("#"+el_id).attr("op", newOper);
}

function removeUserOperPane(qq, str)
{
    var name = getNameFromQQ(qq); 
    var html = '<A class="name" href="'+$.vs.cgiBase+'/space/'+qq+'">'+name+'</A>'+str;
    $("#id_divOper_"+qq).html(html);
}

function doDelFriend(qq)
{
    var thisId, thisQQ;
    if(!qq)
    {
	thisId = $(this).attr("id");
	thisQQ = getQQFromId(thisId);
    }
    else
    {
	thisQQ = qq;
    }
    var thisName = getNameFromQQ(thisQQ); 
    userOperRequest("friend", 1, thisQQ);
    return false;
}

function friendSuccCb(type, qq)
{
    var str = (type==0)?"被成功加为叨友":"被成功删除叨友";
    removeUserOperPane(qq, str);
}

function doBlack(qq)
{
    var thisId, thisQQ;
    if(!qq)
    {
	thisId = $(this).attr("id");
	thisQQ = getQQFromId(thisId);
    }
    else
    {
	thisQQ = qq;
	thisId = "id_aBlack_"+thisQQ;
    }
    var thisName = getNameFromQQ(thisQQ); 
    var thisOper = $("#"+thisId).attr("op");
    var nOperType = (thisOper=="add")?0:1;
    userOperRequest("black", nOperType, thisQQ);
    return false;
}

function blackSuccCb(type, qq)
{
    var str = (type==0)?"被成功加入黑名单":"被成功从黑名单删除";
    removeUserOperPane(qq, str);
}

function userOperRequest(operName, operType, peer)
{
    var loginQQ = $.cookie("qquin");
    if(loginQQ < 10000)
    {
	    alert("未登录，无法响应操作...");
	    return;
    }	
    var parm = operName+"|"+operType+"|"+peer;
    var dest = $.vs.cgiBase + "/userOper";
    $.ajax({
	    type:"post",
	    url:dest,
	    data:{
		"peer":peer,
		"operName":operName,
		"operType":operType,
		"otype":"json"
		},
	    dataType:"json",
	    success:userOperResponse,
	    parm:parm
	    });
}

function userOperResponse(json)
{
    var result = $.vs.checkJson(json, true);
    var parm = this.parm;
    var tmp = parm.split("|");
    var operName = tmp[0];
    var operType= tmp[1];
    var operQQ= tmp[2];
    
    if(result == "o")
    {
	//call back		
	if(operName=="remind")
	{remindSuccCb(operType,operQQ);}	    
	else if(operName == "friend")
	{friendSuccCb(operType,operQQ);}	    
	else if(operName == "black")
	{blackSuccCb(operType,operQQ);}	    
    }
    else
    { 
	alert($.vs.getErrMsg(result));
    }
}


function getQQFromId(id)
{
    var i = id.lastIndexOf("_");
    var qq = id.substr(i+1, id.length);
    return qq;
}

function getNameFromQQ(qq)
{
    var id = "#id_main_"+qq;
    return $(id).attr("nm");
}

function funcFormSmgUrl()
{
    var thisId = $(this).attr("id");
    var thisQQ = getQQFromId(thisId);
    var thisName = getNameFromQQ(thisQQ); 
    $(this).attr("href", $.vs.domain+"/secret.shtml?"+"qq="+thisQQ+"&nm="+$.vs.encodeURLValue(thisName));
}

