with(Banner=function(){
	Banner=document.getElementById('banner');
	Menu=document.getElementById('banner_menu');
	BannerError|=(Banner)?											0:0x01;
	BannerError|=(Banner && Banner.tagName.toLowerCase()=='ul')?	0:0x02;
	BannerError|=(Menu)?											0:0x04;
	BannerError|=(Menu && Menu.tagName.toLowerCase()=='ul')?		0:0x08;
	if(Menu)LIs=Menu.getElementsByTagName('li');
	BannerError|=(LIs.length)?										0:0x10;
	CreateSpans();
	ChangeSpan();
	SetTimer();
}){
	var Banner;
	var Menu;
	var LIs=new Array();
	var As=new Array();
	var Spans=new Array();

	var BannerError=0x00;
	var Height=326;
	var StepQt=20;
	var StepTime=20;
	var Timer=4000;
	
	var ID=0;
	var Opacities=new Array();
	var TimerID=null;
	
	var CreateSpans=function(){
		if(BannerError)
			return TreatError();
		for(i=0;i<LIs.length;i++){
			Span=document.createElement('span');
			As[i]=LIs[i].getElementsByTagName('a')[0];
			Span.className=As[i].className;
			Spans[i]=Span;
			LIs[i].appendChild(Span);
		}
	}
	
	var Set=function(SofaID){
		if(BannerError)
			return TreatError();
		clearTimeout(TimerID);
		SofaID=parseInt(SofaID);
		ID=SofaID%LIs.length;
		ChangeSpan();
		ChangeSofa();
	}
	
	var TreatError=function(){
		//alert(BannerError);
		return false;
	}
	
	var ChangeSpan=function(){
		if(BannerError)
			return TreatError();
		for(i=0;i<As.length;i++){
			Spans[i].style.display='none';
			As[i].style.display='block';
		}
		As[ID].style.display='none';
		Spans[ID].style.display='block';
	}
	
	var ChangeSofa=function(){
		for(i=0;i<StepQt;i++){
			K=(i+1)/StepQt*2-1;
			OpacityK=0.5*(1+Math.cos(Math.PI*K));
			Opacities[i]=1-OpacityK;
		}
		ChangeOpacity(0);
	}
	
	var ChangeOpacity=function(i){
		if(i==StepQt){
			SetTimer();
			return;
		}
		if(i==Math.round(StepQt/2))
			Banner.style.marginTop=(-Height*ID)+'px';
		setElementOpacity(Banner,Opacities[i]);
		TimerID=setTimeout('ChangeOpacity('+(++i)+')',StepTime);
	}
	
	var SetTimer=function(){
		TimerID=setTimeout('Set('+(++ID)+')',Timer);
	}
	
	//public
	prototype.SetSofa=function(SofaID){
		Set(SofaID);
		return false;
	}
}
