gTinyTabs = Class.create({
  initialize: function(st, ds, ini, skip){
    this.stage = $(st);
    this.dataSet = $(ds);
    this.idIndex = Math.random().toString().substr(4,7);
    this.newsData = {};
    this.pageData = {};
    var tmp = this.dataSet.immediateDescendants();
    this.renderTpl = new Template(tmp[0].innerHTML);
    for(i = 1; i < tmp.length; i++){
       var nonDataObj = tmp[i];
       var gIndex = nonDataObj.id.toString().split('_');
       var cIndex = gIndex[1];
       this.newsData[cIndex] = [];
	  if(skip.indexOf(cIndex) == -1){
       var tIndexRawData = $(nonDataObj).immediateDescendants()[0].immediateDescendants();
       var tIndexMax = tIndexRawData.length;
       for(j = 0; j < tIndexMax; j++)
          this.newsData[cIndex].push(this.parseToJson(tIndexRawData[j]));
       this.pageData[cIndex] = this.mkPages(this.newsData[cIndex].length);
	  }else{
	   var pstr = {};
	   pstr.image = '';
	   pstr.content = nonDataObj.innerHTML;
	   this.newsData[cIndex].push(pstr);
	   this.pageData[cIndex] = '';
	  }
    }
    Event.observe($$("div.hitnews a.gcontent")[0], 'click', this.tabClick.bindAsEventListener(this), true);
    Event.observe($$("div.hitnews a.gcontent")[1], 'click', this.tabClick.bindAsEventListener(this), true);
    Event.observe($$("div.hitnews a.gcontent")[2], 'click', this.tabClick.bindAsEventListener(this), true);
    this.tabShowing = ini;
    this.showPage(0);
    this.updateViews();
  },
  updateViews: function(){
    $$('div.hitnews-item').each(function(hNewsDiv){ hNewsDiv.removeClassName('select'); });
    $('hitnews-' + this.tabShowing).addClassName('select');
  },
  parseToJson: function(item){
     var pstr = {};
     pstr.image = item.immediateDescendants()[0].immediateDescendants()[0].innerHTML;
     pstr.content = item.immediateDescendants()[0].immediateDescendants()[1].innerHTML;
     return pstr;
  },
  tabClick: function(e){
    var tabId = Event.element(e).parentNode.id.toString().replace(/hitnews-/,'');
    Event.element(e).blur();
    if(this.tabShowing && this.tabShowing == tabId) return;
    this.tabShowing = tabId;
    this.showPage(0);
    this.updateViews();
    Event.stop(e);
  },
  eventMan: function(attach){
     var list = $$("a.nav-pages-tiny");
     var len = list.length;
     for(k=0; k < len; k++){
        if(attach == 1)
          Event.observe(list[k],'click', this.pageClick.bindAsEventListener(this), true);
        else
          Event.stopObserving(list[k],'click', this.pageClick.bindAsEventListener(this), true);
     }
  },
  showPage: function(p){
    this.eventMan(0);
    var myNews = this.newsData[this.tabShowing][p];
    myNews.pagination = this.pageData[this.tabShowing];
	if(myNews.pagination != ''){
      this.stage.update(this.renderTpl.evaluate(myNews));
      var activeAlink = $$('a#g_' + this.idIndex + '-' + p)[0]
      activeAlink.removeClassName('.*');
      activeAlink.addClassName('active');
	}else 
	  this.stage.update(myNews.content);
    this.pageShowing = p;
    this.eventMan(1);
  },
  mkPages: function(rDatalen){
     var rv = '<ul class="pagination-flickr"><li><a href="#" class="nav-pages-tiny" id="g_' + this.idIndex + '-p">&laquo;</a></li>';
     for(j = 0; j < rDatalen; j++)
       rv += '<li><a href="#" class="nav-pages-tiny" id="g_' + this.idIndex + '-' + j + '">' + (j + 1) + '</a></li>';
     rv += '<li><a href="#" class="nav-pages-tiny" id="g_' + this.idIndex + '-n">&raquo;</a></li></ul>';
     return rv;
  },
  pageClick: function(e){
     var ltmp = Event.element(e).id.toString().split('-');
     var newPage = 0;
     switch(ltmp[1]){
         case 'p':
            newPage = this.pageShowing - 1;
            if(newPage < 0) newPage = this.newsData[this.tabShowing].length - 1;
         break;
         case 'n':
            newPage = this.pageShowing + 1;
            if(newPage >= this.newsData[this.tabShowing].length) newPage = 0;
         break;
         default:
            newPage = ltmp[1];
         break;
     }
     this.showPage(newPage);
     Event.stop(e);
  }
});

if($('most_sensitive_data'))
  var tinyTabs = new gTinyTabs('li_stage','most_sensitive_data','poll',['poll']);


