Scroll = {
sL:function(o){return o!=window?o.scrollLeft:document.body.scrollLeft||document.documentElement.scrollLeft},
sT:function(o){return o!=window?o.scrollTop:document.body.scrollTop||document.documentElement.scrollTop},  
anim:function(p){function d(p){return Math.pow(p,3)};if(p<0.5){return d(2*p)/2;}else{return (2-d(2*(1-p)))/2;}}, // рассчет анимации
animator:[], /* массив с анимируемыми объектами */
anielems:0, /* счетчик анимируемых объектов */
to: function(obj,values,time,callback){
// перебираем параметры и значения
for(key in values){anima(key,values[key])}
function anima(param,to){
// проверяем и останавливаем предыдущие анимации
for(key in Scroll.animator){if(Scroll.animator[key].o==obj&&Scroll.animator[key].p==param){clearInterval(Scroll.animator[key].timer)}}
var aID=Scroll.anielems,
result,
now,
progress,
w=obj==window?1:0,
param=param=='x'?1:0,
from=param?Scroll.sL(obj):Scroll.sT(obj);
Scroll.animator[aID] = {
start: new Date().getTime(),
timer: setInterval(function(){
now=(new Date().getTime())-Scroll.animator[aID].start;
progress=now/time;
result=(to-from)*Scroll.anim(progress)+from;
if(param){
if(w){window.scrollTo(result,Scroll.sT(obj))}
else{obj.scrollLeft=result}
}else{
if(w){window.scrollTo(Scroll.sL(obj),result)}
else{obj.scrollTop=result}
}
if(progress>=1){
clearInterval(Scroll.animator[aID].timer);
if(param){
if(w){window.scrollTo(to,Scroll.sT(obj))}
else{obj.scrollLeft=to}
}else{
if(w){window.scrollTo(Scroll.sL(obj),to)}
else{obj.scrollTop=to}
}
if(callback){callback()}
}
},10)
}
Scroll.anielems++;
}
}
};



var demo_step = 400;
var pic = 0;
var demo = document.getElementById('demo_id');
var demo_scene_count = demo_scenes.length;
var demo_html;

function demo_init(){
	demo_html='';
	html='';
	for(i=0;i<demo_scene_count;i++){
		demo_html+='<td class="demo_img"><a href="'+demo_scenes[i][0]+'"><img src="'+demo_scenes[i][1]+'"></a><br><img src="/img/0.gif" width="220" height="1"></td><td class="demo_text" width="'+(demo_step-220)+'">'+demo_scenes[i][2]+'<br><br><a href="'+demo_scenes[i][0]+'"><img src="/style/img/button_show_item.png" onmouseover="this.src=\'/style/img/button_show_item_on.png\'" onmouseout="this.src=\'/style/img/button_show_item.png\'" width="117" height="19"></a><br><img src="/img/0.gif" width="'+(demo_step-220)+'" height="1"></td>';
	}
	for(i=0;i<demo_scene_count;i++){
		html+='<img src="/img/demo_pic'+(i==pic?'2':'')+'.png">';
	}
	demo.innerHTML='<table cellspacing="0"><tr>'+demo_html+'</tr></table>';
	_gel('demo_pic').innerHTML = html;
	
	if (IE){
		p = document.getElementsByTagName('p');
		for(i in p){
			if (typeof(p[i].parentNode)=='object' && p[i].parentNode.className=='demo_text' && typeof(p[i].parentNode.style)=='object'){
				p[i].parentNode.style.width='100%';
			}
		}
	}
}



function demo_move(s,t){
	if (t!=0) t.blur();
	pic += s;
	if (pic==demo_scene_count) pic = 0;
	if (pic==-1) pic = demo_scene_count-1;
	Scroll.to(demo,{'x':pic*demo_step},800,function(){});
	html='';
	for(i=0;i<demo_scene_count;i++){
		html+='<img src="/img/demo_pic'+(i==pic?'2':'')+'.png">';
	}
	_gel('demo_pic').innerHTML = html;
	return false;
}

function demo_width(){
	y = getElementPosition('yel');
	if (y['width']>550){
		if (IE) y['width'] -= 90;
		_gel('demo_id').style.width = y['width'] + 'px';
		demo_step = y['width'];
		demo_init();
	}
}


var stop_go_demo = 0;

function go_demo(){
	if (stop_go_demo==1) return;
	demo_move(1,0);
	setTimeout('go_demo()',10000);
}
demo_init();
