if(!jsonrpc){
    var jsonrpc = new JSONRpcClient("/cc/JSON-RPC");
}
var favMv = null;
function listFavorite(userId, tag) {
    var info = {
        "zh-cn": {
            deleteFav: "删除"
        },
        "en": {
            deleteFav: "Delete"
        }
    };
    var infoObj = new dpmInfo();
    infoObj.addInfo(info);
    var rd=document.getElementById("fav_mc");
    rd.innerHTML="<div id='fav_rd' style='heigth:30px;margin:2px 0 0 20px;clear:both;' class='txt1'></div>"+
                 "<div class='txt3' align='right'><input type='button' id='fav_del' value='" + infoObj.getInfo("deleteFav") + "'/></div>";
    var hql = "from CeFavorite A, RpArticle B where A.userid="
        + userId + " and A.rparticleid=B.id ";
    if(tag != null)
        hql += "and A.tag='" + tag + "'";
    var fav_ptlData={
            start:0,
            limit:9,
            dataDom:document.getElementById("fav_rd"),
            req:{
                hql:hql,
                cns:["dao.hb.CeFavorite", "dao.hb.RpArticle"],
                onloadFilter:" ",
                order:" "
            },
            swtCt:true,
            autoCtH:false,
            itemList:{
                dom:[document.getElementById("fav_ilist")],
                listClassName:"tx",
                curPageClassName:"cp",
                shownum:8,
                callback:function(dom,list,me){
                }
            },
            renderView:function(me){
                var str="";
                var ra=me.resultArr;//分页数据
                //me.count;  
                //me.curpage    
                //select C.thesisId,B.catalogName,B.catalogSource,B.publishHouse,B.publishDate
                var thAlign = "left";
                var userInfo = getUserInfo();
                if(userInfo != null && userInfo.langId == "en")
                    thAlign = "cneter";
                str+="<table width='100%' class='friendtable' cellspacing=0>"+
                    "<th width=15% align='" + thAlign + "'><input type='checkbox' id='fav_selAll'/>"+pn.cfg.req.title["choose"]+"</th>" +
                    "<th width=55% align='" + thAlign + "'>"+pn.cfg.req.title["link"]+"</th>"+
                    "<th width=30% align='" + thAlign + "'>"+pn.cfg.req.title["tm"]+"</th>";
                var imgStr="";
                for(var i=1,len=ra.length;i<len;i++){//ra[i]['RP_ARTICLE_URL']
                    if(ra[i]==null){
                        break;
                    }
                    var date = new Date(ra[i]["A.tm"].time);
                    var dateStr = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
                    str+="<tr style='cursor:pointer;height:30px;');return false;\""+
                    " >"+
                    "<td><input type='checkbox' name='favCheck' value='" + ra[i]['A.id'] + "'/></td>" +
                    "<td onclick=\"tf(event,'"+getURLOfRpArticle(ra[i]['B.chanel'],ra[i]['B.id'])+"')\">" + ra[i]["B.title"] + "</td>"+
                    "<td>"+ dateStr +"</td>"+
                    "</tr>";
                    //imgStr+="<span title='"+ra[i]["A.objName"]+"' style='margin-left:15px;'><img style='BORDER-RIGHT: 1px ridge; BORDER-TOP: 1px ridge; BACKGROUND: #ffffff; BORDER-LEFT: 1px ridge;  BORDER-BOTTOM: 1px ridge;' src='"+getImageUtil(ra[i]["C.cdlabel"],ra[i]["C.imgFile"],'s')+"'/></span>";
                }
                str+="</table>";
                str = str.replace(/null/ig,'');
                me.cfg.dataDom.innerHTML=str;
                me.cfg.imageDom.innerHTML=imgStr;
                str=null;
                imgStr=null;
                document.getElementById("fav_del").onclick = function() {
                    var favChecks = document.getElementsByName("favCheck");
                    var favIds = [];
                    for(var i=0; i<favChecks.length; i++) {
                        if(favChecks[i].checked) {
                            favIds[favIds.length] = favChecks[i].value;
                        }
                    }
                    if(favIds.length > 0)
                        removeFavorite(favIds);
                };
                document.getElementById("fav_selAll").onclick = function() {
                    var favChecks = document.getElementsByName("favCheck");
                    for(var i=0; i<favChecks.length; i++)
                        favChecks[i].checked = this.checked;
                };

            }
        };
        
        if(typeof pn=="object"){
            pn.setCfg(fav_ptlData);
        }else{
            var pn=new PagingToolbar(fav_ptlData);
        }
        var info = {
            "zh-cn": {
                choose: "选择",
                favLink: "收藏地址",
                favTime: "收藏时间"
            },
            "en": {
                choose: "Select",
                favLink: "Title",
                favTime: "Added on"
            }
        };
        var infoObj = new dpmInfo();
        infoObj.addInfo(info);
        pn.cfg.req.pss=[["id", "tm"], ["id", "title", "chanel"]];
        pn.cfg.req.title={choose: infoObj.getInfo("choose"), link: infoObj.getInfo("favLink"), tm: infoObj.getInfo("favTime")};
        pn.init(pn.cfg);
        pnTb=[pn.tb[0],pn.tb[1]];
}

