/**
 * ViewBlog
 */
var ViewBlog = Class.create({
  /**
   * Init ViewBlog
   */	
  initialize: function() {
	this.options = Object.extend({
	  elemContent : null
	}, arguments[0] || { });		

	this.strPage = this.options.elemContent.readAttribute('datafld');
	this.elemAjax = this.options.elemContent.down('.ajaxContent');

	this.elemMarkerList = null;
	
	this.loadContent(1);
  },

  loadContent: function($nPageNum) {
	this.load(this.elemAjax, "feeds/feed.php?page=" + escape(this.strPage) + "&pagenum=" + $nPageNum + "&pagesize=10");
  },
  
  load: function(elemHolder, strURL) {	  
    new Ajax.Request(strURL, {
      method:'post',
	  onSuccess: function(response) {
	    elemHolder.innerHTML = response.responseText;
	    this.processContent(elemHolder);
	  }.bind(this),
	  onFailure: function(response) {
	  }.bind(this)
	});	
  },

  processContent: function(elemHolder) {
	// build nav
	  
	// build page jump links
	var elemItems = elemHolder.select('.blogmenu');
	for (var nItem = 0; nItem < elemItems.length; nItem++) {
	  elemItems[nItem].writeAttribute('datafld', nItem);
	  elemItems[nItem].observe('click', this.menuClick.bind(this));			    		  
	}  

    // page prev
	var elemPrev = elemHolder.down('.pages .prev');
	if (elemPrev) {
	  elemPrev.observe('click', this.pageChangeClick.bind(this));			    		  			
	}
	// page next
	var elemNext = elemHolder.down('.pages .next');
	if (elemNext) {
	  elemNext.observe('click', this.pageChangeClick.bind(this));			    		  			
	}
		
	// build page links		  
	this.elemMarkerList = elemHolder.select('.item');
	// build top links
	var elemItems = elemHolder.select('.blogtop');
	for (var nItem = 0; nItem < elemItems.length; nItem++) {
	  elemItems[nItem].observe('click', this.topClick.bind(this));			    		  		
	}
    // fire event
	this.options.elemContent.fire("viewblog:ready");
  },
  
  topClick: function(evt) {
    // scroll to top
	new Effect.ScrollTo($('header'));    		
  },
  
  menuClick: function(evt) {
	var elemMenu = evt.element().up();
	if (this.elemMarkerList) {
	  // scroll to item
	  new Effect.ScrollTo(this.elemMarkerList[elemMenu.readAttribute('datafld')], {offset: -100});    		
	}
  },
  
  pageChangeClick: function(evt) {
	this.loadContent(evt.element().readAttribute('datafld'));
  }
    
});
