

var Elements = {

    /**
     * Load Page
     * This is called from all pages inc dashboard
     *
     * @return {Void}
     */
    load: function()
    {
        //Events for rollover inputs
        $$('input.rollover').each(function(o) {
            Event.observe($(o), 'mouseover', Elements.inputRollover.bindAsEventListener(this,o,'over'));
            Event.observe($(o), 'mouseout', Elements.inputRollover.bindAsEventListener(this,o,'mouseout'));
            Event.observe($(o), 'mousedown', Elements.inputRollover.bindAsEventListener(this,o,'mousedown'));
        });
        //And for images stupid ass
        $$('img.rollover').each(function(o) {
            Event.observe($(o), 'mouseover', Elements.inputRollover.bindAsEventListener(this,o,'over'));
            Event.observe($(o), 'mouseout', Elements.inputRollover.bindAsEventListener(this,o,'mouseout'));
            Event.observe($(o), 'mousedown', Elements.inputRollover.bindAsEventListener(this,o,'mousedown'));
        });
        
        //Events for rollover details
        $$('div.rollover').each(function(o) {
            Event.observe($(o), 'mouseover', Elements.domRollover.bindAsEventListener(this,o,'over'));
            Event.observe($(o), 'mouseout', Elements.domRollover.bindAsEventListener(this,o,'out'));
            Event.observe($(o), 'mousedown', Elements.domRollover.bindAsEventListener(this,o,'mousedown'));
        });
        
        //UI Box
        $$('div.box .footer').each(function(o) {
            Event.observe($(o), 'mouseover', function(e) { $(o).addClassName('active'); });
            Event.observe($(o), 'mouseout', function(e) { $(o).removeClassName('active'); });
        });
    },
    
    
    /**
     * Dom Rollover
     * Events for rollover classes
     *
     * @param {Object} e Event
     * @param {Object} obj Object for event
     * @param {String} type Type of event
     * @return {Void}
     */
    domRollover: function(e,obj,type)
    {
        if(type == 'over')
        {
            $(obj).addClassName('over');
        }
        else if(type == 'out')
        {
            //out
            $(obj).removeClassName('over');
            $(obj).removeClassName('down');
        }
        else if(type == 'mousedown')
        {
            //out
            $(obj).addClassName('down');
        }
    },


    /**
     * Input Rollover
     * Events for rollover inputs
     *
     * @param {Object} e Event
     * @param {Object} obj Object for event
     * @param {String} type Type of event
     * @return {Void}
     */
    inputRollover: function(e,obj,type)
    {
        var src = $(obj).src;
        var newSrc = src;

        var dir = src.substr(0,src.lastIndexOf('/')+1);
        var file = src.substr(src.lastIndexOf('/')+1);
        var ext = file.substr(file.lastIndexOf('.'));

        //make clean file
        var fileClean = file.replace(ext,'');

        if(fileClean.indexOf('_') > 0)
            fileClean = fileClean.substr(0,fileClean.lastIndexOf('_'));

    
        if(type == 'over')
        {
            newSrc = dir+fileClean+'_hover'+ext;
        }
        else if(type == 'mouseout')
        {
            newSrc = dir+fileClean+ext;
        }
        else if(type == 'mousedown')
        {
            newSrc = dir+fileClean+'_down'+ext;
        }
        
        $(obj).src = newSrc;
    
        //console.log($(obj).src);
        //console.log(obj+' / '+type);
    }

}



/** Start up when page has loaded */
Event.observe(window, 'load', function() { Elements.load(); });