//function tf(e,url){
//    window.open("http://" + location.hostname + url,"_blank");
//    return false;
//}

function favoritePage() {
    var userInfo = getUserInfo();
    var info = {
            "zh-cn": {
                favTag: "收藏标签：",
                favorite: "收藏",
                headTips: "收藏页面",
                defTag: "标签"
            },
            "en": {
                favTag: "Tag: ",
                favorite: "Add",
                headTips: "Add to My Favorite",
                defTag: "Tag"
            }
        };
    var infoObj = new dpmInfo();
    infoObj.addInfo(info);
    if (userInfo != null) {
        var mdCt = document.createElement("div");
        mdCt.style.width="280px";
        var tag = "";
        var title = document.title;
        if(title.lastIndexOf("/") > 0)
            tag = title.substring(0, title.lastIndexOf("/"));
        else
            tag = infoObj.getInfo("defTag");
        var opt = {
            bgGif:"help.gif",
            ns:"favPage",
            ct:mdCt,
            btns:[
                  {
                      name: infoObj.getInfo("favorite"),
                      type: "button",
                      click: function(opt) {
                          addFavorite(userInfo.userId, rpID, document.getElementById("fav_tagName").value, opt);
                      }
                  },
                  {
                      name: infoObj.getInfo("cancel"),
                      type: "button",
                      click: function(opt) {
                          Imba.modal.close(Imba.modal,opt);
                      }
                  }
            ]
        };
        Imba.modal.uiTp(
                infoObj.getInfo("headTips"),
                 ["<table class='index-txt'>",
                 "<tr><td align='right'>" + infoObj.getInfo("favTag") + "<input type='text' id='fav_tagName' value='" + tag +"'/></td></tr>",
                 "</table>"].join(""),
                opt);
    }
    else
        favoritPage();
    
}

function addFavorite(userId, articleId, tag, opt) {
    var info = {
            "zh-cn": {
                failed: "收藏操作失败！"
            },
            "en": {
                failed: "Favorite Failed!"
            }
        };
    var infoObj = new dpmInfo();
    infoObj.addInfo(info);
    var userInfo = getUserInfo();
    var favObj = {};
    favObj.method = "T";
    favObj.userId = userId;
    favObj.articleId = articleId;
    favObj.tag = tag;
    favObj.handlerKey = userInfo.handlerKey;
    var req = {"map": {"psMap": {map: favObj, "javaClass": "java.util.HashMap"}, "SN": "MemberHandle"}, "javaClass": "java.util.HashMap"};
    jsonrpc.BH.handle(function(responseData, e){
        if(e != null)
            alert(infoObj.getInfo("failed"));
        else {
            Imba.modal.close(Imba.modal,opt);
        }
    }, [req]);
    
}

