try {
   
  


   var trackerID = 'UA-9557212-2';

  var widgetName = "TheStreet";
  var widgetVersion = '000';
  var widgetUpdate = '1';
  var widgetID = widgetName;
 
   
  var titleText = 'Real-time News<span class="titleText" id="on"> on </span><span class="titleText" id="feed_title"></span>';   
  var linkText = 'More Real-time News';   


   var registrationURL = 'http://go.skygrid.com/r/31725359';
  var helpText = 'SkyGrid delivers high quality financial content in real-time.  TheStreet with SkyGrid widget gives you an easy way to see breaking events on the companies you care about. Thanks for reading and we always welcome great ideas at feedback@skygrid.com.'
  var skyviewContent = '<span id="skyview">SkyView&trade;</span><img id="skyviewHelp" width="11" height="11" src="images/q11.png" onMouseOver="showHelpPopup(\'skyview_help_text\')" onMouseOut="hideHelpPopup(\'skyview_help_text\')"/>';
  var skyviewHelpText = 'SkyGrid is widely recognized for its award-winning real-time search technology, including its patented algorithm SkyView&trade;.  SkyView&trade; shows what things are spreading the fastest online.  It is often referred to as the way to see the news on page ten as it is on its way to page one.';
  var sentHelpText = 'SkyGrid\'s widely recognized for its award winning real-time sentiment algorithms. Sentiment shows you if a news item is good or bad for the things you care about.  For example a news item with a company name in green on the left, lets you know it\'s good news.  Red is bad, and gray is "open," or another way of saying the item has no sentiment.';

    
  var defaultfeedname = 'news';
  var defaultmegaurl = '';



   feedPath = 'http://d1.skygrid.com/w';
  
  var name_mapping = {
  };

     
  var article_num = 5;  
  var initDisplay = 5;  
  var initStream = 3;   
  var initStreamInterval = 3000;   
  var showClusters = false;
  var showCompTitles = true;
  var compTitleType = 'nickname';
  var continuous = false;

   
  var sentGreen = 'images/ps.png';
  var sentRed = 'images/ns.png';
  var sentGrey = 'images/os.png';
  var sentGreenMouse = 'images/pshl.png';
  var sentRedMouse = 'images/nshl.png';
  var sentGreyMouse = 'images/oshl.png';
  var sentGreenHL = 'images/pshl.png';
  var sentRedHL = 'images/nshl.png';
  var sentGreyHL = 'images/oshl.png';
  var latest = 'images/latest.png';
  var latestHL = 'images/latesthl.png';
  var latestMouse = 'images/latesthl.png';
  var leftImgGreen = 'images/Green.png';
  var leftImgRed = 'images/Red.png';
  var leftImgGrey = 'images/Grey.png';
  var nickBorder = 'images/nick.png';
  var leftImgGreenHL = 'images/GreenHighlight.png';
  var leftImgRedHL = 'images/RedHighlight.png';
  var leftImgGreyHL = 'images/GreyHighlight.png';
  var itemHighlightBG = 'images/Highlight.png';

   
  var strMain = "";
  var feedname = defaultfeedname;
  var fullPageUrl = defaultmegaurl;
  var hasMega = false;
  var showAd = false;
  var partnerSymbol = '';
  var cntImpression = false;

   
  var first = 1; 
  var height = 37;

   
  var compTitleWidth = 50;
  var textTruncate = true;
  if ( browser != "ffWin" && browser != "ffMac" ) {
    textTruncate = false;
  }

   
  var NICK_NEG_COLOR_NORMAL   = '#FF0000';  
  var NICK_OPEN_COLOR_NORMAL  = '#666666';  
  var NICK_POS_COLOR_NORMAL   = '#33CC33';  

   
  var frequency = 30000;   
  var slide_time = 500;
  var animation_rate = 50;
  var feedTimer = null;

   
  var articlesCategory = 'Articles';
  var p = new Array();   
  var p_index;
  var t_index;
  var timeLst = new Array();
  var clusterLst = new Array();
  var sentimentLst = new Array();
  var streaming_array = new Array();  
  var title_array = new Array();  
  var blink_array = new Array();  
  var start = 1;   
  var testFeedurl;
  var feed_title = null;
  var sector = null;
  var itemlist;
  var toProcess = new Array();
  var currentAnimation = null;
  var animation_queue = new Array();
  
  var animation_map = new Array();  
  var modified_currenttime = '';
  var companyTitle = '';
  var pageTracker = null;
  var selectedTabID;
  var hoveredArt = null;
  var globalTimeStamp;  
  var isInitialization = true; 
  var gaLoadTime = 600;  
  var gaCheckInterval = 50;  
  var adLoadTime = 1000;  
  var cntLoadTime = 300;  
  var scriptsInitialized = false;

   
  var tabFeedNames = new Array();
  var tabAnalyicTitle = new Array();
  
   
  var http_timeout = 3000; 

   
  var timerRunning = false;
  var zoneCity;
  var month_names = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  var nonDstCities = {'-12': 'International Date Line West', '-11': 'Samoa', '-10': 'Hawaii', '-9': 'Alaska', '-8': 'Silicon Valley',  '-7': 'Phoniex',  '-6': 'Regina', '-5': 'Panama', '-4.5': 'Caracas', '-4': 'Georgetown', '-3': 'Cayenne', '-2': 'Grytviken', '0': 'Accra', '1': ' Algeirs', '2': ' Tripoli', '3': 'Baghdad', '4': 'Abu Dhabi', '4.5': 'Kabul', '5': 'Tashkent', '5.5': 'Mumbai', '6.5': 'Rangoon', '7': 'Bangkok', '8': 'Beijing', '9': 'Tokyo', '9.5': 'Darwin', '10': 'Brisbane', '11': 'Magadan', '12': 'Auckland', '13': "Nuku'alofa" };
  var northDstCities = {'-9': 'Alaska', '-8': 'Silicon Valley', '-7': 'Denver', '-6': 'Chicago', '-5': 'New York', '-4': 'Halifax', '-3.5': "St. John's", '-3': 'Greenland', '-2': 'Grytviken', '0': 'London', '1': 'Rome', '2': 'Athens', '3': 'Moscow', '3.5': 'Tehran', '4': 'Baku', '5': 'Islamabad',  '6': 'Omsk', '7': 'Krasnoyarsk', '9': 'Yakutsk', '10': 'Vladivostok', '11': 'Magadan', '12': 'Anadyr'};
  var southDstCities = {'-3': 'Santiago', '-2': 'Buenos Aires', '10.5': 'Adelaide', '11': 'Sydney', '13': 'Wellington'};  


   
  if (!Array.indexOf){
    Array.prototype.indexOf = function(obj) {
      for(var i=0; i<this.length; i++){
        if(this[i]==obj)
          return i;
      }
      return -1;
    }
  }

  
  if (typeof Event == 'undefined') Event = new Object();

  Event.domReady = {
    add: function(fn) {
      if (Event.domReady.loaded) return fn();
      var observers = Event.domReady.observers;
      if (!observers) observers = Event.domReady.observers = [];
      observers[observers.length] = fn;

      if (Event.domReady.callback) return;
      Event.domReady.callback = function() {
        if (Event.domReady.loaded) return;
        Event.domReady.loaded = true;
        if (Event.domReady.timer) {
          clearInterval(Event.domReady.timer);
          Event.domReady.timer = null;
        }

        var observers = Event.domReady.observers;
        for (var i = 0, length = observers.length; i < length; i++) {
          var fn = observers[i];
          observers[i] = null;
          fn(); 
        }
        Event.domReady.callback = Event.domReady.observers = null;
      };

      var ie = !!(window.attachEvent && !window.opera);
      var webkit = navigator.userAgent.indexOf('AppleWebKit/') > -1;
      if (document.readyState && webkit) {
        Event.domReady.timer = setInterval(function() {
          var state = document.readyState;
          if (state == 'loaded' || state == 'complete')
            Event.domReady.callback();
        }, 50);
      } else if (document.readyState && ie) {
        var src = (window.location.protocol == 'https:') ? '://0' : 'javascript:void(0)';
        document.write('<script type="text/javascript" defer="defer" src="' + src + '" ' + 'onreadystatechange="if (this.readyState == \'complete\') Event.domReady.callback();"' +'><\/script>');
      } else {
        if (window.addEventListener) {
          document.addEventListener("DOMContentLoaded", Event.domReady.callback, false);
          window.addEventListener("load", Event.domReady.callback, false);
        } else if (window.attachEvent) {
          window.attachEvent('onload', Event.domReady.callback);
        } else {
          var fn = window.onload;
          window.onload = function() {
            Event.domReady.callback();
            if (fn) fn();
          }
        }
      }
    }
  }

  Event.domReady.add(function(){
    parsing();
    initialize();
    getNewFeeds();
  });

} catch(err) { sg_handleError(err); }


