var CtopLoader=Class.create();

CtopLoader.prototype = {
	mainDiv:null,
	mainDivWidth:0,
	maxWidth:772,
	DivBody:'',
	rowL:'',
	rowR:'',
	modName:'',
	tm:0,
	windowWidth:0,
	countItems:0,
	limitF:0,
	limitR:0,
	onlySec:false,
	initialize:function(){
		if(arguments.length==1)
				this.onlySec=arguments[0];
	},
	init:function(mainDiv, modName){
		this.modName = modName == undefined ? 'mod_main_popular' : modName;
		this.mainDiv=$(mainDiv);
		this.DivBody=$(mainDiv+'_1');

		if (this.mainDiv==null || this.DivBody==null){
			this.tm=new PeriodicalExecuter(this.init.bind(this), 3);
			return;
		}
		this.rowL=$(mainDiv+'_left');
		this.rowR=$(mainDiv+'_right');
		Event.observe(this.rowL,'click',this._left.bindAsEventListener(this));
		Event.observe(this.rowR,'click',this._right.bindAsEventListener(this));
		//Event.observe(window,'resize',this._calculateWidth.bind(this));
		this._calculateWidth();
		
	},
	_calculateWidth:function(){
		this.DivBody.style.display='none';
		this.windowWidth=document.body.clientWidth;
		//this.mainDivWidth = ((this.windowWidth-478) > this.maxWidth ? this.maxWidth : (this.windowWidth - 478));
		this.mainDivWidth = this.maxWidth;
		this.countItems=Math.floor(this.mainDivWidth/128);
		this.mainDiv.style.width=(this.countItems*128+4)+'px';
		this._reload();
	},
	_left:function(){
		this.limitF-=this.countItems;
		if (this.limitF<0)
			this.limitF=0;
		this._reload();
	},
	_right:function(){
		this.limitF+=this.countItems;
		this._reload();
	},
	_reload:function(){
		new Ajax.Request('/?com=' + this.modName + '&sb=loadPopular'+(this.onlySec?'&onlySec='+this.onlySec:'')+'&limit='+this.limitF+','+this.countItems,{
			method:'get',
			onSuccess:this._onAfterLoadItems.bind(this)
		})

	},
	
	_onAfterLoadItems:function(tr){
		this.DivBody.style.display='block';
		this.DivBody.innerHTML=tr.responseText;
	}
}

