var Speaker = {

    /**
     * Basisurl
     */
    BASE_URL : Framework.WWW_HOME_DIR + Framework.PROJECT_NAME + '/suche-sprecher/',

    /**
     *
     */
    PLAYER_OBJ_ID : 'div#speaker-player',

    /**
     *
     */
    CASTING_BAR_OBJ_ID : '#speaker-casting',

    /**
     * Suche
     */
    Search : {


        /**
         *
         */
        Start: function (f_obj)
        {

           	Speaker.Player.Unload();

            var b_fade = (Speaker.Search.Start.arguments[1] === false)? false : true;

            $(f_obj).ajaxSubmit({
                target:        '#speaker-navtable',
                url:           Speaker.BASE_URL + 'ajax/searchresult/',
                beforeSubmit: function(arr, $form, options) {
                    if (b_fade) {
                        $('#speaker-navtable').hide();
                    }
                },
                success: function() {
                    if (b_fade)
                        $('#speaker-navtable').fadeIn('slow');
                }
            });

        },

        /**
         *
         */
        Init: function(f_obj)
        {
            $('ul#gallery > li').find('img[longdesc]').each( function() {
                $(this).attr('src', $(this).attr('longdesc'));
            });
        },

        /**
         *
         */
        Filter: function(f_obj)
        {
            Speaker.Search.NavigateTo(f_obj, 1);
        },

        /**
         *
         */
        NavigateTo: function(f_name, val)
        {
            if (oF = Framework.isForm(f_name)) {
                if (oE_field = Framework.isElement('navtable[limit][page]', oF)) {
                    oE_field.value = val;

                    Speaker.Search.Start(oF);
                }
            }
        }



    },


    Playlist: {

        Init: function(fk_category)
        {
            Speaker.Playlist.Show(fk_category);
            //Speaker.Playlist.ScrollPane.Init( $('div.sprecherplayer-playlist') );
        },

        Show: function (fk_category)
        {
            $('div[id^="playlist-"]').hide();
            $('li[id^="playlist-button-"]').removeClass("active");

            $('#playlist-button-' + fk_category).addClass("active");
            $('#playlist-' + fk_category).show();


        },

        ScrollPane: {

            Init: function(obj)
            {
                obj.jScrollPane(
                    {
                        showArrows:false,
                        scrollbarWidth:5,
                        scrollbarMargin:1
                    }
                );
            }
        }

    },


    /**
     * Player
     */
    Player: {


        /**
         *
         */
        Unload: function()
        {
            //$(Speaker.PLAYER_OBJ_ID).slideUp(600).html("&nbsp;");
            $.fancybox.close();
		},


        Load: function(obj, id, postdata)
        {

        	Speaker.Player.Unload();

            var defaults = {
                'id'	:	id
            };

            $.fancybox(
                '',
                {
                    'type'                  : 'ajax',
                    'ajax'                  : { 'type': 'post', 'data' : ((postdata)? $.extend( {}, defaults, postdata) : defaults) },
                    'padding'               : 0,
                    'scrolling'             : 'no',
                    'href'                  : Speaker.BASE_URL + 'ajax/player/',
                    'titleShow'             : false,
                    'cyclic'                : false,
                    'hideOnOverlayClick'    : true,
                    'centerOnScroll'        : true,
                    'overlayOpacity'		: .8,
                    'overlayColor'			: '#000',
                    'transitionIn'			: 'none',
                    'transitionOut'			: 'none'
                                    }
            );

        },

        /**
         *
         */
        __Load: function(obj, id, postdata)
        {

        	Speaker.Player.Unload();

            var offset = jQuery(obj).offset();

            var defaults = {
                'id'	:	id
            };

            $.ajax({
                type:       'post',
                url:        Speaker.BASE_URL + 'ajax/player/',
                data:       ((postdata)? $.extend( {}, defaults, postdata) : defaults),
                success:    function(html) {
                    $(Speaker.PLAYER_OBJ_ID)
                        .html(html)
                        .css({left: offset.left - 30, top: offset.top - 175 })
                        .slideDown(600);
                }
            });

        }

    },


    Casting : {

        Display: function (postdata)
        {
            $.ajax({
                type:       'post',
                url:        Speaker.BASE_URL + 'ajax/casting-bar/',
                data:       ((postdata)? postdata : {}),
                beforeSend: function() { },
                complete:   function() { },
                success:    function(html) {
                    $(Speaker.CASTING_BAR_OBJ_ID).html(html);
                }
            });

        },

        HandleButton: function(is_empty)
        {

            if (is_empty) {

                $('#casting-send').find('a').addClass('casting-message');


                Frontend.Fancyzoom.Init(
                    $('#casting-send').find('a.casting-message'),
                    {
                        'type'          : 'iframe',
                        'href'          : Framework.WWW_HOME_DIR + 'no-casting.html',
                        'width'         : 640,
                        'height'        : 640,
                        'autoScale'     : false,
                        'scrolling'     : 'no',
                        'overlayColor'  : '#000'
                    }
                );

            } else {

                $('#casting-send').find('a').removeClass('casting-message');
                $('#casting-send').html( $('#casting-send').html() );
            }



        },

        Add: function (id)
        {

            $.ajax({
                type:           'post',
                url:            Speaker.BASE_URL + 'ajax/speaker-add/',
                data:           'id=' + id,
                dataType:       'json',
                success:        function(result) {

                    if (result.error !== false) {

                        // todo: FM anpassen
                        switch (result.error) {

                            case "EXISTS":
                                alert('Sprecher wurde bereits hinzugefügt');
                                break;

                            case "TOO_MUCH":
                                alert('Die maximale Anzahl ist erreicht.');
                                break;

                            default:
                                alert(result.error);
                                break;

                        }

                    } else {

                        Speaker.Casting.Display();
                        $('ul#gallery > li#speaker_' + id).remove();
						mpq.track('Sprecher zu Casting geadded', { 'SprecherID': id }); _gaq.push(['_trackEvent', 'Suche', 'Sprecher zu Casting geadded', id ]); GoSquared.DefaultTracker.TrackEvent('Sprecher zu Casting geadded', id );
                    }


                }
            });
        },

        Remove: function (id)
        {

            $.ajax({
                type:       'post',
                url:        Speaker.BASE_URL + 'ajax/speaker-remove/',
                data:       'id=' + id,
                success:    function() {

                    $('li#speaker-selected_' + id).remove();
                    Speaker.Casting.Display();
                    Speaker.Search.Start('#qF', false);
                }
            });


        },

        addRecipient: function (oF)
        {
            if (oE = Framework.isElement('receptor_cnt', oF)) {

                oE.value++;

                $(oF).ajaxSubmit({target: '#recipients', url: Framework.WWW_SCRIPT_DIR + 'ajax/recipients/' + Framework.GET_QUERY, type: 'post'});

            }


        }

    }




}
