function initGallery() {
    $('div.gallery-box').each(function(){
        var _fadeSpeed = 650;
        var _gallery = $(this);
        var _navClass = 'nav';
        var _holderClass = 'gallery';
        var _listClass = '';
        var _activeClass = 'active';

        var _xmlSource = _gallery.attr('title');
        _gallery.attr('title','');

        if(_xmlSource && _xmlSource.length>0) {
            $.ajax({
                url: _xmlSource,
                dataType: (jQuery.browser.msie) ? 'text' : 'xml',
                success: function(xmlData){
                    var _galleryData;
                    if ( typeof xmlData == 'string') {
                        _galleryData = new ActiveXObject( 'Microsoft.XMLDOM');
                        _galleryData.async = false;
                        _galleryData.loadXML(xmlData);
                    } else {
                        _galleryData = xmlData;
                    }

                    // gallery structure
                    var _navList = $('<ul></ul>').addClass(_navClass);
                    _gallery.empty().append(_navList);
                    var _slidesHolder = $('<div></div>').addClass(_holderClass);
                    var _slideList = $('<ul></ul>').addClass(_listClass);
                    _gallery.append(_slidesHolder.append(_slideList));
                    var _currentIndex = 0;

                    // gallery create structure
                    var _xmlItems = $('item',_galleryData);
                    _xmlItems.each(function(_ind){
                        var _menuItem = $('<li><a href="#"><span></span></a></li>');
                        var _curItem = $(this);
                        _menuItem.find('a span').html(_curItem.find('text-button').text());
                        loadSection(_ind);
                        if(_ind == _currentIndex) {
                            _menuItem.addClass(_activeClass);
                            _slideList.find('li[rel="'+_ind+'"]').addClass(_activeClass).fadeIn(_fadeSpeed);
                        }
                        _navList.append(_menuItem);
                    });

                    // load section function
                    function loadSection(_num) {
                        if(_slideList.find('li[rel="'+_num+'"]').length>0) return;
                        var _curItem = _xmlItems.eq(_num);
                        var _slideItem = $('<li><a href="#"><img /></a></li>');
                        _slideItem.find('a').attr('href',_curItem.find('image-link').text());
                        _slideItem.find('img').attr('src',_curItem.find('image-source').text());
                        _slideItem.find('img').attr('alt','');
                        _slideItem.attr('rel',_num);
                        _slideList.append(_slideItem);
                    }

                    function sectionLoaded(_num) {
                        if(_slideList.find('li[rel="'+_num+'"]').length>0) return true;
                        return false;
                    }

                    // gallery code
                    _gallery.slideShow({
                        numElementLink:'ul.nav a',
                        slideEl:'div.gallery ul li',
                        event:'mouseover',
                        autoSlideShow:true,
                        switchTime:5000,
                        duration:500
                    });
                },
                error: function() {
                    alert('AJAX Error!');
                }
            });
        }
    });
}

function initTabs() {
    $('ul.tabset').each(function(){
        var _list = $(this);
        var _links = _list.find('a.tab');

        _links.each(function() {
            var _link = $(this);
            var _href = _link.attr('href');
            var _tab = $(_href);

            if(_link.hasClass('active')) _tab.show();
            else _tab.hide();

            _link.click(function(){
                _links.filter('.active').each(function(){
                    $($(this).removeClass('active').attr('href')).hide();
                });
                _link.addClass('active');
                _tab.show();
                return false;
            });
        });
    });
}

function initOpenClose() {

    $('div.step:not(.keep-open)').each(function(){
           
        var _slideSpeed = 300;
        var _holder = $(this);
        var _slideBlock = _holder.find('div.box:not(.open)').hide();
        var _openClass = 'open';

        _holder.click(function(e){
            
        	return false;
        	
            if($(e.target).parents('div.form').length > 0) return;

            var _target = (e.target || e.srcElement);
            if ($(_target).is(_holder)) alert(1);

            if(_holder.hasClass(_openClass)) {
                _slideBlock.slideUp(_slideSpeed);
                _holder.removeClass(_openClass);
            } else {
                _slideBlock.slideDown(_slideSpeed);
                _holder.addClass(_openClass);
            }
            return false;
        });
    });
}

$(document).ready(function() {
    initTabs();
    initGallery();
    initOpenClose();
});

