var ticketPages = new Array();

function ticketPaging() {

    // recursion here because of newly created
    // page links (click doesnt find them)
    $('ul.pagging > li > a').click(function() {
        _page = $(this).attr('title');

        if (ticketPages[_page] == null) {
            $.get(
                $(this).attr('href') + '&ajax',
                function(data) {
                    $('#event_tickets').fadeOut('fast');
                    ticketPages[_page] = data;
                    $('#event_tickets').html(ticketPages[_page]);
                    $('#event_tickets').fadeIn('fast');
                    ticketPaging();
                }
            );
        } else {
            $('#event_tickets').fadeOut('fast');
            $('#event_tickets').html(ticketPages[_page]);
            $('#event_tickets').fadeIn('fast');
            ticketPaging();
        }

        $(this).attr('href', '#');
        return false;
    });
}

function tellFriendHandleCancel()
{
    $('input[name="ajax_action"]').val('preview');

    $('#name_from').val('');
    $('#name_to').val('');
    $('#email_from').val('');
    $('#email_to').val('');
    $('#text').val('');
    $('#captcha').val('');
}

function tellFriendHandleBack()
{
    $('input[name="ajax_action"]').val('preview');

    $('#tellfriend_fieldset input[type="text"]')
        .addClass('field')
        .removeClass('borderless')
        .removeAttr('disabled');

    $('#tellfriend_fieldset textarea')
        .addClass('field')
        .removeClass('borderless')
        .removeAttr('disabled');

    $($('#tellfriend_fieldset ol').children().get(5)).show();
    $($('#tellfriend_fieldset ol').children().get(6)).show();
}

function tellFriendHandleInput(data)
{
    $('#tellfriend_fieldset .error').remove();

    // show preview
    $('input[name="ajax_action"]').val('send');

    $('#tellfriend_fieldset input[type="text"]')
        .toggleClass('borderless')
        .removeAttr('disabled');

    $('#tellfriend_fieldset textarea')
        .toggleClass('borderless')
        .removeAttr('disabled');

    $($('#tellfriend_fieldset ol').children().get(5)).hide();
    $($('#tellfriend_fieldset ol').children().get(6)).hide();

    // switch from cancel to back
    $('a.cancel').hide();
    $('a.go_back_js').attr('href', '#').show().click(
        function() {
            tellFriendHandleBack();
            return false;
        }
    );
}

function tellFriendHandleErrors(data)
{
    $('#tellfriend_fieldset .error').remove();

    if (data.name_from.error != 0) {
        $($('#tellfriend_fieldset ol').children().get(0)).append('<div class="error">'+data.name_from.error_msg+'</div>');
    }
    if (data.name_to.error != 0) {
        $($('#tellfriend_fieldset ol').children().get(2)).append('<div class="error">'+data.name_to.error_msg+'</div>');
    }
    if (data.email_from.error != 0) {
        $($('#tellfriend_fieldset ol').children().get(1)).append('<div class="error">'+data.email_from.error_msg+'</div>');
    }
    if (data.email_to.error != 0) {
        $($('#tellfriend_fieldset ol').children().get(3)).append('<div class="error">'+data.email_to.error_msg+'</div>');
    }
    if (data.captcha.error != 0) {
        $('#captcha_image').attr('src', '/images/captcha.gif?' + (new Date()).getMilliseconds());
        $('#captcha').val('');
        $($('#tellfriend_fieldset ol').children().get(6)).append('<div class="error">'+data.captcha.error_msg+'</div>');
    }
    if (data.text.error != 0) {
        $($('#tellfriend_fieldset ol').children().get(4)).append('<div class="error">'+data.text.error_msg+'</div>');
    }

}

function tellFriend()
{
    $('#taf_main').hide();
    $('#user_add_container a').click(
        function() {
            $('#taf_main').slideToggle('fast');
            $('#user_add_container e').toggleClass('collapse').toggleClass('expand');
            return false;
        }
    );

    $('#user_add_container').click(
        function() {
            $('#taf_main').slideToggle('fast');
            $('#user_add_container e').toggleClass('collapse').toggleClass('expand');
        }
    );

    $('a.cancel').attr('href', '#').click(
        function() {
            tellFriendHandleBack();
            tellFriendHandleCancel();
            $('#taf_main').slideToggle('fast');
        }
    ).show();

    $('a.go_back_js').hide();

    $('#taf_main > form').submit(
        function() {
            $.post(
                $('input[name="ajax_target"]').attr('value') + 'handle_module_data.html?module=tell_friend&ajax=1&' + $('input[name="ajax_action"]').attr('value'),
                'name_from='   + $('#name_from').val() +
                '&name_to='    + $('#name_to').val() +
                '&email_from=' + $('#email_from').val() +
                '&email_to='   + $('#email_to').val() +
                '&captcha='    + $('#captcha').val() +
                '&event_id='   + $('input[name="event_id"]').attr('value') +
                '&text='       + $('#text').val(),
                function(data){
                    if (data.error == true) {
                        tellFriendHandleErrors(data);
                    } else {
                        if (data.send == true) {
                            tellFriendHandleBack();
                            tellFriendHandleCancel();
                        } else {
                            tellFriendHandleInput(data);
                        }
                    }
                },
                'json'
            );
            return false;
        }
    );
}

function showVideos()
{
    _c = $('#videos_container');

    $('#videos a').attr({href: '#'});

    $('#videos').click(
        function() {
            _c.is(':visible') ? _c.slideUp() : _c.slideDown();
            $('#videos a')
                .toggleClass('collapse')
                .toggleClass('expand');
            return false;
        }
    );
}

$(document).ready(function(){
    ticketPaging();
    tellFriend();
    showVideos();
});

