var jst_tag_list=new String('\
    <span class="n_ f13 c07 g_c_hand" title="全局搜索此标签" onclick="if(oEditTag) {oEditTag.tagSearchGlobal();return false;}">${tagName} :</span>\
    <span class="c06">\
      &nbsp;<a href="#" onclick="if(oEditTag) return oEditTag.searchTagFromType(1);">相片(<span id="thisPhotoNum" style="float:none;display:inline;">${photoNum}</span>)</a>&nbsp;<label class="bd1c">|</label>\
      &nbsp;<a href="#" onclick="if(oEditTag) return oEditTag.searchTagFromType(3);">日志(<span id="thisBlogNum" style="float:none;display:inline;">${blogNum}</span>)</a>&nbsp;<label class="bd1c">|</label>\
      &nbsp;<a href="#" onclick="if(oEditTag) return oEditTag.searchTagFromType(4);">收藏(<span id="thisRcNum" style="float:none;display:inline;">${favNum}</span>)</a>\
    </span>\
');
var jst_search_photo_content=new String('\
    <div>\
      {for photo in photoList}\
        <div class="g_p_left g_c_pdin"><a href="http://${photo.userName|parentDomain}${prefix}/${oEditTag.urlPre}Photo.do?photoId=${photo.id}" target="_blank"><img class="g_img_02 bd01" src="${photo.squareUrl}" /></a></div>\
      {/for}\
    </div>\
    <div class="g_p_clear g_t_space">&nbsp;</div>\
');
var jst_search_blog_content=new String('\
    <div>\
    {if blogList != null && blogList.length > 0}\
      {for b in blogList}\
  <div class="g_c_mvdn g_c_pdin g_t_left">\
    <div class="g_c_pdin"><span class="a_a g_t_14 g_t_bold c07" href="http://${b.userName|default:""|parentDomain}/${b.permalink}" target="_blank">${b.title|default:""|escape}</span></div>\
    <div class="g_c_pdin"><span class="a_a c06" href="http://${b.userName|default:""|parentDomain}" target="_blank">\
    {if b.userNickname != null && b.userNickname != ""}\
     ${b.userNickname|escape}\
    {else}\
       ${b.userName}\
    {/if}\
    </span>&nbsp;&nbsp;<label class="c09" style="margin-left:26px;">${NetEase.DateTime.formatDate(b.publishTime,"yyyy-MM-dd HH:mm:ss")}</label></div>\
    <div class="g_c_pdin c07">${b.contentPlainText|default:""|escape}</div>\
  </div>\
      {/for}\
    {else}\
    {/if}\
    </div>\
');
var jst_search_fav_content=new String('\
    <table border="0" cellspacing="0" cellpadding="0">\
      <tr><td class="c09">收藏名</td><td class="c09">类型</td><td class="c09">收藏者</td><td class="c09">描述</td></tr>\
   {for rc in rcList}\
  <tr><td><a class="c05" href="http://${rc.userName|parentDomain}/${oEditTag.urlPre}Resource.do?selectId=${rc.id}" target="_blank">${rc.name|default:""|escape}</a></td>\
  <td class="c08">{if rc.type == "music"}音乐专辑{elseif rc.type == "rss"}RSS目录{elseif rc.type == "book"}在线书架{elseif rc.type == "web"}网址档案{elseif rc.type == "list"}个性列表{/if}</td>\
  <td><a class="c06" href="http://${rc.userName|parentDomain}" target="_blank">\
   {if rc.nickName != null && rc.nickName != ""}\
    ${rc.nickName|escape}\
   {else}\
    ${rc.userName}\
   {/if}\
  </a></td><td class="c08">${rc.description|default:""|escape}</td></tr>\
   {/for}\
 </table>\
');
var tag_all_jst=new String('\
 <div id="$$_item_list" class="g_c_enable">\
 <div id="$$_item_base">\
 <table border="0" cellspacing="0" cellpadding="0">\
  <tr>\
    {if oEditTag.isEdit==true}\
       <td class="c09 g_w_35 g_t_left" style="font-size:12px;">标签</td>\
       <td class="c09 g_w_15 g_c_hand" style="font-size:12px;"><div id="bc" onclick="if(oEditTag){return oEditTag._sortTagList(this);}">日志数<span class="n_ k8" id="bcimg">&nbsp;</span></div></td>\
       <td class="c09 g_w_10" style="font-size:12px;">编辑</td>\
       <td class="c09 g_w_10" style="font-size:12px;">删除</td>\
       {else}\
       <td class="c09 g_w_40 g_t_left" style="font-size:12px;">标签</th>\
       <td class="c09 g_w_20 g_c_hand" style="font-size:12px;"><div id="bc" onclick="if(oEditTag){return oEditTag._sortTagList(this);}">日志数<span class="n_ k8" id="bcimg">&nbsp;</span></div></td>\
       {/if}\
     </tr>\
    </table>\
    </div>\
    {for item in itemList}\
    {if item.tagName!=""}\
    <div id="$$_item_${item.id}" class="setDragOnlyClass">\
    <table border="0" cellspacing="0" cellpadding="0">\
    <tr>\
      {if oEditTag.isEdit==true}\
      <td id="$$_td${item.id}" class="g_t_left g_w_35" onclick="if(oEditTag){return oEditTag.searchTagFromEl($(\'$$_a${item.id}\'), null);}"><div style="word-wrap:break-word;word-break:break-all;overflow:hidden;"><a class="c07" href="#" id="$$_a${item.id}">${item.tagName|default:""|escape}</a></div></td>\
      <td class="g_w_15 g_c_hand c08" id="$$_bn${item.id}" onclick="if(oEditTag){return oEditTag.searchTagFromEl($(\'$$_a${item.id}\'), null);}">\
      {else}\
      <td id="$$_td${item.id}" class="g_t_left g_w_40" onclick="if(oEditTag){return oEditTag.searchTagFromEl($(\'$$_a${item.id}\'), null);}"><div style="word-wrap:break-word;word-break:break-all;overflow:hidden;"><a class="c07" href="#" id="$$_a${item.id}">${item.tagName|default:""|escape}</a></div></td>\
      <td class="g_w_20 g_c_hand c08" id="$$_bn${item.id}" onclick="if(oEditTag){return oEditTag.searchTagFromEl($(\'$$_a${item.id}\'), null);}">\
      {/if}\
  {if (oEditTag.iVisitorRank>100)}\
   ${item.blogCount|default:0}\
  {elseif (oEditTag.iVisitorRank==100)}\
   ${item.friendBlogCount|default:0}\
  {else}\
   ${item.guestBlogCount|default:0}\
  {/if}\
   </td>\
      <td class="g_w_10"><span class="n_ e7b g_c_hand e" name="editTagButton" onclick="if(oEditTag){oEditTag.tagEditing=true; return ${objName}.editItem(\'${item.id}\',this);}">&nbsp;</span><span class="n_ e8b d">&nbsp;</span></td>\
   <td class="g_w_10"><span class="n_ n6 g_c_hand e" name="deleteTagButton" onclick="if(oEditTag){return ${objName}.deleteItem(\'${item.id}\',this);}">&nbsp;</span><span class="i_ i27 d">&nbsp;</span></td>\
  </tr>\
 <tr><td colspan="4">\
 <div id="$$_item_frame_${item.id}">\
 <div id="resultFrame${item.id}" class="bd01 g_c_mvdn g_p_center" style="display:none;width:609px;">\
       <div class="g_c_mvdn" id="search_blogresultFrame${item.id}">\
        <div class="g_h_25 g_t_left g_c_pdin selitm">\
         <div id="mark_blogresultFrame${item.id}" class="g_p_right g_w_40 g_t_right"></div>\
         <span class="g_t_bold c08">日志</span>\
        </div>\
        <div id="_$_search_blog_contentresultFrame${item.id}" class="g_t_center"></div>\
  </div>\
 </div></div>\
 </td></tr>\
 </table></div>\
 {/if}\
 {forelse}\
     <div id="$$_item_to_add">\
       {if oEditTag.isEdit==true}\
           目前没有标签，请先为日志添加新的标签。\
       {else}\
       目前没有标签。\
    {/if}\
  </div>\
 {/for}\
 </div>\
');
if(NetEase==undefined){
var NetEase={};
}
NetEase.ListModule=Class.create();
NetEase.ListModule.prototype={
initialize:function(){
this.options=Object.extend(
{
readOnly:false,
firstLoad:true,
loadParam:{},
loadFunc:Prototype.emptyFunction,
id:'id',
props:[],
propsFilter:[],
positions:[],
propsClass:[],
attach:{},
keepLast:false,
presentParam:{},
presentTemplate:false,
presentShowId:null,
alertMsg:'关键词不能为空!',
disableFunc:Prototype.emptyFunction,
enableFunc:Prototype.emptyFunction,
beforeAjaxFunc:Prototype.emptyFunction,
afterAjaxFunc:Prototype.emptyFunction,
afterCancelFunc:Prototype.emptyFunction,
saveAddFunc:Prototype.emptyFunction,
saveEditFunc:Prototype.emptyFunction,
saveDelFunc:Prototype.emptyFunction,
dwrAlert:false,
allowDrag:false,
setDragOnlyClass:'setDragOnlyClass',
handleClass:'handleClass',
saveSortBar:'saveSortBar',
saveSortFunc:Prototype.emptyFunction,
objName:null
},arguments[0]||{});
this.ajaxType=0;
this.stat='normal';
this.listData=[];
this._load();
},
_load:function(){
this._disableAll();
if(this.options.firstLoad){
this.options.beforeAjaxFunc();
this.options.loadFunc(this.options.loadParam,this._afterLoad.bind(this));
}
else{
this._present(this.listData);
}
},
_afterLoad:function(dataList){
this.listData=[];
if(dataList!=null){
dataList.each(this._iterator.bind(this));
}
this._present(this.listData);
if(!this.options.readOnly)
this._enableAll();
this.ajaxType=1;
this.options.afterAjaxFunc();
},
_iterator:function(element){
var key=this.options.id;
element.attach=this.options.attach;
element.id=element[key];
this.listData.push(element);
},
_present:function(dataList){
var data={param:this.options.presentParam,itemList:dataList,objName:this.options.objName};
if(this.options.presentTemplate){
var result=this.options.presentTemplate.process(data);
if(this.options.presentShowId){
$(this.options.presentShowId).innerHTML=result;
if(this.options.allowDrag){
var updateCallback=this._sortUpdate.bind(this);
Sortable.create('$$_item_list',{dropOnEmpty:true,tag:'div',containment:['$$_item_list'],zindex:50,handle:this.options.handleClass,
only:this.options.setDragOnlyClass,constraint:false,clone:false,overlap:'vertical',format:null,allowVerticalScroll:true,
onUpdate:updateCallback
});
this.orginSeqString=decodeURIComponent(Sortable.serialize('$$_item_list')).replace(/\$\$_item_/ig,'');
}
}
}
},
_sortUpdate:function(){
var seqString=decodeURIComponent(Sortable.serialize('$$_item_list')).replace(/\$\$_item_/ig,'');
this._sortListData(seqString);
$(this.options.saveSortBar).style.display=(seqString!=this.orginSeqString)?'block':'none';
if(seqString!=this.orginSeqString){
this._disableAll();
}else{
this._enableAll();
}
},
_sortListData:function(seqString){
if(seqString==null)
return;
var seqs=seqString.split(',');
if(seqs.length==0)
return;
var tempData=[];
for(var i=0;i<seqs.length;i++){
var element=this.listData.detect(this._detectItr.bind(this,seqs[i]));
tempData.push(element);
}
this.listData=tempData;
},
cancelSort:function(){
if(this.options.allowDrag){
this._sortListData(this.orginSeqString);
this._present(this.listData);
$(this.options.saveSortBar).style.display='none';
this._enableAll();
}
},
saveSort:function(){
if(this.options.allowDrag){
var seqString=decodeURIComponent(Sortable.serialize('$$_item_list')).replace(/\$\$_item_/ig,'');
this.options.saveSortFunc(seqString,this.options.attach,this._afterSaveSort.bind(this,seqString));
}
},
_afterSaveSort:function(seqString,stat){
if(stat){
this.orginSeqString=seqString;
if(this.options.dwrAlert)
this.options.dwrAlert("保存顺序成功!","ok");
$(this.options.saveSortBar).style.display='none';
this._enableAll();
}else{
if(this.options.dwrAlert)
this.options.dwrAlert("保存顺序失败!","error");
}
},
_disableAll:function(){
this.options.disableFunc();
},
_enableAll:function(){
this.options.enableFunc();
},
_vaildPropFunc:function(targetId,objDstId){
if($(targetId).value.length>0){
$(objDstId).disabled=false;
}else{
$(objDstId).disabled=true;
}
},
addItem:function(){
this._disableAll();
var _parentDiv=$('$$_item_base').parentNode;
var _toAddDiv=$('$$_item_to_add');
if(_toAddDiv)
Element.removeChild(_toAddDiv);
var cls="list_box_content1";
var _newDiv=document.createElement("div");
_newDiv.id="$$_item_in_add";
_newDiv.className=cls;
var _table=document.createElement("table");
var _tbody=document.createElement("tbody");
var _tr=document.createElement("tr");
var _td;
var posCode=-1;
var propCode=-1;
var key,filter,size;
for(var i=0;i<this.options.positions.length;i++){
_td=document.createElement("td");
_td.className=this.options.propsClass[i];
posCode=this.options.positions[i];
if(posCode==-1){
_td.innerHTML='&nbsp;';
}else if(posCode==0){
propCode++;
key=this.options.props[propCode];
filter=this.options.propsFilter[propCode];
_td.innerHTML='<input type="text" class="bd01 g_w_90 g_c_input g_htc_focus" id="$$_prop_'
+key+'" maxlength="'+filter
+'" onkeyup="'+
this.options.objName+'._vaildPropFunc(\'$$_prop_'+this.options.props[0]+'\',\'$$_prop_submit\');" />';
}else if(posCode==1){
_td.innerHTML='<input type="button" class="g_c_button bd01 butn c05" style="width:50px;" id="$$_prop_submit" value="确 定" onclick="'+this.options.objName+'._updateAddItem();" />';
}else if(posCode==2){
_td.innerHTML='<input type="button" class="g_c_button bd01 butn c05" style="width:50px;" id="$$_prop_cancel" value="取 消" onclick="'+this.options.objName+'._cancelEditFunc();" />';
}
_tr.appendChild(_td);
}
_tbody.appendChild(_tr);
_table.appendChild(_tbody);
_newDiv.appendChild(_table);
_parentDiv.insertBefore(_newDiv,$('$$_item_base').nextSibling);
if(this.options.props[0])
$('$$_prop_'+this.options.props[0]).focus();
$('$$_prop_submit').disabled=true;
this.stat='add';
},
_updateAddItem:function(){
if(Trim($F('$$_prop_'+this.options.props[0]))==""){
if(this.options.dwrAlert)
this.options.dwrAlert(this.options.alertMsg,"info");
else
alert(this.options.alertMsg);
return;
}
element={};
element.attach=this.options.attach;
for(var i=0;i<this.options.props.length;i++){
var key=this.options.props[i];
var value=Trim($F('$$_prop_'+this.options.props[i]));
element[key]=value;
}
this.options.beforeAjaxFunc();
this.options.saveAddFunc(element,this._afterSaveAddFunc.bind(this,element));
},
_afterSaveAddFunc:function(element,id){
var saveState=0;
if(id>'0'){
element.id=id;
this.listData.unshift(element);
this._present(this.listData);
this._enableAll();
saveState=1;
this.stat='normal';
if(this.options.dwrAlert)
this.options.dwrAlert("增加成功!","ok");
}else{
if(this.options.dwrAlert)
this.options.dwrAlert("增加失败!","info");
else
alert("增加失败!");
}
this.ajaxType=2;
this.options.afterAjaxFunc(element,saveState);
},
editItem:function(id,obj){
if(obj&&obj.disabled)
return false;;
var _div=$('$$_item_'+id);
if(!_div)
return false;
this._disableAll();
_div.innerHTML="";
var element=this.listData.detect(this._detectItr.bind(this,id));
var _td;
var posCode=-1;
var propCode=-1;
var key,value,filter,size;
var _table=document.createElement("table");
var _tbody=document.createElement("tbody");
var _tr=document.createElement("tr");
for(var i=0;i<this.options.positions.length;i++){
_td=document.createElement("td");
_td.className=this.options.propsClass[i];
posCode=this.options.positions[i];
if(posCode==-1){
_td.innerHTML='&nbsp;';
}else
if(posCode==0){
propCode++;
key=this.options.props[propCode];
value=element[key];
if(value==null)
value='';
value=value.escape();
filter=this.options.propsFilter[propCode];
_td.innerHTML='<input type="text" class="bd01 g_w_90 g_c_input g_htc_focus" id="$$_prop_'
+key+'" maxlength="'+filter
+'" value="'+value+'" onkeyup="'+
this.options.objName+'._vaildPropFunc(\'$$_prop_'+this.options.props[0]+'\',\'$$_prop_submit\');" />';
}else
if(posCode==1){
_td.innerHTML='<input type="button" class="g_c_button bd01 butn c05" style="width:50px;" id="$$_prop_submit" value="确 定" onclick="'+this.options.objName+'._updateEditFunc(\''+id+'\');" />';
}else
if(posCode==2){
_td.innerHTML='<input type="button" class="g_c_button bd01 butn c05" style="width:50px;" id="$$_prop_cancel" value="取 消" onclick="'+this.options.objName+'._cancelEditFunc();" />';
}
_tr.appendChild(_td);
}
_tbody.appendChild(_tr);
_table.appendChild(_tbody);
_div.appendChild(_table);
if(this.options.props[0]){
$('$$_prop_'+this.options.props[0]).focus();
$('$$_prop_'+this.options.props[0]).select();
}
$('$$_prop_submit').disabled=true;
this.stat='edit';
return false;
},
_detectItr:function(id,element){
if(element.id==id)
return true;
return false;
},
_updateEditFunc:function(id){
if(Trim($F('$$_prop_'+this.options.props[0]))==""){
if(this.options.dwrAlert)
this.options.dwrAlert(this.options.alertMsg,"info");
else
alert(this.options.alertMsg);
return;
}
var element={};
var oldElement;
element.id=id;
element.attach=this.options.attach;
for(var i=0;i<this.options.props.length;i++){
var key=this.options.props[i];
var value=Trim($F('$$_prop_'+this.options.props[i]));
element[key]=value;
if(this.options.keepLast){
if(!element.oldElement||!oldElement){
element.oldElement={};
oldElement=this.listData.detect(this._detectItr.bind(this,id));
}
element.oldElement[key]=oldElement[key];
}
}
this.options.beforeAjaxFunc();
this.options.saveEditFunc(element,this._afterSaveEditFunc.bind(this,element));
},
_afterSaveEditFunc:function(element,stat){
var saveState=0;
if(stat){
this.listData.each(this._updateIter.bind(this,element));
this._present(this.listData);
this._enableAll();
saveState=1;
this.stat='normal';
if(this.options.dwrAlert)
this.options.dwrAlert("更新成功!","ok");
}else{
if(this.options.dwrAlert)
this.options.dwrAlert("更新失败!","error");
else
alert("更新失败!");
}
this.ajaxType=3;
this.options.afterAjaxFunc(element,saveState);
},
_updateIter:function(element,e,index){
if(element.id==e.id){
Object.extend(this.listData[index],element);
}
},
_cancelEditFunc:function(){
this._present(this.listData);
this._enableAll();
this.stat='normal';
this.options.afterCancelFunc();
},
deleteItem:function(id,obj){
if(obj&&obj.disabled)
return false;
var promt=window.confirm("是否确定删除？");
if(promt==true){
this._disableAll();
var element=this.listData.detect(this._detectItr.bind(this,id));
this.options.beforeAjaxFunc();
this.options.saveDelFunc(element,this._afterSaveDelFunc.bind(this,id));
}
return false;
},
_afterSaveDelFunc:function(id,stat){
var saveState=0;
if(stat){
this.listData=this.listData.reject(this._rejectIter.bind(this,id));
this._present(this.listData);
saveState=1;
if(this.options.dwrAlert)
this.options.dwrAlert("删除成功!","ok");
}else{
if(this.options.dwrAlert)
this.options.dwrAlert("删除失败!","error");
else
alert("删除失败!");
}
this._enableAll();
this.ajaxType=4;
this.options.afterAjaxFunc(id,saveState);
},
sortBy:function(type){
this._disableAll();
if(!this.innerSort)
this.innerSort={};
if(this.innerSort[type]&&this.innerSort[type]=="+"){
this.listData=this.listData.sort(this._sortByIter.bind(this,type));
this.listData=this._reverse(this.listData);
this.innerSort[type]="-";
}else{
this.listData=this.listData.sort(this._sortByIter.bind(this,type));
this.innerSort[type]="+";
}
this._present(this.listData);
this._enableAll();
},
_sortByIter:function(type,s1,s2){
if(s1[type]instanceof String||s2[type]instanceof String)
return(s1[type]+'').localeCompare((s2[type]+''));
return s1[type]<s2[type]?-1:s1[type]>s2[type]?1:0;
},
_reverse:function(listData){
var tempData=[];
for(var i=0;i<listData.length;i++)
tempData.unshift(listData[i]);
return tempData;
},
_rejectIter:function(id,element){
if(id==element.id)
return true;
return false;
},
getAjaxType:function(){
return this.ajaxType;
}
}
TextSuggest=Class.create();
TextSuggest.prototype={
initialize:function(sId){
this.id=sId;
this.textInput=$(this.id);
this.suggestions=[];
this.options=Object.extend({
matchTextWidth:true,
selectedColor:'#b1c09c',
matchAnywhere:false,
ignoreCase:false,
maxResultCount:10,
noMatchDataMsg:'很遗憾，目前还没有匹配的数据'
},arguments[1]||{});
this.injectSuggestBehavior();
},
injectSuggestBehavior:function(){
if(isIE){
this.textInput.autocomplete="off";
}
var keyEventHandler=new TextSuggestKeyHandler(this);
this.createSuggestionsDiv();
},
createSuggestionsDiv:function(){
this.suggestionsDiv=document.createElement("div");
var divStyle=this.suggestionsDiv.style;
divStyle.position='absolute';
divStyle.zIndex=101;
divStyle.display="none";
divStyle.backgroundColor="white";
divStyle.border="1px solid #000000";
divStyle.overflow="visible";
this.textInput.parentNode.appendChild(this.suggestionsDiv);
},
handleTextInput:function(){
var previousRequest=this.lastRequestString;
this.lastRequestString=this.textInput.value;
if(this.lastRequestString==""){
this.hideSuggestions();
this.lastRequestString=undefined;
}
else if(this.lastRequestString.indexOf(previousRequest)!=0){
this.sendRequestForSuggestions();
}
else{
this.buildList(false);
}
},
moveSelectionUp:function(){
if(this.selectedIndex>0){
this.updateSelection(this.selectedIndex-1);
}
},
moveSelectionDown:function(){
if(this.selectedIndex<(this.suggestions.length-1)){
this.updateSelection(this.selectedIndex+1);
}
},
updateSelection:function(n){
var span=$(this.id+"_"+this.selectedIndex);
if(span){
span.style.backgroundColor="";
}
this.selectedIndex=n;
var span=$(this.id+"_"+this.selectedIndex);
if(span){
span.style.backgroundColor=this.options.selectedColor;
}
},
sendRequestForSuggestions:function(){
if(this.handlingRequest){
this.pendingRequest=true;
return;
}
this.handlingRequest=true;
TagBean.searchSuggest(this.lastRequestString,this.options.maxResultCount,this.options.matchAnywhere,this._loadSuggests.bind(this));
},
_loadSuggests:function(dataFromServer){
this.createSuggestions(dataFromServer);
this.buildList(true);
this.handlingRequest=false;
if(this.pendingRequest){
this.pendingRequest=false;
this.lastRequestString=this.textInput.value;
this.sendRequestForSuggestions();
}
},
createSuggestions:function(dataFromServer){
this.suggestions=[];
dataFromServer.each(function(e){
this.suggestions.push({text:e});
}.bind(this));
},
buildList:function(bFromBackend){
if(this.updateSuggestionsDiv(bFromBackend)){
this.updateSelection(0);
this.showSuggestions();
}
else
this.hideSuggestions();
},
updateSuggestionsDiv:function(bFromBackend){
this.suggestionsDiv.innerHTML="";
var suggestLines=this.createSuggestionContent(bFromBackend);
if(suggestLines.length==0){
this.suggestionsDiv.innerHTML="<span style='font-weight:bold;color:#0000FF;'>"+this.options.noMatchDataMsg+"</span>";
this.selectedIndex=-1;
return false;
}
suggestLines.each(function(e){
this.suggestionsDiv.appendChild(e);
}.bind(this));
return true;
},
createSuggestionContent:function(bFromBackend){
var suggests=[];
var len=this.suggestions.length;
if(len==0){
return suggests;
}
var regExpFlags="";
if(this.options.ignoreCase)
regExpFlags='i';
var startRegExp="^";
if(this.options.matchAnywhere)
startRegExp='';
var regExp=new RegExp(startRegExp+this.lastRequestString,regExpFlags);
if(!bFromBackend){
var aTmp=[];
this.suggestions.each(function(e){
var sTmp=e.text;
if(sTmp.match(regExp)){
aTmp.push({text:sTmp});
}
});
this.suggestions=aTmp;
len=aTmp.length;
}
for(var i=0;i<len;i++){
suggests.push(this.createSuggestionItem(i,regExp));
}
return suggests;
},
createSuggestionItem:function(n,regExp){
var suggestion=this.suggestions[n];
var suggestItem=document.createElement("span");
var itemStyle=suggestItem.style;
itemStyle.width='100%';
itemStyle.display='block';
itemStyle.cursor='pointer';
itemStyle.paddingBottom='2px';
suggestItem.id=this.id+"_"+n;
suggestItem.onmouseover=this.mouseoverHandler.bindAsEventListener(this);
suggestItem.onclick=this.itemClickHandler.bindAsEventListener(this);
var textValues=this.splitTextValues(suggestion.text,this.lastRequestString.length,regExp);
var textMatchSpan=document.createElement("span");
textMatchSpan.id=this.id+"_match_"+n;
var matchStyle=textMatchSpan.style;
matchStyle.textDecoration='underline';
matchStyle.fontWeight='bold';
textMatchSpan.onmouseover=this.mouseoverHandler.bindAsEventListener(this);
textMatchSpan.onclick=this.itemClickHandler.bindAsEventListener(this);
textMatchSpan.appendChild(document.createTextNode(textValues.mid));
suggestItem.appendChild(document.createTextNode(textValues.start));
suggestItem.appendChild(textMatchSpan);
suggestItem.appendChild(document.createTextNode(textValues.end));
return suggestItem;
},
showSuggestions:function(){
var divStyle=this.suggestionsDiv.style;
if(divStyle.display=='')
return;
this.positionSuggestionsDiv();
divStyle.display='';
},
setInputFromSelection:function(){
var suggestion=this.suggestions[this.selectedIndex];
this.textInput.value=suggestion.text;
this.hideSuggestions();
},
hideSuggestions:function(){
this.suggestionsDiv.style.display='none';
},
mouseoverHandler:function(e){
var src=e.srcElement?e.srcElement:e.target;
var index=parseInt(src.id.substring(src.id.lastIndexOf('_')+1));
this.updateSelection(index);
},
itemClickHandler:function(e){
this.mouseoverHandler(e);
this.hideSuggestions();
this.textInput.focus();
this.setInputFromSelection();
},
splitTextValues:function(text,len,regExp){
var startPos=text.search(regExp);
var matchText=text.substring(startPos,startPos+len);
var startText=startPos==0?"":text.substring(0,startPos);
var endText=text.substring(startPos+len);
return{start:startText,mid:matchText,end:endText};
},
positionSuggestionsDiv:function(){
var textPos=RicoUtil.toDocumentPosition(this.textInput);
var divStyle=this.suggestionsDiv.style;
divStyle.top=(textPos.y+this.textInput.offsetHeight)+"px";
divStyle.left=textPos.x+"px";
if(this.options.matchTextWidth)
divStyle.width=(this.textInput.offsetWidth-this.padding())+"px";
},
padding:function(){
try{
var styleFunc=RicoUtil.getElementsComputedStyle;
var lPad=styleFunc(this.suggestionsDiv,"paddingLeft","padding-left");
var rPad=styleFunc(this.suggestionsDiv,"paddingRight","padding-right");
var lBorder=styleFunc(this.suggestionsDiv,"borderLeftWidth","border-left-width");
var rBorder=styleFunc(this.suggestionsDiv,"borderRightWidth","border-right-width");
lPad=isNaN(lPad)?0:lPad;
rPad=isNaN(rPad)?0:rPad;
lBorder=isNaN(lBorder)?0:lBorder;
rBorder=isNaN(rBorder)?0:rBorder;
return parseInt(lPad)+parseInt(rPad)+parseInt(lBorder)+parseInt(rBorder);
}catch(e){
return 0;
}
}
};
TextSuggestKeyHandler=Class.create();
TextSuggestKeyHandler.prototype={
initialize:function(textSuggest){
this.textSuggest=textSuggest;
this.input=this.textSuggest.textInput;
this.addKeyHandling();
},
addKeyHandling:function(){
this.input.onkeyup=this.keyupHandler.bindAsEventListener(this);
this.input.onkeydown=this.keydownHandler.bindAsEventListener(this);
this.input.onblur=this.onblurHandler.bindAsEventListener(this);
if(isOpera)
this.input.onkeypress=this.keyupHandler.bindAsEventListener(this);
},
keydownHandler:function(e){
var upArrow=38;
var downArrow=40;
var key=e.keyCode;
if(key==upArrow){
this.textSuggest.moveSelectionUp();
}
else if(key==downArrow){
this.textSuggest.moveSelectionDown();
}
},
keyupHandler:function(e){
if(this.input.length==0&&!isOpera)
this.textSuggest.hideSuggestions();
if(!this.handledSpecialKeys(e))
this.textSuggest.handleTextInput();
},
handledSpecialKeys:function(e){
var enterKey=13;
var upArrow=38;
var downArrow=40;
if(e.keyCode==upArrow||e.keyCode==downArrow){
return true;
}
else if(e.keyCode==enterKey){
this.textSuggest.setInputFromSelection();
return true;
}
return false;
},
onblurHandler:function(e){
if(this.textSuggest.suggestionsDiv.style.display==''&&this.textSuggest.selectedIndex!=-1)
this.textSuggest.setInputFromSelection();
this.textSuggest.hideSuggestions();
}
};
var RicoUtil={
getElementsComputedStyle:function(htmlElement,cssProperty,mozillaEquivalentCSS){
if(arguments.length==2)
mozillaEquivalentCSS=cssProperty;
var el=$(htmlElement);
if(el.currentStyle)
return el.currentStyle[cssProperty];
else
return document.defaultView.getComputedStyle(el,null).getPropertyValue(mozillaEquivalentCSS);
},
toDocumentPosition:function(element){
return this._toAbsolute(element,false);
},
_toAbsolute:function(element,accountForDocScroll){
if(navigator.userAgent.toLowerCase().indexOf("msie")==-1)
return this._toAbsoluteMozilla(element,accountForDocScroll);
var x=0;
var y=0;
var parent=element;
while(parent){
var borderXOffset=0;
var borderYOffset=0;
if(parent!=element){
var borderXOffset=parseInt(this.getElementsComputedStyle(parent,"borderLeftWidth"));
var borderYOffset=parseInt(this.getElementsComputedStyle(parent,"borderTopWidth"));
borderXOffset=isNaN(borderXOffset)?0:borderXOffset;
borderYOffset=isNaN(borderYOffset)?0:borderYOffset;
}
x+=parent.offsetLeft-parent.scrollLeft+borderXOffset;
y+=parent.offsetTop-parent.scrollTop+borderYOffset;
parent=parent.offsetParent;
}
if(accountForDocScroll){
x-=this.docScrollLeft();
y-=this.docScrollTop();
}
return{x:x,y:y};
},
_toAbsoluteMozilla:function(element,accountForDocScroll){
var x=0;
var y=0;
var parent=element;
while(parent){
x+=parent.offsetLeft;
y+=parent.offsetTop;
parent=parent.offsetParent;
}
parent=element;
while(parent&&
parent!=document.body&&
parent!=document.documentElement){
if(parent.scrollLeft)
x-=parent.scrollLeft;
if(parent.scrollTop)
y-=parent.scrollTop;
parent=parent.parentNode;
}
if(accountForDocScroll){
x-=this.docScrollLeft();
y-=this.docScrollTop();
}
return{x:x,y:y};
},
docScrollLeft:function(){
if(window.pageXOffset)
return window.pageXOffset;
else if(document.documentElement&&document.documentElement.scrollLeft)
return document.documentElement.scrollLeft;
else if(document.body)
return document.body.scrollLeft;
else
return 0;
},
docScrollTop:function(){
if(window.pageYOffset)
return window.pageYOffset;
else if(document.documentElement&&document.documentElement.scrollTop)
return document.documentElement.scrollTop;
else if(document.body)
return document.body.scrollTop;
else
return 0;
}
};
var oEditTag;
var style;
var g_urlPrefix="";
function initTagResourceFunc(isEdit,iHostId,sStyle,sIsGlobal,iVisitorRank,sServerName,mManageTag){
this.style=sStyle;
oEditTag=new EditTag(isEdit,iHostId,sIsGlobal,iVisitorRank,sServerName,mManageTag);
oEditTag.manageAllTag();
}
EditTag=Class.create();
EditTag.prototype.initialize=fnInitEditTag;
EditTag.prototype.searchFromButt=fnSearchFromButt;
EditTag.prototype.manageAllTag=fnManageAllTag;
EditTag.prototype.searchTagFromEl=fnSearchTagFromEl;
EditTag.prototype.tagSearchGlobal=fnTagSearchGlobal;
EditTag.prototype.addTagFunc=fnAddTagFunc;
EditTag.prototype._tagRemoveSame=_fnTagRemoveSame;
EditTag.prototype._getTagObjMisc=_fnGetTagObjMisc;
EditTag.prototype._searchNow=_fnSearchNow;
EditTag.prototype._hideTagOther=_fnHideTagOther;
EditTag.prototype._searchTagAll=_fnSearchTagAll;
EditTag.prototype._genBlogCon=_fnGenBlogCon;
EditTag.prototype._genPhotoCon=_fnGenPhotoCon;
EditTag.prototype._genRcCon=_fnGenRcCon;
EditTag.prototype._showResByType=_fnShowResByType;
EditTag.prototype._loadAll=_fnLoadAll;
EditTag.prototype._loadAllCb=_fnLoadAllCb;
EditTag.prototype._loadBlogFirstCb=_fnLoadBlogFirstCb;
EditTag.prototype._loadPhotoFirstCb=_fnLoadPhotoFirstCb;
EditTag.prototype._loadRcFirstCb=_fnLoadRcFirstCb;
EditTag.prototype._phFilterFunc=_fnPhFilterFunc;
EditTag.prototype._bgFilterFunc=_fnBgFilterFunc;
EditTag.prototype._rcFilterFunc=_fnRcFilterFunc;
EditTag.prototype._showBlog=_fnShowBlog;
EditTag.prototype._showPhoto=_fnShowPhoto;
EditTag.prototype._showRc=_fnShowRc;
EditTag.prototype._showFail=_fnShowFail;
EditTag.prototype._getBNum=_fnGetBNum;
EditTag.prototype._getPNum=_fnGetPNum;
EditTag.prototype._getLNum=_fnGetLNum;
EditTag.prototype._setBNum=_fnSetBNum;
EditTag.prototype._setPNum=_fnSetPNum;
EditTag.prototype._setLNum=_fnSetLNum;
EditTag.prototype._sortTagList=_fnSortTagList;
EditTag.prototype._tagEnableObjFunc=_fnTagEnableObjFunc;
EditTag.prototype._tagDisableObjFunc=_fnTagDisableObjFunc;
EditTag.prototype._tagAfterCancelFunc=_fnTagAfterCancelFunc;
EditTag.prototype._rmTagFromList=_fnRmTagFromList;
EditTag.prototype._updateTagObjName=_fnUpdateTagObjName;
EditTag.prototype._getTagTotalNum=_fnGetTagTotalNum;
EditTag.prototype._setNeedRefresh=_fnSetNeedRefresh;
EditTag.prototype._putTag2List=_fnPutTag2List;
EditTag.prototype._tagAfterAjaxFunc=_fnTagAfterAjaxFunc;
EditTag.prototype._loadTagAllFunc=_fnLoadTagAllFunc;
EditTag.prototype._tagSaveAddTagFunc=_fnTagSaveAddTagFunc;
EditTag.prototype._tagSaveEditTagFunc=_fnTagSaveEditTagFunc;
EditTag.prototype._tagSaveDelTagFunc=_fnTagSaveDelTagFunc;
EditTag.prototype._loadResourceByType=_fnLoadResourceByType;
function fnInitEditTag(isEdit,iHostId,sIsGlobal,iVisitorRank,sServerName,mManageTag){
this._iTagCols=7;
this._bBlogSort=true;
this._bPhotoSort=true;
this._bListSort=true;
this._iTotalRcNum=0;
this._iBlogPageSize=5;
this._iBlogPrefetchMulti=5;
this._iPhotoPageSize=21;
this._iPhotoPrefetchMulti=5;
this._iRcPageSize=10;
this._iRcPrefetchMulti=5;
this.mManageTag=mManageTag;
this._oPhCachePage=null;
this._oBgCachePage=null;
this._oRcCachePage=null;
this.isGlobal=false;
this._bPhotoFirstSearchEnd=false;
this._bBlogFirstSearchEnd=false;
this._bRcFirstSearchEnd=false;
this._bBlogFirstDone=false;
this._bPhotoFirstDone=false;
this._bRcFirstDone=false;
this._bPhotoBarOpened=true;
this._bBlogBarOpened=true;
this.tagAllList=null;
this._bCurIsHot=false;
this._bTagEditing=false;
this.urlPre="edit";
this._aGlobalTagList=[];
this._oGtCachePage=null;
this._iGtPageSize=50;
this._bNeedGetTagObj=false;
this._bTagSearching=false;
this._iHostId=iHostId;
if(sIsGlobal=="true")
this.isGlobal=true;
this._iCurType=0;
this._oCurTagObj=null;
this.isEdit=isEdit;
this.iVisitorRank=iVisitorRank;
this.sServerName=sServerName;
this._tagRemoveSame();
}
function fnSearchFromButt(){
if(this._bTagSearching)
return false;
if($('tagShowPubBody')!=null&&$('tagShowPubBody').style.display!="none"){
this.isGlobal=true;
}
var sTagFromInput=$("searchInput").value;
if(sTagFromInput!=""){
this._oCurTagObj=this._getTagObjMisc(sTagFromInput,-1);
if(!this.isGlobal&&this._oCurTagObj==null){
this._showFail("本博客内不存在此标签！");
return false;
}
else{
this._searchNow(sTagFromInput,-1,"resultFrame$$hot",1);
}
$("searchInput").value="";
}
else{
this._showFail("请输入标签名称！");
}
return false;
}
function fnSearchTagFromEl(el,sResFrameId){
if(this._bTagEditing||this._bTagSearching)
return false;
var sTag;
if(el==null)
return false;
if(isIE)
sTag=el.innerText;
else
sTag=el.text;
this._oCurTagObj=this._getTagObjMisc(sTag,-1);
if(this._oCurTagObj)
this._searchNow(sTag,this._oCurTagObj.id,sResFrameId,this._iCurType);
return false;
}
function _fnSearchNow(sTag,sTagId,sResFrameId,iType){
var tempResFrameId;
tempResFrameId="resultFrame"+sTagId;
this._hideTagOther(sTagId);
if($("scGlobal"+sTagId)==null){
$("$$_td"+sTagId).innerHTML="<span id='scGlobal"+sTagId+"' class='n_ n4 c07 g_c_hand'>&nbsp;</span>"
+"<a href='#' id='$$_a"+sTagId+"'>"+sTag.escape()+"</a>";
thickTheItem(sTagId);
$("$$_item_frame_"+sTagId).style.display="block";
$(tempResFrameId).style.display="block";
}else{
$("$$_td"+sTagId).innerHTML="<a href='#' id='$$_a"+sTagId+"'>"+sTag.escape()+"</a>";
thinTheItem(sTagId);
$("$$_item_frame_"+sTagId).style.display="none";
return;
}
$(tempResFrameId).style.display="block";
sTag=sTag.toLowerCase();
this._sCurTag=sTag;
this._oPhCachePage=null;
this._oBgCachePage=null;
this._oRcCachePage=null;
this._bBlogFirstDone=false;
this._bPhotoFirstDone=false;
this._bRcFirstDone=false;
this._bPhotoFirstSearchEnd=false;
this._bBlogFirstSearchEnd=false;
this._bRcFirstSearchEnd=false;
this._searchTagAll(sTag,sTagId,tempResFrameId,iType);
return false;
}
function thickTheItem(sTagId){
$("$$_a"+sTagId).style.fontWeight="600";
$("$$_bn"+sTagId).style.fontWeight="600";
}
function thinTheItem(sTagId){
$("$$_a"+sTagId).style.fontWeight="";
$("$$_bn"+sTagId).style.fontWeight="";
}
function _fnHideTagOther(sTagId){
g_userTagList.each(function(e){
var eF=$("resultFrame"+e.id);
if(eF&&e.id!=sTagId&&eF.innerHTML!=""){
var a1=$("$$_td"+e.id);
if(a1){
a1.innerHTML="<a href='#' id='$$_a"+e.id+"'>"+e.tagName.escape()+"</a>";
thinTheItem(e.id);
$("resultFrame"+e.id).style.display="none";
}
}
});
}
function _fnSearchTagAll(sTag,sTagId,sResFrameId,iType){
this._genBlogCon(sTag,sTagId,sResFrameId);
this._loadAll(sTag,sTagId,sResFrameId,iType);
}
function _fnGenBlogCon(sTag,sTagId,sResFrameId){
$('_$_search_blog_content'+sResFrameId).innerHTML="&nbsp;正在搜索日志...";
if(this._oBgCachePage==null){
this._oBgCachePage=new NetEase.CachePage({loadParam:{id:sTagId,tagName:sTag,type:3},
loadFunc:this._loadResourceByType.bind(this),
presentFunc:this._showBlog.bind(this),
userPresentFuncParam:{resFrameId:sResFrameId},
filterFunc:this._bgFilterFunc.bind(this),
pageSize:this._iBlogPageSize,
markID:'mark_blog'+sResFrameId,
prefetch:true,
prefetchMulti:this._iBlogPrefetchMulti,
styleDir:style});
}
this._bBlogFirstDone=true;
this._bBlogBarOpened=true;
}
function _fnGenPhotoCon(sTag,sTagId,sResFrameId){
}
function _fnGenRcCon(sTag,sTagId,sResFrameId){
}
function _fnShowResByType(type,id){
$("search_blog"+id).style.display="none";
if(type==3||type==0){
$("search_blog"+id).style.display="";
}
}
function _fnLoadAll(sTag,sTagId,sResFrameId,iType){
var needRefresh=0;
this._oCurTagObj=this._getTagObjMisc(sTag,sTagId);
if(this._oCurTagObj!=null){
needRefresh=this._oCurTagObj.needRefresh;
}
this._showResByType(iType,sResFrameId);
this._bTagSearching=true;
TagBean.searchTagAll(sTag,0,this._iBlogPageSize*(this._iBlogPrefetchMulti+1),0,this._iPhotoPageSize*(this._iPhotoPrefetchMulti+1),0,
this._iRcPageSize*(this._iRcPrefetchMulti+1),needRefresh,this.isGlobal,this._bNeedGetTagObj,iType,this.isEdit,
this._loadAllCb.bind(this,sTag,sTagId,sResFrameId,iType)
);
}
function _fnLoadAllCb(sTag,sTagId,sResFrameId,iType,data){
if(data==null){
alert("页面超时！请重新登录！");
return false;
}
var tagObjList=data["tagObjList"];
if(tagObjList&&tagObjList.length>0){
this._oCurTagObj=tagObjList[0];
}
if(this._oCurTagObj==null){
this._oCurTagObj={tagName:sTag,id:-1};
}
if(iType==1||iType==0){
}
if(iType==3||iType==0){
this._loadBlogFirstCb(data,sTag,sTagId,sResFrameId);
}
if(iType==4||iType==0){
}
this._bTagSearching=false;
}
function _fnLoadBlogFirstCb(data,sTag,sTagId,sResFrameId){
var blogList=data["blogList"];
if(blogList.length<this._iBlogPageSize*(this._iBlogPrefetchMulti+1)){
this._bBlogFirstSearchEnd=true;
}
var bNumFromTag=0;
if(this._oCurTagObj!=null){
bNumFromTag=this._getBNum(this._oCurTagObj);
}
var blogNum;
if(blogList.length==0){
blogNum=0;
}else{
if(this._bBlogFirstSearchEnd){
blogNum=blogList.length;
}else if(blogList[0].trackbackCount!=null&&blogList[0].trackbackCount!=0){
blogNum=blogList[0].trackbackCount;
}else{
blogNum=bNumFromTag;
}
}
if($('$$_bn'+sTagId)!=null){
$('$$_bn'+sTagId).innerHTML=blogNum;
}
this._oBgCachePage.initCacheData(blogList,this._bBlogFirstSearchEnd);
if(blogNum!=bNumFromTag&&this._oCurTagObj!=null){
this._setNeedRefresh(sTag,blogNum,this._getPNum(this._oCurTagObj),this._getLNum(this._oCurTagObj));
}
}
function _fnLoadPhotoFirstCb(data,sTag,sTagId,sResFrameId){
}
function _fnLoadRcFirstCb(data,sTag,sTagId,sResFrameId){
}
function _fnLoadResourceByType(param,callBack){
var needRf=0;
if(this._oCurTagObj)
needRf=this._oCurTagObj.needRefresh;
switch(param.type){
case 1:
break;
case 3:
TagBean.searchBlog(param.tagName,param.offset,param.limit,needRf,this.isGlobal,this.isEdit,callBack);
break;
case 4:
break;
}
}
function _fnPhFilterFunc(data){
data.each(function(e){
e.createTimeStr=getLongDateTime(e.createTime);
});
}
function _fnBgFilterFunc(data){}
function _fnRcFilterFunc(data){
this._phFilterFunc(data);
}
function _fnShowPhoto(photos,param){
}
function _fnShowBlog(blogs,param){
if(blogs==null){
alert("页面超时！请重新登录！");
return false;
}
var total=this._oBgCachePage.getAllCachedData().length;
if(this._oCurTagObj&&
(blogs.length<this._iBlogPageSize||total>this._getBNum(this._oCurTagObj))){
if(total!=this._getBNum(this._oCurTagObj)){
if(this._bCurIsHot)
$('thisBlogNum').innerHTML=total;
if($('$$_bn'+this._oCurTagObj.id)!=null){
$('$$_bn'+this._oCurTagObj.id).innerHTML=total;
}
this._setNeedRefresh(this._oCurTagObj.tagName,total,this._getPNum(this._oCurTagObj),this._getLNum(this._oCurTagObj));
}
}
$('_$_search_blog_content'+param.resFrameId).innerHTML=jst_search_blog_content.processUseCache({blogList:blogs,serverName:this.sServerName});
if(blogs.length==0){
$('mark_blog'+param.resFrameId).style.display="none";
$('_$_search_blog_content'+param.resFrameId).innerHTML="无任何日志对应此标签！";
}
else{
$('mark_blog'+param.resFrameId).style.display="";
}
}
function _fnShowRc(rcs,param){
}
function fnManageAllTag(){
this._bCurIsHot=false;
if(this.tagAllList==null){
this.tagAllList=new NetEase.ListModule({loadParam:null,loadFunc:this._loadTagAllFunc,id:'id',attach:null,props:['tagName'],positions:[0,-1,-1,-1,1,2],
keepLast:true,propsFilter:[36],presentTemplate:tag_all_jst,presentParam:{tagCols:this._iTagCols,visitorRank:this.iVisitorRank,isEdit:this.isEdit},
propsClass:["g_w_20 g_t_left g_t_wrap","g_w_20 g_t_left g_t_wrap","g_w_25 g_t_left g_t_wrap","g_w_10 g_t_center","g_w_10 g_t_center","g_w_10 g_t_center","g_w_5 g_t_center"],
presentShowId:'tagItemsList',alertMsg:'标签名称不能为空',
disableFunc:this._tagDisableObjFunc,enableFunc:this._tagEnableObjFunc,
saveAddFunc:this._tagSaveAddTagFunc,saveEditFunc:this._tagSaveEditTagFunc,saveDelFunc:this._tagSaveDelTagFunc,
afterAjaxFunc:this._tagAfterAjaxFunc.bind(this),afterCancelFunc:this._tagAfterCancelFunc.bind(this),
objName:'oEditTag.tagAllList'});
}
}
function _fnLoadTagAllFunc(loadParams,callbackFunc){
callbackFunc(g_userTagList);
}
function fnAddTagFunc(obj){
if(obj.disabled)
return;
this.tagAllList.addItem();
}
function _fnTagSaveAddTagFunc(element,callbackFunc){
var sTag=element.tagName.replace(/[",，“”]/g,"");
sTag=Trim(sTag);
sTag=sTag.replace(/\s+/g," ");
sTag=sTag.toLowerCase();
element.tagName=sTag;
var tagObj=getTagObjByTagname(element.tagName,element.id,g_userTagList);
if(tagObj!=null){
alert("已存在同名标签“"+sTag+"”，请输入其他名称的标签！");
return false;
}
TagBean.addTag(sTag,{
callback:callbackFunc,
errorHandler:function(errorString,ex){
filterWarning(ex,false);;
}
});
}
function _fnTagSaveEditTagFunc(element,callbackFunc){
var sTag=element.tagName.replace(/[",，“”]/g,"");
sTag=Trim(sTag);
sTag=sTag.replace(/\s+/g," ");
sTag=sTag.toLowerCase();
element.tagName=sTag;
for(var i=0;i<g_userTagList.length;i++){
if(element.tagName==g_userTagList[i].tagName&&g_userTagList[i].id!=element.id){
alert("已存在同名标签“"+sTag+"”，请输入其他名称的标签！");
return false;
}
}
TagBean.updateTagnameInUser(element.id,sTag,{
callback:callbackFunc,
errorHandler:function(errorString,ex){
filterWarning(ex,false);
}
});
}
function _fnTagSaveDelTagFunc(element,callbackFunc){
TagBean.clearTagResourseInUser(element.id,element.tagName,callbackFunc);
}
function _fnTagAfterAjaxFunc(element){
this._bTagEditing=false;
if(this.tagAllList!=null){
var type=this.tagAllList.getAjaxType();
if(type==2){
this._putTag2List(element.id,element.tagName);
dwrlog("添加标签成功！","ok");
}
if(type==3){
this._updateTagObjName(element.id,element.tagName,element.oldElement.tagName);
var hotEl=$('$$_hot_'+element.id);
if(hotEl){
if(isIE){
hotEl.innerText=element.tagName;
}else{
hotEl.text=element.tagName;
}
}
dwrlog("编辑标签成功！","ok");
}
if(type==4){
this._rmTagFromList(element);
var hotEl=$('$$_hot_'+element);
if(hotEl){
Element.removeChild(hotEl);
}
dwrlog("删除标签成功！","ok");
}
}
}
function _fnPutTag2List(id,sTag){
var obj={};
obj.id=id;
obj.tagName=sTag;
obj.photoCount=0;
obj.blogCount=0;
obj.listCount=0;
obj.needRefresh=0;
g_userTagList.push(obj);
}
function _fnUpdateTagObjName(sTagId,tagNew,tagOld){
var tagObj=getTagObjByTagname(tagOld,sTagId,g_userTagList);
if(tagObj!=null){
tagObj.tagName=tagNew;
}
}
function _fnRmTagFromList(id){
g_userTagList=g_userTagList.reject(function(e){
return id==e.id;
});
}
function _fnTagAfterCancelFunc(){
this._bTagEditing=false;
}
function _fnTagDisableObjFunc(){
Element.replaceClassName("$$_item_list","g_c_enable","g_c_disable");
Element.replaceClassName("_$$_manage_tag_right_upmenu","g_c_enable","g_c_disable");
}
function _fnTagEnableObjFunc(){
Element.replaceClassName("$$_item_list","g_c_disable","g_c_enable");
Element.replaceClassName("_$$_manage_tag_right_upmenu","g_c_disable","g_c_enable");
}
function _fnSortTagList(e){
var bTempSort;
if(e.id=="bc"){
if(this.iVisitorRank==10000){
this.tagAllList.sortBy("blogCount");
}else if(this.iVisitorRank==100){
this.tagAllList.sortBy("friendBlogCount");
}else{
this.tagAllList.sortBy("guestBlogCount");
}
bTempSort=this._bBlogSort;
this._bBlogSort=!this._bBlogSort;
}
if(bTempSort){
$(e.id+"img").className="n_ k7";
}else{
$(e.id+"img").className="n_ k8";
}
return false;
}
function _fnSetNeedRefresh(sTag,blogNum,photoNum,listNum){
var tagObj=this._getTagObjMisc(sTag,-1);
if(tagObj!=null){
this._setBNum(tagObj,blogNum);
this._setPNum(tagObj,photoNum);
this._setLNum(tagObj,listNum);
tagObj.needRefresh=1;
TagBean.setNeedRefresh(tagObj.tagName,blogNum,photoNum,listNum,null);
}
}
function _fnGetTagTotalNum(tObj){
if(this.iVisitorRank==10000){
return(tObj.photoCount+tObj.blogCount+tObj.listCount);
}else if(this.iVisitorRank==100){
return(tObj.friendPhotoCount+tObj.friendBlogCount+tObj.listCount);
}else{
return(tObj.guestPhotoCount+tObj.guestBlogCount+tObj.listCount);
}
}
function _fnGetBNum(tObj){
if(tObj&&null!=tObj.blogCount){
if(this.iVisitorRank==10000){
return tObj.blogCount;
}else if(this.iVisitorRank==100){
return tObj.friendBlogCount;
}else{
return tObj.guestBlogCount;
}
}else{
return 0;
}
}
function _fnGetPNum(tObj){
if(tObj&&null!=tObj.photoCount){
if(this.iVisitorRank==10000){
return tObj.photoCount;
}else if(this.iVisitorRank==100){
return tObj.friendPhotoCount;
}else{
return tObj.guestPhotoCount;
}
}else{
return 0;
}
}
function _fnGetLNum(tObj){
if(tObj&&null!=tObj.listCount){
return tObj.listCount;
}else{
return 0;
}
}
function _fnSetBNum(tObj,i){
if(this.iVisitorRank==10000){
tObj.blogCount=i;
}else if(this.iVisitorRank==100){
tObj.friendBlogCount=i;
}else{
tObj.guestBlogCount=i;
}
}
function _fnSetPNum(tObj,i){
if(this.iVisitorRank==10000){
tObj.photoCount=i;
}else if(this.iVisitorRank==100){
tObj.friendPhotoCount=i;
}else{
tObj.guestPhotoCount=i;
}
}
function _fnSetLNum(tObj,i){
tObj.listCount=i;
}
function _fnShowFail(msg){
showInfo('status_bar',msg,'info');
}
function fnTagSearchGlobal(){
var _sType="blog"
if(this._iCurType==3)
_sType="blog";
window.open("http://blog.163.com/search/?t=tag&q="+encodeURIComponent(this._oCurTagObj.tagName)+"&o="+_sType);
}
function _fnGetTagObjMisc(sTagName,sTagId){
return getTagObjByTagname(sTagName,sTagId,g_userTagList);
}
function _fnTagRemoveSame(){
var oldT;
var newT;
var newList=[];
for(var i=0;i<g_userTagList.length;i++){
oldT=g_userTagList[i];
if(oldT){
var j=0;
for(j=0;j<i;j++){
newT=newList[j];
if(newT&&newT.tagName==oldT.tagName)
break;
}
if(j==i){
newList.push(oldT);
}
}
}
if(newList.length!=g_userTagList.length){
TagBean.structUserTags();
g_userTagList=newList;
}
}
