if(typeof YAHOO == 'undefined'){
    throw 'Unable to load Shadowbox, core YUI utilities (yahoo, dom, event, anim) not found.';
}

// Cria um objecto com o nome shadowbox
var Shadowbox = {};

Shadowbox.lib = function(){

    var E = YAHOO.util.Event;
    var D = YAHOO.util.Dom;

    return {
	//vai buscar o style do elemento dado
        getStyle: function(el, style){
            return D.getStyle(el, style);
        },
	//Aplica o style ao objecto especificado
        setStyle: function(el, style, value){
            if(typeof style != 'object'){
                var temp = {};
                temp[style] = value;
                style = temp;
            }
            for(var s in style){
                D.setStyle(el, s, style[s]);
            }
        },
		//Vai buscar a referencia do elemento dado
        get: function(el){
            return D.get(el);
        },
		//remove o elemento do DOM
        remove: function(el){
            el.parentNode.removeChild(el);
        },
		//Vai buscar o caminho do elemento dado
        getTarget: function(e){
            return E.getTarget(e.browserEvent || e);
        },
		//previne o acontecimento default
        preventDefault: function(e){
            E.preventDefault(e.browserEvent || e);
        },
		//Adiciona o listener ao elemento dado
        addEvent: function(el, name, handler){
            E.addListener(el, name, handler);
        },
		//remove o listener
        removeEvent: function(el, name, handler){
            E.removeListener(el, name, handler);
        },
		//Anima os Styles
        animate: function(el, obj, duration, callback){
            var anim = new YAHOO.util.Anim(el, obj, duration, YAHOO.util.Easing.easeOut);
            if(typeof callback == 'function'){
                var f = function(){
                    anim.onComplete.unsubscribe(f);
                    callback.call(anim, anim);
                };
                anim.onComplete.subscribe(f, anim, true);
            }
            anim.animate();
        }

    };

}();
