
CSlides = function(slideId) {
	if(!by_topic[slideId])
		return;
	if(curSlides)
		curSlides.close();
		
	$("#brands").hide();

	var isInit = true;
	var domCurImg = $("img.slide_img_cur")[0];
	var domPrevImg = $("img.slide_img_prev")[0];
	var domNextImg = $("img.slide_img_next")[0];
	var loadStateNext = false;
	var loadStatePrev = false;
	var clickState = 0;
	var curImg = 0;
	var isAutoSlide = true;
	var isOnload = false;
	
	var isEffect = false;
	var effectCounter;
	var effectSteps = 20;
	var effectTime = 1000;
	var effectStepTime = effectTime/effectSteps;
	
	this.close = function() {
		$("#slideshow").hide();
		$("#brands").show();
		domCurImg.src = "";
		domNextImg.src = "";
		domPrevImg.src = "";
	}
	
	function getImg(n) {
		return by_topic[slideId][n];
	}
	
	function getPrevN() {
		return curImg==0 ? by_topic[slideId].length-1 : curImg-1;
	}
	
	function getNextN() {
		var max = by_topic[slideId].length - 1;
		return curImg < max ? curImg+1 : 0;
	}
	
	function setOpacity(dom, val) {
		if(dom.filters)
			dom.filters.alpha.opacity = val*100;
		else
			dom.style.opacity = val;
	}
	
	function initFrame() {	
		if(!isInit) {
			domCurImg.src = overImg().src;
			if(!isOnload) {
				setTimeout(onCurLoad,1000);
			}
		} else {
			domCurImg.src = getImg(curImg);
			isInit = false;
		}
	
		loadStateNext = loadStatePrev = false;
		clickState = 0;
		isEffect = false;	
 	}
		
	function overImg() {
		return clickState>0?domNextImg:domPrevImg;
	}
		
	function startChange() {
		if(isEffect)
			return;		
		isEffect = true;
		setOpacity(overImg(),0);
		$(overImg()).removeClass("slideshow_invis");
		effectCounter = 0;
		setTimeout(onChangeTimer,effectStepTime);
	}
	
	function onChangeTimer() {
		//setOpacity(domCurImg,(effectSteps-effectCounter)/effectSteps);
		setOpacity(overImg(),effectCounter/effectSteps);
		if(++effectCounter < effectSteps)
			setTimeout(onChangeTimer,effectStepTime);
		else {
			curImg = clickState>0 ? getNextN() : getPrevN();
			initFrame();	
		}
	}
	
	domPrevImg.onload = domPrevImg.onerror = domPrevImg.onabort  = function() {
		isOnload = true;
		loadStatePrev = true;
		if(clickState == -1) 
			startChange();
	}
	
	domNextImg.onload = domNextImg.onerror = domNextImg.onabort  = function() {
		isOnload = true;
		loadStateNext = true;
		if(clickState == 1) 
			startChange();
	}
	
	$("#prevousButton").click(function(){
		clickState = -1;
		clearInterval(autoSlideTimer);
		if(loadStatePrev) 
			startChange();
		return false;
	});
	
	function onNext() {
		clickState = 1;
		if(loadStateNext) 
			startChange();		
	}
	
	var autoSlideTimer = setInterval(onNext,slide_interval);
	
	$("#nextButton").click(function(){
		clearInterval(autoSlideTimer);
		onNext();
		return false;
	});	
	
	domCurImg.onload = domCurImg.onerror = domCurImg.onabort  = onCurLoad;
	
	function antiOnloadTimer() {
		loadStateNext = true;
		loadStatePrev = true;
		if(clickState != 0) 
			startChange();
	}
	
	function onCurLoad() {
		$(domPrevImg).addClass("slideshow_invis");
		$(domNextImg).addClass("slideshow_invis");
		domPrevImg.src = getImg(getPrevN());
		domNextImg.src = getImg(getNextN());
		//на случай если onload не поддрживается (Opera) установим таймер
		if(!isOnload) {
			setTimeout(antiOnloadTimer,1000);
		}
	}
	
	initFrame();
	onCurLoad();
	$("#slideshow").show();
}

