/***
 * Twitter JS v1.13.1
 * http://code.google.com/p/twitterjs/
 * Copyright (c) 2009 Remy Sharp / MIT License
 * $Date: 2009-08-25 09:45:35 +0100 (Tue, 25 Aug 2009) $
 */
if (typeof renderTwitters != 'function')(function () {
    var j = (function () {
        var b = navigator.userAgent.toLowerCase();
        return {
            webkit: /(webkit|khtml)/.test(b),
            opera: /opera/.test(b),
            msie: /msie/.test(b) && !(/opera/).test(b),
            mozilla: /mozilla/.test(b) && !(/(compatible|webkit)/).test(b)
        }
    })();
    var k = 0;
    var n = [];
    var o = false;
    var p = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'];
    window.ify = function () {
        var c = {
            '"': '&quot;',
            '&': '&amp;',
            '<': '&lt;',
            '>': '&gt;'
        };
        return {
            "link": function (t) {
                return t.replace(/[a-z]+:\/\/[a-z0-9-_]+\.[a-z0-9-_:~%&\?\/.=]+[^:\.,\)\s*$]/ig, function (m) {
                    return '<a href="' + m + '">' + ((m.length > 25) ? m.substr(0, 24) + '...' : m) + '</a>'
                })
            },
            "at": function (t) {
                return t.replace(/(^|[^\w]+)\@([a-zA-Z0-9_]{1,15})/g, function (m, a, b) {
                    return a + '@<a href="http://twitter.com/' + b + '">' + b + '</a>'
                })
            },
            "hash": function (t) {
                return t.replace(/(^|[^\w'"]+)\#([a-zA-Z0-9_]+)/g, function (m, a, b) {
                    return a + '#<a href="http://search.twitter.com/search?q=%23' + b + '">' + b + '</a>'
                })
            },
            "clean": function (a) {
                return this.hash(this.at(this.link(a)))
            }
        }
    }();
    window.renderTwitters = function (a, b) {
        function node(e) {
            return document.createElement(e)
        }
        function text(t) {
            return document.createTextNode(t)
        }
        var c = document.getElementById(b.twitterTarget);
        var d = null;
        var f = document.createDocumentFragment(),
            li, statusSpan, timeSpan, i, max = a.length > b.count ? b.count : a.length;
        for (i = 0; i < max && a[i]; i++) {
                d = getTwitterData(a[i]);
                if (b.ignoreReplies && a[i].text.substr(0, 1) == '@') {
                    max++;
                    continue
                }
                li = node('li');
                if (b.template) {
                    li.innerHTML = b.template.replace(/%([a-z_\-\.]*)%/ig, function (m, l) {
                        var r = d[l] + "" || "";
                        if (l == 'text' && b.enableLinks) r = ify.clean(r);
                        return r
                    })
                } else {
                    statusSpan = node('span');
                    statusSpan.className = 'twitterStatus';
                    timeSpan = node('span');
                    timeSpan.className = 'twitterTime';
                    statusSpan.innerHTML = a[i].text;
                    if (b.enableLinks == true) {
                        statusSpan.innerHTML = ify.clean(statusSpan.innerHTML)
                    }
                    timeSpan.innerHTML = relative_time(a[i].created_at);
                    if (b.prefix) {
                        var s = node('span');
                        s.className = 'twitterPrefix';
                        s.innerHTML = b.prefix.replace(/%(.*?)%/g, function (m, l) {
                            return a[i].user[l]
                        });
                        li.appendChild(s);
                        li.appendChild(text(' '))
                    }
                    li.appendChild(statusSpan);
                    li.appendChild(text(' '));
                    li.appendChild(timeSpan)
                }
                if (b.newwindow) {
                    li.innerHTML = li.innerHTML.replace(/<a href/gi, '<a target="_blank" href')
                }
                f.appendChild(li)
            }
        if (b.clearContents) {
                while (c.firstChild) {
                    c.removeChild(c.firstChild)
                }
            }
        c.appendChild(f);
        if (typeof b.callback == 'function') {
                b.callback()
            }
    };
    window.getTwitters = function (e, f, g, h) {
        k++;
        if (typeof f == 'object') {
            h = f;
            f = h.id;
            g = h.count
        }
        if (!g) g = 1;
        if (h) {
            h.count = g
        } else {
            h = {}
        }
        if (!h.timeout && typeof h.onTimeout == 'function') {
            h.timeout = 10
        }
        if (typeof h.clearContents == 'undefined') {
            h.clearContents = true
        }
        if (h.withFriends) h.withFriends = false;
        h['twitterTarget'] = e;
        if (typeof h.enableLinks == 'undefined') h.enableLinks = true;
        window['twitterCallback' + k] = function (a) {
            if (h.timeout) {
                clearTimeout(window['twitterTimeout' + k])
            }
            renderTwitters(a, h)
        };
        ready((function (c, d) {
            return function () {
                if (!document.getElementById(c.twitterTarget)) {
                    return
                }
                var a = 'http://www.twitter.com/statuses/' + (c.withFriends ? 'friends_timeline' : 'user_timeline') + '/' + f + '.json?callback=twitterCallback' + d + '&count=20&cb=' + Math.random();
                if (c.timeout) {
                    window['twitterTimeout' + d] = setTimeout(function () {
                        if (c.onTimeoutCancel) window['twitterCallback' + d] = function () {};
                        c.onTimeout.call(document.getElementById(c.twitterTarget))
                    }, c.timeout * 1000)
                }
                var b = document.createElement('script');
                b.setAttribute('src', a);
                document.getElementsByTagName('head')[0].appendChild(b)
            }
        })(h, k))
    };
    DOMReady();

    function getTwitterData(a) {
        var b = a,
            i;
        for (i in a.user) {
                b['user_' + i] = a.user[i]
            }
        b.time = relative_time(a.created_at);
        return b
    }
    function ready(a) {
        if (!o) {
            n.push(a)
        } else {
            a.call()
        }
    }
    function fireReady() {
        o = true;
        var a;
        while (a = n.shift()) {
            a.call()
        }
    }
    function DOMReady() {
        if (document.addEventListener && !j.webkit) {
            document.addEventListener("DOMContentLoaded", fireReady, false)
        } else if (j.msie) {
            document.write("<scr" + "ipt id=__ie_init defer=true src=//:><\/script>");
            var a = document.getElementById("__ie_init");
            if (a) {
                a.onreadystatechange = function () {
                    if (this.readyState != "complete") return;
                    this.parentNode.removeChild(this);
                    fireReady.call()
                }
            }
            a = null
        } else if (j.webkit) {
            var b = setInterval(function () {
                if (document.readyState == "loaded" || document.readyState == "complete") {
                    clearInterval(b);
                    b = null;
                    fireReady.call()
                }
            }, 10)
        }
    }
    function relative_time(c) {
        var d = c.split(" "),
            parsed_date = Date.parse(d[1] + " " + d[2] + ", " + d[5] + " " + d[3]),
            date = new Date(parsed_date),
            relative_to = (arguments.length > 1) ? arguments[1] : new Date(),
            delta = parseInt((relative_to.getTime() - parsed_date) / 1000),
            r = '';

        function formatTime(a) {
                var b = a.getHours(),
                    min = a.getMinutes() + "",
                    ampm = 'AM';
                if (b == 0) {
                        b = 12
                    } else if (b == 12) {
                        ampm = 'PM'
                    } else if (b > 12) {
                        b -= 12;
                        ampm = 'PM'
                    }
                if (min.length == 1) {
                        min = '0' + min
                    }
                return b + ':' + min + ' ' + ampm
            }
        function formatDate(a) {
                var b = a.toDateString().split(/ /),
                    mon = p[a.getMonth()],
                    day = a.getDate() + '',
                    dayi = parseInt(day),
                    year = a.getFullYear(),
                    thisyear = (new Date()).getFullYear(),
                    th = '';
//                     th = 'th';
//                 if ((dayi % 10) == 1 && day.substr(0, 1) != '1') {
//                         th = 'st'
//                     } else if ((dayi % 10) == 2 && day.substr(0, 1) != '1') {
//                         th = 'nd'
//                     } else if ((dayi % 10) == 3 && day.substr(0, 1) != '1') {
//                         th = 'rd'
//                     }
                if (day.substr(0, 1) == '0') {
                        day = day.substr(1)
                    }
                return mon + ' ' + day + th + (thisyear != year ? ', ' + year : '')
            }
        delta = delta + (relative_to.getTimezoneOffset() * 60);
        if (delta < 5) {
                r = 'hace unos segundos'
            } else if (delta < 30) {
                r = 'hace medio minuto'
            } else if (delta < 60) {
                r = 'hace menos de un minuto'
            } else if (delta < 120) {
                r = 'hace un minuto'
            } else if (delta < (45 * 60)) {
                r = 'hace ' + (parseInt(delta / 60)).toString() + ' minutos'
            } else if (delta < (2 * 90 * 60)) {
                r = 'hace como una hora'
            } else if (delta < (24 * 60 * 60)) {
                r = 'hace ' + (parseInt(delta / 3600)).toString() + ' horas'
            } else {
                if (delta < (48 * 60 * 60)) {
                    r = formatTime(date) + ' ayer'
                } else {
                    r = formatTime(date) + ' ' + formatDate(date)
                }
            }
        return r
    }
})();
