var Slider = new Class({

    slide : null, 
    slider : null, //a legordulo objektum
    button : null, //amire kivaltodik a legordulo
    slideContent : null, //HTML vagy PHP tartalom, csak utvonalat kell megadni neki
    content : null, //ebbe kerul a tartalom a kulso fileokbol;
    timeOut : null,
    smallContent : false, 
    rolledIn : false,
    onSlide : false,
            
    initialize : function(options) {
        this.slide = options.slider;
        if(options.smallContent) this.smallContent = options.smallContent; 
        this.slideContent = options.slideContent;
        
//        var ajax = new Ajax(this.slideContent, {method: 'get', update: this.slide});
//        ajax.request();
        var ajax=new Request.HTML({url: this.slideContent, method:'get',update: this.slide});
        ajax.send();
        
        this.slider = new Fx.Slide(options.slider, {});                        
        this.slider.hide();
        
        this.slide.style.display = 'block';
        
        this.slide.parentNode.style.position = 'absolute';
        this.slide.parentNode.style.zIndex = '100';
        this.slide.parentNode.style.marginTop = '-1px'; 
                   
        this.button = options.button;
                             
        this.addEvents();             
    },
    
    slideIn : function(e, o){
         if(this.object.smallContent){
            var elementPosition = this.object.button.getPosition();
            var slidePosition = this.object.slide.getPosition();
                                    
            var contentSize = this.object.slide.childNodes[0].childNodes[0].offsetWidth
            
            var a = elementPosition.x;
            var b = slidePosition.x;
            var w = contentSize;//.width;
            var c = (a-b + 30) - Math.round(w/2);               
              
            if(c>0){
                if((c + w)>=740) this.object.slide.childNodes[0].childNodes[0].style.marginLeft =  (740 - w) + 'px';
                    else this.object.slide.childNodes[0].childNodes[0].style.marginLeft = c + 'px';
            }
            
        }          
        e = new Event(e);
        this.object.button.className = 'sel';        
        window.clearTimeout(this.object.timeOut);
        
        if(this.element==this.object.button){                                    
            this.object.rolledIn = true;
            this.object.onSlide = false;        
            this.object.slider.show();
        }else if(this.element==this.object.slide){
            this.object.rolledIn = false;
            this.object.onSlide = true;                    
        }
        e.stop();         
    },
    slideOut : function(e){        
        e = new Event(e);
        
        var slideOut = function(t) { return function() { t.out(); }; };
        var callBack = slideOut(this.object);
        
             
        if(this.element.id==this.object.button.id){
            this.object.rolledIn = false;            
            this.object.timeOut = window.setTimeout(callBack, 50);
        }else  if(this.element.id==this.object.slide.id){            
            this.object.button.className = '';
            this.object.onSlide = false;
            this.object.rolledIn = false;
            window.clearTimeout(this.object.timeOut);                                
            this.object.slider.hide();
        }                                                        
        e.stop();
    },
    
    out : function(){        
        if(!this.onSlide){
            this.button.className = '';
            //this.slider.slideOut();        	                                                      	            
            this.slider.hide();
        }
        window.clearTimeout(this.timeOut);
        this.onSlide = false;
        this.rolledIn = false;
    },
     
    addEvents : function(){        
        this.button.addEvent('mouseenter', this.slideIn.bindWithEvent({object: this, element: this.button}));
        this.button.addEvent('mouseleave', this.slideOut.bindWithEvent({object: this, element: this.button}));
        
        this.slide.addEvent('mouseenter', this.slideIn.bindWithEvent({object: this, element: this.slide}));
        this.slide.addEvent('mouseleave', this.slideOut.bindWithEvent({object: this, element: this.slide}));
    }
    
});
SliderObject = new Array();
SliderLength = 0;

