﻿function scroll_initialize(Id,speed){    
    var self    =this;    
    var obj     = document.getElementById(Id);    
    if(obj.getElementsByTagName('li').length==0)return;    
    var links   = obj.getElementsByTagName('a');    
    var a       = links[0];    
    var b       = links[links.length-1];        
    var ul      = obj.getElementsByTagName('ul')[0];    
    var div     = obj.getElementsByTagName('div')[0];    
         
    var li_width    = obj.getElementsByTagName('li')[0].offsetWidth;    
    var li_count    = obj.getElementsByTagName('li').length;    
    var ul_width    = li_width * li_count;    
        
    this.speed      = speed;    
    this.mar        = null;    
   
    this.doSlide = function(n,t,d,c){    
        var timers=new Array(n);    
        var x=div.scrollLeft;    
        for(var i=0;i<n;i++)(function(){    
            if(timers[i]) clearTimeout(timers[i]);    
            var j=i;    
            timers[i]=setTimeout(function(){    
                if(d==0){    
                    if(ul_width-div.scrollLeft<=0){    
                        div.scrollLeft-=ul_width;    
                    }else{              
                        div.scrollLeft=x+Math.round((c*li_width)*Math.sin(Math.PI*(j+1)/(2*n)));    
                    }    
                }else{    
                    if(div.scrollLeft<=0){    
                    }else{              
                        div.scrollLeft=x-Math.round((c*li_width)*Math.sin(Math.PI*(j+1)/(2*n)));    
                    }    
                }    
            },(i+1)*t);    
        })();    
   
        if(ul_width-div.scrollLeft<=0 || (div.scrollLeft % li_width != 0 && div.scrollLeft != 0)){    
            div.scrollLeft=0;    
        }    
    }       
    this.istop=function(){    
        clearInterval(self.mar);    
    };    
    this.istart=function(){    
        self.mar = setInterval(function(){self.doSlide(20,40,0,1);},self.speed);    
    };    
        
    this.initialize = function(){           
        ul.innerHTML+=ul.innerHTML;    
        ul.style.width = parseInt(ul_width * 2) + 'px';    
        a.onclick=function(e){self.doSlide(20,40,0,3);return false;};    
        a.onfocus=function(){this.blur();};    
        a.onmouseout=function(){self.istart();};    
        a.onmouseover=function(){self.istop();};    
        b.onclick=function(e){self.doSlide(20,40,1,3);return false;};    
        b.onfocus=function(){this.blur();};    
        b.onmouseout=function(){self.istart();};    
        b.onmouseover=function(){self.istop();};    
        div.onmouseout=function(){self.istart();};    
        div.onmouseover=function(){self.istop();};    
        this.istart();    
    };    
        
    this.initialize();    
}  
