var spring = {
    iSliders: function () {
        this.sliders = $$('div.accordion_content').map(function (div) {
            return div;
        },
        this);
        this.sliders.each(function (acc) {
            if (acc.getFirst().getFirst().getProperty('id') == 'galeries') {
                acc.myHeight = 890;
				//alert($('thumbs').getChildren().length/3*50);
				/*var db=0;
				var imgs=$('thumbs').getChildren();
				var i=0;
				for(i=0;i<$('thumbs').getChildren().length;i++)
					//if($('thumbs').getChildren().getParent().getStyle('visibility', 'visible');
					alert(imgs[i].getParent().getStyle('visibility'));
				acc.myHeight = $('thumbs').getChildren().length/3*65+60;*/
				
            } else {
                acc.myHeight = acc.getStyle('height').toInt();
            }
            acc.setStyle('height', 0);
            acc.getFirst().setStyle('margin-top', -acc.myHeight);
        });
    },
    sSliders: function () {
        this.effectOn = 0;
        $$('h1.toggle').each(function (lnk, index) {
            lnk.addEvents({
                mouseover: function () {
                    if (!lnk.hasClass('x')) {
                        lnk.toggleClass('on');
                    }
                },
                mouseout: function () {
                    if (!lnk.hasClass('x')) {
                        lnk.toggleClass('on');
                    }
                }
            });
        },
        this);
        $$('h1.toggle span.hit').each(function (lnk, index) {
            lnk.addEvent('click', function () {
                lnk.getParent().toggleClass('x on');
                this.sliders.each(function (acc, sliderIndex) {
                    if (sliderIndex == index && !this.effectOn) {
                        if (acc.getStyle('height').toInt() === 0) {
                            this.effectOn = 1;
                            acc.effect('height').start(0, acc.myHeight);
                            acc.getFirst().effect('margin-top').start(-acc.myHeight, 0).chain(function () {
                                this.effectOn = 0;
                            }.bind(this));
                        }
                        else {
                            this.effectOn = 1;
                            acc.effect('height').start(acc.myHeight, 0);
                            acc.getFirst().effect('margin-top').start(0, -acc.myHeight).chain(function () {
                                this.effectOn = 0;
                            }.bind(this));
                        }
                    }
                });
            }.bind(this));
        },
        this);
    },
    sSortables: function () {
        $$('span.sort_up').each(function (lnk) {
            sLi = lnk.getParent().getParent();
            sLi.effect('opacity').set(1);
            lnk.addEvent('click', function () {
                sortableLi = lnk.getParent().getParent();
                if (sortableLi.getPrevious() && !this.effectOn) {
                    this.effectOn = 1;
                    sortableLi.effect('opacity').start(1, 0.1).chain(function () {
                        sortableLi.injectBefore(sortableLi.getPrevious());
                        if (!sortableLi.getFirst().hasClass('x')) {
                            sortableLi.getFirst().removeClass('on');
                        }
                        sortableLi.effect('opacity').start(0.1, 1).chain(function () {
                            this.effectOn = 0;
                        }.bind(this));
                    }.bind(this));
                }
            }.bind(this));
        },
        this);
        $$('span.sort_dn').each(function (lnk) {
            lnk.addEvent('click', function () {
                sortableLi = lnk.getParent().getParent();
                if (sortableLi.getNext() && !this.effectOn) {
                    this.effectOn = 1;
                    sortableLi.effect('opacity').start(1, 0.1).chain(function () {
                        sortableLi.injectAfter(sortableLi.getNext());
                        if (!sortableLi.getFirst().hasClass('x')) {
                            sortableLi.getFirst().removeClass('on');
                        }
                        sortableLi.effect('opacity').start(0.1, 1).chain(function () {
                            this.effectOn = 0;
                        }.bind(this));
                    }.bind(this));
                }
            }.bind(this));
        },
        this);
    },
    loadImage: function (path, title, desc, count) {
        $('fullimg').effect('opacity').start(1, 0).chain(function () {
            $('fullimg').setProperty('src', path);
            $('imgtitle').setHTML(title);
            $('imgdesc').setHTML(desc);
            $('imgcount').setHTML(count);
            this.effectOn = 0;
			acc.setStyle('height', '950');
        }.bind(this));
    },
    loadImageByThumb: function (img) {
        this.effectOn = 1;
        this.actImg = this.thumbImgs.indexOf(img);
        img.props = img.getProperties('id', 'src', 'alt');
        img.nPath = img.props['src'].substring(0, img.props['src'].lastIndexOf('/')) + '/' + img.props['id'].substr(1) + '.jpg';
        if ($('fullimg').getProperty('src') != img.nPath) {
            img.nTitle = img.props['alt'].substring(0, img.props['alt'].indexOf('*'));
            img.nDesc = img.props['alt'].substr(img.props['alt'].indexOf('*') + 1);
            img.nCountAll = 0;
            img.nCount = this.actImg + 1 + ' / ' + this.thumbImgs.length;
            this.loadImage(img.nPath, img.nTitle, img.nDesc, img.nCount);
        }
    },
    loadGal: function (newId) {
        if (newId) {
            galId = newId;
        } else {
            galId = this.actGal;
        }
        this.thumbImgs = $('thumbs').getChildren().map(function (thumb) {
            if (thumb.getFirst().hasClass(galId)) {
                return (thumb.getFirst());
            }
        },
        this).filter(function (el) {
            return (el);
        });
        $$('img.thumb').each(function (img) {
            if (img.hasClass(galId)) {
                img.getParent().setStyle('display', 'block');
                img.getParent().setStyle('visibility', 'visible');
            } else {
                img.getParent().setStyle('display', 'none');
                img.getParent().setStyle('visibility', 'hidden');
            }
        }.bind(this));
        if (this.thumbImgs[0]) {
            this.loadImageByThumb(this.thumbImgs[0]);
        } else {
            this.loadImage('', '', '', '0 / 0');
        }
        $$('ul#galeries li').each(function (li) {
            if (li.hasClass('selected')) {
                li.removeClass('selected');
            }
        });
        $(galId).addClass('selected');
    },
    sGallery: function () {
        this.actGal = $('galeries').getFirst().getProperty('id');
        this.actImg = 0;
        this.loadGal();
        this.effectOn = 0;
        $$('img.thumb').each(function (img) {
            img.addEvent('load', function () {
                img.setStyle('margin-top', img.getStyle('height') == 43 ? 0 : (43 - img.getStyle('height').toInt()) / 2);
                img.setStyle('margin-bottom', img.getStyle('margin-top').toInt());
            });
            img.addEvent('click', function () {
                if (!this.effectOn) {
                    this.loadImageByThumb(img);
                }
            }.bind(this));
        },
        this);
        $('fullimg').addEvent('load', function () {
            $('fullimg').effect('margin-top').start(0, (428 - $('fullimg').getStyle('height').toInt()) / 2);
            $('fullimg').effect('margin-bottom').start(0, (428 - $('fullimg').getStyle('height').toInt()) / 2).chain(function () {
                $('fullimg').effect('opacity').start(0, 1);
            }.bind(this));
        }.bind(this));
        $('kovetkezo').addEvent('click', function () {
            if (!this.effectOn) {
                if (this.thumbImgs[this.actImg + 1]) {
                    this.loadImageByThumb(this.thumbImgs[this.actImg + 1]);
                } else {
                    this.loadImageByThumb(this.thumbImgs[0]);
                }
            }
        }.bind(this));
        $('elozo').addEvent('click', function () {
            if (!this.effectOn) {
                if (this.thumbImgs[this.actImg - 1]) {
                    this.loadImageByThumb(this.thumbImgs[this.actImg - 1]);
                } else {
                    this.loadImageByThumb(this.thumbImgs[this.thumbImgs.length - 1]);
                }
            }
        }.bind(this));
        $$('ul#galeries li').each(function (li) {
            li.addEvent('click', function () {
                this.actGal = li.getProperty('id');
                this.actImg = 0;
                this.loadGal();
            }.bind(this));
            li.addEvent('mouseover', function () {
                this.addClass('hover');
            });
            li.addEvent('mouseout', function () {
                this.removeClass('hover');
            });
        },
        this);
    },
    loadTextByLi: function (li) {
        this.effectOn = 1;
        li.getParent().getNext().effect('opacity').start(1, 0).chain(function () {
            this.loadText(li);
            li.getParent().getParent().getParent().effect('height').start(li.getParent().getParent().getParent().myHeight, (li.getParent().getNext().getStyle('height').toInt() + 50));
            li.getParent().getParent().getParent().myHeight = li.getParent().getNext().getStyle('height').toInt() + 50;
            li.getParent().getNext().effect('opacity').start(0, 1).chain(function () {
                this.effectOn = 0;
            }.bind(this));
        }.bind(this));
    },
    loadText: function (li) {
        li.getParent().getNext().getChildren().each(function (szoveg) {
            if (szoveg.getProperty('id') == 'c_' + li.getProperty('id')) {
                szoveg.setStyle('display', 'block');
                szoveg.setStyle('visibility', 'visible');
            } else {
                szoveg.setStyle('display', 'none');
                szoveg.setStyle('visibility', 'hidden');
            }
        });
        li.getParent().getChildren().each(function (li) {
            if (li.hasClass('selected')) {
                li.removeClass('selected');
            }
        });
        li.addClass('selected');
    },
    sSubmenu: function () {
        $$('.submenu').each(function (ul) {
            this.loadText(ul.getFirst());
            ul.getFirst().getParent().getParent().getParent().myHeight = ul.getFirst().getParent().getNext().getStyle('height').toInt() + 50;
            ul.getChildren().each(function (li) {
                li.addEvent('click', function () {
                    if (!this.effectOn) {
                        this.loadTextByLi(li);
                    }
                }.bind(this));
                li.addEvent('mouseover', function () {
                    this.addClass('hover');
                });
                li.addEvent('mouseout', function () {
                    this.removeClass('hover');
                });
            },
            this);
        },
        this);
    },
    init: function () {
        this.iSliders();
        this.sSliders();
        this.sSortables();
        if ($('galeries')) {
            this.sGallery();
        }
        if ($$('.submenu')) {
            this.sSubmenu();
        }
        if ($$('.submenu')) {
            this.sSubmenu();
        }
    }
};
window.addEvent('domready', function () {
    spring.init().bind(spring);
});
