
var get_event = function(event) {
    if (!event) {
        var event = window.event;
    }
    if (!event.target) {
        event.target = event.srcElement;
    }
    if (!event.pageX) {
        event.pageX = event.clientX + document.body.scrollLeft;
    }
    if (!event.pageY) {
        event.pageY = event.clientY + document.body.scrollLeft;
    }
    return event;
};


var is_tag = function(tag_name, desired_tag_name) {
    return tag_name.toLowerCase() == desired_tag_name ;
};


var clear_zoomed_image = function() {
    var zoomed_image = document.getElementById("zoomed_image");
    if (zoomed_image) {
        zoomed_image.parentNode.removeChild(zoomed_image);
    }
};


var centre_over = function(anchored, floating) {
    floating.style.position = "absolute";
    floating.style.left = anchored.offsetLeft + "px";
    floating.style.top = anchored.offsetTop + "px";
}; 


var has_class = function(element, class_name) {
    var all = element.className;
    if (!all) {
        return false;
    }
    var parts = all.split(" ");
    for (var i = 0; i < parts.length; i++) {
        var part = parts[i];
        if (part == class_name) {
            return true;
        }
    }
    return false;
};


var is_thumb = function(candidate) {
    return (is_tag(candidate.tagName, "img") && 
            has_class(candidate, "thumbnail"))
};


var get_zoomed_image = function(thumb) {
    var zoomed_image = document.getElementById("zoomed_image");
    if (!zoomed_image) {
        var zoomed_image = document.createElement("img");
        zoomed_image.alt = thumb.alt;
        zoomed_image.id = "zoomed_image";
        zoomed_image.src = thumb.src;
        zoomed_image.style.position = "absolute";
        document.body.appendChild(zoomed_image);
    }
    return zoomed_image;
};


var register_events = function() {
    document.onmouseover = function(event) {
        var event = get_event(event);
        if (is_thumb(event.target)) {
            clear_zoomed_image();
        }
    };
    document.onmousemove = function(event) {
        var event = get_event(event);
        if (is_thumb(event.target)) {
            var zoomed_image = get_zoomed_image(event.target);
            zoomed_image.style.left = (event.pageX + 10) + "px";
            zoomed_image.style.top = (event.pageY + 10) + "px";
        }
    };
    document.onmouseout = function(event) {
        var event = get_event(event);
        if (is_thumb(event.target)) {
            clear_zoomed_image();
        }
    };
};



// register_events();

// window.addEvent('domready', Lightbox.init.bind(Lightbox));


var init_boxes = function() {
    var bm = Lightbox.init.bind(Lightbox);
    bm({showControls: true});
    new MultiBox("mb", {descClassName: "multiBoxDesc", useOverlay: true});
};




window.addEvent('domready', init_boxes);
