Your IP : 172.28.240.42


Current Path : /var/www/html/clients/rebirth.e-nk.ru/templates/skin/developer-jquery/js/
Upload File :
Current File : /var/www/html/clients/rebirth.e-nk.ru/templates/skin/developer-jquery/js/blocks.js

var ls = ls || {};

/**
* Динамическая подгрузка блоков
*/
ls.blocks = (function ($) {
	/**
	* Опции
	*/
	this.options = {
		active: 'active',
		loader: DIR_STATIC_SKIN + '/images/loader.gif',
		type: {
			block_stream_item_comment: {
				url: aRouter['ajax']+'stream/comment/'
			},
			block_stream_item_topic: {
				url: aRouter['ajax']+'stream/topic/'
			},
			block_blogs_item_top: {
				url: aRouter['ajax']+'blogs/top/'
			},
			block_blogs_item_join: {
				url: aRouter['ajax']+'blogs/join/'
			},
			block_blogs_item_self: {
				url: aRouter['ajax']+'blogs/self/'
			}
		}
	};

	/**
	* Метод загрузки содержимого блока
	*/
	this.load = function(obj, block, params){
		var id = $(obj).attr('id');
		params=$.extend(true,{},this.options.type[id].params || {},params || {});
		
		var content = $('#'+block+'_content');
		this.showProgress(content);

		$('[id^="'+block+'_item"]').removeClass(this.options.active);
		$(obj).addClass(this.options.active);

		ls.ajax(this.options.type[id].url, params, function(result){
			this.onLoad(content,id,result);
		}.bind(this));
	};

	/**
	* Отображение процесса загрузки
	*/
	this.showProgress = function(content) {
		content.html($('<div />').css('text-align','center').append($('<img>', {src: this.options.loader})));
	};

	/**
	* Обработка результатов загрузки
	*/
	this.onLoad = function(content,id,result) {
		$(this).trigger('load',[content,id,result]);
		content.empty();
		if (result.bStateError) {
			ls.msg.error(null, result.sMsg);
		} else {
			content.html(result.sText);
		}
	};

	return this;
}).call(ls.blocks || {},jQuery);

/**
* Подключаем действующие блоки
*/
jQuery(document).ready(function($){
	$('[id^="block_stream_item"]').click(function(){
		ls.blocks.load(this, 'block_stream');
		return false;
	});

	$('[id^="block_blogs_item"]').click(function(){
		ls.blocks.load(this, 'block_blogs');
		return false;
	});
});