/***
* 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;
        // meses do ano //
        var p = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
        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 = node('ul'), 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) {
                // formatar horas aqui //
                var b = a.getHours(), min = a.getMinutes();
                return b + 'h' + min + 'min';
            }
            function formatDate(a) {
                // formatar data aqui //
                var b = a.toDateString().split(/ /), mon = p[a.getMonth()], day = a.getDate() + '', dayi = parseInt(day), year = a.getFullYear(), thisyear = (new Date()).getFullYear(), th = '';
                if ((dayi % 10) == 1 && day.substr(0, 1) != '1') {
                    th = ''
                }
                else
                    if ((dayi % 10) == 2 && day.substr(0, 1) != '1') {
                        th = ''
                    }
                    else
                        if ((dayi % 10) == 3 && day.substr(0, 1) != '1') {
                            th = ''
                        }
                if (day.substr(0, 1) == '0') {
                    day = day.substr(1)
                }
                return day + '/' + mon + '/' + year;
            }
            delta = delta + (relative_to.getTimezoneOffset() * 60);
            if (delta < 5) {
                r = '5 segundos atrás';
            }
            else
                if (delta < 30) {
                    r = '30 segundos atrás';
                }
                else
                    if (delta < 60) {
                        r = 'menos de um minuto atrás';
                    }
                    else
                        if (delta < 120) {
                            r = '1 minuto atrás';
                        }
                        else
                            if (delta < (45 * 60)) {
                                r = (parseInt(delta / 60)).toString() + ' minutos atrás';
                            }
                            else
                                if (delta < (2 * 90 * 60)) {
                                    r = 'cerca de 1 hora atrás';
                                }
                                else
                                    if (delta < (24 * 60 * 60)) {
                                        r = 'cerca de ' + (parseInt(delta / 3600)).toString() + ' horas atrás';
                                    }
                                    else {
                                        if (delta < (48 * 60 * 60)) {
                                            r = formatTime(date) + ' ontem';
                                        }
                                        else {
                                            // mudar o formato final //
                                            //r = formatDate(date) + ' &agrave;s ' + formatTime(date);
                                            r = formatDate(date);
                                        }
                                    }
            return r;
        }
    })();
