$._ajax=$.ajax;
$.ajax = function(options){
    if(options.type=="POST")
        options.data=$.extend(options.data||{},{ck:get_cookie('ck')});
    return $._ajax(options)
}
$.post = function( url, data, callback, type ) {
    if ($.isFunction(data)) {
        callback = data;
        data = {};
    }
    return $.ajax({
        type: "POST",
        url: url,
        data: data,
        success: callback,
        dataType: type
    });
}
$.postJSON=function(url, data, callback){
    $.post(url, data, callback, "json");
}
function get_cookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) {
            return c.substring(nameEQ.length,c.length).replace(/\"/g,'');
        }
    }
    return null;
}
loading_url=""
ajax_location={
set:function(v){
var a=location.href.split("#/",2);
a[1]=v;
location.replace(a.join("#/"))
},get:function(v){
return location.href.split("#/",2)[1]
}
}
session={
ticket_pool:[],
read_type:"tag",
id:0,
page_stack:[],
pre_read:{}
}
function read_bg(e,className,id){
    var r=session.pre_read
    e.blur()
    var p=e.parentNode;
    if(r!=p){
        $(r).removeClass(className);
        $(p).addClass(className)
    }
    session.pre_read=p
    session.id=id
}
var loading_tip='<div id="loading_tip" style="background-color:#FFF1A8;float:right;width:5em" class="corner_tl"><div class="corner_tr"><div class="corner_bl"><div class="corner_br"><div style="padding:3px 6px;">加载中...</div></div></div></div></div>'
function read(e,id,type){
    read_bg(e,"now",id)
    with(session){
        read_type=type
        pos=null
        page_stack=[2147483647]
    }

    var h;
    if(type=="tag"){
    h = '<h1><div id="now_read_w"><b id="now_read">'+e.title+'</b></div><span id="now_read_opt" class="drop_down_wrapper"><a href="javascript:" onclick="blog_drop_down(this,\'null\')" style="margin-top:3px" class="drop_down_select">更多操作<small>▼</small></a><div id="blog_operation" class="drop_down"><a href="javascript:" onclick="pop_win.load(\'/js/pop_win/login\')">全部标记为已读</a>';
    }
    else{
    h= '<h1> <div id="now_read_w"> <a id="now_read" href="'+e.href+'" target="_blank" title="'+e.title+'">'+e.title+'</a> </div> <span id="now_read_opt" class="drop_down_wrapper"> <a rel="'+id+'" href="javascript:" onclick="blog_drop_down(this,'+id+');return false;" style="margin-top:3px" class="drop_down_select tag_rel_${blog.id} ">更多操作<small>▼</small></a> <div id="blog_operation" class="drop_down"> <a href="javascript:" onclick="return pop_win.load(\'/js/pop_win/login\')">全部标记为已读</a> <a href="javascript:" onclick="return pop_win.load(\'/js/pop_win/login\')" class="pop_win_link">重命名</a> <a href="javascript:" onclick="delete_blog()"  class="pop_win_link">取消订阅</a> <a href="/subject/'+id+'/">查看信息</a> <span class="drop_down1">选择目录</span> <div class="dir_select" id="drop_down_dir_select"></div> <a href="javascript:" onclick="pop_win.load(\'/js/pop_win/login\')">新建目录 ...</a></div></span></h1>'
    }

    $("#read_content").empty().append(h);
    $("#now_read_opt").hide();
    $("#read_content").prepend(loading_tip);
    load_content("/reader/j_read_"+type,{id:id},type)
}
$().ajaxError(function(event, request, settings){
var s=request.status-0; 
if(s!=0 && s!=200)
tip("发生故障:"+s+",刷新一下试试?");
});
function scroll_top(offset){
if(!offset)offset=0;
$('html,body').animate({scrollTop:offset},0.2);
}
function page(begin){
var url="/reader/j_read_"+session.read_type+"_content",data={begin:begin},opt=$("#now_read_opt"),ztip=$(loading_tip),rc=$("#read_content");
opt.hide();rc.prepend(ztip);
if(session.id)data.id=session.id;
var loading_url=url;
scroll_top($('#read_content').offset().top);
$.ajax({
url:url,
data:data,
dataType:'json',
success:function(data){
    if(loading_url!=url)return;
    $("#zblog_main").remove();
    load_entries(data, session.read_type); 
    if(1==session.page_stack.length){
        $("#pre_page").remove()
    }
    ztip.remove();
    opt.show();
}
})
}
function j_search(search,page_no){
scroll_top()
read_load('/reader/j_search',{search:search,page_no:page_no})
}
function next_page(begin){
   session.page_stack.push(begin)
   page(begin)
}
function pre_page(){
    session.page_stack.pop()
    page(session.page_stack[session.page_stack.length-1])
}
function read_a(e){
$("#read_tip").html("")
var type_id=e.id.split("_")
read(e,type_id[1],type_id[0])
scroll_top();
ajax_location.set(e.id);
return false;
}
function add_sub_pop(){
$('#add_sub_pop').show().find('input:first').text('').focus()
}
function tip(t){
$("#operation_tip").html(t).show()
}
tip.hide=function(){
$("#operation_tip").hide()
}
function read_tip(id,html){
$("#read_tip").html($('<div id="'+id+'" class="corner_tl" style="margin-bottom:6px;background-color:#FFFCEB"><div class="corner_tr"><div class="corner_bl"><div class="corner_br"><div style="padding:.8em 1em 26px;">'+html+'</div></div></div></div></div>'))
}
function sub_a_blog(id,name,unread){
add_blog(id,name,unread);
read_tip('read_tip_sub_'+id,'<a style="float:right;padding:0 4px;" onclick="$(\'#read_tip_sub_'+id+'\').remove()">X</a><img style="float:left;margin-top:-3px;margin-left:1em;" src="/pics/reader/success.gif"/><div style="float:left;margin-left:.6em">'+name+' 订阅成功</div>')
$("#blog_"+id).click()
}
function add_sub_submit(e){
    $('#add_sub_pop').hide()
    var url=$S(document.getElementById("sub_url").value).strip(); 
    if(url){
        if("http://"==url.substring(0,7) || "https://"==url.substring(0,8)){
            tip("添加订阅中...")
            $("#add_sub_pop").hide();
            $.postJSON("/reader/subscription",{url:url},function(o){
                if(o.error){
                    read_load("/reader/j_search",{search:url}) 
                }else{
                    o=o.subscription
                    if(o.is_new){
			var l =get_cookie('sites').split('_').length;
			if (l>2){
			$("#sub_section").hide()
			$("#warning").html('未登录只能订阅10个博客。更多请 <a href="/login">登录</a> 或 <a href="/register">注册</a>')
			}
			else{
                        sub_a_blog(o.id,o.name,o.unread);
			}
                    }else{
                        o=$(".blog_"+o.id+":first")
                        o.click()
                        o.parents(".dir_item_close").attr("className","dir_item_open")
                    }
                }
            });
        }else{
           read_load("/reader/j_search",{search:url}) 
        }
    }
    return false;
}

