var MAX_DISPLAY_QUEUE = 100;
var MAX_DISPLAY_ARRAY = 11;
var REFRESH_FEED_TIME = 20000;
var ROLLING_HEIGHT = 20;
var ROLLING_SPEED = 50;
var INITIAL_SIZE = 11;
var NEW_OBJECT_TIME_1 = 900000;
var NEW_OBJECT_TIME_2 = 600000;
var current_time = new Date();

var bank_news_queue = new Queue();
var stock_news_queue = new Queue();
var metal_news_queue = new Queue();
var forex_news_queue = new Queue();
var economy_news_queue = new Queue();
var global_news_queue = new Queue();

var bank_news_array = new Array();
var stock_news_array = new Array();
var metal_news_array = new Array();
var forex_news_array = new Array();
var economy_news_array = new Array();
var global_news_array = new Array();

var bank_news_time = -1;
var stock_news_time = -1;
var metal_news_time = -1;
var forex_news_time = -1;
var economy_news_time = -1;
var global_news_time = -1;

var load_news_time = -1;

var bank_news_display_array = new Array();
var stock_news_display_array = new Array();
var metal_news_display_array = new Array();
var forex_news_display_array = new Array();
var economy_news_display_array = new Array();
var global_news_display_array = new Array();

var title_width = 320;
var title_height = 20;

function NewsObject (url, title, summary, source, docdate, category, category_id, subcat, subcat_id, new_item) {
  this.url = url;
  this.title = title;
  this.summary = summary;
  this.source = source;
  this.docdate = docdate;
  this.category = category;
  this.category_id = category_id;
  this.subcat = subcat;
  this.subcat_id = subcat_id;
  this.new_item = new_item;
}

function UpdateFeed (showArrName, feedArr, que, type, layer, isClear) {
  if (feedArr.length > 0) {
    for (var i = feedArr.length -1 ; i >= 0; i--) {
      if (que.getSize() >= MAX_DISPLAY_QUEUE) {
        que.dequeue();
      }
      que.enqueue(feedArr[i]);
    }
  }
  var obj = document.getElementById(layer+"_content");
  if (obj != null) {
    if (isClear == 1) {
      obj.innerHTML = "";
    }
    var text = obj.innerHTML;
    if (text.length == 0) {
      var command1 = showArrName + ' = UpdateDisplay(' + showArrName + ', que, type, layer)';
      eval(command1);
    }
  }
}

function resetNewObj(showTime, arrTime) {
  if (load_news_time - showTime <= NEW_OBJECT_TIME_2) {
    return 2;
  } else if (load_news_time - showTime <= NEW_OBJECT_TIME_1) {
    return 1;
  } else {
    return 0;
  }
/*
  if (arrTime - showTime <= NEW_OBJECT_TIME_2) {
    return 2;
  } else if (arrTime - showTime <= NEW_OBJECT_TIME_1) {
    return 1;
  } else {
    return 0;
  }
*/
}

function UpdateDisplay (showArr, que, type, layer) {
  var showArr1 = showArr;
  if (que.getSize() > 0) {
    showArr1 = new Array();
    var count = 0;
    for (var i = 1; i < showArr.length; i++) {
      showArr1[count] = showArr[i];
      count++;
    }
    var obj;
    if (showArr.length == 0 && MAX_DISPLAY_ARRAY > 1 && que.getSize() >= MAX_DISPLAY_ARRAY) {
      obj = que.dequeue();
      while ((obj.url == null || obj.title == null || obj.url.length == 0 || obj.title.length == 0) && que.getSize() > 0) {
        obj = que.dequeue();
      }
      if (obj.url != null && obj.title != null && obj.url.length > 0 && obj.title.length > 0) {
        showArr1[0] = obj;
        showArr1[1] = showArr1[0];
        count = count + 2;
      }
    }
    for (var i = count; i < MAX_DISPLAY_ARRAY && que.getSize() > 0; i++) {
      obj = que.dequeue();
      while ((obj.url == null || obj.title == null || obj.url.length == 0 || obj.title.length == 0) && que.getSize() > 0) {
        obj = que.dequeue();
      }
      if (obj.url != null && obj.title != null && obj.url.length > 0 && obj.title.length > 0) {
        showArr1[i] = obj;
      }
    }
    showDisplay(showArr1, type, layer);
  }
  return showArr1;
}

