/* extracted js from template '/home/brokerz/htdocs/django/brokerz.com/vendor/timeago/timeago.js' with priority 6 with groups widget, script */
/*
 * timeago: a jQuery plugin, version: 0.6.2 (10/14/2008)
 * @requires jQuery v1.2 or later
 *
 * Timeago is a jQuery plugin that makes it easy to support automatically
 * updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
 *
 * For usage and examples, visit:
 * http://timeago.yarp.com/
 *
 * Licensed under the MIT:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * Copyright (c) 2008, Ryan McGeary (ryanonjavascript -[at]- mcgeary [*dot*] org)
 */

var TimeAgo = function(element, timestamp) {
  this.element = element;

  timestamp = this.normalizeDate(timestamp || element.getAttribute("title"));

  if(!timestamp || isNaN(timestamp)) return;

  this.timestamp = timestamp;
  this.refresh();

  if (this.settings.refreshMillis < 0) return;

  if (this.element.timeagotimer) {
    clearInterval(this.element.timeagotimer);
  }

  var self = this;
  this.element.timeagotimer = setInterval(function() { self.refresh.apply(self); }, this.settings.refreshMillis);
};

(function() {

var sprintf = function (astring, value) {
  return astring.replace(/%d/i, value);
};

var distance = function(relative_to) {
  return (new Date().getTime() - relative_to.getTime());
};

var parse = function(iso8601) {
  var s = iso8601; // FIXME: trim
  s = s.replace(/-/,"/").replace(/-/,"/");
  s = s.replace(/T/," ").replace(/Z/," UTC");
  s = s.replace(/([\+-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
  return new Date(s);
};

TimeAgo.prototype = {
  parse: parse,

  refresh: function() {
    this.updateElement(this.inWords(this.timestamp));
  },

  updateElement: function(words) {
    this.element.innerHTML = words;
  },

  settings: {
    refreshMillis: 60000,
    allowFuture: false,
    strings: {
      prefixAgo: null,
      prefixFromNow: null,
      suffixAgo: "ago",
      suffixFromNow: "from now",
      ago: null, // DEPRECATED, use suffixAgo
      fromNow: null, // DEPRECATED, use suffixFromNow
      seconds: "less than a minute",
      minute: "about a minute",
      minutes: "%d minutes",
      hour: "about an hour",
      hours: "about %d hours",
      day: "a day",
      days: "%d days",
      month: "about a month",
      months: "%d months",
      year: "about a year",
      years: "%d years"
    }
  },

  normalizeDate: function(normalize) {
    if(!normalize) {
      return;
    }

    if (normalize instanceof Date) {
      return normalize;
    }

    if (normalize.getAttribute) {
      normalize = normalize.getAttribute("title");
    }

    if (typeof normalize == "string") {
      return parse(normalize);
    }
  },

  inWords: function(distanceMillis) {
    if(distanceMillis instanceof Date)
      distanceMillis = distance(distanceMillis);

    var $l = this.settings.strings;
    var prefix = $l.prefixAgo;
    var suffix = $l.suffixAgo || $l.ago;

    if (this.settings.allowFuture) {
      if (distanceMillis < 0) {
        prefix = $l.prefixFromNow;
        suffix = $l.suffixFromNow || $l.fromNow;
      }
      distanceMillis = Math.abs(distanceMillis);
    }
 
    var seconds = distanceMillis / 1000;
    var minutes = seconds / 60;
    var hours = minutes / 60;
    var days = hours / 24;
    var years = days / 365;
 
    var words = seconds < 45 && sprintf($l.seconds, Math.round(seconds)) ||
      seconds < 90 && $l.minute ||
      minutes < 45 && sprintf($l.minutes, Math.round(minutes)) ||
      minutes < 90 && $l.hour ||
      hours < 24 && sprintf($l.hours, Math.round(hours)) ||
      hours < 48 && $l.day ||
      days < 30 && sprintf($l.days, Math.floor(days)) ||
      days < 60 && $l.month ||
      days < 365 && sprintf($l.months, Math.floor(days / 30)) ||
      years < 2 && $l.year ||
      sprintf($l.years, Math.floor(years));
 
    return [prefix, words, suffix].join(" "); // FIXME: trim
  }
};

// stolen from jquery
var userAgent = navigator.userAgent.toLowerCase();
var version = (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1];
var msie = /msie/.test( userAgent ) && !/opera/.test( userAgent );

// fix for IE6 suckage
if( msie && version < 7.0 ) {
    document.createElement('abbr');
}

}());
/* extracted js from template 'tweets/snippets/message/updated.html' with priority 5 with groups script, widget */
TimeAgo.prototype.updateElement = function(words) {
    var t = this.timestamp;
    var suffix = 'a.m.'
    var hours = t.getHours();
    if (hours > 12) {
      suffix = 'p.m.';
      hours = hours - 12;
    }

    var pub_date = t.toDateString().split(" ")[1] + " " + t.getDate() + ", " + t.getFullYear();
    var pub_time = " - " + hours + ":" + (t.getMinutes() < 10 ? "0" + t.getMinutes() : t.getMinutes()) + " " + suffix;

    var updated = new Element(this.element);
    updated.empty();

    var entry_date = new Element('span', {'class': 'date'}).setText(pub_date).injectInside(updated);
    var entry_time = new Element('span', {'class': 'time'}).setText(pub_time).injectAfter(entry_date);
    var entry_words = new Element('span', {'class': 'words'}).setText(words).injectAfter(entry_time);

    updated.getElements('.date').setStyle('display', 'none');
    updated.getElements('.time').setStyle('display', 'none');
    updated.getElements('.words').setStyle('display', 'inline');

  };
  var enhance_updated = function(el) {
    var mouseover = function() {
      el.getElements('.date').setStyle('display', 'inline');
      el.getElements('.time').setStyle('display', 'inline');
      el.getElements('.words').setStyle('display', 'none');
    };
    var mouseout = function() {
      el.getElements('.date').setStyle('display', 'none');
      el.getElements('.time').setStyle('display', 'none');
      el.getElements('.words').setStyle('display', 'inline');
    };

    new TimeAgo(el);
    el.removeProperty('title');
    mouseout();

    el.addEvent('mouseout', mouseout);
    el.addEvent('mouseover', mouseover);
  };
/* extracted js from template 'tweets/widget/mainline.html' with groups widget */
BrokerzWidget = function(id, resource) {
    BrokerzWidget.Callback[id] = function(html) {
      document.getElementById(id).setAttribute('class', 'brkrzwidget');
      document.getElementById(id).innerHTML = html;
    };
    var style = '<style>' + BrokerzWidget.CSS + '</style>';
    document.write(style);
    document.write('<script src="http://brokerz.com' + resource + 'widget.js?callback=BrokerzWidget.Callback.' + id + '" type="text/javascript"></script>');
};

BrokerzWidget.Callback = {};
BrokerzWidget.CSS = ['',
    /* reset */
    , '.brkrzwidget,.brkrzwidget div,.brkrzwidget dl,.brkrzwidget dt,.brkrzwidget dd,.brkrzwidget ul,.brkrzwidget ol,.brkrzwidget'
    , 'li,.brkrzwidget h1,.brkrzwidget h2,.brkrzwidget h3,.brkrzwidget h4,.brkrzwidget h5,.brkrzwidget h6,.brkrzwidget'
    , 'pre,.brkrzwidget form,.brkrzwidget fieldset,.brkrzwidget input,.brkrzwidget textarea,.brkrzwidget p,.brkrzwidget'
    , 'blockquote,.brkrzwidget th,.brkrzwidget td {margin:0;padding:0;}'
    , '.brkrzwidget table {border-collapse:collapse;border-spacing:0;}'
    , '.brkrzwidget fieldset,.brkrzwidget img {border:0;}'
    , '.brkrzwidget address,.brkrzwidget caption,.brkrzwidget cite,'
    , '.brkrzwidget code,.brkrzwidget dfn,.brkrzwidget em,.brkrzwidget strong,.brkrzwidget th,.brkrzwidget var'
    , '{font-style:normal;font-weight:normal;}'
    , '.brkrzwidget ol,.brkrzwidget ul {list-style:none;}'
    , '.brkrzwidget caption,.brkrzwidget th {text-align:left;}'
    , '.brkrzwidget h1,.brkrzwidget h2,.brkrzwidget h3,.brkrzwidget h4,.brkrzwidget h5,.brkrzwidget h6'
    , '{font-size:100%;font-weight:normal;}'
    , '.brkrzwidget q:before,.brkrzwidget q:after {content:"";}'
    , '.brkrzwidget abbr,.brkrzwidget acronym {border:0;}'
   
    /* custom style */
    // TODO 

		, '#brokerz_widget {'
    , 'font-family: Tahoma, Verdana, Arial;'
    , 'font-size: 7pt;'
	  , 'line-height: 12pt;'
    , 'width:180px;'
	  , 'background: #fff;'
		, '}'

    , '#brokerz_widget a{'
    , 'text-decoration:none;'
		, '}'

    , '#brokerz_widget img{'
    , 'border: 0px;'
		, '}'

    , '#brokerz_widget .brkrzwidget{'
    , 'background: url(http://s.brokerz.com/m_y569M6wmWcb65A1rAtoes15AE.jpg) top repeat-y;'
    , 'padding: 0px 7px 0px 6px;'
    , 'margin-top:-5px;'
    , '}'

    , '#brokerz_widget .time{'
    , 'color: #ff002a;'
    , 'font-family: Tahoma, Verdana, Arial;'
    , 'font-size: 7pt;'
    , '}'

    , '#brokerz_widget .rot_fett{'
    , 'color: #ff002a;'
    , 'font-weight: bold;'
    , '}'

    , '#brokerz_widget .kursiv{'
    , 'font-family: Georgia, Tahoma, Verdana;'
    , 'font-style: italic;'
    , 'font-size: 7pt;'
    , '}'

    , '#brokerz_widget .graue_schrift{'
    , 'color: #9b9b9b;'
    , '}'

    , '#brokerz_widget .streifen{'
    , 'background: url(http://s.brokerz.com/3XKNTM3yOzdq1t2gPLOQsJFj7P0.gif) repeat-x;'
    , 'height: 1px;'
    , 'padding: 0px 0px 5px 0px;'
    , 'margin-top: 5px;'
    , '}'

    , '#brkrzfooter{'
    , 'background: url(http://s.brokerz.com/DxYKmhZoeK-I8z_1PUgJLvgMFPU.jpg) no-repeat;'
    , 'width: 180px;'
    , 'height: 40px;'
    , 'color:#ffffff;'
    , 'text-align:center;'
    , 'padding:10px 0 0 0;'
    , 'margin:0;'
    , 'line-height:12px;'
    , 'font-size:11px;'
    , 'font-family:"Times New Roman", Times, serif;'
    , '}'

    , '#brkrzfooter a {'
    , 'color:#ffffff;'
    , 'text-decoration:underline;'
    , '}'

    , '#brkrzgetWidget {',
    , 'background: url(http://s.brokerz.com/fITXPUUEx-sVRnDnGSTcZHT79TI.jpg) no-repeat;'
    , 'width: 180px;'
    , 'height: 27px;'
    , 'padding:0;'
    , 'margin:0;'
    , 'display:block;'
    , 'text-indent:-3000px;'
    , '}'

    , '#brkrzgetWidget:hover {'
    , 'background: url(http://s.brokerz.com/w4O1RDQzjN1z-epkLzCBVabAZDw.jpg) no-repeat;'
    , 'width: 180px;'
    , 'height: 27px;'
    , '}'

    , '#brkrzgetWidget h2 {'
    , 'padding:0;'
    , 'margin:0;'
    , '}'

  ].join(" ");