google.load("jquery", "1.3.2");

/**
 * Twitter loading.
 */

function twitterCallback(twits)
{
  // find a generic twitter
  var i = 0;
  while(i < twits.length && twits[i].text.indexOf('@') == 0)
    i++;
  if(i >= twits.length)
    i = 0;  // not found, use the first one
  // get out twitter data
  var twitterdata = twits[i].text;
  // 'correct' @nick data and link data
  twitterdata = twitterdata.replace(
    /(http:\/\/[^ ,;]*)/,
    "<a href='$1'>$1</a>").replace(
    /@([a-zA-Z0-9-_]+)/g,
    "<a href='http://twitter.com/$1'>@$1</a>");
  // put in the document
  $('#twitterdata').text(twitterdata);
}
google.setOnLoadCallback(function() {
  $.getScript(
    "http://twitter.com/statuses/user_timeline/RedGlow.json?callback=twitterCallback&count=5"
  );
});

/**
 * Flickr loading.
 */
function flickrCallback(reply)
{
  var container = $('#flickrphotos');
  jQuery.each(reply.photos.photo,
    function(index, photo) {
      var img_url = "http://farm" + photo.farm +
        ".static.flickr.com/" + photo.server +
        "/" + photo.id +
        "_" + photo.secret +
        "_s.jpg";
      var img_element = jQuery("<img/>")
        .attr("src", img_url)
        .attr("alt", photo.title);
      /*var img_element = new Element("img", {
        src: img_url,
        alt: photo.title
      });*/
      var link = "http://www.flickr.com/photos/redglow/" + photo.id;
      var anchor_element = jQuery("<a/>")
        .attr("href", link);
      /*var anchor_element = new Element("a", {
        href: link
      });*/
      anchor_element.append(img_element);
      container.append(anchor_element);
      /*img_element.inject(anchor_element);
      anchor_element.inject(container);*/
    }
  );
  $('#flickrstuff').css('display', 'block');
}
google.setOnLoadCallback(function() {
  $.getScript(
    "http://api.flickr.com/services/rest/?method=flickr.people.getPublicPhotos&api_key=8b85fe7df7a07810d17cd15f3a4160e8&user_id=58272340@N00&per_page=6&format=json&jsoncallback=flickrCallback"
  );
});

/**
 * Quotes loading.
 */
function quotesCallback(quote)
{
  /*
  <blockquote id="quote">
    <p>aaaa</p>
    <p>aaaaa</p>
    <div class="source">Pinco Pallino: &#8220;La lettera A&#8222;
  </blockquote>
  */
  var blockquote = $('#quote');
  blockquote.empty();
  for(var i = 0; i < quote.lines.length; i++)
    blockquote.append(jQuery('<p/>').text(quote.lines[i]));
    //(new Element('p', {html: quote.lines[i]})).inject(blockquote);
  //var lastDiv = new Element('div', {'class': 'source'});
  //lastDiv.appendText(quote.author + (quote.source != null ? ': \u00ab' : ''));
  var lastDiv = jQuery('<div/>')
    .attr('class', 'source')
    .text(quote.author);
  if(quote.source)
  {
    if(quote.url == null) {
      lastDiv.append(jQuery('<span/>').text(': \u00ab' + quote.source + '\u00bb'));
    }
    else
    {
      lastDiv.append(jQuery('<span/>').text(': \u00ab'))
        .append(jQuery('<a/>').attr('href', quote.url).text(quote.source))
        .append(jQuery('<span/>').text('\u00bb'))
    }
  }
  blockquote.append(lastDiv);
  //lastDiv.inject(blockquote);
  $('#quotesstuff').css('display', 'block');
}
function loadQuote(wait)
{
  if(wait)
    quotesCallback({
      author: 'Mat/Tia',
      source: 'Vita Reale',
      lines: ["Mo' aspetti due secondi, eh, che vado a sentire."]
    });
  $.getScript(
    "http://www.retinatech.it/~mattia/anacrusi_scripts/randomquote.php?callbackFunction=quotesCallback"
  );
}
google.setOnLoadCallback(loadQuote);

/**
 * Last.fm events loading.
 */
function lastfmCallback(events) {
  /*
  <ul>
    <li>20-04-08: <a href="...">Comaneci</a></li>
    <li>20-04-08: <a href="...">Comaneci</a></li>
  </ul>
  */
  if(events.length == 0)
    return;
  var ul = jQuery('<ul/>');
  for(var i = 0; i < Math.min(5, events.length); i++)
  {
    var e = events[i];
    var li = jQuery('<li/>').text(e.datetime + ': ');
    var anchor = jQuery('<a/>')
      .attr('href', e.link)
      .text(e.name);
    li.append(anchor);
    ul.append(li);
  }
  $('#lastfm').append(ul);
  $('$lastfmstuff').css('display', 'block');
}
google.setOnLoadCallback(function() {
  $.getScript(
    "http://retinatech.it/~mattia/anacrusi_scripts/lastfm.php?callbackFunction=lastfmCallback"
  );
});
