/**
 * @author alltouch
 */

function News(){
	
	this . options = new Object();
	this . options . url = piro . options . path + 'news.php';
	
	var NewsBlock = null;
	
	this . cache = null;
	
	this . loadBlock = function(){
		
		piro . loading . hidePage('news-block');
		
		piro . ajax(
			this . options . url,
			{
				'type' : 'block'
			},
			this . setBlock
		)
		
	}
	
	this . loadList = function(obj){
		
		piro . loading . hidePage('news-list');
		var json = {
			'type' : 'list'
		};
		if(obj && obj.pageNumber){
			json . page = obj.pageNumber;
		} else {
			json . page = 1;
		}
		piro . ajax(
			this . options . url,
			json,
			this . setList
		)
		
	}
	
	this . loadItem = function(obj){
		
		piro . loading . hidePage('news-item');
		
		piro . ajax(
			this . options . url,
			{
				'type' : 'item',
				'id' : obj . itemid
			},
			this . setItem
		)
		
	}
	
	this . setList = function(obj){
		piro . log(obj);
		piro . news . showNewsList(obj);
		piro . loading . showPage('news-list');
		piro . call('InitStaticBody');
	}
	
	this . setItem = function(obj){
		piro . log(obj);
		piro . news . showItem(obj);
		piro . loading . showPage('news-item');
		piro . call('InitStaticBody');
	}
	
	this . showItem = function(obj){
		obj = obj.content;
		var txt = '<h1>' + obj. title + '</h1>';
		txt += '<div class="news-item first">';
		txt += '<span>' + obj . date + '</span><p>' + obj . text + '</p></div>';
		$('#body').html (txt);
		
		var tree = $('#pageTree').html();
		if($.browser.msie){
			tree = tree.substr(0, tree.indexOf('<B>'))
		} else{
			tree = tree.substr(0, tree.indexOf('<b>'))
		}
		tree += '<a href="#news">Новости</a> <b>' + obj . title + '</b>';
		$('#pageTree').html(tree);
		
		document . title = document . title + ' - ' + obj.title;
		
		piro . call('InitTreeBlock');
	}
	
	this . showNewsList = function(obj){
		var txt = '<h1>Новости</h1>';
		
		
		var c_paging = '<div class="paging news-paging">';
		if(obj.activePage > 1){
			c_paging += '<a href="#news&pageNumber=' + (obj.activePage - 1) + '" class="prev">&laquo;</a>';
		}
		for(var i = 1; i<=obj.countPages; i++){
			if( i == obj.activePage){
				c_paging += '<a class="opened">' + i + '</a>';
			} else if( i < 4 || i > obj.countPages - 3 || (i > obj.activePage - 4 && i < obj.activePage + 4)){
				c_paging += '<a href="#news&pageNumber=' + i + '">' + i + '</a>';
			} else if( i == obj.activePage - 4 || i == obj . activePage + 4){
				c_paging += '...';
			}
		}
		
		if(obj.activePage < obj.countPages){
			c_paging += '<a href="#news&pageNumber=' + (obj.activePage + 1) + '" class="next">&raquo;</a>';
		}
		c_paging += '</div>';
		
		txt += c_paging;
		
		
		var l = obj . items . length;
		for(var i = 0; i<l ; i++){
			if (i == 0) {
				txt += '<div class="news-item first">';
			} else {
				txt += '<div class="news-item">';
			}
			var item = obj . items [i];
			txt += '<span>' + item . date + '</span><a href="#news&itemid=' + item . id + '">' + item . title + '</a><p>' + item . text + '</p></div>';
		}
		
		txt += c_paging.replace('news-paging','news-paging-bottom');
		
		$('#body').html (txt);

		piro . call('InitTreeBlock');
	}
	
	this . setBlock = function(obj){
		
		piro . news. cache = obj;
		
		if( !NewsBlock ){
			NewsBlock = $('#NewsBlock'); 
		}
		NewsBlock . children('p,span') . remove();
		
		var txt = '';
		var l = obj.items.length;
		for(var i = 0; i < l && i < 3; i++){
			var item = obj.items[i];
			txt += '<span>' + item . date + '</span>' +
			       '<p class="title"><a class="title" href="#news&itemid=' + item . id + '">' + item . title + '</a> ' + item . text + '</p>';
		}
		NewsBlock . children('h3') . after(txt);
		
		piro . loading . showPage('news-block');
		piro . call('InitNewsBlock');
		
	}
}

piro . news = new News();