function parsing() {

  
  
  
  
  var strHref = window.location.href;
  var urlParams = new Array();
  if (window.location.hash != '') {
    strHref = strHref.substring(0, strHref.length-window.location.hash.length);
  }

  try {
    if ( strHref.indexOf("?") > -1 ){
      var strQueryString = strHref.split("?")[1]
      var aQueryString = strQueryString.split("&");
      for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
        if (aQueryString[iParam].indexOf("=") > -1 ){
          var aParam = aQueryString[iParam].split("=");
          urlParams[aParam[0]] = aParam[1];
        }
      }
    }
  } catch(err) { sg_handleError(err);}


  

  strMain = unescape(urlParams["sg_mainpage_url"]);
  var urlMain = new Array();

  try {
    if ( strMain.indexOf("?") > -1 ){
      var strQueryString = strMain.split("?")[1]
      var aQueryString = strQueryString.split("&");
      for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
        if (aQueryString[iParam].indexOf("=") > -1 ){
          var aParam = aQueryString[iParam].split("=");
          urlMain[aParam[0]] = aParam[1];
        }
      }
    }
  } catch(err) { sg_handleError(err);}

  

  
  feedname = defaultfeedname;

  
  if ( feedForWidgetType ) {
    feedname = feedForWidgetType;
  }

  











  
  var parsedSymbol = null;
  partnerSymbol = '';
  try {
    if( urlParams["sg_widget_symbol"] != undefined ) {
      parsedSymbol = urlParams["sg_widget_symbol"];
      partnerSymbol = parsedSymbol;
    }
    if (parsedSymbol) {
      feedname = parsedSymbol.toUpperCase();
      if (parsedSymbol in name_mapping){
        feedname = name_mapping[parsedSymbol];
      }
    }
  } catch(err) {
    sg_handleError(err);
  }

  
  try {
    if( urlMain["sg_widget_symbol"] != undefined ) {
      parsedSymbol = urlMain["sg_widget_symbol"];
    }
    if (parsedSymbol) {
      feedname = parsedSymbol.toUpperCase();
      if (parsedSymbol in name_mapping){
        feedname = name_mapping[parsedSymbol];
      }
    }
  } catch(err) {
    sg_handleError(err);
  }

  
  var skygrid_widget_feed = null;
  try {
    if( urlParams["skygrid_widget_feed"] != undefined ) {
      skygrid_widget_feed = urlParams["skygrid_widget_feed"];
    }
    if (skygrid_widget_feed) {
      feedname = skygrid_widget_feed;
    }
  } catch(err) {
    sg_handleError(err);
  }

  
  try {
    if(  urlMain["skygrid_widget_feed"] != undefined ) {
      skygrid_widget_feed = urlMain["skygrid_widget_feed"];
    }
    if (skygrid_widget_feed) {
      feedname = skygrid_widget_feed;
    }
  } catch(err) {
    sg_handleError(err);
  }

  
  fullPageUrl = defaultmegaurl;
  try{
    var page_link = null;
    if( urlParams["fullPageLink"] != undefined ) {
      page_link = urlParams["fullPageLink"];
    }
    if (page_link) {
      page_link_str = unescape(page_link);
      fullPageUrl = page_link_str;
    }
  } catch(err) {
    sg_handleError(err);
  }

  
  var sg_large_content = null;
  try{
    var page_content = null;
    if(  urlParams["sg_large_content"] != undefined ) {
      page_content = urlParams["sg_large_content"];
    }
    if (page_content) {
      sg_large_content = page_content;
    }
  } catch(err) {
    sg_handleError(err);
  }

  
  feedurl = feedPath + '/' + feedname + '.xml';
  defaultfeedurl = feedPath + '/' + defaultfeedname + '.xml';

  
  page_param = null;
  if (sg_large_content  !=  null) {
    page_param = 'sg_widget_symbol=' + sg_large_content;
  }

  
  if (page_param  !=  null) {
    fullPageLink += '?' + page_param;
  }

  
  hasMega = false;
  if ( fullPageUrl != defaultmegaurl ) {
    hasMega = true;
  }

  
  showAd = false;
  try {
    if( urlParams["skygrid_widget_showad"] != undefined ) {
      showAd = ( urlParams["skygrid_widget_showad"].toLowerCase() == 'true' );
    }
  } catch(err) {
    sg_handleError(err);
  }

  
  cntImpression = false;
  try {
    if( urlParams["skygrid_widget_icnt"] != undefined ) {
      cntImpression = ( urlParams["skygrid_widget_icnt"].toLowerCase() == 'true' );
    }
  } catch(err) {
    sg_handleError(err);
  }
  

}


function hide_dom(last_item) {
  try {
    last_item.style.display = "none";
  } catch(err) { sg_handleError(err); }
}


function show_dom(last_item) {
  try {
    last_item.style.display = "";
  } catch(err) { sg_handleError(err); }
} 