function read_article(e,id,blog_id,rec){
    var author=$("#Aauthor_"+id);
    var div_id="blog_item_content_"+id,div=document.getElementById(div_id),ej=$(e);
    if(div){
        with(div.style){
            if(display=="none"){
                display=""
                ej.addClass("zblog_item_title_now");
                if(!ej.hasClass("zblog_item_title_visited")){
		    var url="/reader/article/"+id+"/j_readed";
		    $.post(url);
                } 
            }else{
                ej.addClass("zblog_item_title_visited");
                ej.removeClass("zblog_item_title_now");
                display="none";
                return false
            }
        }
    }else{
    if(e.loading)return;
    e.loading=1;

    var body_id="zblog_item_content_"+id;
    ej.after('<div class="zblog_item_content_body" id="'+body_id+'"></div>'); 
    var body=$(body_id), entry;
    ej.addClass("zblog_item_title_now")
    body.innerHTML='<span class="opening">文章打开中......</span>'
    for(var i=0;i<session.d.entries.length;++i){
    	if(session.d.entries[i].id==id){
	entry = session.d.entries[i];
	break;
	}
	}

    var rechtml='<p class="rec_p">',bj=$(body)
    if(entry.n_recs)rechtml+='<a href="/site/entry/'+id+'/">'+entry.n_recs+"人推荐</a> ";
    rechtml+='<a onclick="pop_win.load(\'/reader/rec_article?article='+id+'\')"><img alt="推荐" style="margin-bottom:-3px" src="/pics/newnine/rec_big.gif"/></a></p>'
    body.html(entry.content);
    bj.find("a").attr({target:"_blank"})
    bj.append(rechtml);
   }
}
function load_entries(d, type){
        tip.hide();
	if(session.entries==d)return;
	session.entries = d;
	$('#zblog_main').remove();
        $("#read_content").append('<div id="zblog_main" class="zblog_item_list">');

	var t;
	if(type=="tag"){
	t = $.template('<div class="zblog_item"><b class="hide"><b id="Aauthor_${blog_id}">${author}</b></b><a onclick="read_article(this,${id},${blog_id},${n_recs})" class="zblog_item_title" id="zblog_item_title_${id}"><span class="zblog_name ellipsis">${blog_title}</span><span class="zblog_rtitle">${title}</span><small>${fetchtime}</small></a><div id="blog_item_content_${id}" class="blog_item_content" style="display:none;"><div class="zblog_item_desp">来自:<a onclick="\$(\'.blog_${blog_id}\').click()">${blog_title}</a>作者:${author}<a target="_blank" href="/site/entry/${id}/view">查看原文</a><div class="zblog_item_content_body" id="zblog_item_content_${id}"></div></div></div></div>');
	}
	else{
	t = $.template('<div class="zblog_item"><b class="hide"><b id="Aauthor_${blog_id}">${author}</b></b><a onclick="read_article(this,${id},${blog_id},${n_recs})" class="zblog_item_title" id="zblog_item_title_${id}"><span class="zblog_rtitle">${title}</span><small>${fetchtime}</small></a><div id="blog_item_content_${id}" class="blog_item_content" style="display:none;"><div class="zblog_item_desp">作者:${author}<a target="_blank" href="/site/entry/${id}/view">查看原文</a><div class="zblog_item_content_body" id="zblog_item_content_${id}"></div></div></div></div>');
	}
    var l = $("#zblog_main");
	$.each(d.entries, function(){
	l.append(t, this);
	if(this.read){
	$('#zblog_item_title_'+this.id).addClass("zblog_item_title_visited");
	}
	var body = $('#zblog_item_content_'+this.id);
        body.html(this.content);
	var rechtml='<p class="rec_p">';
        if(this.n_recs)rechtml+='<a href="/site/entry/'+this.id+'/">'+this.n_recs+"人推荐</a> ";
        rechtml+='<a onclick="pop_win.load(\'/js/pop_win/login\')"><img alt="推荐" style="margin-bottom:-3px" src="/pics/newnine/rec_big.gif"/></a></p>'
        body.find("a").attr({target:"_blank"})
        body.append(rechtml);
        });
	l.append('<div id="read_page" class="read_page">');
	var r = $('#read_page');
	if(d.showall){
	r.append('<img onclick="pop_win.load(\'/js/pop_win/login\')" src="/pics/newnine/unread.gif" alt="未读文章" class="read_what"></img>');
	}
	else
	{
	r.append('<img onclick="pop_win.load(\'/js/pop_win/login\')" src="/pics/newnine/all.gif" alt="全部文章" class="read_what"></img>');
	}
	if (session.page_stack.length>1) r.append('<a id="pre_page" href="javascript:" onclick="pre_page()">上一页</a>');
        if (d.hasnext) r.append('&nbsp;&nbsp;<a id="next_page" href="javascript:;" onclick="next_page('+d.entries[d.entries.length-1].id+')">下一页</a>');
        $("#loading_tip").remove();
}

