mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-07-09 01:44:25 +03:00
185 lines
5.8 KiB
JavaScript
185 lines
5.8 KiB
JavaScript
/*
|
|
* jqModal - Minimalist Modaling with jQuery
|
|
* (http://dev.iceburg.net/jquery/jqModal/)
|
|
*
|
|
* Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>
|
|
* Dual licensed under the MIT and GPL licenses:
|
|
* http://www.opensource.org/licenses/mit-license.php
|
|
* http://www.gnu.org/licenses/gpl.html
|
|
*
|
|
* $Version: 03/01/2009 +r14
|
|
*/
|
|
(function ($) {
|
|
$.fn.jqm = function (o) {
|
|
var p = {
|
|
overlay: 50,
|
|
overlayClass: 'jqmOverlay',
|
|
closeClass: 'jqmClose',
|
|
trigger: '.jqModal',
|
|
ajax: F,
|
|
ajaxText: '',
|
|
target: F,
|
|
modal: F,
|
|
toTop: F,
|
|
onShow: F,
|
|
onHide: F,
|
|
onLoad: F
|
|
};
|
|
return this.each(function () {
|
|
if (this._jqm) return H[this._jqm].c = $.extend({}, H[this._jqm].c, o);
|
|
s++;
|
|
this._jqm = s;
|
|
H[s] = {
|
|
c: $.extend(p, $.jqm.params, o),
|
|
a: F,
|
|
w: $(this).addClass('jqmID' + s),
|
|
s: s
|
|
};
|
|
if (p.trigger) $(this).jqmAddTrigger(p.trigger);
|
|
});
|
|
};
|
|
|
|
$.fn.jqmAddClose = function (e) {
|
|
return hs(this, e, 'jqmHide');
|
|
};
|
|
$.fn.jqmAddTrigger = function (e) {
|
|
return hs(this, e, 'jqmShow');
|
|
};
|
|
$.fn.jqmShow = function (t) {
|
|
return this.each(function () {
|
|
t = t || window.event;
|
|
$.jqm.open(this._jqm, t);
|
|
});
|
|
};
|
|
$.fn.jqmHide = function (t) {
|
|
return this.each(function () {
|
|
t = t || window.event;
|
|
$.jqm.close(this._jqm, t)
|
|
});
|
|
};
|
|
|
|
$.jqm = {
|
|
hash: {},
|
|
open: function (s, t) {
|
|
var h = H[s],
|
|
c = h.c,
|
|
cc = '.' + c.closeClass,
|
|
z = (parseInt(h.w.css('z-index'))),
|
|
z = (z > 0) ? z : 3000,
|
|
o = $('<div></div>').css({
|
|
height: '100%',
|
|
width: '100%',
|
|
position: 'fixed',
|
|
left: 0,
|
|
top: 0,
|
|
'z-index': z - 1,
|
|
opacity: c.overlay / 100
|
|
});
|
|
if (h.a) return F;
|
|
h.t = t;
|
|
h.a = true;
|
|
h.w.css('z-index', z);
|
|
if (c.modal) {
|
|
if (!A[0]) L('bind');
|
|
A.push(s);
|
|
} else if (c.overlay > 0) h.w.jqmAddClose(o);
|
|
else o = F;
|
|
|
|
h.o = (o) ? o.addClass(c.overlayClass).prependTo('body') : F;
|
|
if (ie6) {
|
|
$('html,body').css({
|
|
height: '100%',
|
|
width: '100%'
|
|
});
|
|
if (o) {
|
|
o = o.css({
|
|
position: 'absolute'
|
|
})[0];
|
|
for (var y in {
|
|
Top: 1,
|
|
Left: 1
|
|
}) o.style.setExpression(y.toLowerCase(), "(_=(document.documentElement.scroll" + y + " || document.body.scroll" + y + "))+'px'");
|
|
}
|
|
}
|
|
|
|
if (c.ajax) {
|
|
var r = c.target || h.w,
|
|
u = c.ajax,
|
|
r = (typeof r == 'string') ? $(r, h.w) : $(r),
|
|
u = (u.substr(0, 1) == '@') ? $(t).attr(u.substring(1)) : u;
|
|
r.html(c.ajaxText).load(u, function () {
|
|
if (c.onLoad) c.onLoad.call(this, h);
|
|
if (cc) h.w.jqmAddClose($(cc, h.w));
|
|
e(h);
|
|
});
|
|
} else if (cc) h.w.jqmAddClose($(cc, h.w));
|
|
|
|
if (c.toTop && h.o) h.w.before('<span id="jqmP' + h.w[0]._jqm + '"></span>').insertAfter(h.o);
|
|
(c.onShow) ? c.onShow(h) : h.w.show();
|
|
e(h);
|
|
return F;
|
|
},
|
|
close: function (s) {
|
|
var h = H[s];
|
|
if (!h.a) return F;
|
|
h.a = F;
|
|
if (A[0]) {
|
|
A.pop();
|
|
if (!A[0]) L('unbind');
|
|
}
|
|
if (h.c.toTop && h.o) $('#jqmP' + h.w[0]._jqm).after(h.w).remove();
|
|
if (h.c.onHide) h.c.onHide(h);
|
|
else {
|
|
h.w.hide();
|
|
if (h.o) h.o.remove();
|
|
}
|
|
return F;
|
|
},
|
|
params: {}
|
|
};
|
|
var s = 0,
|
|
H = $.jqm.hash,
|
|
A = [],
|
|
ie6 = $.browser.msie && ($.browser.version == "6.0"),
|
|
F = false,
|
|
i = $('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({
|
|
opacity: 0
|
|
}),
|
|
e = function (h) {
|
|
if (ie6) if (h.o) h.o.html('<p style="width:100%;height:100%"/>').prepend(i);
|
|
else if (!$('iframe.jqm', h.w)[0]) h.w.prepend(i);
|
|
f(h);
|
|
},
|
|
f = function (h) {
|
|
try {
|
|
$(':input:visible', h.w)[0].focus();
|
|
} catch (_) {}
|
|
},
|
|
L = function (t) {
|
|
$()[t]("keypress", m)[t]("keydown", m)[t]("mousedown", m);
|
|
},
|
|
m = function (e) {
|
|
var h = H[A[A.length - 1]],
|
|
r = (!$(e.target).parents('.jqmID' + h.s)[0]);
|
|
if (r) f(h);
|
|
return !r;
|
|
},
|
|
hs = function (w, t, c) {
|
|
return w.each(function () {
|
|
var s = this._jqm;
|
|
$(t).each(function () {
|
|
if (!this[c]) {
|
|
this[c] = [];
|
|
$(this).click(function () {
|
|
for (var i in {
|
|
jqmShow: 1,
|
|
jqmHide: 1
|
|
}) for (var s in this[i]) if (H[this[i][s]]) H[this[i][s]].w[i](this);
|
|
return F;
|
|
});
|
|
}
|
|
this[c].push(s);
|
|
});
|
|
});
|
|
};
|
|
})(jQuery); |