function getElementsByClassName(classname,node){if(!node)node=document.getElementsByTagName("body")[0];var a=[],re=new RegExp('\\b'+classname+'\\b'),els=node.getElementsByTagName("*");for(var i=0,j=els.length;i<j;i++)if(re.test(els[i].className))a.push(els[i]);return a}
function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func}else window.onload=function(){if(oldonload)oldonload();func()}}
function ObjectPosition(obj){var curleft=0,curtop=0;if(obj.offsetParent)do{curleft+=obj.offsetLeft;curtop+=obj.offsetTop}while(obj=obj.offsetParent);return[curleft,curtop]}
function list_array(spacer,array){var result='';for(i in array)result+=i+':'+array[i]+spacer;return(result)}
function trim(string){return string.replace(/^\s+/,'')}
function Animate(el,prop,opts){this.el=el;this.prop=prop;this.from=opts.from;this.to=opts.to;this.time=opts.time;this.callback=opts.callback;this.animDiff=this.to-this.from};Animate.prototype._setStyle=function(val){switch(this.prop){case'opacity':this.el.style[this.prop]=val;this.el.style.filter='alpha(opacity='+val*100+')';break;default:this.el.style[this.prop]=val+'px';break}};Animate.prototype._animate=function(){var that=this;this.now=new Date();this.diff=this.now-this.startTime;if(this.diff>this.time){this._setStyle(this.to);if(this.callback)this.callback.call(this);clearInterval(this.timer);return};this.percentage=(Math.floor((this.diff/this.time)*100)/100);this.val=(this.animDiff*this.percentage)+this.from;this._setStyle(this.val)};Animate.prototype.kill=function(){clearInterval(this.timer)};Animate.prototype.start=function(){var that=this;this.startTime=new Date();this.timer=setInterval(function(){that._animate.call(that)},4)};
var IE,sc,is_back=false,act_slide=-1,ses,default_width,min_width=125,max_width,animation_time=200,act_animation=[],sys_log;addLoadEvent(init_slideshow)
function init_slideshow(){sys_log=document.getElementById('log');IE=document.all?true:false;sc=document.getElementById('slide_container');ses=getElementsByClassName('slide_element',sc);default_width=sc.clientWidth/ses.length;max_width=sc.clientWidth-(min_width*(ses.length-1));if(!IE)document.captureEvents(Event.MOUSEMOVE);document.onmousemove=getMouseXY;sc.onmouseout=function(e){slide_back()};for(var i=0;i<ses.length;i++){ses[i].style.cssText+=';width:'+max_width+'px;left:'+(default_width*i)+'px';if(i>0)ses[i].style.cssText+=';border-left:5px solid #FFFFFF;';ses[i].onmouseover=function(e){slide(this)};ses[i].id='se_'+i}}
function getMouseXY(e){var tempX,tempY;if(IE){tempX=event.clientX+document.body.scrollLeft;tempY=event.clientY+document.body.scrollTop}else{tempX=e.pageX;tempY=e.pageY};if(tempY<0)tempY=0;if(is_back){var sc_pos=ObjectPosition(sc);if(tempX<sc_pos[0]|tempY<sc_pos[1]||tempX>(sc.clientWidth+sc_pos[0])||tempY>(sc.clientHeight+sc_pos[1])){is_back=false;act_slide=-1;var log_str='';for(var i=0;i<ses.length;i++){try{act_animation[i].kill()}catch(e){};var frompos=parseInt(ses[i].style['left'].replace('px','')),topos=default_width*i;if(frompos!=topos){act_animation[i]=new Animate(ses[i],'left',{from:frompos,to:topos,time:animation_time});act_animation[i].start()}}}};return true}
function slide_back(){is_back=true}
function slide(el){var elid=el.id.replace('se_','');if(act_slide!=elid){act_slide=elid;ses.length-elid*min_width;var log_str='';for(var i=0;i<ses.length;i++){try{act_animation[i].kill()}catch(e){};if(ses[i].id<el.id)var topos=i*min_width;if(ses[i].id==el.id)var topos=i*min_width;if(ses[i].id>el.id)var topos=((i-1)*min_width)+max_width;var frompos=parseInt(ses[i].style['left'].replace('px',''));if(frompos!=topos){act_animation[i]=new Animate(ses[i],'left',{from:frompos,to:topos,time:animation_time});act_animation[i].start()}}}};