function load_content(url,data, type){
    var loading_url=url;
    data=data||{};
    $.ajax({
        url:url,
        data:data,
        dataType:'json',
        success:function(d){
        if(loading_url!=url)return;
        load_entries(d, type);
        $("#now_read_opt").show();
        $(loading_tip).remove();
        }
    })
}

function read_load(url,data){
    data=data||{}
    loading_url=url
    $.ajax({
        url:url,
        data:data,
        success:function(d){
        tip.hide()
        if(loading_url!=url)return;
        $("#read_content").html(d)
        }
    })
}
function blog_drop_down(e,id){
now_blog=e
session.id=id
var s=[]
for(var i=0;i!=dir_list.length;++i){
    var no=dir_list[i];
    s.push('<a href="javascript:;" onclick="change_folder(this,'+no+','+session.id+')')
    if($A(e.rel.split(' ')).indexOf(no)>=0){
        s.push('" class="dir_selected')
    }
    s.push('">'+dir_dict[no]+'</a>')
}
$("#drop_down_dir_select").html(s.join(""))
menu_pop(e,'blog_operation')
}
function on_off(e){
    e=e.parentNode.parentNode;
    var open="dir_item_open"
    e.className="dir_item_"+(e.className==open?"close":"open")
}
function _add_blog(e,bid,name,unread,id){
    var fid=id?bid+'_'+id:bid;
    var a=$('<a onclick="read_a(this)" id="blog_'+fid+'" title="'+name+'" class="blog_'+bid+'">'+name+'<span></span></a>'),p=$('<p class="now"></p>');
    p.append(a);
    session.pre_read.className="";
    session.pre_read=p.get(0);
    e.append(p)
    p.yellow_fade()
    a.yellow_fade()
}
function add_blog(id,name,unread){
    _add_blog($("#dir_tree_root"),id,name,unread)
}
function delete_blog(){
    if(confirm("你真的要取消订阅该博客吗?")){
        $.post("/reader/j_delete_blog",{id:session.id},function(){
            location.reload()
        })
    }
}
function suber(e,id){
    var e = $(e);
    e.html('<span style="background:#FFF1A8;color:#666;padding:3px;">订阅中...</span>');
    $.getJSON("/reader/j_subscribe_by_id",{
    id:id
    },function(o){
    e.html('<span style="background:#FFF1A8;color:#666;padding:3px;">已订阅</span>');
    sub_a_blog(o.id,o.name,o.unread);
    })
}
function init_read(){
var what=ajax_location.get(),e=$("#"+what),read_content=$('#read_content')[0];
function read_show(){read_content.style.display=""}
read_show();
if(what){
if(what.indexOf("blog")>=0 && e.length){
e.click().parents(".dir_item_close").attr("className","dir_item_open")
}else if(what.indexOf("tag")>=0 && e.length){
e.click();
}else if(what.indexOf("search")>=0){
j_search(what.slice(7),0);
}
else $('#dir_tree_all').click();
}else $('#dir_tree_all').click(); 
}
function first_sub(e){
var url=$S(document.getElementById("sub_url").value).strip(); 
$.postJSON("/reader/subscription",{url:url},function(o){
                if(o.error){
		$("#error").html('登录后才能添加九点没有的博客。');
                }else{
		    ajax_location.set('blog_'+o.subscription.id);
		    location.reload();
		    }
            });
}
function blog_view_sub(e,id){
    var s = get_cookie('sites');
    s = s? s.split('_'):[];
    if(s.length>=10){
    pop_win.load('/js/pop_win/login');
    }
    else{
	$.post("/reader/j_blog_view_sub",{id:id},function(o){
        $(e.parentNode.parentNode).prepend(o)
        $(e).remove()
    });
    }
}
function expand_article(id,e){
    var expand=document.getElementById("expand_article_"+id); 
    if(e.className!="arrowup"){
        e.className="arrowup"
        expand.summary=expand.innerHTML
        $.ajax({
        url:"/reader/article/"+id+"/j",
        success:function(data){
            $("#expand_article_r_"+id).show()
            expand.innerHTML=data
        }
        })
    }else{
        $("#expand_article_r_"+id).hide()
        e.className="arrowdown"
        expand.innerHTML=expand.summary
        expand.summary=""
    }
}
