/* imgpopup */
var ImgPopup = new Class({
    options:{
        hide_ie6_selects:true,
        hide_embeds:true,
        startSize:{
            x:75,
            y:75
        },
        shadowSize:{
            x:57,
            y:57
        },
        ie6_shadowSize:{
            x:25,
            y:25
        },
        in_duration:300,
        out_duration:300,
        overlayOpacity:.7
    },
    sections:[],
    initialize:function(){
        if(window.ie6){
            this.options.shadowSize = this.options.ie6_shadowSize;
        }
        this.overlay = new Element('div',{id:'imgp_overlay'}).setStyles({display:'none',position:'absolute',top:0,left:0}).setStyle('opacity',0);
        this.overlay.inject(document.body);
        this.shadow = new Element('div',{id:'imgp_shadow_wrap'}).setHTML('<div id="imgp_shadow_nw"></div><div id="imgp_shadow_n"></div><div id="imgp_shadow_ne"></div><div id="imgp_shadow_w"></div><div id="imgp_shadow"></div><div id="imgp_shadow_e"></div><div id="imgp_shadow_sw"></div><div id="imgp_shadow_s"></div><div id="imgp_shadow_se"></div>');
        this.shadow.inject(document.body);
        this.imgwrap = new Element('div',{id:'imgp_imgwrap'}).setHTML('<img id="imgp_img"><iframe id="imgp_iframe" frameBorder="0"></iframe><div id="imgp_element"></div><a id="imgp_close" href=""></a><a id="imgp_prev" href=""></a><a id="imgp_next" href=""></a><div id="imgp_caption"></div>');
        this.imgwrap.inject(document.body);
        this.caption = this.imgwrap.getElement('#imgp_caption');
        this.img = this.imgwrap.getElement('#imgp_img');
        this.iframe = this.imgwrap.getElement('#imgp_iframe');
        this.element = this.imgwrap.getElement('#imgp_element');
        this.prev = this.imgwrap.getElement('#imgp_prev');
        this.prev.addEvent('click',function(e){
            this.goTo.bind(this)(-1);
            if(e){
                e.stop();
            }
        }.bindWithEvent(this));
        this.next = this.imgwrap.getElement('#imgp_next');
        this.next.addEvent('click',function(e){
            this.goTo.bind(this)(1);
            if(e){
                e.stop();
            }
        }.bindWithEvent(this));
        this.preimg = new Element('img');
        this.preimg.addEvent('load',this.imgLoaded.bind(this));
        this.effects_in = {
            overlay:new Fx.Styles(this.overlay, {duration: this.options.in_duration, transition: Fx.Transitions.linear}),
            shadow:new Fx.Styles(this.shadow, {duration: this.options.in_duration, transition: Fx.Transitions.Quad.easeOut}),
            imgwrap:new Fx.Styles(this.imgwrap, {duration: this.options.in_duration, transition: Fx.Transitions.Quad.easeOut}),
            img:new Fx.Styles(this.img, {duration: this.options.in_duration, transition: Fx.Transitions.Quad.easeOut})
        };
        this.effects_out = {
            overlay:new Fx.Styles(this.overlay, {duration: this.options.out_duration, transition: Fx.Transitions.linear}),
            shadow:new Fx.Styles(this.shadow, {duration: this.options.out_duration, transition: Fx.Transitions.Quad.easeIn}),
            imgwrap:new Fx.Styles(this.imgwrap, {duration: this.options.out_duration, transition: Fx.Transitions.Quad.easeIn}),
            img:new Fx.Styles(this.img, {duration: this.options.out_duration, transition: Fx.Transitions.Quad.easeIn})
        };
        this.imgwrap.getElement('#imgp_close').addEvent('click',function(e){
            this.close();
            if(e){
                e.stop();
            }
        }.bindWithEvent(this));
        this.overlay.addEvent('click',function(){
            this.close();
        }.bind(this));
        this.imgwrap.setStyle('display','none');
    },
    'addSection':function(section){
        this.sections.push(section);
    },
    start:function(url,caption){
        this.active_section = -1;
        for(i in this.sections){
            for(j in this.sections[i]){
                if(this.sections[i][j].url==url){
                    this.active_section = i;
                    this.active_item = j;
                    break;
                }
            }
        }
        if(this.active_section<0){
            this.addSection([{
                url:url,
                caption:caption
            }]);
            this.active_section = this.sections.length-1;
            this.active_item = 0;
        }
        this.preLoad(this.sections[this.active_section][this.active_item].url);
    },
    preLoad:function(url){
        if(this.sections[this.active_section][this.active_item].element == 'iframe'){
            this.imgLoaded();
        }
        else{
            this.preimg.setProperty('src',url);
        }
    },
    imgLoaded:function(){
        if(this.sections[this.active_section][this.active_item].element == 'iframe'){
            this.target_width = this.sections[this.active_section][this.active_item].width*1;
            this.target_height = this.sections[this.active_section][this.active_item].height*1;
        }
        else{
            this.preimg.inject(document.body);
            this.target_width = this.preimg.getSize().size.x.toInt();
            this.target_height = this.preimg.getSize().size.y.toInt();
            this.preimg.remove();
            this.preimg.setProperty('src','');
        }
        if(this.target_width>window.getSize().size.x.toInt()-this.options.shadowSize.x){
            var ow = this.target_width;
            this.target_width = window.getSize().size.x.toInt()-this.options.shadowSize.x;
            if(this.sections[this.active_section][this.active_item].element == 'img' || !this.sections[this.active_section][this.active_item].element){
                this.target_height *= this.target_width/ow;
            }
        }
        if(this.target_height>window.getSize().size.y.toInt()-this.options.shadowSize.y){
            var oh = this.target_height;
            this.target_height = window.getSize().size.y.toInt()-this.options.shadowSize.y;
            if(this.sections[this.active_section][this.active_item].element == 'img' || !this.sections[this.active_section][this.active_item].element){
                this.target_width *= this.target_height/oh;
            }
        }
        if(!this.is_opened){
            this.open();
        }
        else{
            this.resize();
        }
    },
    goTo:function(offset){
        this.active_item = (this.active_item*1)+(offset*1);
        if(this.active_item<0){
            this.active_item=0;
        }
        if(this.active_item>this.sections[this.active_section].length-1){
            this.active_item = this.sections[this.active_section].length-1;
        }
        this.preLoad(this.sections[this.active_section][this.active_item].url);
    },
    open:function(){
        this.is_opened = true;
        if(window.ie6 && this.options.hide_ie6_selects){
            this.hided_selects = $$('select');
            this.hided_selects.each(function(el){
                el.imgp_restore_style = el.getStyle('visibility');
                el.setStyle('visibility','hidden');
            });
        }
        this.overlay.setStyles({
            display:'block',
            opacity:0,
            width:$(document.body).getSize().scroll.x,
            height:$(document.body).getSize().scroll.y
        });
        this.imgwrap.getElements('*').each(function(el){
            el.setStyle('display','none');
        });
        this.img.setStyles({
            display:'block',
            width:this.options.startSize.x,
            height:this.options.startSize.y
        });
        this.iframe.setStyles({
            display:'none'
        });
        this.element.setStyles({
            display:'none'
        });
        this.shadow.setStyles({
            display:'block',
            left:(window.getScrollLeft()+($(document.body).getSize().size.x/2))-(this.options.startSize.x/2)-this.options.shadowSize.x,
            top:(window.getScrollTop()+(window.getSize().size.y/2))-(this.options.startSize.y/2)-this.options.shadowSize.y,
            width:this.options.startSize.x+(this.options.shadowSize.x*2),
            height:this.options.startSize.y+(this.options.shadowSize.y*2)
        });
        this.imgwrap.setStyles({
            display:'block',
            opacity:0,
            left:(window.getScrollLeft()+($(document.body).getSize().size.x/2))-(this.options.startSize.x/2)-this.imgwrap.getStyle('border-left-width').toInt(),
            top:(window.getScrollTop()+(window.getSize().size.y/2))-(this.options.startSize.y/2)-this.imgwrap.getStyle('border-top-width').toInt(),
            width:this.options.startSize.x,
            height:this.options.startSize.y
        });
        this.resize();
    },
    resize:function(){
        this.img.setStyles({
            opacity:0
        });
        this.prev.setStyle('display','none');
        this.next.setStyle('display','none');
        this.caption.setStyle('display','none');
        this.overlay.setStyle('display','none');
        this.iframe.setStyle('display','none');
        this.element.setStyle('display','none');
        this.effects_in.overlay.start({
            opacity:this.options.overlayOpacity,
            width:$(document.body).getSize().scroll.x,
            height:$(document.body).getSize().scroll.y
        });
        this.overlay.setStyle('display','block');
        this.effects_in.shadow.start({
            left:(window.getScrollLeft()+($(document.body).getSize().size.x/2))-(this.target_width/2)-this.options.shadowSize.x,
            top:(window.getScrollTop()+(window.getSize().size.y/2))-(this.target_height/2)-this.options.shadowSize.y,
            width:this.target_width+(this.options.shadowSize.x*2),
            height:this.target_height+(this.options.shadowSize.x*2)
        });
        this.effects_in.imgwrap.start({
            opacity:1,
            left:(window.getScrollLeft()+($(document.body).getSize().size.x/2))-(this.target_width/2)-this.imgwrap.getStyle('border-left-width').toInt(),
            top:(window.getScrollTop()+(window.getSize().size.y/2))-(this.target_height/2)-this.imgwrap.getStyle('border-top-width').toInt(),
            width:this.target_width,
            height:this.target_height
        });
        if(this.sections[this.active_section][this.active_item].element == 'img' || !this.sections[this.active_section][this.active_item].element){
            this.effects_in.img.start({
                opacity:1,
                width:this.target_width,
                height:this.target_height
            });
        }
        if(this.sections[this.active_section][this.active_item].element == 'iframe'){
            this.iframe.setStyles({
                width:this.target_width,
                height:this.target_height
            });
            this.element.setStyles({
                width:this.target_width,
                height:this.target_height
            });
            this.img.setProperty('src','');
        }
        else{
            this.img.setProperty('src',this.sections[this.active_section][this.active_item].url);
        }
        this.caption.setHTML(this.sections[this.active_section][this.active_item].caption);
        this.opened.delay(this.options.in_duration,this);
        
    },
    opened:function(){
        this.imgwrap.getElements('*').each(function(el){
            el.setStyle('display','block');
        });
        if(this.sections[this.active_section][this.active_item].element == 'iframe'){
            this.img.setStyle('display','none');
            if(this.sections[this.active_section][this.active_item].url.substr(0,1) == '#'){
                this.iframe.setStyle('display','none');
                this.element.setHTML($(document.body).getElement(this.sections[this.active_section][this.active_item].url).innerHTML);
            }
            else{
                this.element.setStyle('display','none');
                this.iframe.setProperty('src',this.sections[this.active_section][this.active_item].url);
            }
        }
        else{
            this.element.setHTML('');
            this.iframe.setProperty('src','');
            this.iframe.setStyle('display','none');
            this.element.setStyle('display','none');
        }
        if(this.active_item<=0){
            this.prev.setStyle('display','none');
        }
        if(this.active_item>=this.sections[this.active_section].length-1){
            this.next.setStyle('display','none');
        }
        if(!this.caption.innerHTML || this.caption.innerHTML==""){
            this.caption.setStyle('display','none');
        }
    },
    close:function(){
        this.is_opened = false;
        this.element.setHTML('');
        this.iframe.setProperty('src','');
        if(window.ie6 && this.options.hide_ie6_selects){
            this.hided_selects.each(function(el){
                el.setStyle('visibility',el.imgp_restore_style);
            });
        }
        this.imgwrap.getElements('*').each(function(el){
            el.setStyle('display','none');
        });
        this.img.setStyle('display','block');
        this.effects_out.overlay.start({
            opacity:0
        });
        this.effects_out.shadow.start({
            left:(window.getScrollLeft()+($(document.body).getSize().size.x/2))-(this.options.startSize.x/2)-this.options.shadowSize.x,
            top:(window.getScrollTop()+(window.getSize().size.y/2))-(this.options.startSize.y/2)-this.options.shadowSize.y,
            width:this.options.startSize.x+(this.options.shadowSize.x*2),
            height:this.options.startSize.y+(this.options.shadowSize.y*2)
        });
        this.effects_out.imgwrap.start({
            opacity:0,
            left:(window.getScrollLeft()+($(document.body).getSize().size.x/2))-(this.options.startSize.x/2)-this.imgwrap.getStyle('border-left-width').toInt(),
            top:(window.getScrollTop()+(window.getSize().size.y/2))-(this.options.startSize.y/2)-this.imgwrap.getStyle('border-top-width').toInt(),
            width:this.options.startSize.x,
            height:this.options.startSize.y
        });
        this.effects_out.img.start({
            opacity:0,
            width:this.options.startSize.x,
            height:this.options.startSize.y
        });
        (function(){
            this.overlay.setStyle('display','none');
            this.shadow.setStyle('display','none');
            this.imgwrap.setStyle('display','none');
        }).delay(this.options.out_duration,this);
    }
});
ImgPopup.implement(Options);




