function executeSideBarActionCommand(actionStr, parameters)
{
    if (actionStr == 'addFriend')
    {
        executeSideBarAddFriend();
    }
    else if (actionStr == 'mailUser')
    {
        executeSideBarMailUser();
    }
    else if (actionStr == 'favUser')
    {
        executeSideBarAddFavorite();
    }
    else if (actionStr == 'reportUser')
    {
        executeSideBarReportUser();
    }
    else if (actionStr == 'commentVideo')
    {
        executeSideBarCommentVideo($H(parameters).get('clipId'), $H(parameters).get('contentSetId'), $H(parameters).get('title'));
    }
    else if (actionStr == 'rssVideo')
    {
        executeSideBarRssVideo($H(parameters).get('clipId'), $H(parameters).get('contentSetId'), $H(parameters).get('title'));
        // alert('VideoRssFeeds sind zu diesem Zeitpunkt der BETA noch nicht
        // aktiviert.');
    }
    else if (actionStr == 'favVideo')
    {
        executeSideBarFavVideo($H(parameters).get('clipId'));
    }
    else if (actionStr == 'sendVideo')
    {
        executeSideBarSendVideo($H(parameters).get('clipId'), $H(parameters).get('contentSetId'), $H(parameters).get('title'));
    }
    else if (actionStr == 'urlVideo')
    {
        executeSideBarLinkVideo($H(parameters).get('clipId'), $H(parameters).get('contentSetId'), $H(parameters).get('title'));
    }
    else if (actionStr == 'reportVideo')
    {
        executeSideBarReportVideo($H(parameters).get('clipId'), $H(parameters).get('contentSetId'));
    }
    else if (actionStr == 'embedVideo')
    {
        executeSideBarEmbedVideo($H(parameters).get('clipId'), $H(parameters).get('contentSetId'), $H(parameters).get('title'));
    }
    else if (actionStr == 'callURL')
    {
        ATV.navigateTo($H(parameters).get('url'));
    }
    else if (actionStr == 'facebookShare')
    {
        executeSideBarFacebookShare($H(parameters).get('clipId'), $H(parameters).get('contentSetId'), $H(parameters).get('title'));
    }
    else
        alert('action: ' + actionStr);
}

function executeSwitchProfileViewCommand(viewId)
{
    try
    {
        if (6 == viewId)
        {
            ATV.navigateTo('community/profil');
        }
        else if (7 == viewId)
        {
            ATV.navigateTo('community/profil/bilder');
        }
        else if (1 == viewId)
        {
            ATV.navigateTo('community/profil/' + ATV.profile.id + '/' + escape(ATV.profile.username) + '/videos');
        }
        else if (2 == viewId)
        {
            ATV.navigateTo('community/profil/' + ATV.profile.id + '/' + escape(ATV.profile.username) + '/freunde');
        }
        else if (3 == viewId)
        {
            ATV.navigateTo('community/profil/' + ATV.profile.id + '/' + escape(ATV.profile.username) + '/favoriten');
        }
        else if (4 == viewId)
        {
            ATV.navigateTo('community/profil/' + ATV.profile.id + '/' + escape(ATV.profile.username) + '/pinnwand');
        }
        else if (0 == viewId)
        {
            ATV.navigateTo('community/profil/' + ATV.profile.id + '/' + escape(ATV.profile.username));
        }
        else
            alert('Not yet implemented to switch to view #' + viewId);
    } catch (e)
    {
        if (typeof console !== 'undefined')
        {
            console.error(e);
        }
        else
        {
            // alert('Exception: ('+$H(e).getKeys().concat(',')+' :
            // '+$H(e).getValues().concat(',')+')');
        }
    }
}