function showDisplay (showArr, type, layer) {
  var smode = 0;
  var dis = "";
  var stime = -1;
  eval ("stime = "+type+"_time");
  for (var i = showArr.length - 1; i >= 0; i--) {
    dis += "<div style=\"display:inline-block;vertical-align:top;height:20px;white-space:nowrap;width:"+title_width+"px;overflow:hidden\">";
    if (showArr[i].new_item > 0) {
      smode = resetNewObj(showArr[i].new_item, stime);
      if (smode == 2) {
        dis += "<font style=\"display:inline-block;vertical-align:top;height:20px\" class=\"rollingtitle\">&#x25c6;</font>";
      } else if (smode == 1) {
        dis += "<font style=\"display:inline-block;vertical-align:top;height:20px\" class=\"rollingtitle\">&#x25c7;</font>";
      } else {
        showArr[i].new_item = 0;
      }
    }
    if (type == "global_news") {
      dis += "<a class=\"rollingtitle\" style=\"display:inline-block;vertical-align:top;height:20px;white-space:nowrap;\" href=\""+showArr[i].category_id+".html\" target=\"_blank\">["+showArr[i].category+"]</a>";
    }
    dis += " <a class=\"rollingtitle\" style=\"display:inline-block;vertical-align:top;height:20px;white-space:nowrap;\" href=\""+showArr[i].url+"\" target=\"_blank\">"+showArr[i].title+"</a>";
    // dis += "<br>";
    dis += "</div>";
  }
  var obj = document.getElementById(layer+"_content");
  var isEmpty = false;
  if (obj != null) {
    if (obj.innerHTML.length == 0) {
      isEmpty = true;
    }
    obj.innerHTML = dis;
  }
//  alert(type+":"+obj.innerHTML+":"+isEmpty);
  if (! isEmpty) {
    marquee(ROLLING_HEIGHT,ROLLING_SPEED,type,layer);
  }
}

function marquee(height,speed,type,layer){
  var scrollT;
  var ScrollBox = document.getElementById(layer+"_scrollbox");
  if (ScrollBox != null) {
    if (navigator.userAgent.indexOf("Firefox") != -1) {
      ScrollBox.scrollTop = ScrollBox.scrollHeight;
    } else { 
      ScrollBox.scrollTop = ScrollBox.style.pixelHeight;
    }
    function start(){
      scrollT = setInterval(scrolling,speed);
      ScrollBox.scrollTop -= 1;
    }
    function scrolling() {
      if(ScrollBox.scrollTop % height != 0) {
        ScrollBox.scrollTop -= 1;
      } else {
        clearInterval(scrollT);
      }
    }
    start();
  }
}

// var tab_mode = "featured_news";
var tab_mode = "global_news";
var isInitial = true;

function changeTab(tab_name,langCode) {
  var oriObj = document.getElementById("tab_"+tab_mode);
  var newObj = document.getElementById("tab_"+tab_name);
  if (oriObj != null) {
    oriObj.className = "tablemenu_5";
//    oriObj.style.borderBottom = "0px";
  }
  if (newObj != null) {
    newObj.className = "tablemenu_5 underline2";
//    newObj.style.borderBottom = "2px solid white";
  }
  var moreObj = document.getElementById("tab_more_news");
  if (moreObj != null) {
    moreObj.href = tab_name + ".html";
  }
  tab_mode = tab_name;
  eval(tab_mode + '_queue = new Queue()');
  eval(tab_mode + '_time = -1');
  eval(tab_mode + '_array = new Array()');
  eval(tab_mode + '_display_array = new Array()');
  var ctime = -1;
  eval('ctime = ' + tab_mode + '_time');
//  document.getElementById("global_news_content").innerHTML = "";
  ctime1 = new Date();
  ajax_loadContent('global_news_js','news_feed_tab.html?lang='+langCode+'&type='+tab_mode+'&layer=global_news&initial='+INITIAL_SIZE+'&time='+ctime+'&dummy='+ctime1.getTime()+'&clear=1');
  return false;
}

function refresh(langCode) {
  var ctime = -1;
  current_time = new Date();
  eval('ctime = ' + tab_mode + '_time');
  if (isInitial) {
    ajax_loadContent('global_news_js','news_feed_tab.html?lang='+langCode+'&type='+tab_mode+'&layer=global_news&initial='+INITIAL_SIZE+'&time='+ctime+'&dummy='+current_time.getTime());
    isInitial = false;
  } else {
    ajax_loadContent('global_news_js','news_feed_tab.html?lang='+langCode+'&type='+tab_mode+'&layer=global_news&global_news&time='+ctime+'&dummy='+current_time.getTime());
  }
}

var loopCount = 0;
function trigger(langCode) {
  eval(tab_mode + "_display_array = UpdateDisplay(" + tab_mode + "_display_array, " + tab_mode + "_queue, '" + tab_mode + "', 'global_news')");
  loopCount++;
}
function show(langCode) {
  refresh(langCode);
  setInterval("refresh('"+langCode+"')",REFRESH_FEED_TIME);
  setInterval("trigger('"+langCode+"')",2000);
}