function resetTabs(symbol, companyTitle, sector) {
        
    var t1 = document.getElementById("tab1");
    var t2 = document.getElementById("tab2");
    var t3 = document.getElementById("tab3");

    t1.style.display = "none";
    t2.style.display = "none";
    t3.style.display = "none";

    
    if (feedname == defaultfeedname) {
      tabFeedNames["tab1"] = defaultfeedname;
      tabAnalyicTitle["tab1"] = "All News";
      t1.innerHTML = "All News";
    } else {
      tabFeedNames["tab1"] = symbol;
      tabAnalyicTitle["tab1"] = symbol.toUpperCase();
      t1.innerHTML = companyTitle.substring(0, maxTabChars).sgHtmlEncode();
    }
    t1.setAttribute("class", "tab tabSelected");
    t1.setAttribute("className", "tab tabSelected");
    
    
    tabFeedNames["tab2"] = 'skyview';
    tabAnalyicTitle["tab2"] = 'SkyView';
    t2.innerHTML = skyviewContent;
    t2.setAttribute("class", "tab");
    t2.setAttribute("className", "tab");

    
    if (sector == null) {
      sector = "finance";
    }
    tabFeedNames["tab3"] = sector.toLowerCase();
    tabAnalyicTitle["tab3"] = sector.toLowerCase();
    t3.innerHTML = formatSectorTitle( sector.sgHtmlEncode() );
    t3.setAttribute("class", "tab tabLast");
    t3.setAttribute("className", "tab tabLast");

    
    t1.style.display = "block";
    t2.style.display = "block";
    t3.style.display = "block";
}


     
function initialize() {
   try {
    
    startclock(); 

    
    document.getElementById('help_text').innerHTML = helpText;
    document.getElementById('skyview_help_text').innerHTML = skyviewHelpText;
    document.getElementById('sent_help_text').innerHTML = sentHelpText;
    document.getElementById('logo_link').setAttribute('href', registrationURL);
    document.getElementById('logo_link').setAttribute('target', '_blank');

    if ( hasMega ) {
      if ( titleAsLink ) {
        
        var titleHtml = '<a id="titleLink" onClick="trackTitleLink()">' + titleText + '</a>';
        document.getElementById('sector').innerHTML = titleHtml;
        document.getElementById('titleLink').setAttribute('href', fullPageUrl);
        document.getElementById('titleLink').setAttribute('target', '_top');
      } else {
        document.getElementById('sector').innerHTML = titleText;
      }

      
      document.getElementById('skygrid_link').innerHTML = linkText;
      document.getElementById('skygrid_link').setAttribute('href', fullPageUrl);
      document.getElementById('skygrid_link').setAttribute('target', '_top');
    } else {
      
      document.getElementById('sector').innerHTML = titleText;

      
      document.getElementById('skygrid_link').innerHTML = linkText;
      document.getElementById('skygrid_link').setAttribute('href', registrationURL);
      document.getElementById('skygrid_link').setAttribute('target', '_blank');
    }

    reset();

 } catch(err) { sg_handleError(err); }
}

 
function resetInternalVariables() {
    p = new Array();   
    timeLst = new Array();
    clusterLst = new Array();
    sentimentLst = new Array();
    title_array = new Array();  
    blink_array = new Array();  
    start = 1;
    feed_title = null;
    toProcess = new Array();
    currentAnimation = null;
    animation_queue = new Array();
    animation_map = new Array();  
    modified_currenttime = '';
    hoveredArt = null;

    
    self.clearInterval(feedTimer);
    feedTimer = null;
    for(var i=0; i < streaming_array.length; i++) {
      self.clearTimeout(streaming_array[i]);
    }
    streaming_array = new Array();
}

 
function reset() {
  try {
    resetInternalVariables();

    var container = document.getElementById("widgetContainer");
    document.getElementById('selected').value = 'time';

    
    p[0] = article_num + 1;
    for (var i = 1; i <= article_num; i++) {
      p[i] = i;
      if (showClusters)
        clusterLst[i-1] = 0;
      sentimentLst[i-1] = 0;
    }
    timeLst = p.slice(1);

    
    updateOpacity( document.getElementById('grey_flash'), 0 );
    updateOpacity( document.getElementById('green_flash'), 0 );
    updateOpacity( document.getElementById('red_flash'), 0 );
    document.getElementById('green').src = sentGreen;
    document.getElementById('red').src = sentRed;
    document.getElementById('grey').src = sentGrey;
    document.getElementById('time').src = latestHL;

    
    for (var i = 1; i <= article_num + 1; i++) {
      if (document.getElementById("t" + i) != null) {
        var table = document.getElementById("t" + i);
        table.style["top"] = first+height*(i-1);
        hide_dom(table);  

        
        document.getElementById("c0"+i).src = nickBorder;
        updateOpacity(document.getElementById("c2"+i), 0);
        updateOpacity(document.getElementById("c3"+i), 0);

        
        var art_link = document.getElementById("a"+i);
        art_link.setAttribute("class", "article");
        art_link.setAttribute("className", "article");
        art_link.innerHTML = "";
  
        var src = document.getElementById("s"+i);
        src.setAttribute("class", "source");
        src.setAttribute("className", "source");
        src.innerHTML = "";
      } else {
        
      }
    }
  } catch(err) { sg_handleError(err); }
} 


 
var global_animation_timer = self.setInterval("process_animation()", animation_rate);




function process_animation() {
  try {
    
    for (key in animation_map) {
      var a_obj = animation_map[key];
      if (a_obj != null ) {
        if (a_obj[0] == "slide") {
          slide(document.getElementById(key), a_obj[1], a_obj[2], a_obj[3], a_obj[4], a_obj[5]);
        } else if (a_obj[0] == "fade") {
          fade_action(document.getElementById(key), a_obj[1], a_obj[2], a_obj[3], a_obj[4], a_obj[5]);
        }
      }
    }
  } catch(err) { sg_handleError(err); }
}




function easeout(t,b,c,d) {
  var k = t/d;
  return -c * k * (k - 2) + b;
}




function slide(elm, start_time, startTop, target, duration, callback) {
  var d = new Date();
  var current_time = d.getTime();
  var final_time = start_time+duration;
  var done = false;
  if (current_time >= final_time) {
    current_time = final_time;
    done = true;
  }

  updateTop(elm, easeout(current_time-start_time, startTop, target, duration));
  if (done) {
    animation_map[elm.id] = null;
    
    if (callback)
      callback();
    callback = null;
  }
}







function slideTo(elm, start_time, target, duration, callback) {
  try {
    var startTop = parsePx(elm.style.top);
    
    
    animation_map[elm.id] = ["slide", start_time, startTop, target-startTop, duration, callback];
  } catch(err) { sg_handleError(err); }
} 





function fade_action(elm, start_time, start, target, duration, callback) {
  var d = new Date();
  var current_time = d.getTime();
  var final_time = start_time+duration;
  var done = false;
  if (current_time >= final_time) {
    current_time = final_time;
    done = true;
  }

  updateOpacity(elm, easeout(current_time-start_time, start, target, duration));
  if (done) {
    animation_map[elm.id] = null;
    
    if (callback)
      callback();
    callback = null;
  }
}








function fade(elm, start_time, direction, duration, callback) {
  try {
    var start = getInitialOpacity(elm, direction);
    var target = 0;

    if (direction == "fadeIn")
      target = 1;

    
    if (animation_map[elm.id] != null)
      animation_map[elm.id]= null;

                             
    animation_map[elm.id] = ["fade", start_time, start, target-start, duration, callback];

  } catch(err) { sg_handleError(err); }
} 

function parsePx(pxValue) {
  try {
    var i = pxValue.indexOf('px')
    var numString = pxValue.substring(0, i);
    return parseFloat(numString);
  } catch(err) { sg_handleError(err); }
} 

function updateTop(elm, target) {
  try {
    elm.style["top"] = target + "px";
  } catch(err) { sg_handleError(err); }
} 

function parseIEOpacity(filterString) {
  try {
    var start = filterString.indexOf("(opacity=");
    var end = filterString.indexOf(")");
    var numString = filterString.substring(start+9, end);
    return parseFloat(numString) / 100;
  } catch(err) { sg_handleError(err); }
} 

function getInitialOpacity(elm, direction) {
  var start;
  try {
    if (elm.filters) { 
      if (elm.style.filter == "") {
        
        if (direction == "fadeIn") {
          setIEOpacity(elm, 0);
          start = 0;
        } else {
          setIEOpacity(elm, 1);
          start = 1;
        } 
      } else {
        start = parseIEOpacity(elm.style.filter);
      } 
    } else { 
      if (elm.style.opacity == "") {
        
        if (direction == "fadeIn") {
          elm.style.opacity = 0;
          start = 0;
        } else {
          elm.style.opacity = 1;
          start = 1;
        } 
      } else {
        start = parseFloat(elm.style.opacity);
      } 
    } 

    return start;
  } catch(err) { sg_handleError(err); }
} 

