//eigener Namespace
var YMDetailInfo = function () {
    var IsMapInit = false;

    return {
        init: function () {
            $(document).ready(function () {

                $('#SAF').click(function()
                {
                    YMDetailInfo.SelectTab('TabContact', '65538')
                    return false;
                });

                $('#GetToRating').click(function () {
                    YMDetailInfo.SelectTab('TabComment', '2')
                    return false;
                });

                $('#GetToMap').click(function () {
                    YMDetailInfo.SelectTab('TabRoute', '2')
                    return false;
                });

                // Standardmässig den Reiter "Überblick" aktivieren.
                $("#TabOverview").attr("class", "SelectedTab");

                //console.log(DetailInfoView);
                switch (DetailInfoView) {
                    case "2": // Lageplan
                    case "10": // Route
                        $(".TabNavigation li").removeClass("SelectedTab");
                        $("#TabContent").find("div").not(".MessageBox").css("display", "none"); // Bis auf die MessageBox alle div ausblenden.
                        $("#FreeText").find("div").css("display", "none");
                        $("#TabRoute").attr("class", "SelectedTab");
                        $("#MapAndRouteContent").css("display", "block").find("div").css("display", "block");
                        if (!IsMapInit) {
                            if (typeof MapInit != 'undefined') {
                                MapInit();
                                IsMapInit = true;
                            }
                        }
                        break;
                    case "6": // Kontakt
                        $(".TabNavigation li").removeClass("SelectedTab");
                        $("#TabContent").find("div").not(".MessageBox").css("display", "none"); // Bis auf die MessageBox alle div ausblenden.
                        $("#TabContact").attr("class", "SelectedTab");
                        $("#ContactContent").css("display", "block").find("div").css("display", "block");
                        $("#FreeText").find("div").css("display", "none");
                        break;
                    case "16": // Frei vergebbarer Reiter
                        $(".TabNavigation li").removeClass("SelectedTab");
                        $("#TabContent").find("div").not(".MessageBox").css("display", "none"); // Bis auf die MessageBox alle div ausblenden.
                        $("#TabCustom").attr("class", "SelectedTab");
                        $("#CustomContent").css("display", "block").find("div").css("display", "block");
                        $("#FreeText").find("div").css("display", "none");
                        break;
                    case "515": // Bewertungen
                        $(".TabNavigation li").removeClass("SelectedTab");
                        $("#TabContent").find("div").not(".MessageBox").css("display", "none"); // Bis auf die MessageBox alle div ausblenden.
                        $("#TabComment").attr("class", "SelectedTab");
                        $("#MyYMArea").css("display", "block").find("div").not("#MyYMLogin").css("display", "block");
                        $("#CommentContent").css("display", "block").find("div").css("display", "block");
                        $("#FreeText").find("div").css("display", "none");
                        break;
                    case "65538": // SendAFriend
                        $(".TabNavigation li").removeClass("SelectedTab");
                        $("#TabContent").find("div").not(".MessageBox").css("display", "none"); // Bis auf die MessageBox alle div ausblenden.
                        $("#TabContact").attr("class", "SelectedTab");
                        $("#SendAFriendContent").css("display", "block").find("div").css("display", "block");
                        $("#FreeText").find("div").css("display", "none");
                        break;
                    case "131072": // MyYellowMap
                        $(".TabNavigation li").removeClass("SelectedTab");
                        $("#TabContent").find("div").not(".MessageBox").css("display", "none"); // Bis auf die MessageBox alle div ausblenden.
                        $("#TabComment").attr("class", "SelectedTab");
                        $("#MyYMArea").css("display", "block");
                        $("#FreeText").find("div").css("display", "none");
                        break;
                    default: // Überblick
                        $(".TabNavigation li").removeClass("SelectedTab");
                        $("#TabContent").find("div").not(".MessageBox").css("display", "none"); // Bis auf die MessageBox alle div ausblenden.
                        $("#TabOverview").attr("class", "SelectedTab");
                        $("#OverviewContent").css("display", "block").find("div").not("#TLDR").css("display", "block");
                        $("#FreetextContent").css("display", "block").find("div").not("#TLDR").css("display", "block");
                        $("#FreeText").find("div").css("display", "block");
                        break;
                }

                // Je nach Klick auf Tab den entsprechenden Tab einblenden.
                $("#ControlContentPanel .TabNavigation li a").click(function () {
                    YMDetailInfo.SelectTab($(this).parent().parent().attr("id"), null);
                    return false;
                });

            });
        },

        // Funktion übernimmt das Anblenden der Reiter. Neben der Tab-ID kann noch als 
        // weitere Unterscheidung der DetailInfoView mitgegeben werden.
        SelectTab: function (TabID, DetailInfoView) {
            DetailInfoView = DetailInfoView || '';

            // Alle Tabs inaktiv darstellen.
            $(".TabNavigation li").removeClass("SelectedTab");
            $("#TabContent").find("span[class='NonFatalErrorMessage']").css("display", "none");
            $("#FreeText").find("div").css("display", "none");
            switch (TabID) {
                case "TabOverview":
                    $("#TabContent").find("div").css("display", "none");
                    $("#OverviewContent").css("display", "block").find("div").not("#TLDR").css("display", "block");
                    $("#FreeText").find("div").css("display", "block");
                    break;
                case "TabCustom":
                    $("#TabContent").find("div").css("display", "none");
                    $("#CustomContent").css("display", "block").find("div").css("display", "block");
                    $("#OverviewContent").css("display", "block");
                    $("#OverviewContent div").css("display", "none");
                    $("#AddressProviderBranding").css("display", "block");
                    break;
                case "TabContact":
                    switch (DetailInfoView) {
                        case "65538":
                            $("#TabContent").find("div").css("display", "none");
                            $("#ContactContent").css("display", "block").find("div").css("display", "block");
                            $("#SendAFriendContent").css("display", "block").find("div").css("display", "block");
                            $("#SendAFriendArea").css("display", "block");
                            $("#OverviewContent").css("display", "block");
                            $("#OverviewContent div").css("display", "none");
                            $("#AddressProviderBranding").css("display", "block");
                            break;
                        default:
                            $("#TabContent").find("div").css("display", "none");
                            $("#ContactContent").css("display", "block").find("div").css("display", "block");
                            $("#OverviewContent").css("display", "block");
                            $("#OverviewContent div").css("display", "none");
                            $("#AddressProviderBranding").css("display", "block");
                            $("#SendAFriendContent").css("display", "block").find("div").css("display", "block");
                            break;
                    }
                    break;
                case "TabRoute":
                    $("#TabContent").find("div").css("display", "none");
                    $("#MapAndRouteContent").css("display", "block").find("div").css("display", "block");
                    if (!IsMapInit) {
                        if (typeof MapInit != 'undefined') {
                            MapInit();
                            IsMapInit = true;
                        }
                    }
                    $("#OverviewContent").css("display", "block");
                    $("#OverviewContent div").css("display", "none");
                    $("#AddressProviderBranding").css("display", "block");
                    break;
                case "TabComment":
                    switch (DetailInfoView) {
                        case "131072":
                            $("#TabContent").find("div").css("display", "none");
                            $("#MyYMArea").css("display", "block").find("div").not(".MyYellowMapLoginArea").css("display", "block");
                            $("#OverviewContent").css("display", "block");
                            $("#OverviewContent div").css("display", "none");
                            $("#AddressProviderBranding").css("display", "block");
                            break;
                        case "515":
                            $("#TabContent").find("div").css("display", "none");
                            $("#MyYMArea").css("display", "block").find("div").not(".MyYellowMapLoginArea").css("display", "block");
                            $("#OverviewContent").css("display", "block");
                            $("#OverviewContent div").css("display", "none");
                            $("#AddressProviderBranding").css("display", "block");
                            break;
                        default:
                            $("#TabContent").find("div").css("display", "none");
                            $("#MyYMArea").css("display", "block").find("div").not("#MyYMLogin").css("display", "block");
                            $("#CommentContent").css("display", "block").find("div").css("display", "block");
                            $("#OverviewContent").css("display", "block");
                            $("#OverviewContent div").css("display", "none");
                            $("#AddressProviderBranding").css("display", "block");
                            break;
                    }
                    break;
                default:
                    $("#TabOverview").attr("class", "SelectedTab");
                    break;
            }
            // Gewählten Tab aktiv darstellen.
            $("#" + TabID).attr("class", "SelectedTab");
        }
    };
} ();

