function gotoLink(htmlElement) {

    var destinationURL = "";
    var target = "";

    if (htmlElement.href) {
        destinationURL = htmlElement.href;
        target = htmlElement.getAttribute("target");
    }
    else {
        if (htmlElement.childNodes) {
            if (htmlElement.getElementsByTagName("a")) {
                destinationURL = htmlElement.getElementsByTagName("a")[0].href;
                target = htmlElement.getElementsByTagName("a")[0].getAttribute("target");
            }
        }
    }

    if (destinationURL.length > 0) {
        if (target == "_blank") {
            window.open(destinationURL);
        }
        else {
            location.href = destinationURL;
        }
    }
    return false;
}

function getEffortIdbyPath(url) {
    return parseInt(url.href.split("_")[1].replace("c", ""));
}


function equalizeCols() {
    var leftcolheight = $("#leftcol").height();
    var rightcolheight = $("#rightcol").height();

    //$("#leftcol").height(rightcolheight);


    if (leftcolheight > rightcolheight) {
        $("#rightcol").height(leftcolheight);
    }
    else {
        $("#leftcol").height(rightcolheight);
    }

}

$(document).ready(function () {

    var ajaxlangugage = $('html').attr("lang");

    // INPUT VALUE SWAP

    if ($("form").length > 0) {
        var swap_val = [];
        $("textarea, input.searchinput").each(function (i) {
            if (!$(this).hasClass("valueset")) {
                if ($(this).attr("class") != "searchinput valueset") {
                    swap_val[i] = $(this).val();
                    $(this).focusin(
                        function () {
                            if ($(this).val() == swap_val[i]) {
                                $(this).val("");
                            }
                        }).focusout(function () {
                            if ($.trim($(this).val()) == "") {
                                $(this).val(swap_val[i]);
                            }
                        });
                }
            }
        });
    }

    // LANGUAGE DROPDOWN

    if ($(".lang .dropdown").length > 0) {
        $(".lang", "#info").hover(function () {
            $(".dropdown", this).toggleClass("isnone");
        });
    }

    // DATEPICKER

    if ($("input.date").length > 0) {
        $("input.date.from").datepicker({
            numberOfMonths:2, regional:"de", dateFormat:'dd.mm.yy', firstDay:1,
            monthNames:['Januar', 'Februar', 'M&auml;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
            dayNamesMin:['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
            minDate:0,
            onSelect:function (dateText, inst) {
                var x = $(this).attr("class");
                if (x == "date from hasDatepicker") {
                    $("input.date.to").datepicker("option", "minDate", dateText);
                    var currdate = $(this).datepicker("getDate");
                    currdate.setDate(currdate.getDate() + 7);
                    $("input.date.to").datepicker("setDate", currdate);
                }

            }
        });
        function dpTo() {
            $("input.date.to").datepicker({
                numberOfMonths:2, regional:"de", dateFormat:'dd.mm.yy', firstDay:1,
                monthNames:['Januar', 'Februar', 'M&auml;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
                dayNamesMin:['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
                minDate:0
            });
        }

        dpTo();

        /* Delete Values */

        if ($("a.delete", ".time").length > 0) {
            $("a.delete", ".time").click(function () {
                $("input.date").val("");
                $("input.date.to").datepicker("destroy");
                dpTo();
                $(this).blur();
                return false;
            })
        }
    }

    // PRICELABEL CLASS

    if ($(".pricelabel").length > 0) {
        var pl_count = $(".pricelabel").length;
        for (i = 0; i < pl_count; i++) {
            var currtxt = $(".pricelabel:eq(" + i + ") .amount").text();
            var currtxtlength = currtxt.length;
            if (currtxtlength > 3) {
                $(".pricelabel:eq(" + i + ") .amount").addClass("small");
            }
            if (currtxtlength < 3) {
                $(".pricelabel:eq(" + i + ") .amount").addClass("big");
            }
        }
    }

    // CONTENT - HEIGHT LEFTCOL

    if ($("#leftcol a.button.back").length > 0) {
        if (($("#leftcol").length > 0) && ($("#rightcol").length > 0)) {
            equalizeCols();
        }
    }

    // CONTENT - FAKE CHECKBOXES - FILTER

    if ($(".fakecheck", "#leftcol").length > 0) {

        // ALL LINES


        $("span", "#leftcol .line").click(function () {
            var thisline = $(this).parent();
            $(".fakecheck", thisline).toggleClass("checked");

            if ($("input", thisline).attr("checked")) {
                $("input", thisline).attr("checked", false);
            }
            else {
                $("input", thisline).attr("checked", true);
            }
        });

        // ALL FAKECHECKBOXES

        $(".fakecheck", "#leftcol .line").click(function () {
            $(this).toggleClass("checked");
            var thisline = $(this).parent();
            if ($("input", thisline).attr("checked")) {
                $("input", thisline).attr("checked", false);
            }
            else {
                $("input", thisline).attr("checked", true);
            }
        });


        // CATEGORY ITEMS (COLOUR)

        $("span", "#leftcol .category .line").click(function () {
            var thisline = $(this).parent();
            $(thisline).toggleClass("grey");
        });


        $(".fakecheck", "#leftcol .category").click(function () {
            var thisline = $(this).parent();
            var actualline = $(thisline).parent();
            $(actualline).toggleClass("grey");
        });
    }

    // INFOBOX TOOLTIPS

    if ($("a.infoicon").length) {
        $("a.infoicon").click(function () {
            $("span.infobox").hide();
            $("span.infobox", this).show();
            return false;
        });

        $("span.closeme", "span.infobox").click(function () {
            var thisparent = $(this).parent();
            $(thisparent).hide();
            return false;
        });
    }

    // CONTENT - OFFERS GRIDVIEW

    if ($("#results.grid").length > 0) {
        $("#results.grid .result").live({
            mouseenter:function () {
                $(".buttons", this).removeClass("isnone");
            },
            mouseleave:function () {
                $(".buttons", this).addClass("isnone");
            }
        });
        $("#results .result .buttons").click(function () {
            gotoLink(this);
        });

        /**
         * Preloading
         */
        var scrooloffset = 15;
        var preloadingrequest = false;

        $(window).scroll(function () {
            if (!preloadingrequest && ($(window).scrollTop() >= ($(document).height() - ($(window).height() + 275)))) {

                preloadingrequest = true;
                $('#preloader').show();
                var url = document.location.pathname + document.location.search;
                if (document.location.search.length > 0) {
                    url += "&ajax=true&offset=" + scrooloffset;
                }
                else {
                    url += "?ajax=true&offset=" + scrooloffset;
                }


                $.ajax({
                    url:url,
                    type:'GET',
                    success:function (response) {

                        $('#preloader').hide();
                        if (response == 'done') {

                        }
                        else {
                            $("#results").html($("#results").html() + response);
                            scrooloffset += 15;
                            preloadingrequest = false;
                        }

                        $("#results .result .buttons .list").unbind('click');

                        $("#results .result .buttons .list").click(function () {

                            var effortid = getEffortIdbyPath(this);
                            var url = "/?controller=sommercard&action=basket&language=" + ajaxlangugage + "&id=" + effortid;

                            if ($(this).hasClass("remove")) {
                                url += "&do=remove";
                                $(this).removeClass("remove");
                                $("#effort_" + effortid + " .basket").addClass("hide");

                            }
                            else {
                                url += "&do=add";
                                $(this).addClass("remove");
                                $("#effort_" + effortid + " .basket").removeClass("hide");

                            }
                            $.ajax({
                                url:url,
                                type:'GET',
                                success:function (response) {
                                    if (response == '0') {
                                        $('#metanav span.basket').addClass("isnone");
                                    }
                                    else {
                                        $('#metanav span.basket').removeClass("isnone");
                                    }
                                }
                            });

                            return false;
                        });

                    }
                });
            }
        });
    }
    $("#results .result .buttons .list, #rightcol .relative .button.list").click(function () {

        var effortid = getEffortIdbyPath(this);
        var url = "/?controller=sommercard&action=basket&language=" + ajaxlangugage + "&id=" + effortid;

        if ($(this).hasClass("remove")) {
            url += "&do=remove";
            $(this).removeClass("remove");
            $("#effort_" + effortid + " .basket").addClass("hide");

        }
        else {
            url += "&do=add";
            $(this).addClass("remove");
            $("#effort_" + effortid + " .basket").removeClass("hide");

        }
        $.ajax({
            url:url,
            type:'GET',
            success:function (response) {
                if (response == '0') {
                    $('#metanav span.basket').addClass("isnone");
                }
                else {
                    $('#metanav span.basket').removeClass("isnone");
                }
            }
        });


        return false;
    });


    // BASKET LIST

    if ($("#results .result .button.delete").length > 0) {
        $("#results .result .button.delete").click(function () {

            var effortid = getEffortIdbyPath(this);
            var url = "/?controller=sommercard&action=basket&language=" + ajaxlangugage + "&id=" + effortid + "&do=remove";

            $.ajax({
                url:url,
                type:'GET',
                success:function () {
                    $("#effort_" + effortid).remove();
                    var objectcount = $("#results").children().length;
                    if (objectcount > 0) {
                        $("#results .result .gmap_icon").empty();
                        for (var i = 0; i < objectcount; i++) {
                            $("#results .result .gmap_icon:eq(" + i + ")").html(i + 1);
                        }
                        RefreshBasketPOIs();
                    }
                    else {
                        $("#rightcol .contentblock.wysiwyg").removeClass("isnone");
                        $(".bar, #map_container").remove();
                    }
                }
            });
            return false;
        });

        $("#rightcol .bar .deletelist").click(function () {
            var url = "/?controller=sommercard&action=basket&&do=clear&language=" + ajaxlangugage;
            $.ajax({
                url:url,
                type:'GET',
                success:function () {
                    window.location.reload(true);
                }
            });
        });
    }

    // CONTENT - SWITCH GRIDVIEW/LISTVIEW

    if ($("a.view.grid", ".bar").length > 0) {
        $("a.view.grid").click(function () {
            $("a.view", ".bar").removeClass("active");
            $(this).addClass("active").blur();
            $("#results").removeClass().addClass("grid");
            return false;
        });
        $("a.view.list").click(function () {
            $("a.view", ".bar").removeClass("active");
            $(this).addClass("active").blur();
            $("#results").removeClass().addClass("list");
            return false;
        });
    }

    // CONTENT - GOOGLE MAPS FADE IN/OUT

    if ($(".view.map").length > 0) {
        $(".view.map").click(function () {
            $("#map_container").toggleClass("isnone");
            $(".gmap_icon").toggleClass("isnone");
            $("#map_container").animate({
                height:"398px"
            }, 0);
            $(this).blur().addClass("remove");
            $(".view.map span.text").toggleClass("isnone");
            initialize();
            return false;
        });

        $(".view.map.remove").live("click", function () {
        });
    }

    if ($(".view.basketmap").length > 0) {
        $(".view.basketmap").click(function () {
            $("#map_container").toggleClass("isnone");
            $(".gmap_icon").toggleClass("isnone");
            $("#map_container").animate({
                height:"398px"
            }, 0);
            $(this).blur().addClass("remove");
            $(".view.map span.text").toggleClass("isnone");
            initializeBasket();
            return false;
        });

        $(".view.map.remove").live("click", function () {
        });
    }

    if ($("#map_container.detail").length > 0) {
        initializeDetail();
    }

    if ($("#contentcontainer .teaser_wide .teaser").length > 0) {
        $("#contentcontainer .teaser_wide .teaser").click(function () {
            gotoLink(this);
            $(this).css({cursor:"pointer"});
        });
    }


    // CONTENT SHOW FULL COMMENT

    if ($(".review").length > 0) {
        $("a.cshow").click(function () {
            var thiscomment = $(this).parent();
            $("span.chidden", thiscomment).toggleClass("isnone");
            $(this).toggleClass("isnone");
            equalizeCols();
            return false;
        });
        $("a.chide").click(function () {
            var thiscomment = $(this).parent().parent();
            $("span.chidden", thiscomment).toggleClass("isnone");
            $("a.cshow", thiscomment).toggleClass("isnone");
            equalizeCols();
            return false;
        });
    }

    // CONTENT SHOW ALL COMMENTS

    if ($(".hiddenreviews").length > 0) {
        $("a.seeall").click(function () {
            $(".hiddenreviews").toggleClass("isnone");
            $("a.hideall").toggleClass("isnone");
            $(this).toggleClass("isnone");
            equalizeCols();
            return false;
        });
        $("a.hideall").click(function () {
            $(".hiddenreviews").toggleClass("isnone");
            $("a.seeall").toggleClass("isnone");
            $(this).toggleClass("isnone");
            equalizeCols();
            return false;
        });
    }

    // ELSLIDER

    if ($(".sslider").length > 0) {
        $(".sslider").elSlider({
            visibleitems:1,
            vertical:false,
            continuous:true,
            animationspeed:0,
            numbers:true,
            thumbs:true,
            fadingspeed:0
        });
    }

    // FANCYBOX

    if ($(".fancybox").length > 0) {
        $(".fancybox").fancybox({
            'transitionIn':'fade',
            'transitionOut':'fade',
            'speedIn':200,
            'speedOut':200,
            'overlayShow':true,
            'padding':0,
            'overlayColor':'#3a3d40',
            'overlayOpacity':0.8,
            'onStart':function () {
                if ($("#moviebox").length) {
                    $("#moviebox object").css("left", "-9999px");
                }
            },
            'onClosed':function () {
                if ($(".text .hidden", ".sl_item").length > 0) {
                    $(".text .hidden", ".sl_item").hide();
                    $(".text .short", ".sl_item").css("opacity", "100").show();
                }
                if ($("#moviebox").length) {
                    $("#moviebox object").css("left", "0px");
                }
            }
        });
    }

    // IE8 BACKGROUND FIX ( IS CAUSED FROM GMAPS.API JS FILE

    if ($.browser.msie == true && $.browser.version == "8.0") {
        if (ajaxlangugage == "de") {
            $("body").css("background", "#728907 url(/static/img/card/bg_sommercard_final_2.jpg) no-repeat top center");
        }
        else {
            $("body").css("background", "#728907 url(/static/img/card/bg_sommercard_final_en.jpg) no-repeat top center");
        }
    }
});

$(window).load(function () {

    // CONTENT RATINGBOX

    if ($(".starrating").length) {
        $(".starrating").hover(function () {
                $(".ratingbox").addClass("hover");
            },
            function () {
                $(".ratingbox").removeClass("hover");
            });
    }

});


function Fehlerbehandlung(Nachricht, Datei, Zeile) {
    return true;
}

window.onerror = Fehlerbehandlung;

