/*!
* jquery.overlay 1.0.1. Overlay HTML with eyecandy.
*
* Copyright (c) 2009 Tero Piirainen
* http://flowplayer.org/tools/overlay.html
*
* Dual licensed under MIT and GPL 2+ licenses
* http://www.opensource.org/licenses
*
* Launch : March 2008
* Version : 1.0.1 - Wed Feb 18 2009 05:18:24 GMT-0000 (GMT+00:00)
*/
(function($) {
var instances = [];
function fireEvent(opts, name, self, arg) {
var fn = opts[name];
if ($.isFunction(fn)) {
try {
return fn.call(self, arg);
} catch(error) {
if (opts.alert) {
alert("Error calling overlay." + name + ": " + error);
} else {
throw error;
}
return false;
}
}
return true;
}
function Overlay(el, opts) {
var self = this;
var trigger = null;
var w = $(window);
var jq = opts.target || el.attr("rel");
var o = jq ? $(jq) : null;
if (!o) {
o = el;
} else {
trigger = el;
}
var bg = o.attr("overlay");
if (!bg) {
bg = o.css("backgroundImage");
bg = bg.substring(bg.indexOf("(") + 1, bg.indexOf(")"));
o.css("backgroundImage", "none");
o.attr("overlay", bg);
}
if (!bg) {
throw "background-image CSS property not set for overlay element: " + jq;
}
bg = bg.replace(/\"/g, "");
if (opts.preload) {
$(window).load(function() {
setTimeout(function() {
var img = new Image();
img.src = bg;
},
2000);
});
}
var oWidth = o.outerWidth({
margin: true
});
var oHeight = o.outerHeight({
margin: true
});
var img = $('');
img.css({
border: 0,
position: 'absolute'
}).width(oWidth).hide();
$('body').append(img);
if (trigger) {
trigger.bind("click.overlay",
function(e) {
self.load(e.pageY - w.scrollTop(), e.pageX - w.scrollLeft());
return e.preventDefault();
});
}
if (!opts.close || !o.find(opts.close).length) {
o.prepend('