function executeNotify(notifications)
{
    try
    {
        notifications.each(function(notification)
        {

            var body = $$('body');
            body = body[0];

            if (1 == notification)
            {
                var box_content =
                        '<div style="padding:20px;">' + '<h3>Willkommen in der ATV.at-Community!</h3>' + '<h4 style="margin-top: -4px;">Bitte vervollständige hier deine Profildaten.</h4>'

                        + '<div class="line"><span class="topr_line"> </span></div>'

                        + '<h4>Persönliche Daten</h4>'

                        + 'Hier kannst du Profildaten wie Name, Adresse usw. ergänzen.<br/>' + 'Diese Angaben sind freiwillig, du kannst außerdem unter dem Punkt "Privatsphäre" bestimmen, wer welche deiner Profildaten sehen darf.'
                                + '<br/><br/>'

                                + '<h4>Avatar-Bild/Avatar-Video</h4>' + 'Du kannst bei ATV.at wahlweise ein Foto oder Video hochladen. Profile mit Bildern oder Videos sind für andere User besonders interessant und werden öfter angeklickt.'
                                + '<br/><br/>'

                                + '<h4>Verortung</h4>'
                                + 'Wenn du möchtest, kannst du dich auf der Österreich-Karte verorten. Damit entdecken dich vielleicht andere User, die aus derselben Gegend kommen und können mit dir in Kontakt treten.' + '<br/><br/>'

                                + 'Viel Spaß beim Surfen!<br/>' + 'Das ATV.at Team' + '<br/><br/>'

                                + '<div style="padding-bottom:3px;">' + '    <a class="arrow_link" href="community/profile">Jetzt Profildaten vervollständigen<span>&nbsp;</span></a>' + '    <br/><br/>'

                                + '    <a class="arrow_link" href="javascript:notifyBox.hide()">Profildaten später vervollständigen<span>&nbsp;</span></a>' + '</div>' + '</div>';

                var box_content_wrapper = new Element('div', {
                    'id': 'notification_01'
                });
                box_content_wrapper.inject(body, 'top');
                box_content_wrapper.set('html', box_content);

                notifyBox = new AtvInlineFloatBox('notification_01', {
                    'relative_to': 'nav',
                    'width': '621px',
                    'pre_wrapper_class': 'atv_inline_float_box_prewrapper_621',
                    'post_wrapper_class': 'atv_inline_float_box_postwrapper_621',
                    'show_close_button': true,
                    'buttons': [],
                    'onShow': function()
                    {
                        var window_scroll = window.getScroll();
                        notifyBox.scrollToY(window_scroll.y.toInt() + 250);
                    }
                });
                notifyBox.show();

            } // notification_01 end

            });

        // delete cookie
        document.cookie = 'user_data=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/';
    } catch (e)
    {
        if (typeof console !== 'undefined')
        {
            console.error(e);
        }
        else
        {
            // alert('Exception: ('+$H(e).getKeys().concat(',')+' :
            // '+$H(e).getValues().concat(',')+')');
        }
    }

}

