// twitter widget namespace
twitter = {};


twitter.mainButtonClick = function () {

  twitter.twitter_button.blur();
  
  if (twitter.is_expanded)
    twitter.collapseWidget();
  else
    twitter.expandWidget();
  
}


twitter.expandWidget = function () {
    
  twitter.tweet_list.style.display = "block";
  twitter.plus_button.style.display = "none";
  twitter.minus_button.style.display = "block";
  twitter.show_more_button.style.display = "none";
  twitter.more_at_twitter_button.style.display = "block";
  twitter.last_update_field.style.display = "none";
  
  twitter.is_expanded = true;
  
  // flag individual posts as showing
  tweets = twitter.tweet_list.getElementsByTagName("li");
  
  for (i=0; cur_tweet = tweets[i]; i++) {
    
    cur_tweet.style.display = "block";
    
  }
  
}

twitter.collapseWidget = function () {
  
  twitter.tweet_list.style.display = "none";
  twitter.plus_button.style.display = "block";
  twitter.minus_button.style.display = "none";
  twitter.show_more_button.style.display = "none";
  twitter.more_at_twitter_button.style.display = "none";
  twitter.last_update_field.style.display = "block";

  twitter.is_expanded = false;

}



twitter.buttonPoint = function (button) {
    
  document.body.style.cursor = "pointer";
  
  return true;
  
}


twitter.buttonPointAway = function (button) {
  
  document.body.style.cursor = "auto";
  
  return true;
  
}


twitter.init = function() {
  
  twitter.twitter_button = document.getElementById ("twitter_link");
  twitter.plus_button = document.getElementById ("plus_button");
  twitter.minus_button = document.getElementById ("minus_button");
  twitter.show_more_button = document.getElementById ("show_more_button");
  twitter.more_at_twitter_button = document.getElementById ("more_at_twitter_button");
  twitter.tweet_list = document.getElementById ("post_list");
  twitter.last_update_field = document.getElementById ("last_update_field");
  
  if (!twitter.tweet_list)
    return;
  
  // check if already expanded, and also show the appropriate buttons, which are initially hidden
  if (twitter.tweet_list.className == "post_list show") {
    twitter.is_expanded = true;
    twitter.minus_button.style.display = "block";
  }
  else {
    twitter.is_expanded = false;
    twitter.plus_button.style.display = "block";
  }
  
  listenForMouseOver (twitter.plus_button, function () { twitter.buttonPoint (twitter.plus_button); });
  listenForMouseOver (twitter.minus_button, function () { twitter.buttonPoint (twitter.minus_button); });
  
  listenForMouseOut (twitter.plus_button, function () {twitter. buttonPointAway (twitter.plus_button); });
  listenForMouseOut (twitter.minus_button, function () { twitter.buttonPointAway (twitter.minus_button); });
  
  blockDefaultAction (twitter.twitter_button);
  blockDefaultAction (twitter.show_more_button);

  
  listenForMouseClick (twitter.plus_button, twitter.expandWidget);
  listenForMouseClick (twitter.minus_button, twitter.collapseWidget);
  listenForMouseClick (twitter.twitter_button, twitter.mainButtonClick);
  
  listenForMouseClick (twitter.show_more_button, twitter.expandWidget);
  
}




// ******************************************************************************************** //
// ONLOAD

util.addLoadEvent (twitter.init);