var lightwindow = {
    init: function(){
        try {
            LeafBase.load_lw = this.load;
            LeafBase.close_lw = this.close;
            lightwindow.create('main_lightwindow');
        } 
        catch (e) {
            Extensions.error(e);
        }
    },
    types: {
        page: ['htm', 'html', 'asp', 'aspx', 'php', 'php3', 'php4', 'xml', 'txt'],
        image: ['jpg', 'jpeg', 'gif', 'png', 'svg'],
        video: ['mov', 'avi', 'divx', 'flv', 'mpg', 'mpeg', 'mp4', 'swf'],
        audio: ['mp3', 'wav']
    },
    margin: function(){
        try {
            for (var x = 0; x < $$('.lw_template').length; x++) {
                $$('.lw_template')[x].setStyle('margin-top:' + ((document.viewport.getHeight() - $$('.lw_template')[0].getHeight()) / 2) + 'px;');
            }
        } 
        catch (e) {
            Extensions.error(e);
        }
    },
    create: function(id){
        try {
            var style = 'margin: ' + (document.viewport.getHeight() / 2) + 'px auto 0px auto;';
            var style_main = (BrowserDetect.browser == 'Explorer' && BrowserDetect.version == 6) ? 'position:absolute;background-image: url(/modules/leafbase/images/alpha50white.png);' : 'background-image: url(/modules/leafbase/images/alpha50white.png);';
            var elm = new Element('div', {
                'class': 'lw_background',
                'id': id,
                'style': 'display:none;' + style_main
            });
            var template = new Element('div', {
                'class': 'lw_template',
                'style': 'position:relative;width: 90px;height: 30px;' + style
            });
            var gallerynav = new Element('div', {
                'class': 'lw_gallerynav'
            });
            var back = new Element('div', {
                'class': 'lw_gallerynav_button back_button',
                'style': 'width:30px;height:100%;float:left;'
            });
            var back_img = new Element('img', {
                'src': '/modules/leafbase/images/galleryback.png',
                'width': '16',
                'alt': 'previous image',
                'style': 'margin-top: 2px;'
            });
            var forward = new Element('div', {
                'class': 'lw_gallerynav_button forward_button',
                'style': 'width:30px;height:100%;float:right;'
            });
            var forward_img = new Element('img', {
                'src': '/modules/leafbase/images/gallerynext.png',
                'width': '16',
                'alt': 'next image',
                'style': 'margin-top: 2px;'
            });
            var title = new Element('div', {
                'class': 'lw_title',
                'style': 'margin: 0 auto;line-height:20px;height:100%;'
            });
            var container = new Element('div', {
                'class': 'lw_container',
                'style': 'overflow:none;'
            });
            var preloader = new Element('img', {
                'src': 'http://www.wgte.org/modules/leafbase/images/38.gif',
                'style': 'display:none;',
                'alt': 'Preloader',
                'class': 'lw_preloader'
            });
            var caption = new Element('div', {
                'class': 'lw_caption'
            });
			
            document.body.appendChild(elm);
            elm.appendChild(template);
            template.appendChild(gallerynav);
            gallerynav.appendChild(back);
            back.appendChild(back_img);
            gallerynav.appendChild(forward);
            forward.appendChild(forward_img);
            gallerynav.appendChild(title);
            template.appendChild(container);
            template.appendChild(preloader);
            template.appendChild(caption);
			
            Event.observe(window, 'resize', function(ev){
                try {
                    lightwindow.margin();
                } 
                catch (e) {
                    Extensions.error(e);
                }
            });
            Event.observe(elm, 'click', function(ev){
                try {
                    var elm = Event.element(ev);
                    if (elm.className.indexOf('lw_background') >= 0) {
                        elm.hide();
                        elm.down('.lw_container').innerHTML = '';
                    }
                } 
                catch (e) {
                    Extensions.error(e);
                }
            });
            Event.observe(back, 'click', function(ev){
                try {
                    lightwindow.progress(-1, {
                        'container': id
                    });
                } 
                catch (e) {
                    Extensions.error(e);
                }
            });
            Event.observe(forward, 'click', function(ev){
                try {
                    lightwindow.progress(1, {
                        'container': id
                    });
                } 
                catch (e) {
                    Extensions.error(e);
                }
            });
        } 
        catch (e) {
            Extensions.error(e);
        }
    },
    close: function(id){
        try {
            $(id).hide();
            $(id).down('.lw_container').innerHTML = '';
        } 
        catch (e) {
            Extensions.error(e);
        }
    },
    load: function(file, options){
        try {
            if (!Extensions.isEmpty(options)) {
                var container = (!Extensions.isEmpty(options.container)) ? options.container : 'main_lightwindow';
                var to_height = (!Extensions.isEmpty(options.height)) ? options.height : null;
                var to_width = (!Extensions.isEmpty(options.width)) ? options.width : null;
                var title = (!Extensions.isEmpty(options.title)) ? options.title : null;
                var caption = (!Extensions.isEmpty(options.caption)) ? options.caption : null;
                var show_title = (!Extensions.isEmpty(options.show_title)) ? options.show_title : 'false';
                var show_caption = (!Extensions.isEmpty(options.show_caption)) ? options.show_caption : 'false';
                var gallery = (!Extensions.isEmpty(options.gallery)) ? options.gallery : 'false';
                var gallery_id = (!Extensions.isEmpty(options.gallery_id)) ? options.gallery_id : 0;
                var resize = (!Extensions.isEmpty(options.resize)) ? options.resize : 'full';
            }
            else {
				options = {};
                var container = 'main_lightwindow';
                var to_height = null;
                var to_width = null;
                var title = null;
                var caption = null;
                var show_title = 'false';
                var show_caption = 'false';
                var gallery = 'false';
                var gallery_id = 0;
                var resize = 'full';
            }
			if(arguments[2]){
				var fnc = arguments[2];
			}else{
				var fnc = null;
			}
			
            $(container).show();
            $(container).current_id = gallery_id;
			
            effectarea = $(container).select('.lw_template')[0];
			gallerynav = $(effectarea).select('.lw_gallerynav')[0];
			$(gallerynav).hide();
			captionnav = $(effectarea).select('.lw_caption')[0];
			$(captionnav).hide();
            container = $(container).select('.lw_container')[0];
			container = $(container);
            container.innerHTML = '';
			
            switch (Extensions.typeOf(file)) {
                case 'string':
                    if (file.indexOf('#') > -1) {
                        if (container) {
                            container.innerHTML = $(file.replace('#', '')).innerHTML;
                            container.hide();
                            lightwindow.resize(options, function(){
                                try {
                                    if (typeof fnc == "function"){fnc();}
									container.show();
                                } 
                                catch (e) {
                                    Extensions.error(e);
                                }
                            });
                        }
                    }
                    else 
                        if (file.indexOf('.') == 0) {
                            if (container) {
                                container.innerHTML = $$(file)[0].innerHTML;
                                container.hide();
                                lightwindow.resize(options, function(){
                                    try {
                                        container.show();
                                    } 
                                    catch (e) {
                                        Extensions.error(e);
                                    }
                                });
                            }
                        }
                        else {
                            var path = file.split('/');
                            var parameters = path[path.length - 1].split('?');
                            var parts = parameters[0].split('.');
                            if (Extensions.in_array(parts[parts.length - 1], lightwindow.types.page)) {
                                if (container) {
                                    new Ajax.Updater(container, file, {
                                        'method': 'get',
                                        onComplete: function(transport){
                                            try {
                                                lightwindow.resize(options, fnc);
                                            } 
                                            catch (e) {
                                                Extensions.error(e);
                                            }
                                        }
                                    });
                                }
                            }
                            else 
                                if (Extensions.in_array(parts[parts.length - 1], lightwindow.types.image)) {
                                    if (container) {
                                        var style_string = (!Extensions.isEmpty(to_height) ? 'height:' + to_height + 'px;' : '') + (!Extensions.isEmpty(to_width) ? 'width:' + to_width + 'px;' : '');
                                        var elm = new Element('img', {
                                            'src': file,
                                            'style': 'style',
                                            'alt': (title) ? title : ''
                                        });
                                        container.appendChild(elm);
                                        elm.hide();
                                        if (BrowserDetect.browser == 'Explorer' && BrowserDetect.version == 6) {
                                            lightwindow.resize.delay(1, options, function(){
                                                try {
                                                    container.up('.lw_template').down('.lw_preloader').setStyle('display:none;');
                                                    elm.show();
                                                } 
                                                catch (e) {
                                                    Extensions.error(e);
                                                }
                                            });
                                        }
                                        else if(BrowserDetect.browser == 'Explorer') {
                                            lightwindow.resize(options, function(){
                                                try {
                                                    container.up('.lw_template').down('.lw_preloader').setStyle('display:none;');
                                                    elm.show();
                                                } 
                                                catch (e) {
                                                    Extensions.error(e);
                                                }
                                            });
                                        }else{
											new Ajax.Request(file, {
		                                        'method': 'get',
												contentType: 'text/plain',
												encoding: 'windows-1251',
		                                        onCreate: function(){
		                                            try {
		                                                container.up('.lw_template').down('.lw_preloader').setStyle('display:block;');
		                                            } 
		                                            catch (e) {
		                                                Extensions.error(e);
		                                            }
		                                        },
		                                        onComplete: function(){
		                                            try {
		                                                    lightwindow.resize.delay(1, options, function(){
		                                                        try {
		                                                            container.up('.lw_template').down('.lw_preloader').setStyle('display:none;');
		                                                            elm.show();
		                                                        } 
		                                                        catch (e) {
		                                                            Extensions.error(e);
		                                                        }
		                                                    });
		                                            } 
		                                            catch (e) {
		                                                Extensions.error(e);
		                                            }
		                                        }
		                                    });
										}
                                    }
                                }
                                else 
                                    if (Extensions.in_array(parts[parts.length - 1], lightwindow.types.audio)) {
                                        if (container) {
                                            var playerpath = 'http://'+location.hostname+'/modules/jw_player/player.swf';
                                            var flashvars = '&file='+'http://media.aeoned.org'+file;
                                            var urlpath = '#';
                                            
                                            var style_string = (!Extensions.isEmpty(to_height) ? 'height:' + to_height + 'px;' : '') + (!Extensions.isEmpty(to_width) ? 'width:' + to_width + 'px;' : '');
                                            
                                            if (!(navigator.userAgent.match(/iPhone/i)) && !(navigator.userAgent.match(/iPod/i))) {
                                                request = playerpath + file + "&strURL=" + urlpath;
                                            }
                                            else {
                                                request = file;
                                            }
                                            if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
                                                options.width = 320;
                                                options.height = 260;
                                            }
                                            else {
                                                options.width = 200;
                                                options.height = 50;
                                            }
                                            
                                            if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
                                                var elm = new Element('object', {
                                                    'classid': 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
                                                    'width': options.width,
                                                    'height': options.height,
                                                    'codebase': 'http://www.apple.com/qtactivex/qtplugin.cab'
                                                });
                                                container.appendChild(elm);
                                                var param = new Element('param', {
                                                    'name': 'src',
                                                    'value': file
                                                });
                                                elm.appendChild(param);
                                                var param = new Element('param', {
                                                    'name': 'autoplay',
                                                    'value': 'true'
                                                });
                                                elm.appendChild(param);
                                                var param = new Element('param', {
                                                    'name': 'controller',
                                                    'value': 'true'
                                                });
                                                elm.appendChild(param);
                                                var embed = new Element('embed', {
                                                    'src': file,
                                                    'width': options.width,
                                                    'height': options.height,
                                                    'autoplay': 'true',
                                                    'controller': 'true',
                                                    'pluginspage': 'http://www.apple.com/quicktime/download/'
                                                });
                                                elm.appendChild(embed);
                                            }
                                            else {
                                                var elm = new Element('object', {
                                                    'classid': 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',
                                                    'width': options.width,
                                                    'height': options.height,
                                                    'codebase': 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0',
                                                    'id': 'flv_player',
                                                    'align': 'middle'
                                                });
                                                container.appendChild(elm);
                                                var param = new Element('param', {
                                                    'name': 'movie',
                                                    'value': playerpath
                                                });
                                                elm.appendChild(param);
                                                var param = new Element('param', {
                                                    'name': 'allowScriptAccess',
                                                    'value': 'true'
                                                });
                                                elm.appendChild(param);
                                                var param = new Element('param', {
                                                    'name': 'quality',
                                                    'value': 'high'
                                                });
                                                elm.appendChild(param);
                                                var param = new Element('param', {
                                                    'name': 'bgcolor',
                                                    'value': '#ffffff'
                                                });
                                                elm.appendChild(param);
                                                var param = new Element('param', {
                                                    'name': 'wmode',
                                                    'value': 'transparent'
                                                });
                                                elm.appendChild(param);
                                                var param = new Element('param', {
                                                    'name': 'scale',
                                                    'value': 'noborder'
                                                });
                                                elm.appendChild(param);
												var param = new Element('param', {
                                                    'name': 'flashvars',
                                                    'value': flashvars
                                                });
                                                elm.appendChild(param);
                                                var embed = new Element('embed', {
                                                    'src': playerpath,
                                                    'width': options.width,
                                                    'height': options.height,
                                                    'wmode': 'transparent',
                                                    'scale': 'noborder',
                                                    'type': 'application/x-shockwave-flash',
                                                    'pluginspage': 'http://www.macromedia.com/go/getflashplayer',
                                                    'align': 'middle',
                                                    'allowScriptAccess': 'sameDomain',
                                                    'name': 'flv_player',
													'flashvars': flashvars,
                                                    'bgcolor': '#ffffff',
                                                    'quality': 'high'
                                                });
                                                elm.appendChild(embed);
                                            }
                                            elm.hide();
                                            embed.hide();
                                            new Ajax.Request(request, {
                                                'method': 'get',
                                                onComplete: function(transport){
                                                    try {
                                                        lightwindow.resize(options, function(){
															try {
                                                            elm.show();
                                                            embed.show();
															} 
														    catch (e) {
														        Extensions.error(e);
														    }
                                                        });
                                                    } 
                                                    catch (e) {
                                                        Extensions.error(e);
                                                    }
                                                }
                                            });
                                        }
                                    }
                                    else 
                                        if (Extensions.in_array(parts[parts.length - 1], lightwindow.types.video)) {
                                            if (container) {
                                                var playerpath = 'http://'+location.hostname+'/modules/jw_player/player.swf';
                                                var flashvars = '&file='+'http://media.aeoned.org'+file;
                                                var urlpath = '#';
                                                
												if (!(navigator.userAgent.match(/iPhone/i)) && !(navigator.userAgent.match(/iPod/i))) {
													request = playerpath;
                                                }
                                                else {
                                                    request = file;
                                                }
                                                
                                                if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
                                                    options.width = 320;
                                                    options.height = 260;
                                                }
                                                else {
                                                    options.width = 340;
                                                    options.height = 300;
                                                }
												
												var style_string = (!Extensions.isEmpty(to_height) ? 'height:' + options.height + 'px;' : '') + (!Extensions.isEmpty(to_width) ? 'width:' + options.width + 'px;' : '');
                                                
                                                if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
                                                    var elm = new Element('object', {
                                                        'classid': 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
                                                        'width': options.width,
                                                        'height': options.height,
                                                        'codebase': 'http://www.apple.com/qtactivex/qtplugin.cab'
                                                    });
                                                    container.appendChild(elm);
                                                    var param = new Element('param', {
                                                        'name': 'src',
                                                        'value': file.replace('.flv', '.mp4')
                                                    });
                                                    elm.appendChild(param);
                                                    var param = new Element('param', {
                                                        'name': 'autoplay',
                                                        'value': 'true'
                                                    });
                                                    elm.appendChild(param);
                                                    var param = new Element('param', {
                                                        'name': 'controller',
                                                        'value': 'true'
                                                    });
                                                    elm.appendChild(param);
                                                    var embed = new Element('embed', {
                                                        'src': file.replace('.flv', '.mp4'),
                                                        'width': options.width,
                                                        'height': options.height,
                                                        'autoplay': 'true',
                                                        'controller': 'true',
                                                        'pluginspage': 'http://www.apple.com/quicktime/download/'
                                                    });
                                                    elm.appendChild(embed);
                                                }
                                                else {
                                                    var elm = new Element('object', {
                                                        'classid': 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',
                                                        'width': options.width,
                                                        'height': options.height,
                                                        'codebase': 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0',
                                                        'id': 'flv_player',
                                                        'align': 'middle'
                                                    });
                                                    container.appendChild(elm);
                                                    var param = new Element('param', {
                                                        'name': 'movie',
                                                        'value': request
                                                    });
                                                    elm.appendChild(param);
                                                    var param = new Element('param', {
                                                        'name': 'allowScriptAccess',
                                                        'value': 'true'
                                                    });
                                                    elm.appendChild(param);
                                                    var param = new Element('param', {
                                                        'name': 'quality',
                                                        'value': 'high'
                                                    });
                                                    elm.appendChild(param);
                                                    var param = new Element('param', {
                                                        'name': 'bgcolor',
                                                        'value': '#ffffff'
                                                    });
                                                    elm.appendChild(param);
                                                    var param = new Element('param', {
                                                        'name': 'wmode',
                                                        'value': 'transparent'
                                                    });
                                                    elm.appendChild(param);
                                                    var param = new Element('param', {
                                                        'name': 'scale',
                                                        'value': 'noborder'
                                                    });
                                                    var param = new Element('param', {
                                                        'name': 'autoplay',
                                                        'value': 'true'
                                                    });
                                                    elm.appendChild(param);
													var param = new Element('param', {
                                                        'name': 'flashvars',
                                                        'value': flashvars
                                                    });
                                                    elm.appendChild(param);
                                                    var embed = new Element('embed', {
                                                        'src': request,
                                                        'width': options.width,
                                                        'height': options.height,
                                                        'wmode': 'transparent',
                                                        'scale': 'noborder',
                                                        'type': 'application/x-shockwave-flash',
                                                        'pluginspage': 'http://www.macromedia.com/go/getflashplayer',
                                                        'align': 'middle',
                                                        'allowScriptAccess': 'sameDomain',
                                                        'name': 'flv_player',
														'flashvars': flashvars,
                                                        'bgcolor': '#ffffff',
                                                        'quality': 'high'
                                                    });
                                                    elm.appendChild(embed);
                                                }
                                                elm.hide();
                                                embed.hide();
                                                
                                                new Ajax.Request(request, {
                                                    'method': 'get',
                                                    onComplete: function(transport){
                                                        try {
                                                            lightwindow.resize(options, function(){
                                                                elm.show();
                                                                embed.show();
                                                            });
                                                        } 
                                                        catch (e) {
                                                            Extensions.error(e);
                                                        }
                                                    }
                                                });
                                            }
                                        }
                        }
                    break;
                default:
                    break;
            }
        } 
        catch (e) {
            Extensions.error(e);
        }
    },
    resize: function(options){
        if (!Extensions.isEmpty(options)) {
            var container = (!Extensions.isEmpty(options.container)) ? options.container : 'main_lightwindow';
            var to_height = (!Extensions.isEmpty(options.height)) ? options.height : null;
            var to_width = (!Extensions.isEmpty(options.width)) ? options.width : null;
            var title = (!Extensions.isEmpty(options.title)) ? options.title : null;
            var caption = (!Extensions.isEmpty(options.caption)) ? options.caption : null;
            var show_title = (!Extensions.isEmpty(options.show_title)) ? options.show_title : 'false';
            var show_caption = (!Extensions.isEmpty(options.show_caption)) ? options.show_caption : 'false';
            var gallery = (!Extensions.isEmpty(options.gallery)) ? options.gallery : 'false';
            var gallery_id = (!Extensions.isEmpty(options.gallery_id)) ? options.gallery_id : 0;
            var resize = (!Extensions.isEmpty(options.resize)) ? options.resize : 'full';
        }
        else {
            var container = 'main_lightwindow';
            var to_height = null;
            var to_width = null;
            var title = null;
            var caption = null;
            var show_title = 'false';
            var show_caption = 'false';
            var gallery = 'false';
            var gallery_id = 0;
            var resize = 'full';
        }
        if (!Extensions.isEmpty(arguments[1])) {
            var fnc = arguments[1];
        }
        effectarea = $(container).down('.lw_template', 0);
        caption_text = $(container).down('.lw_caption', 0);
        container = $(container).down('.lw_container', 0);
        container = !Extensions.isEmpty(container.down(0)) ? container.down(0) : container;
        
        var height = effectarea.getHeight();
        var width = effectarea.getWidth();
		
        to_height = (!Extensions.isEmpty(to_height)) ? to_height : container.getHeight();
        to_width = (!Extensions.isEmpty(to_width)) ? to_width : container.getWidth();
        
        if (to_height > document.viewport.getDimensions().height - 100 || to_width > document.viewport.getDimensions().width - 100) {
            var resizeByRatio = function(oh, ow, nh, nw){
                var o_ratio = (ow > oh) ? oh / ow : ow / oh;
                var o_largest = (ow > oh) ? 'w' : 'h';
                var n_ratio = (nw > nh) ? nh / nw : nw / nh;
                var n_largest = (nw > nh) ? 'w' : 'h';
                
                if (n_largest != o_largest) {
                    rw = (n_largest == 'h') ? nw : ow * (nh / oh);
                    rh = (n_largest == 'w') ? nh : oh * (nw / ow);
                }
                else {
                    if (n_ratio > o_ratio) {
                        rw = (n_largest == 'w') ? nw : ow * (nh / oh);
                        rh = (n_largest == 'h') ? nh : oh * (nw / ow);
                    }
                    else {
                        rw = (n_largest == 'w') ? ow * (nh / oh) : nw;
                        rh = (n_largest == 'h') ? oh * (nw / ow) : nh;
                    }
                }
                
                return [rh, rw];
            };
            if (container.tagName != 'object') {
                var dimensions = resizeByRatio(to_height, to_width, document.viewport.getDimensions().height - 100, document.viewport.getDimensions().width - 100);
                to_height = dimensions[0];
                to_width = dimensions[1];
                container.setStyle('height:' + to_height + 'px;');
                container.setStyle('width:' + to_width + 'px;');
            }
        }
        
        if (gallery == 'true' || show_title == 'true') {
            to_height = to_height + 20;
        }
        if (show_caption == 'true' && !Extensions.isEmpty(caption)) {
            to_height = to_height + 26;
            caption_text.setStyle('height:26px;');
        }
        else {
            caption_text.innerHTML = '';
					   }
       
          //if(typeof(fnc) == 'function') fnc();
                if (gallery == 'true' || show_title == 'true') {
                    var nav = $(effectarea).down('.lw_gallerynav', 0);
                    $(nav).show();
                    if (gallery_id == 0) {
                        $(nav).down('.back_button').setStyle('visibility:hidden;');
                    }
                    else {
                        $(nav).down('.back_button').setStyle('visibility:visible;');
                    }
                    var lwcn = (!Extensions.isEmpty(options.container)) ? options.container : 'main_lightwindow';
                    if (gallery_id == $(lwcn.replace(/lw_/, '')).getElementsByClassName('gallery_item').length - 1) {
                        $(nav).down('.forward_button').setStyle('visibility:hidden;');
                    }
                    else {
                        $(nav).down('.forward_button').setStyle('visibility:visible;');
                    }
                }
                else {
                    $(effectarea).down('.lw_gallerynav', 0).hide();
                }
                if (show_title == 'true') {
                    $(effectarea).down('.lw_title', 0).innerHTML = title;
                    $(effectarea).down('.lw_title', 0).show();
                }
                else {
                    $(effectarea).down('.lw_title', 0).hide();
                }
                if (show_caption == 'true' && !Extensions.isEmpty(caption)) {
                    $(effectarea).down('.lw_caption', 0).innerHTML = caption;
                    $(effectarea).down('.lw_caption', 0).show();
                        }
                    else {
                    $(effectarea).down('.lw_caption', 0).innerHTML     = caption;
                    $(effectarea).down('.lw_caption', 0).hide();
                }	   
        
		/*
		if((height-to_height) > 10 || (width-to_width) > 10 || (to_height-height) > 10 || (to_width-width) > 10){
			
	        new Effect.Parallel([new Effect.Tween(effectarea, height - 2, to_height, function(h){
	            try {
	                effectarea.setStyle('height:' + Math.round(h) + 'px;');
	            } 
	            catch (e) {
	                Extensions.error(e);
	            }
	        }), new Effect.Tween(effectarea, width - 2, to_width, function(w){
	            try {
	                effectarea.setStyle('width:' + w + 'px;');
	            } 
	            catch (e) {
	                Extensions.error(e);
	            }
	        }), new Effect.Tween(null, 0, 1, function(){
	            try {
	                effectarea.setStyle('margin-top:' + ((document.viewport.getHeight() - effectarea.getHeight()) / 2) + 'px;');
	            } 
	            catch (e) {
	                Extensions.error(e);
	            }
	        })], {
	            duration: 1.5,
	            afterFinish: function(){
					try {
	                if(typeof(fnc) == 'function') fnc();
	                if (gallery == 'true' || show_title == 'true') {
	                    var nav = $(effectarea).down('.lw_gallerynav', 0);
	                    $(nav).show();
	                    if (gallery_id == 0) {
	                        $(nav).down('.back_button').setStyle('visibility:hidden;');
	                    }
	                    else {
	                        $(nav).down('.back_button').setStyle('visibility:visible;');
	                    }
	                    var lwcn = (!Extensions.isEmpty(options.container)) ? options.container : 'main_lightwindow';
	                    if (gallery_id == $(lwcn.replace(/lw_/, '')).getElementsByClassName('gallery_item').length - 1) {
	                        $(nav).down('.forward_button').setStyle('visibility:hidden;');
	                    }
	                    else {
	                        $(nav).down('.forward_button').setStyle('visibility:visible;');
	                    }
	                }
	                else {
	                    $(effectarea).down('.lw_gallerynav', 0).hide();
	                }
	                if (show_title == 'true') {
	                    $(effectarea).down('.lw_title', 0).innerHTML = title;
	                    $(effectarea).down('.lw_title', 0).show();
	                }
	                else {
	                    $(effectarea).down('.lw_title', 0).hide();
	                }
	                if (show_caption == 'true' && !Extensions.isEmpty(caption)) {
	                    $(effectarea).down('.lw_caption', 0).innerHTML = caption;
	                    $(effectarea).down('.lw_caption', 0).show();
	                }
	                else {
	                    $(effectarea).down('.lw_caption', 0).innerHTML = caption;
	                    $(effectarea).down('.lw_caption', 0).hide();
	                }
					} 
				    catch (e) {
				        Extensions.error(e);
				    }
	            }
	        });
		}else{
		*/
			effectarea.setStyle('height:' + to_height + 'px;');
			effectarea.setStyle('width:' + to_width + 'px;');
			effectarea.setStyle('margin-top:' + ((document.viewport.getHeight() - effectarea.getHeight()) / 2) + 'px;');
			if(typeof(fnc) == 'function') fnc();
		/*
		}
		*/
    },
    progress: function(move, options){
        if (!Extensions.isEmpty(options)) {
            var container = (!Extensions.isEmpty(options.container)) ? options.container : 'main_lightwindow';
        }
        else {
            var container = 'main_lightwindow';
        }
        //if(!Extensions.isEmpty($(container).current_id)){
        var attempt = parseInt($(container).current_id) + parseInt(move);
        var gallery = $(container);
        var gallery_module = $(container.replace(/lw_/, ''));
        //alert(gallery.current_id+':'+move+':'+attempt);
        if (attempt >= 0) 
            gallery._click(gallery_module.down('.gallery_item', attempt));
        //}
    }
}