function removeFavorite(favIds) {
    var info = {
            "zh-cn": {
                failed: "删除收藏操作失败！"
            },
            "en": {
                failed: "Remove Favorite Failed!"
            }
        };
    var infoObj = new dpmInfo();
    infoObj.addInfo(info);
    var userInfo = getUserInfo(false);
    var obj = {};
    obj.method = "Z";
    obj.userId = userInfo.userId;
    obj.handlerKey = userInfo.handlerKey;
    obj.favIds = favIds;
    var req = {"map": {"psMap": {map: obj, "javaClass": "java.util.HashMap"}, "SN": "MemberHandle"}, "javaClass": "java.util.HashMap"};
    jsonrpc.BH.handle(function(responseData, e){
        if(e != null)
            alert(infoObj.getInfo("failed"));
        else {
          loadFavoriteTag();
          var userInfo = getUserInfo();
          listFavorite(userInfo.userId);
        }
    }, [req]);
}

function loadFavoriteTag() {
    var userInfo = getUserInfo();
    if(userInfo != null) {
        var ps = {hql:"A.tag, count(A) from dao.hb.CeFavorite A where A.userid=" + userInfo.userId + " group by A.tag", method:"E"};
        var req = {"map": {"psMap": {map: ps, "javaClass": "java.util.HashMap"}, "SN": null}, "javaClass": "java.util.HashMap"};
        jsonrpc.BH.handle(function(responseData, e){
            if(e != null)
                alert(e.message);
            else {
                var tagDiv = document.getElementById("fav_tagDiv");
                var info = {
                    "zh-cn": {
                        total: "所有"
                    },
                    "en": {
                        total: "All"
                    }
                };
                var infoObj = new dpmInfo();
                infoObj.addInfo(info);
                var htmlStr = "<table>";
                var bodyHtml = "";
                var totalAmount = 0;
                for(var i=0; i<responseData[0].list.length; i++) {
                    bodyHtml += "<tr><td><a href='#' onclick=\"javascript:listFavorite(" + userInfo.userId + ", '"
                        + responseData[0].list[i][0] + "')\">" + responseData[0].list[i][0] + "(" + responseData[0].list[i][1] + ")"
                        + "</a></td></tr>";
                    totalAmount += responseData[0].list[i][1];
                }
                htmlStr += "<tr><td><a href='#' onclick=\"javascript:listFavorite(" + userInfo.userId + ")\">" + infoObj.getInfo("total") + "(" + totalAmount + ")</a></td></tr>";
                htmlStr += bodyHtml;
                htmlStr += "</table>";
                tagDiv.innerHTML = htmlStr;
            }
        }, [req]);
    }
}

function favRefresh(index, event, menu, panel) {
    var i18nInfo = {
        "zh-cn": {
        	i18n_explan4:"按分类列出您所收藏的本网站页面，方便您快速查找浏览，慢慢回味",
            i18n_fav_goto: "到第",
            i18n_fav_gotopage: "页",
            i18n_fav_sure: "确定",
            i18n_fav_startpage: "首页",
            i18n_fav_endpage: "尾页",
            i18n_fav_nextpage: "下一页",
            i18n_fav_lastpage: "上一页",
            i18n_fav_count: "共",
            i18n_fav_countpage: "页",
            i18n_fav_cur: "第",
            i18n_fav_curpage: "页"
        },
        "en": {
        	i18n_explan4:"The Web pages you have collected are listed here. Enjoy them at any time you like. ",
            i18n_fav_goto: "Page",
            i18n_fav_gotopage: "",
            i18n_fav_sure: "Go",
            i18n_fav_startpage: "First Page",
            i18n_fav_endpage: "Last Page",
            i18n_fav_nextpage: "Next Page",
            i18n_fav_lastpage: "Previous Page",
            i18n_fav_count: "Total",
            i18n_fav_countpage: "Page",
            i18n_fav_cur: "",
            i18n_fav_curpage: "Page"
        }
    };
    loadFavoriteTag();
    var userInfo = getUserInfo();
    listFavorite(userInfo.userId);
    var i18n = new dpm_i18n();
    i18n.newTextObj(i18nInfo);
    i18n.fillText();
}
