~widelands-dev/widelands-website/trunk

« back to all changes in this revision

Viewing changes to media/js/jqModal.js

  • Committer: Holger Rapp
  • Date: 2009-02-26 22:38:49 UTC
  • Revision ID: sirver@kallisto.local-20090226223849-1563ij0uuw0lz0zu
First version of widelands online help

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * jqModal - Minimalist Modaling with jQuery
3
 
 *   (http://dev.iceburg.net/jquery/jqModal/)
4
 
 *
5
 
 * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>
6
 
 * Dual licensed under the MIT and GPL licenses:
7
 
 *   http://www.opensource.org/licenses/mit-license.php
8
 
 *   http://www.gnu.org/licenses/gpl.html
9
 
 * 
10
 
 * $Version: 03/01/2009 +r14
11
 
 */
12
 
(function($) {
13
 
$.fn.jqm=function(o){
14
 
var p={
15
 
overlay: 50,
16
 
overlayClass: 'jqmOverlay',
17
 
closeClass: 'jqmClose',
18
 
trigger: '.jqModal',
19
 
ajax: F,
20
 
ajaxText: '',
21
 
target: F,
22
 
modal: F,
23
 
toTop: F,
24
 
onShow: F,
25
 
onHide: F,
26
 
onLoad: F
27
 
};
28
 
return this.each(function(){if(this._jqm)return H[this._jqm].c=$.extend({},H[this._jqm].c,o);s++;this._jqm=s;
29
 
H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};
30
 
if(p.trigger)$(this).jqmAddTrigger(p.trigger);
31
 
});};
32
 
 
33
 
$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
34
 
$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
35
 
$.fn.jqmShow=function(t){return this.each(function(){t=t||window.event;$.jqm.open(this._jqm,t);});};
36
 
$.fn.jqmHide=function(t){return this.each(function(){t=t||window.event;$.jqm.close(this._jqm,t)});};
37
 
 
38
 
$.jqm = {
39
 
hash:{},
40
 
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);
41
 
 if(c.modal) {if(!A[0])L('bind');A.push(s);}
42
 
 else if(c.overlay > 0)h.w.jqmAddClose(o);
43
 
 else o=F;
44
 
 
45
 
 h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;
46
 
 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'");}}
47
 
 
48
 
 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;
49
 
  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);});}
50
 
 else if(cc)h.w.jqmAddClose($(cc,h.w));
51
 
 
52
 
 if(c.toTop&&h.o)h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o); 
53
 
 (c.onShow)?c.onShow(h):h.w.show();e(h);return F;
54
 
},
55
 
close:function(s){var h=H[s];if(!h.a)return F;h.a=F;
56
 
 if(A[0]){A.pop();if(!A[0])L('unbind');}
57
 
 if(h.c.toTop&&h.o)$('#jqmP'+h.w[0]._jqm).after(h.w).remove();
58
 
 if(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();} return F;
59
 
},
60
 
params:{}};
61
 
var s=0,H=$.jqm.hash,A=[],ie6=$.browser.msie&&($.browser.version == "6.0"),F=false,
62
 
i=$('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({opacity:0}),
63
 
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);},
64
 
f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}},
65
 
L=function(t){$()[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
66
 
m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r)f(h);return !r;},
67
 
hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {
68
 
 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);});});};
69
 
})(jQuery);/*
70
 
 * jqDnR - Minimalistic Drag'n'Resize for jQuery.
71
 
 *
72
 
 * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net
73
 
 * Licensed under the MIT License:
74
 
 * http://www.opensource.org/licenses/mit-license.php
75
 
 * 
76
 
 * $Version: 2007.08.19 +r2
77
 
 */
78
 
 
79
 
(function($){
80
 
$.fn.jqDrag=function(h){return i(this,h,'d');};
81
 
$.fn.jqResize=function(h){return i(this,h,'r');};
82
 
$.jqDnR={dnr:{},e:0,
83
 
drag:function(v){
84
 
 if(M.k == 'd')E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});
85
 
 else E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});
86
 
  return false;},
87
 
stop:function(){E.css('opacity',M.o);$().unbind('mousemove',J.drag).unbind('mouseup',J.stop);}
88
 
};
89
 
var J=$.jqDnR,M=J.dnr,E=J.e,
90
 
i=function(e,h,k){return e.each(function(){h=(h)?$(h,e):e;
91
 
 h.bind('mousedown',{e:e,k:k},function(v){var d=v.data,p={};E=d.e;
92
 
 // attempt utilization of dimensions plugin to fix IE issues
93
 
 if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}
94
 
 M={X:p.left||f('left')||0,Y:p.top||f('top')||0,W:f('width')||E[0].scrollWidth||0,H:f('height')||E[0].scrollHeight||0,pX:v.pageX,pY:v.pageY,k:d.k,o:E.css('opacity')};
95
 
 E.css({opacity:0.8});$().mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
96
 
 return false;
97
 
 });
98
 
});},
99
 
f=function(k){return parseInt(E.css(k))||false;};
100
 
})(jQuery);
 
 
b'\\ No newline at end of file'