function formatTwitterDate(date) {
  var d = Date.parse(date).add({ hours: -5 });		//offset to ET
  return d.toString("h:mmt").toLowerCase();
}

function log(str) {
//  console.log(str);
} 

function processLinks(tweet) {
  var r = new RegExp('(?:http://|ftp://|mai...\t]+(?:\.(?![.<>"\'\s\r\n])[^.,!<>"\'\s\r\n\t]+)+)', 'g');
  if (r.test(tweet)) {
    var start = tweet.search(r);
    var end = tweet.indexOf(' ', start);
    if (end == -1) {
      end = tweet.length;
    }
    var u = tweet.substring(start, end);
    var l = '<a href=' + u + ' target="_new">' + u + '</a>';
    tweet = tweet.replace(u, l);
  }
  return tweet;
}

function processStocktwitsData(searchdata) {
//  var json = transport.responseText.evalJSON(true);
  var json = searchdata;
  if (json.messages.length > 0) {
  	document.getElementById('cnnTwitter').style.display = 'block';
    var bodyTable = document.createElement('table');
    bodyTable.setAttribute('cellspacing', 0);
    bodyTable.setAttribute('cellpadding', 0);
    var tb = document.createElement('tbody');
    bodyTable.appendChild(tb);
    for(var x = 0; x < json.messages.length; x++) {
      var data = json.messages[x].message;
      if (data.message_source != "twitter") {
        continue;
      }
      var tweetRow = document.createElement('tr');
      tweetRow.setAttribute('class', 'cnnTweet');
      var time = document.createElement('td');
      time.setAttribute('class', 'cnnTweetTime');
      time.innerHTML = formatTwitterDate(data.created_at);
      var msg = document.createElement('td');
      msg.setAttribute('class', 'cnnTweetMsg');
      var userName = data.platform_user_login;
      if (userName == null) {
      	userName = data.user_login;
      }
      var ulnk = document.createElement('a');
      ulnk.setAttribute('href', 'http://stocktwits.com/' + userName);
      ulnk.innerHTML = '@' + userName;
      var t = data.body;
      t = processLinks(t);
      var txt = document.createElement('span');
      txt.innerHTML = ' ' + t;
      msg.appendChild(ulnk);
      msg.appendChild(txt);
      tweetRow.appendChild(time);
      tweetRow.appendChild(msg);
      tb.appendChild(tweetRow);
    }
    document.getElementById('cnnTwitterBody').innerHTML = '';
    document.getElementById('cnnTwitterBody').appendChild(bodyTable);
  }
}


function getStocktwitsData(symbol) {
if(twitterDisplay=='show'){
//  var url = 'http://stocktwits.com/t/' + symbol + '.json';
//  var url = 'http://api.stocktwits.com/api/streams/symbol/' + symbol + '.json?callback=processStocktwitsData';
  var url = 'http://svcs.cnn.com/stocktwits/' + symbol + '.json?callback=processStocktwitsData';
  var script = document.getElementById('stdatafetch');
  var head = document.getElementsByTagName("head")[0];
  if(script) {
    head.removeChild(script);
  }
  script = document.createElement('script');
  script.setAttribute('type', 'text/javascript');
  script.setAttribute('id', 'stdatafetched');
  script.setAttribute('src', url);
  head.appendChild(script);
  document.getElementById('cnnTwitterHeadLabel').innerHTML = '<span class="textHeader">' + symbol + ' tweets</span>';
  return;
/*  
  new Ajax.Request(url, {
    method: 'GET',
    onSuccess: function(transport) {
      processStocktwitsData(transport);
    },
    onFailure: function() { alert('something wrong with stocktwits request'); }
  });
*/  
}
}

/* for testing only */
function tweetgo() {
  var symbol = document.getElementById('symbol').value;
//  getTwitterData(symbol.toUpperCase());
  getStocktwitsData(symbol.toLowerCase());
  return false;
}