function executeCommand(commandStr, parameters)
{
    try
    {
        switch (commandStr)
        {
            case "callChangeAppSize":
                var element_id = $pick(parameters.movieId, 'navigation_cont');
                if ($defined($(element_id)))
                {
                    /*
                     * DON'T CHANGE!!! the standard mootools procedure is NOT
                     * working in IE7
                     */
                    $(element_id).style.height = parameters.height.toInt() + 'px';
                    $(element_id).style.width = parameters.width.toInt() + 'px';
                }
                break;
            case "checkLoginStatus":
                user_data = ATV.getLoggedInUser(); // Cookie.read('user_data');
                if (user_data)
                {
                    if (user_data.notifications.length > 0)
                    {
                        executeNotify(user_data.notifications);
                    }
                }
                else
                {
                    /*
                     * if atv_user is logged in permanently return right
                     */

                    if (Cookie.read('ATV_user'))
                    {
                        return;
                    }

                    user_data = {
                        "logInStatus": "false"
                    }
                }

                return user_data;
                break;
            case "callURL":
                document.getElementById('navigation_cont').executeCommand('callbackNavi', {
                    status: true
                });
                document.location.href = parameters['url'];
                return true;
                break;
            case "callSearch":
                ATV.navigateTo('suche/' + $H(parameters).get('searchterm'));
                break;
            case "callViewChange":
                var params = {};
                var flashvars = {};
                switch (parameters['view'])
                {
                    case "map":
                        ATV.navigateTo('home/karte');
                        /*
                         * flashvars.configPath = 'flash/UserMap/';
                         * flashvars.environment = ATV.environment; params.wmode =
                         * "transparent";
                         * swfobject.embedSWF("flash/UserMap/UserMap.swf",
                         * "wallpaper", "990", "462", "9.0.124",
                         * "flash/UserMap/playerProductInstall.swf", flashvars,
                         * params); $('adlink_content').setStyle('visibility',
                         * 'hidden');
                         */
                        break;
                    case "wallpaper":
                        ATV.navigateTo('');
                        /*
                         * flashvars.configPath = 'flash/wallpaper/';
                         * flashvars.environment = ATV.environment;
                         * flashvars.area = ATV.area; params.wmode =
                         * "transparent";
                         * swfobject.embedSWF("flash/wallpaper/Wallpaper.swf",
                         * "wallpaper", "990", "462", "9.0.124",
                         * "flash/wallpaper/playerProductInstall.swf",
                         * flashvars, params);
                         * $('adlink_content').setStyle('visibility',
                         * 'visible');
                         */
                        break;
                    case "tags":
                        ATV.navigateTo('home/tags');
                        /*
                         * flashvars.configPath = 'flash/wallpaper/';
                         * flashvars.environment = ATV.environment;
                         * flashvars.area = 'Community'; params.wmode =
                         * "transparent"; flashvars.view = 'tags';
                         * swfobject.embedSWF("flash/wallpaper/Wallpaper.swf",
                         * "wallpaper", "990", "462", "9.0.124",
                         * "flash/wallpaper/playerProductInstall.swf",
                         * flashvars, params);
                         * $('adlink_content').setStyle('visibility',
                         * 'visible');
                         */
                        break;

                }
                break;
            case "login":
                ATV.navigateTo('community/login');
                break;
            case "logout":
                ATV.navigateTo('community/login/logout');
                break;
            case "profile":
                ATV.navigateTo('community/profil/eigenes');
                break;
            case "callRegister":
                ATV.navigateTo('community/anmeldung');
                break;

            case "callSideBarAction":
                executeSideBarActionCommand($H(parameters).get('action'), $H(parameters));
                break;

            case "setAddressObject":
                // console.log($H(parameters));
                if ('function' === typeof setAddressObject)
                {
                    setAddressObject($H(parameters));
                }
                else
                {
                    $('location_latitude').set('value', $H(parameters).get('latitude'));
                    $('location_longitude').set('value', $H(parameters).get('longitude'));
                }
                break;
            /**
             * case "mapPointSelected": //console.log($H(parameters));
             * $('location_latitude').set('value',$H(parameters).get('latitude'));
             * $('location_longitude').set('value',$H(parameters).get('longitude'));
             * break;
             */

            case "callExternalURL":
                window.open($H(parameters).get('url'));
                // document.location.href = $H(parameters).get('url');
                break;

            case "callSwitchProfileView":
                executeSwitchProfileViewCommand($H(parameters).get('view'));
                break;
            case "callUserProfile":
                ATV.navigateTo('community/profil/' + parameters + '/user/cms');
                break;
            case "callOpenVideoFile":
                ATV.navigateTo('contentset/' + parameters);
                break;

            case 'callChangeClip':
                triggerChangedClip($H(parameters).get('clipId'), $H(parameters).get('contentSetId'), $H(parameters).get('title'));
                break;
            case "callGoogleAnalytics":
                googleAnalyticsPageTrack($H(parameters).get('url'), $H(parameters).get('name'), $H(parameters).get('staffel'), $H(parameters).get('folge'), $H(parameters).get('art'), $H(parameters).get('laenge'), $H(parameters).get(
                        'action'));

                /*
                 * @see https://www4.exozet.com/mantis/view.php?id=50152
                 * 
                 * Note: We doesn't implement a separate command in
                 * flash so we use the callGoogleAnalytics as trigger to fire some flash command events
                 * 
                 * flashplayer:pause_triggered
                 */
                if (parameters.action)
                {
                    var event_name = parameters.action.toLowerCase(); 
                    event_name = 'flashplayer:on' + event_name.charAt(0).toUpperCase() + event_name.substr(1);
                    document.fireEvent(event_name);
                }
                
                break;

            case "callOewaAnalytics":
                oewaAnalyticsPageTrack($H(parameters).get('category'), $H(parameters).get('programid'), $H(parameters).get('action'));
                break;

            case "callOewaAnalyticsVideoUpload":
                oewaAnalyticsPageTrackCommunity();
                break;

            case "callAdlinkReload":
                // console.log('call remote adreload');
                // console.log($H(parameters).get('zone'));
                adreload($H(parameters).get('zone'), $H(parameters).get('roadblock'));
                break;

            case "callSitebranding":
                sitebrandingreload($H(parameters).get('url'));
                break;

            case "callEPGFilter":
                /* alert($H(parameters).get('genre')); */
                /*
                 * ATV.navigateTo('programguide/' +
                 * $H(parameters).get('genre'));
                 */
                document.location = $('current_epg_uri').get('value') + '/' + $H(parameters).get('genre');
                break;

            case "callAdRoadBlockUrlChanged":
                syncRoadBlock($H(parameters).get('roadBlockUrl'));
                break;

            case "callAdlinkCountPixel":
                adLinkCounter();
                break;

            case "uploadFinish":
                showSummary();
                break;

            case "callQuickLink":
                switch ($H(parameters).get('target'))
                {
                    case "quoten":
                        ATV.navigateTo('werbung/quoten?index=' + $H(parameters).get('target'));
                        break;
                    case "empfang":
                        ATV.navigateTo('unternehmen/empfang%20atv%20und%20atv2?index=' + $H(parameters).get('target'));
                        break;
                    case "jobs":
                        ATV.navigateTo('contentset/187503?index=' + $H(parameters).get('target'));
                        break;
                    case "team":
                        ATV.navigateTo('unternehmen/mitarbeiter?index=' + $H(parameters).get('target'));
                        break;
                    case "kontakt":
                        ATV.navigateTo('formular/Kontakt?index=' + $H(parameters).get('target'));
                        break;
                }
                break;

            case "showRestDerWelt":
                switch (ATV.area)
                {
                    case "community":
                        ATV.navigateTo('community/weltmitglieder/');
                        break;
                    default:
                        ATV.navigateTo('categories/video/?&region=rest_der_welt');
                        break;
                }
                break;
            default:
                alert('Exception: Command ' + commandStr + ' not implemented! (' + $H(parameters).getKeys().concat(',') + ' : ' + $H(parameters).getValues().concat(',') + ')');

        }
    } catch (e)
    {
        if (typeof console !== 'undefined')
        {
            console.error(e);
        }
        else
        {
            // alert('Exception: ('+$H(e).getKeys().concat(',')+' :
            // '+$H(e).getValues().concat(',')+')');
        }
    }
}

