2 /**************************************************************
\r
6 Authors : Samuel birch
\r
7 Desc : Covers the window with a semi-transparent layer.
\r
8 Licence : Open Source MIT Licence
\r
10 **************************************************************/
\r
12 var overlay = new Class({
\r
14 getOptions: function(){
\r
19 container: document.body,
\r
24 initialize: function(options){
\r
25 this.setOptions(this.getOptions(), options);
\r
27 this.options.container = $(this.options.container);
\r
29 this.container = new Element('div').setProperty('id', 'OverlayContainer').setStyles({
\r
30 position: 'absolute',
\r
34 zIndex: this.options.zIndex
\r
35 }).injectInside(this.options.container);
\r
37 this.iframe = new Element('iframe').setProperties({
\r
38 'id': 'OverlayIframe',
\r
39 'name': 'OverlayIframe',
\r
40 'src': 'javascript:void(0);',
\r
44 'position': 'absolute',
\r
49 'filter': 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)',
\r
52 }).injectInside(this.container);
\r
54 this.overlay = new Element('div').setProperty('id', 'Overlay').setStyles({
\r
55 position: 'absolute',
\r
61 backgroundColor: this.options.colour
\r
62 }).injectInside(this.container);
\r
64 if(this.options._onClick){
\r
65 this.container.addEvent('click', function(){
\r
66 this.options._onClick.call(this)
\r
70 //this.fade = new Fx.Tween(this.container).set('opacity', 0);
\r
71 this.container.fade('hide');
\r
74 window.addEvent('resize', this.position.bind(this));
\r
77 setOnClick: function(func){
\r
78 this.container.addEvent('click', func);
\r
81 position: function(){
\r
82 if(this.options.container == document.body){
\r
83 var h = window.getScrollHeight()+'px';
\r
84 this.container.setStyles({top: '0px', height: h});
\r
86 var myCoords = this.options.container.getCoordinates();
\r
87 this.container.setStyles({
\r
88 top: myCoords.top+'px',
\r
89 height: myCoords.height+'px',
\r
90 left: myCoords.left+'px',
\r
91 width: myCoords.width+'px'
\r
97 //this.fade.start(0,this.options.opacity);
\r
98 this.container.fade(this.options.opacity);
\r
102 //this.fade.start(this.options.opacity,0);
\r
103 this.container.fade('out');
\r
107 overlay.implement(new Options);
\r
109 /*************************************************************/
\r