// slideshow plugin
jQuery.fn.slideShow = function(_options){
    // defaults options
    var _options = jQuery.extend({
        slideEl:'div.img-hold img',
        linkNext:'a.next',
        linkPrev:'a.prev',
        linkPause:'a.pause',
        numElementLink:'div.nav li a',
        duration:500,
        autoSlideShow:false,
        switchTime:3000,
        event:'click',
        currentEl:'#footer span.cur',
        allEl:'#footer span.all'
    },_options);

    return this.each(function(){
        var _THIS = jQuery(this);
        var _slideEl = $(_options.slideEl, _THIS);
        var _elTagName = _options.slideEl;
        var _linkNext = $(_options.linkNext, _THIS).length ? $(_options.linkNext, _THIS) : false;
        var _linkPrev = $(_options.linkPrev, _THIS).length ? $(_options.linkPrev, _THIS) : false;
        var _linkPause = $(_options.linkPause, _THIS).length ? $(_options.linkPause, _THIS) : false;
        var _numElementLink = $(_options.numElementLink, _THIS).length ? $(_options.numElementLink, _THIS) : false;
        var _numElement = $(_options.numElementLink, _THIS).length ? _numElementLink.parent() : false;
        var _duration = _options.duration;
        var _switchTime = _options.switchTime;
        var _numElActive, _n, _timer = false, _hover = false;

        if (!_slideEl.filter('.active').length)
                _slideEl.eq(0).addClass('active');

        $(_slideEl).not(".active").css('display','none');

        if ($(_numElement).length) {activeNumEl()}

        if (_options.autoSlideShow) {
                _timer = setTimeout(function(){nextEl()},_switchTime);
                contentHover();
        }
        if (_linkNext) {
                $(_linkNext).click(function(){
                        if (_timer) {
                                clearTimeout(_timer);
                                _timer = setTimeout(function(){nextEl()},_switchTime);
                        }
                        if ($(_slideEl).filter(".active").next().is(_elTagName)) {
                            $(_slideEl).filter(".active").next().addClass("next");
                        } else {
                            $(_slideEl).eq(0).addClass("next");
                        }
                        fadeElement();
                        activeNumEl();
                        return false;
                });
        }
        if (_linkPrev) {
                $(_linkPrev).click(function(){
                        if (_timer) {
                                clearTimeout(_timer);
                                _timer = setTimeout(function(){nextEl()},_switchTime);
                        }
                        if ($(_slideEl).filter(".active").prev().is(_elTagName)) {
                            $(_slideEl).filter(".active").prev().addClass("next");
                        } else {
                            $(_slideEl).filter(":last-child").addClass("next");
                        }
                        fadeElement();
                        activeNumEl();
                        return false;
                });
        }
        if (_linkPause) {
                if (!_options.autoSlideShow) {
                    _linkPause.addClass('play');
                    _options.autoSlideShow = true;
                    if (!_hover) contentHover();
                }
                $(_linkPause).click(function(){
                        if (!_linkPause.is('.play')) {
                            clearTimeout(_timer);
                            _linkPause.addClass('play');
                        } else {
                            _linkPause.removeClass('play');
                            _timer = setTimeout(function(){nextEl()},_switchTime);
                        }
                        return false;
                });
        }
        if (_numElementLink) {
                $(_numElementLink).bind(_options.event, function(){
                        if (_timer) {
                                clearTimeout(_timer);
                                _timer = setTimeout(function(){nextEl()},_switchTime);
                        }
                        _n = _numElement.index($(this).parent());
                        if (!$(_slideEl).eq(_n).hasClass("active")){
                            $(_slideEl).eq(_n).addClass("next");
                            fadeElement();
                            activeNumEl();
                        }
                        return false;
                });
        }
        if (_options.currentEl || _options.allEl) {
                _THIS.all = _slideEl.length;
                $(_options.allEl, _THIS).html(_THIS.all);
                function currentNum() {
                    var _index = _slideEl.index(_slideEl.filter('.active')) + 1;
                    $(_options.currentEl, _THIS).html(_index);
                }
                currentNum();
        }
        function contentHover() {
            _hover = true;
            _slideEl.hover(function() {
                    if (_timer) clearTimeout(_timer);
            }, function(){
                    if (_linkPause && !_linkPause.is('.play'))
                        _timer = setTimeout(function(){nextEl()},_switchTime);
                    else if (!_linkPause)
                        _timer = setTimeout(function(){nextEl()},_switchTime);
            });
        }
        function nextEl(){
                if ($(_slideEl).filter(".active").next().is(_elTagName)){
                    $(_slideEl).filter(".active").next().addClass("next");
                } else {
                    $(_slideEl).eq(0).addClass("next");
                }
                fadeElement();
                activeNumEl();
                _timer = setTimeout(function(){nextEl()},_switchTime);
        };
        function activeNumEl() {
                $(_numElement).removeClass("active");
                _numElActive = $(_slideEl).index($(_slideEl).filter(".active")[0]);
                $(_numElement).eq(_numElActive).addClass("active");
        };
        function fadeElement(){
                $(_slideEl).filter(".active").fadeOut(_duration).removeClass("active");
                $(_slideEl).filter(".next").fadeIn(_duration).addClass("active").removeClass("next");
                if (_options.currentEl || _options.allEl) currentNum();
        };
    });
}
