﻿var ImageLoader = function(element) {
    this.imageElement = element;
    this.originalSrc = element.src;
};

ImageLoader.prototype = {
    hoverfy: function(element) {
        var items = element.getElementsByTagName('a');
        var context = this;
        for (var i = 0; i < items.length; i++) {
            var item = items[i];
            item.onmouseover = function() {
                var me = this;
                if (!me.href) me = me.parentNode;
                context.imageElement.src = me.href;
                context._triggerTearsOfJoy()
            };
            item.onclick = function(e) {
                if (e && e.stopPropagation) e.stopPropagation();
                return false;
            };
            item.onmouseout = function() {
                context._triggerAngry()
            };
        }

    },
    _triggerAngry: function() {
        var context = this;
        this.timer = setTimeout(function() {
            context.imageElement.src = context.originalSrc;
        }, 800);
    },
    _triggerTearsOfJoy: function() {
        if (this.timer) clearTimeout(this.timer);
    }

};