///* imgpopup */
//var ImgPopup = new Class({
//	options:{
//		hide_ie6_selects:true,
//		hide_embeds:true,
//		startSize:{
//			x:50,
//			y:50
//		},
//		shadowSize:{
//			x:65,
//			y:65
//		},
//		ie6_shadowSize:{
//			x:25,
//			y:25
//		},
//		in_duration:300,
//		out_duration:300
//	},
//	sections:[],
//	initialize:function(){
//		if(window.ie6){
//			this.options.shadowSize = this.options.ie6_shadowSize;
//		}
//		this.shadow = new Element('div',{id:'imgp_shadow_wrap'}).setHTML('<div id="imgp_shadow_nw"></div><div id="imgp_shadow_n"></div><div id="imgp_shadow_ne"></div><div id="imgp_shadow_w"></div><div id="imgp_shadow"></div><div id="imgp_shadow_e"></div><div id="imgp_shadow_sw"></div><div id="imgp_shadow_s"></div><div id="imgp_shadow_se"></div>');
//		this.shadow.injectInside(document.body);
//		this.imgwrap = new Element('div',{id:'imgp_imgwrap'}).setHTML('<div id="imgp_img"></div><a id="imgp_close" href=""></a><a id="imgp_prev" href=""></a><a id="imgp_next" href=""></a><div id="imgp_caption"></div>');
//		this.imgwrap.injectInside(document.body);
//		this.caption = this.imgwrap.getElement('#imgp_caption');
//		this.img = this.imgwrap.getElement('#imgp_img');
//		this.prev = this.imgwrap.getElement('#imgp_prev');
//		this.prev.addEvent('click',function(e){
//			this.goTo.bind(this)(-1);
//			if(e){
//				e.stop();
//			}
//		}.bindWithEvent(this));
//		this.next = this.imgwrap.getElement('#imgp_next');
//		this.next.addEvent('click',function(e){
//			this.goTo.bind(this)(1);
//			if(e){
//				e.stop();
//			}
//		}.bindWithEvent(this));
//		this.preimg = new Element('img');
//		this.preimg.addEvent('load',this.imgLoaded.bind(this));
//		this.effects_in = {
//			shadow:new Fx.Styles(this.shadow, {duration: this.options.in_duration, transition: Fx.Transitions.Quad.easeOut}),
//			imgwrap:new Fx.Styles(this.imgwrap, {duration: this.options.in_duration, transition: Fx.Transitions.Quad.easeOut}),
//			img:new Fx.Styles(this.img, {duration: this.options.in_duration, transition: Fx.Transitions.Quad.easeOut})
//		};
//		this.effects_out = {
//			shadow:new Fx.Styles(this.shadow, {duration: this.options.out_duration, transition: Fx.Transitions.Quad.easeIn}),
//			imgwrap:new Fx.Styles(this.imgwrap, {duration: this.options.out_duration, transition: Fx.Transitions.Quad.easeIn}),
//			img:new Fx.Styles(this.img, {duration: this.options.out_duration, transition: Fx.Transitions.Quad.easeIn})
//		};
//		this.imgwrap.getElement('#imgp_close').addEvent('click',function(e){
//			this.close();
//			if(e){
//				e.stop();
//			}
//		}.bindWithEvent(this));
//		/*window.addEvent('scroll',function(){
//			if(this.is_opened){
//				this.resize.bind(this)();
//			}
//		}.bind(this));*/
//	},
//	'addSection':function(section){
//		this.sections.push(section);
//	},
//	start:function(url,caption){
//		this.active_section = -1;
//		for(i in this.sections){
//			for(j in this.sections[i]){
//				if(this.sections[i][j].url==url){
//					this.active_section = i;
//					this.active_item = j;
//					break;
//				}
//			}
//		}
//		if(this.active_section<0){
//			this.addSection([{
//				url:url,
//				caption:caption
//			}]);
//			this.active_section = this.sections.length-1;
//			this.active_item = 0;
//		}
//		this.preLoad(this.sections[this.active_section][this.active_item].url);
//	},
//	preLoad:function(url){
//		this.preimg.setProperty('src',url);
//	},
//	imgLoaded:function(){
//		this.preimg.injectInside(document.body);
//		this.target_width = this.preimg.getSize().size.x.toInt();
//		this.target_height = this.preimg.getSize().size.y.toInt();
//		this.preimg.remove();
//		this.preimg.setProperty('src','');
//		if(!this.is_opened){
//			this.open();
//		}
//		else{
//			this.resize();
//		}
//	},
//	goTo:function(offset){
//		this.active_item = (this.active_item*1)+(offset*1);
//		if(this.active_item<0){
//			this.active_item=0;
//		}
//		if(this.active_item>this.sections[this.active_section].length-1){
//			this.active_item = this.sections[this.active_section].length-1;
//		}
//		this.preLoad(this.sections[this.active_section][this.active_item].url);
//	},
//	open:function(){
//		this.is_opened = true;
//		if(window.ie6 && this.options.hide_ie6_selects){
//			this.hided_selects = $$('select');
//			this.hided_selects.each(function(el){
//				el.imgp_restore_style = el.getStyle('visibility');
//				el.setStyle('visibility','hidden');
//			});
//		}
//		this.imgwrap.getElements('*').each(function(el){
//			el.setStyle('display','none');
//		});
//		this.img.setStyles({
//			display:'block',
//			width:this.options.startSize.x,
//			height:this.options.startSize.y
//		});
//		this.shadow.setStyles({
//			display:'block',
//			left:(window.getScrollLeft()+(document.body.getSize().size.x/2))-(this.options.startSize.x/2)-this.options.shadowSize.x,
//			top:(window.getScrollTop()+(window.getHeight()/2))-(this.options.startSize.y/2)-this.options.shadowSize.y,
//			width:this.options.startSize.x+(this.options.shadowSize.x*2),
//			height:this.options.startSize.y+(this.options.shadowSize.y*2)
//		});
//		this.imgwrap.setStyles({
//			display:'block',
//			opacity:0,
//			left:(window.getScrollLeft()+(document.body.getSize().size.x/2))-(this.options.startSize.x/2)-this.imgwrap.getStyle('border-left-width').toInt(),
//			top:(window.getScrollTop()+(window.getHeight()/2))-(this.options.startSize.y/2)-this.imgwrap.getStyle('border-top-width').toInt(),
//			width:this.options.startSize.x,
//			height:this.options.startSize.y
//		});
//		this.resize();
//	},
//	resize:function(){
//		this.img.setStyles({
//			opacity:0
//		});
//		this.prev.setStyle('display','none');
//		this.next.setStyle('display','none');
//		this.caption.setStyle('display','none');
//		this.effects_in.shadow.start({
//			left:(window.getScrollLeft()+(document.body.getSize().size.x/2))-(this.target_width/2)-this.options.shadowSize.x,
//			top:(window.getScrollTop()+(window.getHeight()/2))-(this.target_height/2)-this.options.shadowSize.y,
//			width:this.target_width+(this.options.shadowSize.x*2),
//			height:this.target_height+(this.options.shadowSize.x*2)
//		});
//		this.effects_in.imgwrap.start({
//			opacity:1,
//			left:(window.getScrollLeft()+(document.body.getSize().size.x/2))-(this.target_width/2)-this.imgwrap.getStyle('border-left-width').toInt(),
//			top:(window.getScrollTop()+(window.getHeight()/2))-(this.target_height/2)-this.imgwrap.getStyle('border-top-width').toInt(),
//			width:this.target_width,
//			height:this.target_height
//		});
//		this.effects_in.img.start({
//			opacity:1,
//			width:this.target_width,
//			height:this.target_height
//		});
//		this.img.setStyle('background-image','url('+this.sections[this.active_section][this.active_item].url+')');
//		this.caption.setHTML(this.sections[this.active_section][this.active_item].caption);
//		this.opened.delay(this.options.in_duration,this);
//		
//	},
//	opened:function(){
//		this.imgwrap.getElements('*').each(function(el){
//			el.setStyle('display','block');
//		});
//		if(this.active_item<=0){
//			this.prev.setStyle('display','none');
//		}
//		if(this.active_item>=this.sections[this.active_section].length-1){
//			this.next.setStyle('display','none');
//		}
//		if(!this.caption.innerHTML || this.caption.innerHTML==""){
//			this.caption.setStyle('display','none');
//		}
//	},
//	close:function(){
//		this.is_opened = false;
//		if(window.ie6 && this.options.hide_ie6_selects){
//			this.hided_selects.each(function(el){
//				el.setStyle('visibility',el.imgp_restore_style);
//			});
//		}
//		this.imgwrap.getElements('*').each(function(el){
//			el.setStyle('display','none');
//		});
//		this.img.setStyle('display','block');
//		this.effects_out.shadow.start({
//			left:(window.getScrollLeft()+(document.body.getSize().size.x/2))-(this.options.startSize.x/2)-this.options.shadowSize.x,
//			top:(window.getScrollTop()+(window.getHeight()/2))-(this.options.startSize.y/2)-this.options.shadowSize.y,
//			width:this.options.startSize.x+(this.options.shadowSize.x*2),
//			height:this.options.startSize.y+(this.options.shadowSize.y*2)
//		});
//		this.effects_out.imgwrap.start({
//			opacity:0,
//			left:(window.getScrollLeft()+(document.body.getSize().size.x/2))-(this.options.startSize.x/2)-this.imgwrap.getStyle('border-left-width').toInt(),
//			top:(window.getScrollTop()+(window.getHeight()/2))-(this.options.startSize.y/2)-this.imgwrap.getStyle('border-top-width').toInt(),
//			width:this.options.startSize.x,
//			height:this.options.startSize.y
//		});
//		this.effects_out.img.start({
//			opacity:0,
//			width:this.options.startSize.x,
//			height:this.options.startSize.y			
//		});
//		(function(){
//			this.shadow.setStyle('display','none');
//			this.imgwrap.setStyle('display','none');
//		}).delay(this.options.out_duration,this);
//	}
//});
//ImgPopup.implement(new Options);
