$(document).ready(function() {
    $('#headerNav .languages').each(function() {
        var $text = $('#headerNav .languageTitle');

        $('a', this).each(function() {
            var $link = $(this);
            var text = $link.attr('title');

            $link.hover(
                // handlerIn
                function() {
                    $text.text(text).show();
                },
                // handlerOut
                function() {
                    $text.empty();
                }
            );
        });
    });

    $('.teaserWheel').each(function() {
        var $prev = $('.prev', this);
        var $next = $('.next', this);
        var $list = $('ul', this);

        $next.click(function(e) {
            e.preventDefault();
            var $first = $('.first', $list);

            if ($first) {
                $first.removeClass('first');
                if ($first.next().length > 0) {
                    var $newFirst = $first.next();
                    $newFirst.addClass('first');
                    $newFirst.show();

                    var $nextAll = $newFirst.nextAll();
                    if ($nextAll.length < 2) {
                        $list.append($('li:first', $list).detach().show());
                    } else {
                        $nextAll.slice(0, 2).show();
                    }
                } else {
                    var $newFirst = $('li:first', $list);
                    $newFirst.addClass('first');

                    $newFirst = $newFirst.detach();
                    $list.append($newFirst);
                    $newFirst.show();
                }

                $newFirst.prevAll().hide();
            }
        });

        $prev.click(function(e) {
            e.preventDefault();
            var $first = $('li.first', $list);

            if ($first) {
                $first.removeClass('first');
                if ($first.prev().length > 0) {
                    var $newFirst = $first.prev();
                    $newFirst.addClass('first');
                    $newFirst.show();
                } else {
                    var $newFirst = $('li:last', $list);
                    $newFirst.addClass('first');

                    $newFirst = $newFirst.detach();
                    $list.prepend($newFirst);
                    $newFirst.show();
                }

                $newFirst.nextAll().slice(2).hide();
            }
        });

        $('.first', $list).show().nextAll().slice(0, 2).show();
    });

    $('.jobsMap').each(function() {
        var $container = $(this);

        var $jobs = $('.sidebar .jobs', $container);
        var $details = $('.sidebar .details', $container);

        function showDetails($country) {
            $('.title', $details).text($('.sidebar .jobs a.current', $container).text());
            $('.content', $details).html($('.content',$country).html() + $('.text',$country).html());
            $jobs.hide();
            $details.show();
        }

        $('.back', $details).click(function(e) {
            e.preventDefault();
            $('.title', $details).empty();
            $('.content', $details).empty();
            $details.hide();
            $jobs.show();
        });

        $container.children('.country').each(function() {
            var $country = $(this);
            $('.content', $country).click(function(e) {
                e.preventDefault();
                showDetails($country);
            });
        });
    });

    //application form
    $('#appForm :radio[name="heardFrom"]').click(function() {
        $('#appForm :radio[name="heardFrom"]').not(this).each(function() {
            var id = $(this).attr('id').split('_')[0];
            var $input = $('#' + id);
            $input.attr('disabled', 'disabled');

            var valDefault = $input.attr('data-default');
            if (valDefault) {
                $input.val(valDefault);
            }
        });
        var id = $(this).attr('id').split('_')[0];
        var $this = $('#' + id);
        $this.removeAttr('disabled');

        if ($this.val() === $this.attr('data-default')) {
            $this.val('');
        }
    });

    $('#appForm :radio[name="heardFrom"]:checked').click();

    $('#appForm .hasDetails').each(function() {
        var $container = $(this);
        $('.showDetails', $container).click(function(e) {
            e.preventDefault();
            $('.details', $container).toggleClass('collapsed');
        });
    });

    $('#appForm').submit(function(){
        var $appForm = $(this);
        var $formError = $('#formError');
        $.ajax({
            type: 'POST',
            url: $appForm.attr('action'),
            data: $appForm.serialize(),
            dataType: 'json',
            success: function(data) {
                $('html, body').animate({ scrollTop: 0 }, 0);
                $('.faulty').children().unwrap();
                $formError.html('');
                if(data.error) {
                    $.each(data.faulty, function(index, value) {
                       var $field = $('[name="'+value+'"]');
                       $field.wrap('<div class="faulty" />');
                       $formError.html(data.msg);
                    });

                    var src = $('img[alt="captcha"]', $appForm).attr('src');
                    var d = new Date();
                    $('img[alt="captcha"]', $appForm).attr('src', src + '?'+d.getTime());
                } else {
                    $('.block.content').html(data.msg);

                    var pageTracker = _gat._getTracker(_trackId);
                    pageTracker._trackPageview(location.pathname + '-success');
                }
            }
        });
        return false;
    });
});

