• 上帝与恺撒 - [信仰]

    2008-05-12

     

    上帝的归上帝......

    恺撒的归恺撒......

    if (typeof(Delicious)=='undefined') Delicious = {};
    if (typeof(Delicious.BlogBadge)=='undefined') {

    if (!Object.prototype.hasOwnProperty) {
    Object.prototype.hasOwnProperty = function(p) {
    return (typeof this[p] != 'undefined') &&
    (this.constructor.prototype[p] !== this[p]);
    }
    }

    Delicious.BlogBadge = function() {
    return {

    DEBUG: false,
    hostname: Delicious.HOSTNAME || 'del.icio.us',
    json_hostname: Delicious.JSON_HOSTNAME || Delicious.HOSTNAME || 'badges.del.icio.us',
    static_url_root: Delicious.STATIC_URL_ROOT || 'http://images.del.icio.us/static',
    default_class: "delicious-blogbadge-tall",
    posts_count: 5,

    did_init: false,
    badges: {},

    log: function(msg) {
    if (this.DEBUG) if (window.console && console.log)
    console.log(msg);
    },

    init: function() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;

    if (Delicious.BLOGBADGE_DEFAULT_CLASS) {
    Delicious.BlogBadge.default_class = Delicious.BLOGBADGE_DEFAULT_CLASS;
    }

    this.badges = {};
    // HACK: Packed version of md5.js is at the bottom of this file.
    // this.insertExtJSLibs();
    this.insertBadgeCSS();
    this.addLoadEvent(this.onload);
    },

    onload: function() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;

    for (u in this.badges) {
    if (!this.badges.hasOwnProperty(u)) continue;
    var badge = this.badges[u];
    if (!badge.hash)
    badge.hash = hex_md5(u);
    }
    this.fetchBadgeJSON();
    },

    insertExtJSLibs: function() {
    this.forEach([
    this.static_url_root+'/js/md5.js'
    ], function(u) {
    var scr = document.createElement("script");
    scr.setAttribute("type", "text/javascript");
    scr.setAttribute("src", u);
    document.getElementsByTagName("head").item(0).appendChild(scr);
    });
    },

    insertBadgeCSS: function() {
    var bcss = document.getElementById('delicious-blogbadge-css');
    if (!bcss) {
    bcss = this.el('link', {
    'id': 'delicious-blogbadge-css',
    'type': 'text/css',
    'rel': 'stylesheet',
    'href': this.static_url_root+'/css/blogbadge.css'
    }, []);
    document.getElementsByTagName('head')[0].appendChild(bcss);
    }
    bcss = null;
    },

    register: function(divid, url, title, opts) {
    var badge = {
    'divid': divid,
    'url': url,
    //'hash': hex_md5(url),
    'title':title,
    'opts': opts||{}
    };
    this.badges[url] = badge;
    this.replaceChildNodes(
    document.getElementById(badge.divid),
    this.renderPostButton(badge)
    );
    },

    writeBadge: function(divid, url, title, opts, classname) {
    if (!classname) classname = this.default_class;
    document.writeln('<div class="'+classname+'" id="'+divid+'"></div>');
    this.register(divid, url, title, opts);
    },

    fetchBadgeJSON: function() {
    var json_url = "http://"+this.json_hostname +
    "/feeds/json/url/blogbadge" +
    "?callback=Delicious.BlogBadge.handleBadgeJSON" +
    "&noCacheIE="+(new Date()).getTime();

    var showposts = false;
    for (u in this.badges) {
    if (!this.badges.hasOwnProperty(u)) continue;
    var badge = this.badges[u];
    json_url += "&hash="+encodeURIComponent(badge.hash);
    if (!showposts && badge.opts.showposts) {
    showposts = true;
    json_url += "&showposts=yes&count="+this.posts_count;
    }
    }

    // TODO: Make work in XHTML pages with namespaces.
    var scr = document.createElement("script");
    scr.setAttribute("type", "text/javascript");
    scr.setAttribute("src", json_url);
    scr.setAttribute("id", 'delicious-blogbadge-json');

    this.script_ele = scr;
    document.getElementsByTagName("head").item(0).appendChild(this.script_ele);
    },

    handleBadgeJSON: function(data) {

    for (var i=0,rec; rec=data[i]; i++) {
    var badge = this.badges[rec.url];
    if (badge && !badge.loaded) {
    this.buildBadge(badge, rec);
    badge.loaded = true;
    }
    }

    for (u in this.badges) {
    if (!this.badges.hasOwnProperty(u)) continue;
    var badge = this.badges[u];
    if (badge.loaded) continue;
    this.buildBadge(badge, {
    url: u, total_posts: 0, top_tags: []
    });
    }

    document.getElementsByTagName("head").item(0).removeChild(this.script_ele);
    this.script_ele = null;

    },

    buildBadge: function(badge, data) {
    badge.data = data;
    this.replaceChildNodes(
    document.getElementById(badge.divid),
    this.renderBadge(badge)
    );
    },

    buildPostURL: function(badge) {
    return 'http://'+this.hostname+'/post'+
    '?url='+encodeURIComponent(badge.url)+
    '&title='+encodeURIComponent(badge.title || '')+
    '&jump=no&partner=delbg';
    },

    renderPostButton: function(badge) {
    var el = this.bind(this.el);
    var post_url = this.buildPostURL(badge);

    return [
    el('a', {'class':'save-to-link', 'href':post_url, 'title':'bookmark '+badge.title+' on del.icio.us'}, [
    el('span', {'class':'save-to-link-label'}, ['bookmark this on del.icio.us'])
    ])
    ];
    },

    renderBadge: function(badge) {
    var el = this.bind(this.el);
    var map = this.bind(this.map);
    var data = badge.data;
    var total_posts = data.total_posts || 0;

    var top_tags = [];
    for (t in data.top_tags) {
    if (!data.top_tags.hasOwnProperty(t)) continue;
    top_tags.push(t);
    }
    top_tags.sort(function(a,b) {
    return ( data.top_tags[b] - data.top_tags[a] );
    });

    var posts = [];
    if (badge.opts.showposts) {
    for (var i=0, post; (i<this.posts_count) && (post=badge.data.posts[i]); i++) {
    posts.push(post);
    }
    }

    var post_bookmark_url = this.buildPostURL(badge);

    return [

    this.renderPostButton(badge),

    (total_posts > 0) ?
    el('a', {'class':'url-link', 'href':'http://'+this.hostname+'/url/'+data.hash}, [
    el('span', {'class':'post-count-label-before'}, ['saved by ']),
    el('span', {'class':'post-count'}, [ total_posts ]),
    el('span', {'class':'post-count-label-after'},
    (total_posts>1) ? [' other people'] : [' other person']
    ),
    ])
    :
    [
    el('a', {'class':'empty-save-to-link', 'href':post_bookmark_url}, [
    el('span', {'class':'empty-save-to-link-label'}, ['save this']),
    ]),
    el('span', {'class':'empty-message'}, [
    'be the first to bookmark this page!'
    ])
    ],

    (! (total_posts > 0 && top_tags.length > 0) ) ? '' : [
    el('div', {'class':'top-tags-container'}, [
    el('span', {'class':'top-tags-title'}, ['tags: ']),
    el('ul', {'class':'top-tags'},
    map(function(t) {
    return [ el('li', {}, [
    el('a', {'href':'http://'+this.hostname+'/tag/'+t, 'title':t}, [t])
    ]), ' ' ];
    }, top_tags)
    )
    ])
    ],

    (! (badge.opts.showposts && posts.length) ) ? '' : [

    el('span', {'class':'latest-posts'}, [
    el('span', {'class':'latest-posts-label'}, ['recent bookmarks: ']),

    el('ul', {}, map( function(post) {

    return el('li', {'class':'xfolkentry'}, [

    el('a', {'class':'taggedlink', 'href':post.u}, [post.n]),
    (!post.d) ? '' : el('blockquote', {'class':'description'}, [post.d]),
    el('div', {'class':'meta'}, [

    el('span', {'class':'meta-label-by'}, [' by ']),
    el('a', {'class':'author', 'href':'http://'+this.hostname+'/'+post.un}, [post.un]),
    (!post.t.length) ? '' : [
    el('span', {'class':'meta-label-to'}, [' to ']),
    el('ul', {'class':'tags'}, map(function(t) {
    return [ el('li', {'class':'tag'}, [
    el('a', {'rel':'tag', 'href':'http://'+this.hostname+'/'+post.un+'/tag/'+t}, [t])
    ]), ' '];
    }, post.t))
    ],
    el('span', {'class':'meta-label-at'}, [' at ']),
    el('abbr', {'class':'created','title':post.dt+'Z'}, [post.dt+'Z']),

    ])

    ]);

    }, posts))

    ]),

    ],

    ' ',
    el('br',{},[])
    ];

    },

    bind: function(func) {
    var obj = this;
    return function() { return func.apply(obj, arguments) };
    },

    forEach: function(list, fn) {
    fn = this.bind(fn);
    for (var i=0; i<list.length; i++) fn(list[i]);
    },

    filter: function(fn, list) {
    var rv = [];
    fn = this.bind(fn);
    for (var i=0; i<list.length; i++)
    if (fn(list[i])) rv[rv.length] = list[i];
    return rv;
    },

    map: function(fn, list) {
    var rv = [];
    fn = this.bind(fn);
    for (var i=0; i<list.length; i++) rv[rv.length] = fn(list[i]);
    return rv;
    },

    addLoadEvent_classic: function(func) {
    var init = this.bind(func);

    // for anyone else not covered above.
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
    window.onload = init;
    } else {
    window.onload = function() {
    if (oldonload) { oldonload(); }
    init();
    }
    }
    },

    // See: http://dean.edwards.name/weblog/2006/06/again/
    addLoadEvent: function(func) {
    var init = this.bind(func);

    // for Mozilla and Opera browsers
    if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, false);
    }

    // for Internet Explorer (using conditional comments)
    /*@cc_on @*/
    /*@if (@_win32)
    document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
    var script = document.getElementById("__ie_onload");
    script.onreadystatechange = function() {
    if (this.readyState == "complete") {
    init(); // call the onload handler
    }
    };
    /*@end @*/

    // for WebKit browsers
    if (/WebKit/i.test(navigator.userAgent)) { // sniff
    var _timer = setInterval(function() {
    if (/loaded|complete/.test(document.readyState)) {
    clearInterval(_timer);
    init(); // call the onload handler
    }
    }, 10);
    }

    // for anyone else not covered above.
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
    window.onload = init;
    } else {
    window.onload = function() {
    if (oldonload) { oldonload(); }
    init();
    }
    }
    },

    replaceChildNodes: function(parent, nodes) {
    while (parent.firstChild)
    parent.removeChild(parent.firstChild);
    return this.appendChildNodes(parent, nodes);
    },

    appendChildNodes: function(parent, nodes) {
    if (!nodes || !nodes.length) return;
    for (var i=0; i<nodes.length; i++) {
    var node = nodes[i];
    if (!node) continue;
    if (node.nodeType)
    parent.appendChild(node);
    else if ( (typeof(node) == 'object') && node.length)
    this.appendChildNodes(parent, node);
    else
    parent.appendChild(document.createTextNode(''+node));
    }
    },

    el: function(name, attrs, nodes) {
    var elem = document.createElement(name);
    if (attrs) for (k in attrs) {
    if (!attrs.hasOwnProperty(k)) continue;
    var v = attrs[k];

    if (k.substring(0, 2) == "on") {
    if (typeof(v) == "string") {
    v = new Function(v);
    }
    elem[k] = v;
    } else {
    elem.setAttribute(k, v);
    }

    switch(k) {
    // MSIE seems to want this.
    case 'class': elem.className = v; break;
    }
    }
    if (nodes) this.appendChildNodes(elem, nodes);
    return elem;
    },

    EOF:null
    };
    }();
    }

    // HACK: Packed version of http://pajhome.org.uk/crypt/md6/md5.js
    eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('e 1i=0;e 1g="";e p=8;f 1f(s){g K(A(D(s),s.o*p))}f 1w(s){g S(A(D(s),s.o*p))}f 1N(s){g L(A(D(s),s.o*p))}f 2b(w,v){g K(I(w,v))}f 2a(w,v){g S(I(w,v))}f 2c(w,v){g L(I(w,v))}f 2i(){g 1f("1R")=="1O"}f A(x,G){x[G>>5]|=1U<<((G)%E);x[(((G+1V)>>>9)<<4)+14]=G;e a=24;e b=-1Y;e c=-1X;e d=2h;z(e i=0;i<x.o;i+=16){e Y=a;e W=b;e X=c;e 1b=d;a=l(a,b,c,d,x[i+0],7,-2d);d=l(d,a,b,c,x[i+1],12,-28);c=l(c,d,a,b,x[i+2],17,29);b=l(b,c,d,a,x[i+3],22,-1T);a=l(a,b,c,d,x[i+4],7,-1Z);d=l(d,a,b,c,x[i+5],12,2j);c=l(c,d,a,b,x[i+6],17,-1P);b=l(b,c,d,a,x[i+7],22,-1Q);a=l(a,b,c,d,x[i+8],7,1S);d=l(d,a,b,c,x[i+9],12,-25);c=l(c,d,a,b,x[i+10],17,-26);b=l(b,c,d,a,x[i+11],22,-2f);a=l(a,b,c,d,x[i+12],7,2e);d=l(d,a,b,c,x[i+13],12,-2g);c=l(c,d,a,b,x[i+14],17,-27);b=l(b,c,d,a,x[i+15],22,1M);a=h(a,b,c,d,x[i+1],5,-1t);d=h(d,a,b,c,x[i+6],9,-1s);c=h(c,d,a,b,x[i+11],14,1u);b=h(b,c,d,a,x[i+0],20,-1v);a=h(a,b,c,d,x[i+5],5,-1r);d=h(d,a,b,c,x[i+10],9,1q);c=h(c,d,a,b,x[i+15],14,-1l);b=h(b,c,d,a,x[i+4],20,-1k);a=h(a,b,c,d,x[i+9],5,1m);d=h(d,a,b,c,x[i+14],9,-1n);c=h(c,d,a,b,x[i+3],14,-1p);b=h(b,c,d,a,x[i+8],20,1o);a=h(a,b,c,d,x[i+13],5,-1x);d=h(d,a,b,c,x[i+2],9,-1y);c=h(c,d,a,b,x[i+7],14,1I);b=h(b,c,d,a,x[i+12],20,-1H);a=k(a,b,c,d,x[i+5],4,-1J);d=k(d,a,b,c,x[i+8],11,-1K);c=k(c,d,a,b,x[i+11],16,1L);b=k(b,c,d,a,x[i+14],23,-1G);a=k(a,b,c,d,x[i+1],4,-1F);d=k(d,a,b,c,x[i+4],11,1A);c=k(c,d,a,b,x[i+7],16,-1z);b=k(b,c,d,a,x[i+10],23,-1B);a=k(a,b,c,d,x[i+13],4,1C);d=k(d,a,b,c,x[i+0],11,-1E);c=k(c,d,a,b,x[i+3],16,-1D);b=k(b,c,d,a,x[i+6],23,1W);a=k(a,b,c,d,x[i+9],4,-2z);d=k(d,a,b,c,x[i+12],11,-2F);c=k(c,d,a,b,x[i+15],16,2G);b=k(b,c,d,a,x[i+2],23,-2D);a=m(a,b,c,d,x[i+0],6,-2B);d=m(d,a,b,c,x[i+7],10,2I);c=m(c,d,a,b,x[i+14],15,-2O);b=m(b,c,d,a,x[i+5],21,-2M);a=m(a,b,c,d,x[i+12],6,2J);d=m(d,a,b,c,x[i+3],10,-2H);c=m(c,d,a,b,x[i+10],15,-2A);b=m(b,c,d,a,x[i+1],21,-2p);a=m(a,b,c,d,x[i+8],6,2q);d=m(d,a,b,c,x[i+15],10,-2o);c=m(c,d,a,b,x[i+6],15,-2n);b=m(b,c,d,a,x[i+13],21,2m);a=m(a,b,c,d,x[i+4],6,-2r);d=m(d,a,b,c,x[i+11],10,-2k);c=m(c,d,a,b,x[i+2],15,2y);b=m(b,c,d,a,x[i+9],21,-2t);a=u(a,Y);b=u(b,W);c=u(c,X);d=u(d,1b)}g H(a,b,c,d)}f F(q,a,b,x,s,t){g u(Z(u(u(a,q),u(x,t)),s),b)}f l(a,b,c,d,x,s,t){g F((b&c)|((~b)&d),a,b,x,s,t)}f h(a,b,c,d,x,s,t){g F((b&d)|(c&(~d)),a,b,x,s,t)}f k(a,b,c,d,x,s,t){g F(b^c^d,a,b,x,s,t)}f m(a,b,c,d,x,s,t){g F(c^(b|(~d)),a,b,x,s,t)}f I(w,v){e C=D(w);1d(C.o>16)C=A(C,w.o*p);e P=H(16),V=H(16);z(e i=0;i<16;i++){P[i]=C[i]^2L;V[i]=C[i]^2N}e 1c=A(P.18(D(v)),19+v.o*p);g A(V.18(1c),19+2C)}f u(x,y){e O=(x&N)+(y&N);e 1a=(x>>16)+(y>>16)+(O>>16);g(1a<<16)|(O&N)}f Z(T,M){g(T<<M)|(T>>>(E-M))}f D(n){e B=H();e J=(1<<p)-1;z(e i=0;i<n.o*p;i+=p)B[i>>5]|=(n.2l(i/p)&J)<<(i%E);g B}f L(B){e n="";e J=(1<<p)-1;z(e i=0;i<B.o*E;i+=p)n+=2s.2x((B[i>>5]>>>(i%E))&J);g n}f K(r){e U=1i?"2w":"2v";e n="";z(e i=0;i<r.o*4;i++){n+=U.R((r[i>>2]>>((i%4)*8+4))&1e)+U.R((r[i>>2]>>((i%4)*8))&1e)}g n}f S(r){e 1h="2u+/";e n="";z(e i=0;i<r.o*4;i+=3){e 1j=(((r[i>>2]>>8*(i%4))&Q)<<16)|(((r[i+1>>2]>>8*((i+1)%4))&Q)<<8)|((r[i+2>>2]>>8*((i+2)%4))&Q);z(e j=0;j<4;j++){1d(i*8+j*6>r.o*E)n+=1g;2K n+=1h.R((1j>>6*(3-j))&2E)}}g n}',62,175,'||||||||||||||var|function|return|md5_gg|||md5_hh|md5_ff|md5_ii|str|length|chrsz||binarray|||safe_add|data|key|||for|core_md5|bin|bkey|str2binl|32|md5_cmn|len|Array|core_hmac_md5|mask|binl2hex|binl2str|cnt|0xFFFF|lsw|ipad|0xFF|charAt|binl2b64|num|hex_tab|opad|oldb|oldc|olda|bit_rol|||||||||concat|512|msw|oldd|hash|if|0xF|hex_md5|b64pad|tab|hexcase|triplet|405537848|660478335|568446438|1019803690|1163531501|187363961|38016083|701558691|1069501632|165796510|643717713|373897302|b64_md5|1444681467|51403784|155497632|1272893353|1094730640|681279174|722521979|358537222|1530992060|35309556|1926607734|1735328473|378558|2022574463|1839030562|1236535329|str_md5|900150983cd24fb0d6963f7d28e17f72|1473231341|45705983|abc|1770035416|1044525330|0x80|64|76029189|1732584194|271733879|176418897|||||1732584193|1958414417|42063|1502002290|389564586|606105819|b64_hmac_md5|hex_hmac_md5|str_hmac_md5|680876936|1804603682|1990404162|40341101|271733878|md5_vm_test|1200080426|1120210379|charCodeAt|1309151649|1560198380|30611744|2054922799|1873313359|145523070|String|343485551|ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789|0123456789abcdef|0123456789ABCDEF|fromCharCode|718787259|640364487|1051523|198630844|128|995338651|0x3F|421815835|530742520|1894986606|1126891415|1700485571|else|0x36363636|57434055|0x5C5C5C5C|1416354905'.split('|'),0,{}))

    Delicious.BlogBadge.init();
    if (!Delicious.BLOGBADGE_MANUAL_MODE) {
    Delicious.BlogBadge.writeBadge("delicious-blogbadge-"+Math.random(), location.href, document.title, {});
    Delicious.BlogBadge.onload();
    }

     


    历史上的今天:

    关于死亡 2008-05-12
    贫困与富有 2008-05-12
    犯罪 2008-05-12
    精典之言 2008-05-12

    随机文章:

    关于死亡 2008-05-12
    贫困与富有 2008-05-12
    人生的选择 2008-05-11

    收藏到:Del.icio.us




    引用地址: