if(NetEase==undefined){
var NetEase={};
}
NetEase.FavoSet=Class.create();
NetEase.FavoSet.prototype={
initialize:function(){
this.options=Object.extend({
addFunc:Prototype.emptyFunction,
delFunc:Prototype.emptyFunction,
addUsrCallBack:Prototype.emptyFunction,
addUsrParam:{},
delUsrCallBack:Prototype.emptyFunction,
delUsrParam:{},
alertAddMsg:null,
userAddMsgFunc:Prototype.emptyFunction,
alertAddFailMsg:null,
userAddFailMsgFunc:Prototype.emptyFunction,
alertConflictMsg:null,
userConflictMsgFunc:Prototype.emptyFunction,
alertDelMsg:null,
userDelMsgFunc:Prototype.emptyFunction,
alertDelFailMsg:null,
userDelFailMsgFunc:Prototype.emptyFunction
},arguments[0]||{});
this.set=[];
},
addToFavo:function(id){
if(this.set.select(function(e){return e==id}).length==0){
this.options.addFunc({ID:id},this._addFavoCallBack.bind(this));
this.operID=id;
}
else if(this.options.alertConflictMsg)
this.options.userConflictMsgFunc(this.options.alertConflictMsg);
return false;
},
_addFavoCallBack:function(status){
switch(status){
case 0:
this.set.push(this.operID);
if(this.options.alertAddMsg)
this.options.userAddMsgFunc(this.options.alertAddMsg);
break;
case 1:
this.set.push(this.operID);
if(this.options.alertConflictMsg)
this.options.userConflictMsgFunc(this.options.alertConflictMsg);
break;
case-1:
if(this.options.alertAddFailMsg)
this.options.userAddFailMsg(this.options.alertAddFailMsg);
break;
}
this.options.addUsrCallBack(Object.extend(
this.options.addUsrParam,{ID:this.operID})
);
}
}
if(NetEase==undefined){
var NetEase={};
}
var g_shareDiv=null;
NetEase.ShareByEmail=Class.create();
NetEase.ShareByEmail.prototype={
initialize:function(){
this.options=Object.extend({
aId:"",
jsWindowManager:null,
visitorName:"",
type:"blog",
content:"",
url:"",
title:""
},arguments[0]||{});
email_index=0;
subZone=null;
this._loadInfo();
},
_loadInfo:function(){
SubscriptionBean.getEmailLimit(this._load.bind(this));
},
_load:function(emailLimit){
this.email_index=0;
if(this.options.jsWindowManager==null)
this.options.jsWindowManager=new NetEase.JSWindowManager();
if(this.options.jsWindowManager.existWindow('shareByEmailDiv')){
this.subZone=this.options.jsWindowManager.getWindow('shareByEmailDiv');
}
else
this.subZone=this.options.jsWindowManager.createWindow('shareByEmailDiv',
{height:'200',
className:'g_win_8',
title:'分享给博友',
onTop:true,
notKeepPos:true,
systemBarClassName:'titlebar'
});
this.subZone.panel.innerHTML=this._share_jst.processUseCache({visitorName:this.options.visitorName,type:this.options.type,emailLimit:emailLimit});
this.options.jsWindowManager.showWindow('shareByEmailDiv');
if(this.options.visitorName!=null&&this.options.visitorName!=""){
$('email_0_wrap').innerHTML=this._email_jst.processUseCache({index:this.email_index});
this.email_index++;
if(document.all){
if($('moreEamil'))
$('moreEamil').attachEvent("onclick",this._moreEmail.bind(this));
if($('deleteEmailBut_0'))
$('deleteEmailBut_0').attachEvent("onclick",this._deleteEmail.bind(this,0));
if($('cancleShareButn'))
$('cancleShareButn').attachEvent("onclick",this._close.bind(this));
if($('shareButn'))
$('shareButn').attachEvent("onclick",this._share.bind(this));
}else{
if($('moreEamil'))
$('moreEamil').onclick=this._moreEmail.bind(this);
if($('deleteEmailBut_0'))
$('deleteEmailBut_0').onclick=this._deleteEmail.bind(this,0);
if($('cancleShareButn'))
$('cancleShareButn').onclick=this._close.bind(this);
if($('shareButn'))
$('shareButn').onclick=this._share.bind(this);
}
if($('emailAddr_0')){
$('emailAddr_0').focus();
}
}
},
refreshNew:function(params){
this.options=Object.extend(
{
aId:this.options.aId,
jsWindowManager:this.options.jsWindowManager,
visitorName:this.options.visitorName,
type:this.options.type,
content:this.options.content,
url:this.options.url,
title:this.options.title
},params||{}
);
email_index=0;
this._loadInfo();
},
_close:function(){
this.options.jsWindowManager.hiddenWindow('shareByEmailDiv');
},
_moreEmail:function(){
var emailDivWrap=document.createElement('div');
emailDivWrap.id='email_'+this.email_index+'_wrap'
emailDivWrap.innerHTML=this._email_jst.processUseCache({index:this.email_index});
$('shareInfo').insertBefore(emailDivWrap,$('fakeDiv'));
if($('emailAddr_'+this.email_index)){
$('emailAddr_'+this.email_index).focus();
}
if(document.all){
$('deleteEmailBut_'+this.email_index).attachEvent("onclick",this._deleteEmail.bind(this,this.email_index));
}else{
$('deleteEmailBut_'+this.email_index).onclick=this._deleteEmail.bind(this,this.email_index);
}
this.email_index++;
return false;
},
_deleteEmail:function(index){
Element.removeChild($('email_'+index+'_wrap'));
return false;
},
_share:function(){
var emailDivs=document.getElementsByName("emailClass");
var emailAddrs="";
for(var i=0;i<emailDivs.length;i++){
var index=emailDivs[i].id.substr(6,7);
var emailPre=$F('emailAddr_'+index);
emailPre=Trim(emailPre);
if(emailPre==null||emailPre=='')
continue;
var emailPostDiv=$('emailPostfix_'+index);
var emailPost=emailPostDiv[emailPostDiv.selectedIndex].value;
var email=Trim(emailPre)+Trim(emailPost);
if(!checkMail(email)){
new NetEase.StatusBar("邮件格式"+email+"不正确",{
barId:'shareErrorHint',imgsrc:Const.STDomain+'/style/common/ico_alert.gif'});
return;
}
if(i==0)
emailAddrs=email;
else
emailAddrs+=","+email;
}
if(emailAddrs==""){
new NetEase.StatusBar("请输入博友邮件",{
barId:'shareErrorHint',imgsrc:Const.STDomain+'/style/common/ico_alert.gif'});
return;
}
var msg={};
msg.type=this.options.type;
if(this.options.type=='blog'){
var blogId=this.options.aId.substr("share".length,this.options.aId.length);
this.options.content=$('blogtext_'+blogId).innerHTML;
if($('blogtitle_'+blogId))
this.options.title=$('blogtitle_'+blogId).innerHTML;
if(UD.status=='prev')
var blogTmp=NEBlog.gPrevBlog;
else
var blogTmp=NEBlog.gEditBlogAll;
if(blogTmp!=null){
var _oCachedBlogs=blogTmp.oBlogList._oBlogPager.getAllCachedData();
var _oBlog=null;
if(_oCachedBlogs!=null){
for(var i=0;i<_oCachedBlogs.length;i++){
if(_oCachedBlogs[i].id==blogId){
_oBlog=_oCachedBlogs[i];
break;
}
}
}
this.options.content=_oBlog.content;
this.options.title=_oBlog.title;
}
}
msg.content=this.options.content;
msg.url=this.options.url;
msg.title=this.options.title;
msg.emailTitle=$F('title');
msg.contentHead=$F('content');
SubscriptionBean.ShareByEmail(emailAddrs,msg,{
callback:(function(returndata){
this._shareCB(returndata,emailAddrs);
}).bind(this),
errorHandler:(function(errorString,ex){
if(ex.type=='NoEmailException'){
new NetEase.StatusBar("超过每天发送邮件限制",{
barId:'shareErrorHint',
imgsrc:Const.STDomain+'/style/common/ico_alert.gif'});
}else{
filterWarning(ex,false);
}
}).bind(this)
});
},
_shareCB:function(returndata,emailAddrs){
if(returndata>=0){
this.subZone.panel.innerHTML=this._share_succ_jst.processUseCache({title:this.options.title,emailAddrs:emailAddrs,emailLimit:returndata,type:this.options.type});
if(document.all){
if($('cancleShareButn'))
$('cancleShareButn').attachEvent("onclick",this._close.bind(this));
if($('newShareButn'))
$('newShareButn').attachEvent("onclick",this._load.bind(this,returndata));
}else{
if($('cancleShareButn'))
$('cancleShareButn').onclick=this._close.bind(this);
if($('newShareButn'))
$('newShareButn').onclick=this._load.bind(this,returndata);
}
}else{
new NetEase.StatusBar("发信出错",{
barId:'shareErrorHint',imgsrc:Const.STDomain+'/style/common/ico_alert.gif'});
}
},
divTemplate:null,
_emailTemplate:null,
_shareSuccTemplate:null,
_share_jst:new String(' \
  {if visitorName == null || visitorName == ""} \
  <div style="padding:20px 0px 0px 41px">请您先<a href="#" onclick="showLoginDlg(\'blog.163.com\');return false;">&nbsp;登陆&nbsp;</a>博客再发送给博友</div> \
  {else} \
       <div class="content"> \
        <div class="case" id="shareInfo" > \
    <div id="email_0_wrap"> \
    </div> \
    <div style="display:none" id="fakeDiv"></div> \
   </div> \
   <div id="moreEamilWrap" class="addbtn"><span class="clr02">你今天还可以发${emailLimit}封邮件</span><span id="moreEamil" class="a_a d_d"  >继续添加</span></div> \
   <div class="send"> \
          <div class="g_t_left g_h_20"><label>邮件标题:</label>&nbsp;&nbsp; \
               <input id="title" class="g_w_80" size=52 maxLength=60 value="你的博友${visitorName}推荐精彩{if type=="blog"}日志{elseif type=="video"}视频{elseif type=="album"}相册{else}相片{/if}给你"/> \
    </div> \
          <div class="g_t_left g_c_vmgin"><label class="g_t_top">正　　文:</label>&nbsp;&nbsp; \
               <textarea id="content" class="g_h_105 g_w_80"  rows="5" cols="50" onpropertychange="textareaLimit(this, 1000)" \
               >我最近看到的一{if type=="blog"}篇日志{elseif type=="video"}个视频{elseif type=="album"}本相册{else}张相片{/if}，蛮精彩的，你也看看吧。</textarea> \
          </div> \
          <div class="g_t_center"> \
           <div style="padding-left:41px;" id="shareErrorHint"></div> \
           <div> \
            <input type="button" class="btncm btnok" value="提　交" id="shareButn" />\
            <span>&nbsp;&nbsp;</span> \
            <input type="button" class="btncm btncc" value="取　消" id="cancleShareButn" /> \
           </div> \
          </div> \
         </div> \
  </div> \
  {/if} \
 '),
_email_jst:new String(' \
   <div class="item"> \
   <input type="hidden" name="emailClass" id="email_${index}"> \
           <label>博友邮箱:</label>&nbsp;&nbsp; \
          <input id="emailAddr_${index}" class="g_w_25 bd01"/> \
          &nbsp;&nbsp; \
     <select id="emailPostfix_${index}" class="g_w_25"> \
     <option value="@163.com">@163.com</option> \
     <option value="@126.com">@126.com</option> \
     <option value="@188.com">@188.com</option> \
     <option value="@vip.163.com">@vip.163.com</option> \
     </select> \
          &nbsp;&nbsp; \
            <span class="a_a d_d"  id="deleteEmailBut_${index}">删除</span> \
         </div>'),
_share_succ_jst:new String(' \
       <div id="shareInfo" class="succ"> \
   <p>{if type=="blog"}日志{elseif type=="video"}视频{elseif type=="album"}相册{else}相片{/if}"${title}"已成功发送给:</p> \
   <p class="g_w_100 g_t_wrap">${emailAddrs}</p> \
         <div class="g_h_30 g_t_center g_c_mvdn"> \
          <input type="button" class="btncm btnok" value="分享给更多博友" id="newShareButn" />\
          <span>&nbsp;&nbsp;&nbsp;&nbsp;</span>\
          <input type="button" class="btncm btncc" value="关　闭"id="cancleShareButn" /> \
         </div> \
       </div>')
}
var g_tagIdGen=1;
var PP_PREFIX="p^";
var PP_BREAK="^";
var PP_URL_PREFIX="http://pp.blog.163.com/tag/";
function searchTagSpaceCB(tag){
var tagObj=getTagObjByTagname(tag,-1,g_userTagList);
if(tagObj==null)
return false;
if(isEdit){
location.href="editTag.do?host="+hostName+"&isGlobal=false&type=1&tagId="+tagObj.id;
}else{
location.href="prevTag.do?host="+hostName+"&isGlobal=false&type=1&tagId="+tagObj.id;
}
return false;
}
ppTagEdit=Class.create();
ppTagEdit.prototype={
initialize:function(element,resourceId,inputId,createTime,saveFunc,tagList,isEdit,innerType){
element=$(element);
this.element=element;
this.text=element.innerHTML;
this.id=this.element.id;
this.resourceId=resourceId;
this.inputId=inputId;
this.createTime=createTime;
this.options=Object.extend({
dataStream:null,
itemIdx:null
},arguments[8]||{});
this.isEdit=isEdit;
this.innerType=innerType;
this.tagBoxOpened=false;
this.tagInputValue="";
this.tagDel="";
this.initDiv();
this.addTagLayer=null;
this.tagList=[];
this.tagListTemp=tagList;
this.normalTags=[];
this.saveFunc=saveFunc;
this.showTags();
},
initDiv:function(){
var a=[];
a.push('<div id="tagListDiv_'+this.id+'"></div><div class="g_p_clear"></div>');
this.element.innerHTML=a.join("");
a=[];
a.push('<div class="g_lay_com g_crd_13 g_c_noul" style="display:none;" id="addTagWin_'+this.id+'">');
a.push(' <span class="close n_ n7" id="hiddenTagWin_'+this.id+'" title="关闭">&nbsp;</span>');
a.push(' <div style="display:none;line-height:20px;" id="pp_tag_status_bar"><span class="n_ n22" style="font-size:14px;">&nbsp;</span></div>');
a.push(' <div class="g_c_mvdn g_h_25 g_t_left">');
a.push('  <input type="text" name="tag" maxlength="36" class="g_w_75 bd01 g_htc_focus" onfocus="showPPTags(this);" autocomplete="off" id="'+this.inputId+'"/>');
a.push('  <input class="btncm btnok" type="button" value="添&nbsp;&nbsp;加" id="addTagButt_'+this.id+'"/>');
a.push(' </div>');
a.push(' <div style="display:none;overflow:hidden;word-break:break-all;margin-top:4px;" class="g_t_left" id="showUserTagsDiv_'+this.inputId+'">');
a.push(' </div>');
a.push('    <input id="hidden_recom" type="hidden" value="-1" /><input id="hidden_act" type="hidden" value="-1" />');
a.push('</div>');
var _oDiv=document.createElement("div");
_oDiv.innerHTML=a.join("");
UD.body.appendChild(_oDiv);
$("hiddenTagWin_"+this.id).onclick=this.hiddenAddTagWin.bind(this);
$('addTagButt_'+this.id).onclick=this.addTag.bind(this);
},
hiddenAddTagWin:function(){
var addTagDiv=$('addTagWin_'+this.id);
addTagDiv.style.display='none';
this.tagBoxOpened=false;
},
openAddTagbox:function(){
if(!this.tagBoxOpened){
var pos=Position.cumulativeOffset($("openAddTagbox_"+this.id));
var addTagDiv=$('addTagWin_'+this.id).style;
addTagDiv.display='block';
addTagDiv.left=pos[0]+"px";
addTagDiv.top=pos[1]+18+"px";
$(this.inputId).focus();
this.tagBoxOpened=true;
if(this.addTagLayer==null){
this.addTagLayer=new NetEase.PageLayer();
}
this.addTagLayer.addLayer({layerID:'addTagWin_'+this.id,
oneLayer:true,
closeFunc:this.hiddenAddTagWin.bind(this),
closeParam:null,
zIndex:1});
}else{
this.hiddenAddTagWin();
}
return false;
},
addTag:function(){
var a1=$(this.inputId);
var tag=this.genPPtag(a1.value);
this.tagInputValue=tag;
if(tag==""){
showInfo('pp_tag_status_bar',"此拍拍标签已存在！",'info');
return;
}
tag=this.procTagsThis(tag);
if(tag==""){
showInfo('pp_tag_status_bar',"此拍拍标签已存在！",'info');
a1.value="";
return false;
}
var tagInfoTemp=new Object();
tagInfoTemp.tags=this.tagList.toString()+","+tag;
procTagsUtil(tagInfoTemp);
tagInfoTemp.numJoin=0;
$(this.inputId).value=a1.value;
if(tagInfoTemp.tags!=""){
tagInfoTemp.tags=structQuotedTag(tagInfoTemp.tags.split(","));
tag=structQuotedTag(tag.split(","));
this.saveFunc(this.resourceId,tagInfoTemp.tags,tag,tagInfoTemp.numJoin,this.innerType,this.createTime,false,this.addTagCb.bind(this));
}
},
genPPtag:function(tag){
if(tag=="")
return"";
var ppTags=[];
var aTags=tag.split(',');
aTags.each(function(str){
var subs=str.split('-');
if(subs.length>2){
for(var i=2;i<subs.length;i++)
subs[1]+='-'+subs[i];
}
ppTags.push(PP_PREFIX+subs[0]+PP_BREAK+subs[1]);
ppTags.push(PP_PREFIX+subs[1]+PP_BREAK+subs[0]);
});
return ppTags.join(',');
},
addTagCb:function(tagUserStaList){
if(tagUserStaList){
var tag=this.tagInputValue;
tag=this.procTagsThis(tag);
$(this.inputId).value="";
var str="";
var tagArray=tag.split(",");
this.tagList=this.tagList.concat(tagArray);
if(global_tag_edit){
global_tag_edit.tagList=this.tagList;
}
g_userTagList=g_userTagList.concat(tagUserStaList);
str+=this.getTagsHTML(this.getNormalPPTag(this.tagList));
$("tagListDiv_"+this.id).innerHTML=str;
this.bindTagsEvent();
this.hiddenAddTagWin();
this.updateDataStream();
}else{
dwrlog("添加标签失败！\n可能是标签数过多，不能再添加！","error");
}
},
procTagsThis:function(tagInput){
var tags=processTagString(tagInput);
tags=processTagUtilForCb(tags);
var tagA=tags.split(",");
var resultTags="";
for(i=0;i<tagA.length;i++){
if(!searchList(tagA[i],this.tagList)){
if(resultTags==""){
resultTags=tagA[i];
}else{
resultTags+=","+tagA[i];
}
}
}
return resultTags;
},
getTagsHTML:function(tagArray){
var str="";
str+="<span class='c08'>博客拍拍:</span>&nbsp;&nbsp;";
for(i=0;i<tagArray.length;i++){
var tag=tagArray[i];
if(tag!=""){
var nm=tag.escape();
var nameEc=nm.substring(0,10);
if(nm.length>10)
nameEc+="...";
g_tagIdGen=g_tagIdGen+1;
var idPostfix=g_tagIdGen+"_"+this.id;
str+="<span id='tagItem_"+idPostfix+"' class='g_htc_hvr g_c_hpdin'>";
str+=" <span class='a_a c06 g_c_hand' id='tagText_"+idPostfix+"' href="+this.getToPPURL(tag)+" target='_blank'>"+nameEc+"</span>";
str+="<input id='hidden_"+idPostfix+"' type='hidden' value='"+tag.escape()+"' /></span>";
}
}
if(this.isEdit){
str+="[&nbsp;<a id='openAddTagbox_"+this.id+"' class='g_c_hand c05' style='margin-left:0px;'>推送到拍拍</a>&nbsp;]";
}
return str;
},
getToPPURL:function(tagName){
return PP_URL_PREFIX+encodeURIComponent(tagName);
},
bindTagsEvent:function(){
if(this.isEdit)
$("openAddTagbox_"+this.id).onclick=this.openAddTagbox.bind(this);
return;
},
showTags:function(){
var str="";
var i;
var idGenTemp=g_tagIdGen;
for(i=0;i<this.tagListTemp.length;i++){
var tag=this.tagListTemp[i];
if(tag!=""){
this.tagList.push(tag);
}
}
this.normalTags=this.getNormalPPTag(this.tagList);
var tagListDiv=$("tagListDiv_"+this.id);
tagListDiv.innerHTML=this.getTagsHTML(this.normalTags);
this.bindTagsEvent();
if(this.isEdit){
this.tagBoxOpened=true;
this.openAddTagbox();
$("openAddTagbox_"+this.id).onclick=this.openAddTagbox.bind(this);
}
},
getNormalPPTag:function(tags){
var normalTag=[];
for(var i=0;i<tags.length;){
var tag=tags[i];
if(tag.indexOf(PP_PREFIX)==0){
normalTag.push(tag.replace(PP_PREFIX,'').replace(PP_BREAK,'-'));
i+=2;
}
else{
i+=1;
}
}
return normalTag;
},
updateDataStream:function(){
var value=this.tagList.toString();
if(typeof this.options.dataStream==Array){
if(this.options.itemIdx){
var item=this.options.itemIdx;
this.options.dataStream.each(function(e){e[item]=value});
}
else
this.options.dataStream.each(function(e){e=value});
}
else if(this.options.dataStream){
if(this.options.itemIdx)
this.options.dataStream[this.options.itemIdx]=value;
else
this.options.dataStream=value;
}
}
};
var _$_share_by_email;
function g_onloadFunc(albumIdFromUrl){
_$_selected_album_idx=selectALbumIdxById(albumIdFromUrl);
if(_$_selected_album_idx>=0){
_$_cur_album_page=Math.floor(_$_selected_album_idx/_$_album_count_per_page);
}else{
_$_cur_album_page=0;
}
_$_body=UD.body;
_$_template_album=TrimPath.parseTemplate(jst_album_list_v_prev);
_$_template_photo=TrimPath.parseTemplate(jst_photo_list_prev);
_$_template_photo_large=TrimPath.parseTemplate(jst_photo_list_large_prev);
_$_template_album_comment=TrimPath.parseTemplate(jst_album_comment);
_$_template_album_info=TrimPath.parseTemplate(jst_album_info_prev);
_$_template_recent_comment=TrimPath.parseTemplate(jst_recent_comment);
if(_$_controller_nonactive_user){
display();
}else{
g_album_controller.getAlbumsInSession(hostName,function(albums){
if(albums!=null){
albums.each(function(item){
_$_album_in_session[item.id]=item.purl;
});
}
display();
});
}
}
function regPlaceEditAlbums(){
}
function closeAllWindow(){
}
function regPlaceEditPhotos(){
}
function delComment(commentId,params,postDelCommentFunc){
}
function afterDelComment(param){
}
function checkPassword(albumId){
var album=selectAlbumById(albumId);
var passwordElem=$('_$_album_prev_password');
if(album&&passwordElem){
var password=passwordElem.value;
if(password!=''){
g_album_controller.getAlbumWithPassword(hostName,album,password,checkPasswordCbk);
}else{
checkPasswordCbk(null);
}
}
}
function reflashPhotoList(album){
showAlbumListByPage(_$_cur_album_page);
selectAlbum('wrapper_'+album.id);
}
function checkPasswordCbk(albumReturn){
if(albumReturn&&albumReturn.purl){
_$_album_in_session[albumReturn.id]=albumReturn.purl;
var album=findAlbumToOperate(albumReturn.id);
if(album){
album.checkPassword=1;
album.photoList=null;
album.coverPhUrl=albumReturn.coverPhUrl;
reflashPhotoList(album);
}
}else{
dwrlog('密码不正确！','error');
}
}
function enterPassword(event,albumId){
var evt=(event)?event:((window.event)?window.event:null);
if(evt.keyCode==13){
checkPassword(albumId);
}
}
var favoSet=new NetEase.FavoSet({
addFunc:addAlb2Favo,
alertAddMsg:'已收藏该相册',
userAddMsgFunc:function(msg){dwrlog(msg,'ok');},
alertConflictMsg:'你已经收藏过这相册了',
userConflictMsgFunc:function(msg){dwrlog(msg,'info');},
alertAddFailMsg:'服务器操作失败，请重试',
userAddFailMsgFunc:function(msg){dwrlog(msg,'error');}
});
function addAlb2Favo(param,callback){
Album.addAlb2Favo(param.ID,callback);
}
