$(document).ready(function() {

$('button[type=submit]')
    .mouseover(function() {
        $(this).addClass('submit_hover');
    })
    .mouseout(function() {
        $(this).removeClass('submit_hover');
    });
$('button[type=reset]')
    .mouseover(function() {
        $(this).addClass('reset_hover');
    })
    .mouseout(function() {
        $(this).removeClass('reset_hover');
    });

var slideshow = $('#slideshow');
if (slideshow.length)
{
    var slides = $('> li', slideshow);
    slideshow.data('max', slides.length);
    slides.each(function(i) {
        var el = $(this),
            img = $('> img', el),
            frame = $('<li class="slide" />');
        el.remove();
        if (img.length)
        {
            frame
                .hide()
                .data('i', i + 1)
                .css('background-image', 'url(' + img.attr('src') + ')');
            if (i === 0)
            {
                frame.fadeIn();
            }
            slideshow 
                .append(frame);
        }
    });
    slideshow.show();
    var slideshow_controls = $('<div class="slideshow-controls" />'),
        slideshow_number = $('<div class="number">1 of ' + slideshow.data('max') + '</div>'),
        slideshow_pause = $('<div class="pause">Pause</div>')
            .click(function() {
                clearInterval(slideshow_int);
            }),
        slideshow_play = $('<div class="play">Play</div>')
            .click(function() {
                slideshow_int = setInterval("start_show('next')", 20000);
            }),
        slideshow_prev = $('<div class="prev prev-nh"></div>')
            .click(function() {
                clearInterval(slideshow_int);
                if (slideshow.data('enable'))
                {
                    start_show('prev');
                }
            })
            .mouseenter(function() {
                $(this)
                    .removeClass('prev-nh')
                    .addClass('prev-h');
            })
            .mouseleave(function() {
                $(this)
                    .removeClass('prev-h')
                    .addClass('prev-nh');
            }),
        slideshow_next = $('<div class="next next-nh"></div>')
            .click(function(){
                clearInterval(slideshow_int);
                if (slideshow.data('enable'))
                {
                    start_show('next');
                }
            })
            .mouseenter(function() {
                $(this)
                    .removeClass('next-nh')
                    .addClass('next-h');
            })
            .mouseleave(function() {
                $(this)
                    .removeClass('next-h')
                    .addClass('next-nh');
            });
    slideshow_controls
        .append(slideshow_number)
        .append(slideshow_prev)
        .append(slideshow_next);
    slideshow
        .data('enable', true)
        .after(slideshow_controls);

    slideshow_play.click();
}

});

//{{{ function start_show(control)
function start_show(control)
{
    var slideshow = $('#slideshow'),
        slides = $('> .slide', slideshow),
        slideshow_number = $('.number', slideshow.parent()),
        slides_length = slideshow.data('max'),
        fade_speed = 'normal';
    slideshow.data('enable', false);
    slides.each(function(i){
        var el = $(this);
        if (el.css('display') !== 'none')
        {
            el.fadeOut(fade_speed);
            if (i === slides_length-1 && control !== 'prev')
            {
                slides.eq(0).fadeIn(fade_speed, function(){ slideshow.data('enable', true) });
                slideshow_number.text('1 of ' + slides_length);
            }
            else
            {
                if (control === 'prev')
                {
                    if (i === 0)
                    {
                        slides.eq(slides_length-1).fadeIn(fade_speed, function(){ slideshow.data('enable', true) });
                    }
                    else
                    {
                        var prev = el.prev();
                        prev.fadeIn(fade_speed, function(){ slideshow.data('enable', true) });
                        slideshow_number.text(prev.data('i') + ' of ' + slides_length);
                    }
                }
                else
                {
                    var next = el.next();
                    next.fadeIn(fade_speed, function(){ slideshow.data('enable', true) });
                    slideshow_number.text(next.data('i') + ' of ' + slides_length);
                }
            }
            return false;
        }
    });
}

//}}}