function setIEOpacity(elm, value) {
  try {
    var elem = elm.style;
    
    
    elem.zoom = 1;

    
    elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
                  (parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
  } catch(err) { sg_handleError(err); }
} 

function updateOpacity(elm, value) {
  try {
    if (elm.filters) { 
      setIEOpacity(elm, value);
    } else {
      elm.style.opacity = value;
    }
  } catch(err) { sg_handleError(err); }
} 


function play_animation() {
  try {
    var animation_obj = animation_queue[0]
    var d = new Date();
    var start_time = d.getTime();
    if (animation_obj[0] == "streaming") {
      
      hide_dom(animation_obj[article_num+5]);
      animation_obj[5].style["top"] = first;
      show_dom(animation_obj[5]);

      for (var i = 6; i <= article_num+3; i++) {
        slideTo(animation_obj[i], start_time, first+height*(i-5), slide_time);
      }

      
      fade(animation_obj[1], start_time, "fadeIn", 1000);
      fade(animation_obj[2], start_time, "fadeIn", 1000, function(){
        var d = new Date();
        fade(animation_obj[1], d.getTime(), "fadeOut", 1000);
        fade(animation_obj[2], d.getTime(), "fadeOut", 1000, function(){
          var d = new Date();
          fade(animation_obj[1], d.getTime(), "fadeIn", 1000);
          fade(animation_obj[2], d.getTime(), "fadeIn", 1000, function(){
            var d = new Date();
            fade(animation_obj[1], d.getTime(), "fadeOut", 1000);
            fade(animation_obj[2], d.getTime(), "fadeOut", 1000, function(){
              var d = new Date();
              fade(animation_obj[1], d.getTime(), "fadeIn", 1000);
              fade(animation_obj[2], d.getTime(), "fadeIn", 1000, function(){
                var d = new Date();
                fade(animation_obj[1], d.getTime(), "fadeOut", 1000);
                fade(animation_obj[2], d.getTime(), "fadeOut", 1000, function(){
                  try {
                    article_txt = blink_array.shift();
                    source = blink_array.shift();

                    article_txt.setAttribute("class", "article");
                    article_txt.setAttribute("className", "article");

                    source.setAttribute("class", "source ");
                    source.setAttribute("className", "source");
                    
                  } catch(err) { sg_handleError(err); }
                });
              });
            });
          });
        });
      });
      
      fade(animation_obj[3], start_time, "fadeIn", 1000, function(){
        var d = new Date();
        fade(animation_obj[3], d.getTime(), "fadeOut", 1000, function(){
          var d = new Date();
          fade(animation_obj[3], d.getTime(), "fadeIn", 1000, function(){
            var d = new Date();
            fade(animation_obj[3], d.getTime(), "fadeOut", 1000, function(){
              var d = new Date();
              fade(animation_obj[3], d.getTime(), "fadeIn", 1000, function(){
                var d = new Date();
                fade(animation_obj[3], d.getTime(), "fadeOut", 1000);
              });
            });
          });
        });
      });
      
      slideTo(animation_obj[article_num+4], start_time, first+height*(article_num-1), slide_time, function() {
        
        try {
          animation_queue.shift();
          if (animation_queue.length > 0)
            play_animation();
        } catch(err) { sg_handleError(err); }
      });
    } else if (animation_obj[0] == "sort") {
      
      for (var i = 1; i < article_num; i++) {
        slideTo(animation_obj[i], start_time, first+height*(i-1), slide_time);
      }

      slideTo(animation_obj[article_num], start_time, first+height*(article_num-1), slide_time, function() {
        
        try {
          animation_queue.shift();
          if (animation_queue.length > 0)
            play_animation();
        } catch(err) { sg_handleError(err); }
      });
    }
  } catch(err) { sg_handleError(err); }
}


function streamOnce() {
  try {
    
    var blink_bkgrd = document.getElementById("c2"+p[0]);
    var blink_icon = document.getElementById("c3"+p[0]);
    
    var sent = document.getElementById('grey_flash');
    if (blink_bkgrd.src.match('Red') != null ){
      
      sent = document.getElementById('red_flash');
    } else if (blink_bkgrd.src.match('Green') != null){
      sent = document.getElementById('green_flash');
    }
    sent.style.visibility = 'visible';

    
    var animation_obj_1 = ["streaming", blink_bkgrd, blink_icon, sent, null, document.getElementById("t"+p[0])];
    for (var i = 1; i <= article_num; i++) {
      animation_obj_1.push(document.getElementById("t"+p[i]));
    }

    
    animation_queue.push(animation_obj_1);

    
    current_article = document.getElementById("a"+p[0]);
    current_article.setAttribute("class", "article articleFlash");
    current_article.setAttribute("className", "article articleFlash");
    
    blink_array.push(current_article);

    
    source = document.getElementById("s"+p[0]);
    source.setAttribute("class", "source sourceFlash");
    source.setAttribute("className", "source sourceFlash");
    
    blink_array.push(source);

    if (animation_queue.length == 1)
        play_animation();

    
    var temp = p[0];
    p[0] = p[article_num];
    for (var i = article_num; i >= 2; i--) {
      p[i] = p[i-1];
    }
    p[1] = temp;
  } catch(err) { sg_handleError(err); }
} 

function processOnce(i) {
  try {
    
    if (i >= itemlist.length)
      return;
    
    if (!continuous)
      title_array[itemlist[i].attributes.getNamedItem("id").value] = itemlist[i].getElementsByTagName('link')[0].firstChild.nodeValue;
    
    var evict = timeLst.indexOf(p[article_num]);
    timeLst.splice(evict, 1);
    timeLst.unshift(p[0]);

    if (showClusters) {
      if (clusterLst[3] == 0) {
        clusterLst.pop();
      } else {
        clusterLst.splice(evict, 1);
      }
      var bkText = document.getElementById("c1"+p[0]);
      var frText = document.getElementById("c3"+p[0]);
      if (itemlist[i].getElementsByTagName('feedcategories')[0].firstChild.getAttribute("cardinality")) {
        var card = Math.min(99, itemlist[i].getElementsByTagName('feedcategories')[0].firstChild.getAttribute("cardinality"));
        bkText.innerHTML = card;
        bkText.style.visibility = 'visible';
        frText.innerHTML = card;
        frText.style.visibility = 'visible';
        clusterLst.unshift(card);
      } else {
        bkText.innerHTML = '1';
        bkText.style.visibility = 'hidden';
        frText.innerHTML = '';
        frText.style.visibility = 'hidden';
        clusterLst.unshift("1");
      }
    }

    var bkText = document.getElementById("c1"+p[0]);
    var frText = document.getElementById("c3"+p[0]);
    if (showCompTitles) {
      var compTitle = itemlist[i].getElementsByTagName('feedcategories')[0].firstChild.getAttribute(compTitleType);
      if (!compTitle) {
        compTitle = companyTitle;
      }
      
      if (compTitle) {
        var rulerCompTitle = document.getElementById('rulerCompTitle');
        var nameLst = compTitle.split(' ');
        for (var n = nameLst.length; n > 0; n--) {
          compTitle = nameLst.slice(0,n).join(' ');
          if (compTitle.charAt(compTitle.length-1) == ',' || compTitle.charAt(compTitle.length-1) == '.' || compTitle.charAt(compTitle.length-1) == '-')
            compTitle = compTitle.substring(0,compTitle.length-1);
          rulerCompTitle.innerHTML = compTitle.sgHtmlEncode();
          if (rulerCompTitle.offsetWidth < compTitleWidth) {
            compTitle = compTitle;
            break;
          }
        }
        while (rulerCompTitle.offsetWidth >= compTitleWidth) {
          compTitle = compTitle.substring(0,compTitle.length-1);
          rulerCompTitle.innerHTML = compTitle.sgHtmlEncode();
        }
        bkText.innerHTML = compTitle.sgHtmlEncode();
        bkText.style.visibility = 'visible';
        frText.innerHTML = compTitle.sgHtmlEncode();
        frText.style.visibility = 'visible';
      } else {
        bkText.style.visibility = 'hidden';
        frText.style.visibility = 'hidden';
      }
    }

    var sentiment = itemlist[i].getElementsByTagName('feedcategories')[0].firstChild.getAttribute("sentiment");
    var bkgrd, flash;
    if (sentimentLst[article_num-1] == 0) {
      sentimentLst.pop();
    } else {
      sentimentLst.splice(evict, 1);
    }
    if (sentiment == "-1") {
      bkgrd = leftImgRed;
      flash = leftImgRedHL;
      bkText.style.color = NICK_NEG_COLOR_NORMAL;
      sentimentLst.unshift('red');
    } else if (sentiment == "1") {
      bkgrd = leftImgGreen;
      flash = leftImgGreenHL;
      bkText.style.color = NICK_POS_COLOR_NORMAL;
      sentimentLst.unshift('green');
    } else {
      bkgrd = leftImgGrey;
      flash = leftImgGreyHL;
      bkText.style.color = NICK_OPEN_COLOR_NORMAL;
      sentimentLst.unshift('grey');
    }
    var flash_img = document.getElementById("c2"+p[0]);
    flash_img.src = flash;
    flash_img.style.visibility = 'visible';
    
    var title = itemlist[i].getElementsByTagName('title')[0].firstChild.nodeValue;
    var article = document.getElementById("a"+p[0]);
    article.setAttribute('title', title);
    if (textTruncate) {
      var rulerArticle = document.getElementById("rulerArticle");
      rulerArticle.innerHTML = title;
      var titleWidth = rulerArticle.offsetWidth;
      if (titleWidth > articleMaxLen) {
        rulerArticle.innerHTML = title + '...';
        while (titleWidth > articleMaxLen) {
          title = title.substring(0,title.length-1);
          rulerArticle.innerHTML = title + '...';
          titleWidth = rulerArticle.offsetWidth;
        }
        title = title + '...';
      }
    }
    var articleID = itemlist[i].getAttribute('id');
    article.style.visibility = 'visible';
    article.setAttribute('href', itemlist[i].getElementsByTagName('link')[0].firstChild.nodeValue);
    article.setAttribute('target', '_blank');
    setArticleOnclick(article, '' + p[0], '' + articleID);
    article.innerHTML = title.sgHtmlEncode();

    var pubDate = itemlist[i].getElementsByTagName('pubDate')[0].firstChild.nodeValue;
    pubDate = pubDate.split(' ');
    pubDate = convertTime(pubDate);
    var src = pubDate + ' - ' + itemlist[i].getElementsByTagName('source')[0].firstChild.nodeValue;
    var source = document.getElementById("s"+p[0]);
    if (textTruncate) {
      var rulerSource = document.getElementById("rulerSource");
      rulerSource.innerHTML = src;
      var srcWidth = rulerSource.offsetWidth;
      if (srcWidth > articleMaxLen) {
        rulerSource.innerHTML = src + '...';
        while (srcWidth > articleMaxLen) {
          src = src.substring(0,src.length-1);
          rulerSource.innerHTML = src + '...';
          srcWidth = rulerSource.offsetWidth;
        }
        src = src + '...';
      }
    }
    source.innerHTML = src.sgHtmlEncode();

  } catch(err) { sg_handleError(err); }
} 
   

function streaming(i) {
  if(i == undefined) {
    return;
  }
  streaming_array.shift();
  processOnce(i);
  streamOnce();
} 


 
function checkData(item) {
  try {
    item.getElementsByTagName('feedcategories')[0].firstChild.getAttribute('sentiment');
    item.getElementsByTagName('title')[0].firstChild.nodeValue;
    item.getElementsByTagName('link')[0].firstChild.nodeValue;
    item.getElementsByTagName('source')[0].firstChild.nodeValue;
    item.getElementsByTagName('pubDate')[0].firstChild.nodeValue;
    item.attributes.getNamedItem('id').value;
    return true;
  } catch (err) { return false; }
} 


 
function processdata(start, interval) {
  try {
    toProcess = [];
    for (var i = start-1; i > -1; i--) {
      if (i >= itemlist.length)
        continue;
      
      if (!checkData(itemlist[i]))
        continue;
      
      if (itemlist[i].attributes.getNamedItem("id").value in title_array) {
        
        continue;
      } else {
        toProcess.push(i);
      }
    }
    var len = toProcess.length;
    if (interval == 0)
      interval = frequency / len;
    for (var i = 0; i < len; i++) {
      var t = setTimeout("streaming(toProcess["+i+"])", i*interval);
      streaming_array.push(t);
    }
  } catch(err) { sg_handleError(err); }
} 


 
function refreshFeeds() {
  try {
    
    var xhrArgs = {
      type: "GET",
      url: feedurl ,
      dataType: "xml",
      cache: false,
      success: function (data) {
        try {
          itemlist = data.getElementsByTagName('item');
          processdata(itemlist.length, 0);
        } catch(err) { sg_handleError(err); }
      }, 

      error: function(error){
      }
    } 

    
    var http_request = null;
    try {
      http_request = new ActiveXObject("MSXML2.XMLHTTP");
    } catch(err) {
      http_request = new XMLHttpRequest();
    }

    http_request.onreadystatechange = function(){
      try{
        if (http_request.readyState ==4){
            if (http_request.status == 200) {
                
                var feedModified = false;
                if (http_request.status == 200) {
                    
                    modified_newtime = http_request.getResponseHeader("Last-Modified");
                   if ((modified_currenttime != modified_newtime) || (modified_newtime == null)) {
                       
                       modified_currenttime = modified_newtime;
                       feedModified = true;
                   }
                }
                
                if (feedModified || continuous)
                    var deferred = ajax(xhrArgs);
            }
            clearTimeout(xhrTimeout);
        }
      } catch(err){sg_handleError(err);clearTimeout(xhrTimeout);}
    }
    http_request.open("HEAD", feedurl, true);
    http_request.send(null);

    var xhrTimeout=setTimeout(function(){
        http_request.abort();
    }, http_timeout)

  } catch(err) { sg_handleError(err); }

   
  feedTimer = setTimeout("refreshFeeds()", frequency);

} 

function formatSectorTitle(feed_title) {
  var words  = feed_title.split(" ");
  for(var i=0; i<words.length; i++) {
    if(words[i] != "") {
      
      words[i] = words[i].substring(0,1).toUpperCase() + words[i].substring(1).toLowerCase();
    }
  }
  return words.join(" ");
}

function setFeedTitle(data) {
  



  if (feed_title == null) {
    try {
      feed_title = data.getElementsByTagName('title')[0].getAttribute("entity");  
      if(feed_title) {
        
      } else { 








      }
    } catch(err) { sg_handleError(err); }
    if (feed_title) {
      var title = feed_title.sgHtmlEncode();
      if ( title.length > 5 ) {
        title = title.substring(0, 5);
      }
      document.getElementById('feed_title').innerHTML = title;
      document.getElementById('on').style.display = 'inline';
      document.getElementById('feed_title').style.display = 'inline';
    } else {
      document.getElementById('on').style.display = 'none';
      document.getElementById('feed_title').style.display = 'none';
    }
  }
}

function processNewFeed(data) {
  try{
          document.getElementById('t'+(article_num+1)).style.visibility = 'visible';

          if ( sybOnTitle ) {
            setFeedTitle(data);
          }
            
          companyTitle = data.getElementsByTagName('title')[0].getAttribute(compTitleType);
          if( !companyTitle ) {
            companyTitle = "";
          }
          sector = feed_title = data.getElementsByTagName('title')[0].getAttribute('sector');
          if( isInitialization == true ) {
            resetTabs(feedname, companyTitle, sector);
            tabSelect('tab1', false);
            isInitialization = false;
          }
          
          itemlist = data.getElementsByTagName('item');

          var total_len = initStream + initDisplay;

          
          for (var i = initStream; i < itemlist.length; i++) {
            if (!checkData(itemlist[i]))
              continue;

            if (!continuous)
              title_array[itemlist[i].attributes.getNamedItem('id').value] = itemlist[i].getElementsByTagName('link')[0].firstChild.nodeValue;

            
            if (i >= total_len)
              continue;

            p_index = i - initStream + 1;
            t_index = i - initStream;
            timeLst[t_index] = p[p_index];

            if (showClusters) {
              if (itemlist[i].getElementsByTagName('feedcategories')[0].firstChild.getAttribute("cardinality")) {
                var card = Math.min(99, itemlist[i].getElementsByTagName('feedcategories')[0].firstChild.getAttribute("cardinality"));
                document.getElementById("c1"+p[p_index]).innerHTML = card;
                clusterLst[t_index] = card;
              } else {
                clusterLst[t_index] = "1";
              }
            }

            var nameText = document.getElementById("c1"+p[p_index]);
            if (showCompTitles) {
              var compTitle = itemlist[i].getElementsByTagName('feedcategories')[0].firstChild.getAttribute(compTitleType);
              if (!compTitle) {
                compTitle = companyTitle;
              }

              if (compTitle) {
                var rulerCompTitle = document.getElementById('rulerCompTitle');
                var nameLst = compTitle.split(' ');
                for (var n = nameLst.length; n > 0; n--) {
                  compTitle = nameLst.slice(0,n).join(' ');
                  if (compTitle.charAt(compTitle.length-1) == ',' || compTitle.charAt(compTitle.length-1) == '.' || compTitle.charAt(compTitle.length-1) == '-')
                    compTitle = compTitle.substring(0,compTitle.length-1);
                  rulerCompTitle.innerHTML = compTitle.sgHtmlEncode();
                  if (rulerCompTitle.offsetWidth < compTitleWidth) {
                    break;
                  }
                }
                while (rulerCompTitle.offsetWidth >= compTitleWidth) {
                  compTitle = compTitle.substring(0,compTitle.length-1);
                  rulerCompTitle.innerHTML = compTitle.sgHtmlEncode();
                }
                nameText.innerHTML = compTitle.sgHtmlEncode();
              }
            }

            var sentiment = itemlist[i].getElementsByTagName('feedcategories')[0].firstChild.getAttribute('sentiment');
            var bkgrd;
            if (sentiment == "-1") {
              bkgrd = leftImgRed;
              nameText.style.color = NICK_NEG_COLOR_NORMAL;
              sentimentLst[t_index] = 'red';
            } else if (sentiment == "0") {
              bkgrd = leftImgGrey;
              nameText.style.color = NICK_OPEN_COLOR_NORMAL;
              sentimentLst[t_index] = 'grey';
            } else if (sentiment == "1") {
              bkgrd = leftImgGreen;
              nameText.style.color = NICK_POS_COLOR_NORMAL;
              sentimentLst[t_index] = 'green';
            }
            var title = itemlist[i].getElementsByTagName('title')[0].firstChild.nodeValue;
            var article = document.getElementById("a"+p[p_index]);
            article.style.visibility = 'visible';
            article.setAttribute('title', title);
            if (textTruncate) {
              var rulerArticle = document.getElementById('rulerArticle');
              rulerArticle.innerHTML = title;
              var titleWidth = rulerArticle.offsetWidth;
              if (titleWidth > articleMaxLen) {
                rulerArticle.innerHTML = title + '...';
                while (titleWidth > articleMaxLen) {
                  title = title.substring(0,title.length-1);
                  rulerArticle.innerHTML = title + '...';
                  titleWidth = rulerArticle.offsetWidth;
                }
                title = title + '...';
              }
            } 
            var articleID = itemlist[i].getAttribute('id');
            article.setAttribute('href', itemlist[i].getElementsByTagName('link')[0].firstChild.nodeValue);
            article.setAttribute('target', '_blank');
            setArticleOnclick(article, ''+p[p_index], ''+articleID);
            article.innerHTML = title.sgHtmlEncode();

            var pubDate = itemlist[i].getElementsByTagName('pubDate')[0].firstChild.nodeValue;
            pubDate = pubDate.split(' ');
            pubDate = convertTime(pubDate);
            var src = pubDate + ' - ' + itemlist[i].getElementsByTagName('source')[0].firstChild.nodeValue;
            var source = document.getElementById("s"+p[p_index]);
            if (textTruncate) {
              var rulerSource = document.getElementById('rulerSource');
              rulerSource.innerHTML = src;
              var srcWidth = rulerSource.offsetWidth;
              if (srcWidth > articleMaxLen) {
                rulerSource.innerHTML = src + '...';
                while (srcWidth > articleMaxLen) {
                  src = src.substring(0,src.length-1);
                  rulerSource.innerHTML = src + '...';
                  srcWidth = rulerSource.offsetWidth;
                }
                src = src + '...';
              }
            }
            source.innerHTML = src.sgHtmlEncode();
            show_dom( document.getElementById("t"+p[p_index]) );
          } 
          
          processdata(initStream, initStreamInterval);

           
          if (feedTimer == null)
            feedTimer = setTimeout("refreshFeeds()", frequency);

          
          if( !scriptsInitialized ) {
            initExtScripts();
            scriptsInitialized = true;
          }

  } catch(err) { sg_handleError(err); }
} 

function initExtScripts() {
  try {
    
    if( cntImpression ) {
      var adCnt = document.createElement('iframe');
      adCnt.style.display = "none";
      adCnt.style.width = "0px";
      adCnt.style.height = "0px";
      setTimeout( function() {
        adCnt.src = "icnt.html";
        document.body.appendChild(adCnt);
        }, cntLoadTime);
    }
    
    
    setTimeout( function() {
        var e = document.createElement('script');
        e.setAttribute('language','javascript');
        e.setAttribute('type', 'text/javascript');
        e.setAttribute('src','http://www.google-analytics.com/ga.js'); document.body.appendChild(e);
      }, gaLoadTime);


    var google_analytics_timer = setInterval( function() {
      if (typeof(_gat) == 'object') {
        try {
            pageTracker = _gat._getTracker(trackerID);
        } catch(err) { sg_handleError(err);  }

        try {
            pageTracker._trackPageview();
        } catch (err) { sg_handleError(err); }

        try {
            pageTracker._trackEvent(widgetID, 'WidgetStart', feedname + "," + widgetPage);
        } catch(err) { sg_handleError(err); }
        clearInterval(google_analytics_timer);
      }
    }, gaCheckInterval);

    
    if( showAd ) {
      var adCon = document.getElementById('adContainer');
      adCon.style.display = "block";
      setTimeout( function() {


         document.getElementById('adContainer').src = "adtag.html";
        }, adLoadTime);
    }

    scriptsInitialized = true;
  } catch(err)  { sg_handleError(err); }
}

function retryGetNewFeeds() {
  try{
    var xhrArgs = {
      type: "GET",
      url: feedurl,
      cache: false,
      dataType: "xml",
      success: function(data){
        processNewFeed(data)
      },
      error: function(error){
        
        retryGetNewFeeds();
      }
    } 

    
    ajax(xhrArgs);

  } catch(err) { sg_handleError(err); }
}

 
function getNewFeeds() {
  var timer = null; 
  try {
    
    var myTimeStamp = (new Date()).getTime();
    globalTimeStamp = myTimeStamp;

    var xhrArgs = {
      type: "GET",
      url: feedurl,
      cache: false,
      dataType: "xml",
      success: function(data){
        
        if( myTimeStamp <  globalTimeStamp ) {
          return;
        }
        processNewFeed(data);
        if( !scriptsInitialized ) {
          initExtScripts();
          scriptsInitialized = true;
        }
      }, 

      error: function(error){
        feedurl = defaultfeedurl;
        feedname = defaultfeedname;

        
        if( myTimeStamp <  globalTimeStamp ) { 
          return;
        }
    
        retryGetNewFeeds();
      } 
  } 
  
  
  ajax(xhrArgs);

  } catch(err) { sg_handleError(err); }

 } 


function contains(a, obj){
  try {
    for (var i = 0; i < a.length; i++) {
      if (a[i] === obj)
        return true;
    }
  } catch(err) { sg_handleError(err); }
  return false;
} 

function convertTime(pubDate) {
  try {
    var d = new Date();
    var month;
    var days30 = [4, 6, 9, 11];
    var days31 = [1, 3, 5, 7, 8, 10, 12];

    switch(pubDate[2]) {
      case 'Jan':
        month = 1;
        break;
      case 'Feb':
        month = 2;
        break;
      case 'Mar':
        month = 3;
        break;
      case 'Apr':
        month = 4;
        break;
      case 'May':
        month = 5;
        break;
      case 'Jun':
        month = 6;
        break;
      case 'Jul':
        month = 7;
        break;
      case 'Aug':
        month = 8;
        break;
      case 'Sep':
        month = 9;
        break;
      case 'Oct':
        month = 10;
        break;
      case 'Nov':
        month = 11;
        break;
      case 'Dec':
        month = 12;
        break;
      default:
        
    }

    var date = 1*pubDate[1];
    var time = pubDate[4].split(':');
    var hr = 1*time[0];
    var am_pm = 'am';
    hr = hr + getZoneOffset();
    if (hr < 0) {
      hr = hr + 24;
      if (date == 1) {
        month = month - 1;
        if (month == 0) {
          month = 12;
          year = year - 1;
        }
        if (contains(days31, month)) {
          date = 31;
        } else if (contains(days30, month)) {
          date = 30;
        } else if (year % 4 == 0) {
          date = 29;
        } else {
          date = 28;
        }
      } else {
        date = date - 1;
      }
    } else if (hr > 23) {
      hr = hr - 24;
      var cond1 = (month in days31 && date == 31);
      var cond2 = (month in days30 && date == 30);
      var cond3 = (month == 2 && (year%4 == 0) && date == 29);
      var cond4 = (month == 2 && (year%4 != 0) && date == 28);
      if (cond1 || cond2 || cond3 || cond4) {
        date = 1;
        month = month + 1;
        if (month == 13) {
          month = 1;
          year = year + 1;
        }
      } else {
        date = date + 1;
      }
    }
    var now = new Date();
    var m = (now.getMonth() == (month-1));
    var d = (now.getDate() == date);
    var year = 1*pubDate[3];
    var y = (now.getFullYear() == year);
    if (m && d && y) {
      date = '';
    } else {
      date = ' ' + month + '/' + date;
    }
    if (hr > 12) {
      hr = hr - 12;
      am_pm = 'pm';
    } else if (hr == 12) {
      am_pm = 'pm';
    } else if (hr == 0) {
      hr = 12;
    }
    return hr+':'+time[1]+am_pm+date;
  } catch (err) { return ''; }
} 

function getOffset(month) {
  try {
    var now = new Date();
    var sTime = new Date(now.getFullYear(), month, 1, 0, 0, 0, 0);
    var temp = sTime.toGMTString();
    var gmtTime = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
    var hoursDiff = (sTime -  gmtTime) / (1000 * 60 * 60);
    return hoursDiff;
  } catch (err) { throw err; }
}


function detectDST() {
  var offsetJan = getOffset(1);
  var offsetJuly = getOffset(7);
  return offsetJan - offsetJuly;
}

function getZoneOffset() {
  try {
   return -(new Date()).getTimezoneOffset() / 60;
  } catch (err) { return -8; } 
} 

  function stopclock (){
    if (timerRunning)
      clearInterval(timerID);
    timerRunning = false;
  }

function showtime () {
  var now = new Date();
  var month = month_names[now.getMonth()];
  var date = now.getDate();
  var hours = now.getHours();
  var minutes = now.getMinutes();
  var seconds = now.getSeconds();
  var timeValue = month + " " + date + ", " + ((hours >12) ? hours -12 :hours)
    if (timeValue == "0")
      timeValue = 12;
  timeValue += ((minutes < 10) ? ":0" : ":") + minutes
    timeValue += ((seconds < 10) ? ":0" : ":") + seconds
    timeValue += (hours >= 12) ? " PM" : " AM";
  var clock = document.getElementById("lbClock");
  clock.innerHTML = zoneCity + timeValue;
  clock.style.visibility = 'visible';
}

function startclock() {
  stopclock();

  
  var d = detectDST();
  var janOffset = "" + getOffset(1);
  if ( d == 0 ) 
    zoneCity = nonDstCities[janOffset];
  else if ( d < 0 ) 
    zoneCity = northDstCities[janOffset];
  else 
    zoneCity = southDstCities[janOffset];
  if( zoneCity == undefined ) {
    zoneCity = "";
  } else {
    zoneCity = zoneCity + ", ";
  }

  showtime();
  timerID = setInterval("showtime()",1000);
  timerRunning = true;
}

function setTabStyle(tab, isHovered, isSelected) {
  var tabStyle = "";

  if ( tab.getAttribute("class").indexOf("tabLast") != -1 ) {
    tabStyle = "tab tabLast";
  } else {
    tabStyle = "tab";
  }

  if (isHovered) {
    tabStyle = tabStyle + " tabHover";
  }

  if (isSelected) {
    tabStyle = tabStyle + " tabSelected";
  }
  
  tab.setAttribute("class", tabStyle);
  tab.setAttribute("className", tabStyle);
}

function tabMouseOver(tabID) {
  var tab = document.getElementById(tabID);
  if ( selectedTabID != tabID ) {
    setTabStyle(tab, true, false);
  } else {
    setTabStyle(tab, true, true);
  }
  if (tabFeedNames[tabID] == 'skyview') {
    document.getElementById("skyviewHelp").src = 'images/q11hl.png';
  }
}

function tabMouseOut(tabID) {
  var tab = document.getElementById(tabID);
  if ( selectedTabID != tabID ) { 
    setTabStyle(tab, false, false);
  } else {
    setTabStyle(tab, false, true);
  }
  if (tabFeedNames[tabID] == 'skyview') { 
    document.getElementById("skyviewHelp").src = 'images/q11.png';
  }
}

function tabSelect(tabID, needReset) {
  try {
    if  (selectedTabID && selectedTabID != tabID ) { 
      var selectedTab = document.getElementById(selectedTabID);
      setTabStyle(selectedTab, false, false);
   }

    if (selectedTabID != tabID) {
      
      var tab = document.getElementById(tabID);
      setTabStyle(tab, false, true);

      if (tabFeedNames[tabID] == 'skyview') {
        document.getElementById("skyviewHelp").src = 'images/q11.png';
      } else {
        document.getElementById("skyviewHelp").src = 'images/q11.png';
      }
      selectedTabID = tabID;


      
      if(needReset == true) {
        
        feedname = tabFeedNames[tabID];
        feedurl = feedPath + '/' + feedname + '.xml'; 
        reset();
        getNewFeeds();
        trackTabClick();
      }
    }

  } catch(err) { sg_handleError(err); }
}

function mouseOver(obj) {
  try {
    var selected = document.getElementById('selected').value;
    if (obj == 'time' && selected != 'time') {
      document.getElementById('time').src = latestMouse;
    } else if (obj == 'green' && selected != 'green') {
      document.getElementById('green').src = sentGreenMouse;
    } else if (obj == 'red' && selected != 'red') {
      document.getElementById('red').src = sentRedMouse;
    } else if (obj == 'grey' && selected != 'grey') {
      document.getElementById('grey').src = sentGreyMouse;
    }
  } catch(err) { sg_handleError(err); }
} 

function mouseOut(obj) {
  try {
    var selected = document.getElementById('selected').value;
    if (obj == 'time' && selected != 'time') {
      document.getElementById('time').src = latest;
    } else if (obj == 'green' && selected != 'green') {
      document.getElementById('green').src = sentGreen;
    } else if (obj == 'red' && selected != 'red') {
      document.getElementById('red').src = sentRed;
    } else if (obj == 'grey' && selected != 'grey') {
      document.getElementById('grey').src = sentGrey;
    }
  } catch(err) { sg_handleError(err); }
} 

function sortBy(obj) {
  try {
    document.getElementById('selected').value = obj;
    var time = document.getElementById('time');
    var green = document.getElementById('green');
    var red = document.getElementById('red');
    var grey = document.getElementById('grey');

    if (obj == 'time') {
      try {
        if( pageTracker )
          pageTracker._trackEvent(widgetID, 'SortLatest', feedname);
      } catch(err) { sg_handleError(err); }
      time.src = latestHL;
    } 
    else {
      time.src = latest;
    }

    if (obj == 'green') {
      try {
        if( pageTracker )
          pageTracker._trackEvent(widgetID, 'SortGood', feedname);
      } catch(err) { sg_handleError(err); }
      green.src = sentGreenHL;
    } else {
      green.src = sentGreen;
    }

    if (obj == 'red') {
      try {
        if( pageTracker )
          pageTracker._trackEvent(widgetID, 'SortBad', feedname);
      } catch(err) { sg_handleError(err); }
      red.src = sentRedHL;
    } else {
      red.src = sentRed;
    }

    if (obj == 'grey') {
      try {
        if( pageTracker )
          pageTracker._trackEvent(widgetID, 'SortOpen', feedname);
      } catch(err) { sg_handleError(err); }
      grey.src = sentGreyHL;
    } else {
      grey.src = sentGrey;
    }

     
    function sortSize(a,b) {
      var x = timeLst.indexOf(a);
      var y = timeLst.indexOf(b);
      if (clusterLst[x] == 0) {
        if (clusterLst[y] == 0)
          return -1;
        return 1;
      } else if (clusterLst[y] == 0) {
        return -1;
      } else if (clusterLst[x] != clusterLst[y]) {
        return clusterLst[y] - clusterLst[x];
      } else {
        return x - y;
      }
    } 

     
    function sortSentiment(a, b) {
      var x = timeLst.indexOf(a);
      var y = timeLst.indexOf(b);
      if (sentimentLst[x] == 0) {
        if (sentimentLst[y] == 0)
          return -1;
        return 1;
      } else if (sentimentLst[y] == 0) {
        return -1;
      } else if (sentimentLst[x] == obj && sentimentLst[y] != obj) {
        return -1;
      } else if (sentimentLst[x] != obj && sentimentLst[y] == obj) {
        return 1;
      } else {
        return x - y;
      }
    } 

    var onScreen = p.slice(1);
    if (obj == 'time') {
      onScreen = timeLst;
    } else if (obj == 'size') {
      onScreen.sort(sortSize);
    } else {
      onScreen.sort(sortSentiment);
    }
    p = [p[0]].concat(onScreen);

    
    var animation_obj_1 = ["sort"];
    for (var i = 1; i <= article_num; i++) {
      animation_obj_1.push(document.getElementById("t"+p[i]));
    }

    animation_queue.push(animation_obj_1);
    if (animation_queue.length == 1)
      play_animation();

  } catch(err) { sg_handleError(err); }
} 

function showHelpPopup(Id) {
  try {
    document.getElementById(Id).style.visibility = 'visible';
  } catch(err) { sg_handleError(err); }
} 

function hideHelpPopup(Id) {
  try {
    document.getElementById(Id).style.visibility = 'hidden';
  } catch(err) { sg_handleError(err); }
} 

    
 
function trackArticle(aID, id) {
  try {
    if( pageTracker ) {
      document.getElementById('a'+aID).blur();
      pageTracker._trackEvent(widgetID, "ArticleClick", feedname);
      pageTracker._trackEvent(articlesCategory, id, widgetID + ',' + partnerSymbol + ',' + feedname + ',' + strMain);
    }
  } catch(err) { sg_handleError(err); }
} 

function trackSGLogo() {
  try {
    if( pageTracker ) {
      document.getElementById('logo_link').blur();
      pageTracker._trackEvent(widgetID, "ClickToSkyGridLogo", feedname);
    }
  } catch(err) { sg_handleError(err); }
} 

function trackSGLink() {
  try {
    if( pageTracker ) {
      document.getElementById('skygrid_link').blur();
      pageTracker._trackEvent(widgetID, "ClickToSkyGridLink", feedname);
    }
  } catch(err) { sg_handleError(err); }
} 

function trackTabClick() {
  try {
    if( pageTracker ) {
      var tabText = tabAnalyicTitle[selectedTabID];
      pageTracker._trackEvent(widgetID, "TabClick", tabText);
    }
  } catch(err) { sg_handleError(err); }
} 

function trackTitleLink() {
  try {
    if( pageTracker ) {
      pageTracker._trackEvent(widgetID, "ClickToTitleLink", tabAnalyicTitle["tab1"]);
    }
  } catch(err) { sg_handleError(err); }
} 

function sentLinkHover() {
    var s = document.getElementById("sentHelpLink");
    s.setAttribute("class", 'sentHelpLinkHover');
    s.setAttribute("className", 'sentHelpLinkHover'); 
}

function sentLinkUnHover() {
    var s = document.getElementById("sentHelpLink");
    s.setAttribute("class", 'sentHelpLink');
    s.setAttribute("className", 'sentHelpLink');
}

 
function inArray (arr, elm){
  for(var key in arr) {
    if ( arr[key] == elm )
      return true;
  }
  return false;
}; 

String.prototype.sgHtmlEncode = function() {
  var str = this;
  str = str.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
  return str;
}

function setArticleOnclick(artLink, pos, articleID) {
  artLink.onclick = function() {
    trackArticle(pos, articleID);
  }
}

function sg_handleError(err) {

}

function ajax(xhrArgs){
  
  try {
    var http_request = null;
    try {
        http_request = new ActiveXObject("MSXML2.XMLHTTP");
    } catch(err) {
        http_request = new XMLHttpRequest();
    }

    http_request.onreadystatechange = function(){
     try{
       if (http_request.readyState ==4){
         if (http_request.status == 200) {
             
             modified_currenttime = http_request.getResponseHeader("Last-Modified");
             
             var newdom = null;
             if (document.implementation && document.implementation.createDocument){
                 newdom = new DOMParser().parseFromString(http_request.responseText, "text/xml");
             }else{
                
                newdom = new ActiveXObject("MSXML2.DOMDocument");
                newdom.loadXML(http_request.responseText);
             }
             if (xhrArgs["success"] != null){
                xhrArgs["success"](newdom);
             }
             clearTimeout(xhrTimeout);
        }else{
            if (xhrArgs["error"] != null){
                xhrArgs["error"](http_request.status);
            }
        }
        clearTimeout(xhrTimeout);
       }
     } catch (err) {sg_handleError(err);clearTimeout(xhrTimeout);}

    }
    var realuri = xhrArgs["url"];
    realuri += (realuri.indexOf("?") == -1 ? "?" : "&") + new Date().valueOf().toString();

    http_request.open("GET", realuri, true);
    http_request.send(null);

    var xhrTimeout=setTimeout(function(){
        http_request.abort();
    }, http_timeout)
  } catch(err){sg_handleError(err);}

}

