// content slider script by Daniel Cohen Gindi (danielgindi@gmail.com) 054-5655765
// depends on dgTools.js

var ContentSlider = function(opts) {
    return this._init(opts);
};

ContentSlider.prototype = {
    defs: {
        els: null,
        speed: 300,
        fps: 40
    },

    o: null,

    addContentArea: function(el, minSize, maxSize) {
        if (this.defs.els == null) this.defs.els = [];
        el = $(el);
        if (!el) return false;
        var o = {el:el, minSize:minSize || dgTools.Elm.height(el), maxSize:maxSize};
        if (o.maxSize === null || o.maxSize === undefined || o.maxSize == o.minSize) return false;
        this.defs.els.push(o);
        var anim = null;
        var self = this;
        dgTools.observe(el, 'mouseover', function(evt){
            var evt = new dgTools.Event(evt || event);
            if (el == evt.relatedTarget || dgTools.Elm.hasChild(el, evt.relatedTarget)) return;
            evt.stop();
            if (anim) {anim.stop();anim=null;}        
            anim = dgTools.easyAnimate(el, null, {height: o.maxSize}, self.defs.speed, self.defs.fps);
        });
        dgTools.observe(el, 'mouseout', function(evt){
            var evt = new dgTools.Event(evt || event);
            if (el == evt.relatedTarget || dgTools.Elm.hasChild(el, evt.relatedTarget)) return;
            evt.stop();
            if (anim) {anim.stop();anim=null;}        
            anim = dgTools.easyAnimate(el, null, {height: o.minSize}, self.defs.speed, self.defs.fps);
        });
        return true;
    },

    _init: function(o) {
        if (!o) return null;
        var o = this.o = this._Extend({}, 'speed fps', o, this.defs);
        var self = this;
        
        return this;
    }
};