YMDetailInfo.init();


(function ()
{
    if (typeof Url !== 'function' || typeof jQuery !== 'function')
    {
        setTimeout(arguments.callee, 100);
        return;
    }
    
    $(document).ready(function()
    {
        var url = new Url(window.location.href);
        var SelectedTab = url.getHashParam('SelectedTab');
        if (SelectedTab)
        {
            YMDetailInfo.SelectTab(SelectedTab);
        }
    });
})();

(function()
{
    if (typeof jQuery !== 'function' || typeof Url !== 'function')
    {
        setTimeout(arguments.callee, 100);
        return;
    }
    var $ = jQuery;

    var url = new Url(window.location.href);
    var Country = url.getHashParam('Country') || 'D';
    var Zip = url.getHashParam('Zip') || '';
    var Town = url.getHashParam('Town') || '';
    Town = decodeURIComponent(Town);

    var Street = url.getHashParam('Street') || '';
    if (Street && url.getHashParam('HouseNo')) Street += ' ' + url.getHashParam('HouseNo');
    if (Street) Street = decodeURIComponent(Street);

    var Catchword = url.getHashParam('Catchword') || url.getHashParam('Branch') || url.getHashParam('BranchBC') || '';
    Catchword = decodeURIComponent(Catchword);
    var BC = url.getHashParam('BC');

    $(function()
    {
        if (Catchword && Zip && Town && BC)
        {
            var lastChild = $('#Breadcrumb a:last-child');
            lastChild.before($('<a title="Branchenbuch ZIP TOWN" href="HREF">Branchenbuch ZIP TOWN</a>'.
                replace(/ZIP/g, Zip).
                replace(/TOWN/g, Town).
                replace(/HREF/g, YMDetailInfo.BaseUrl + Country + '_' + Zip + '_' + Town + '.htm')));

            lastChild.before(' &gt; ');
            lastChild.before($('<a title="CATCHWORD im Branchenbuch ZIP TOWN" href="HREF">CATCHWORD im Branchenbuch ZIP TOWN</a>'.
                replace(/ZIP/g, Zip).
                replace(/TOWN/g, Town).
                replace(/CATCHWORD/g, Catchword).
                replace(/HREF/g, YMDetailInfo.BaseUrl + Country + '_' + Zip + '_' + Town + '/0/' + BC + '_' + Catchword + '.htm')));
            lastChild.before(' &gt; ');


            $('#RouteStartZip').val(Zip);
            $('#RouteStartTown').val(Town);
            $('#RouteStartStreet').val(Street);

            $('#PublicTransportRouteStartZip').val(Zip);
            $('#PublicTransportRouteStartTown').val(Town);
            $('#PublicTransportRouteStartStreet').val(Street);
        }


        $('form').each(function()
        {
            if ($(this).attr('action') == '')
            {
                $(this).attr('action', $(this).attr('action') + window.location.hash);
            }
        });

        $('.UserLogin').click(function()
        {
            YMDetailInfo.SelectTab('TabComment','131072');
            return false;
        });

        $('.rating span').click(function()
        {
            YMDetailInfo.SelectTab('TabComment');
            return false;
        });

        $('#WebProfiles').click(function()
        {
            YMDetailInfo.SelectTab('TabContact');
            return false;
        });
    })
})();
