﻿jQuery.noConflict();

jQuery(function($) {
	var loadingSplash = $.fn.loadingSplash = function (options, callback) {
		return this;
	};
	
	var felWindow = $(window);
  var felOverlay = $('<div id="felOverlay"/>').hide();
  var felContainer = $('<div id="felpreloadcontainer"><div class="preloadcontent"><img src="/settings/feline.dk/images/preload.gif"/>' + languagetext.loading.text +'</div></div>').hide();
  $("body").prepend(felOverlay, felContainer);
	
	if (!$.support.opacity) {
		if (!window.XMLHttpRequest) {
			felOverlay.css('position', 'absolute');
		}
	}
	
	loadingSplash.show = function() {
	  if (!$.support.opacity && !window.XMLHttpRequest) {
		  felWindow.bind('resize.loadingSplash scroll.loadingSplash', function () {
			  felOverlay.css({width: felWindow.width(), height: felWindow.height(), top: felWindow.scrollTop(), left: felWindow.scrollLeft()});
		  }).trigger("scroll.loadingSplash");
	  }
	
	  felOverlay.css({"opacity": 0.4}).show();
	  felContainer.show();
	}
	
	loadingSplash.hide = function() {
		$window.unbind('.loadingSplash');
		felContainer.hide();
		$overlay.fadeOut('fast');
	}
	
});

jQuery(function($) {
    Date.format = 'dd-mm-yyyy';
    $.ajaxSetup({ cache: false });

    $("a")
    //Links to popups
    .filter(".popupnarrow").colorbox({ width: "340px", height: "460px", scrollbars: false, iframe: true }).end()
    .filter(".popupwide").colorbox({ width: "700px", height: "550px", scrollbars: false, iframe: true }).end()
    .filter(".popupimages").colorbox({ width: "520px", height: "559px", scrollbars: false, iframe: true }).end()
    $("div.breadcrumb a, div.geonodestoggle li a, div.paging a.search, #header div.links a.hover").click(function() { $.fn.loadingSplash.show(); });

    $("#searchform")
    .submit(function() { if (validatestdform(this)) { $.fn.loadingSplash.show(); return true } else { return false; } })
    .find("select[name=antaldage]").change(function() {
        var option = $(this).find("option:selected");
        var basefolderoffset = $("input[name=basefolderoffset]").val();
        if (option.hasClass("MiniferieSoegning")) {
            $.fn.loadingSplash.show();
            location.href = "/" + basefolderoffset + "/miniferie.asp?geoid_999=" + $("input:hidden[name=geoid_999]").val();
        } else if (option.hasClass("UgeSoegning")) {
            $.fn.loadingSplash.show();
            location.href = $("input:hidden[name=geoid_999]").data("url");
        }
    }).end()

    function quickinfoopen() {
        quickinfoclose();
        var 
    $li = $(this).unbind("click").closest("li"),
    className = $li.attr("class"),
    id = (/id_([^\s]*)/).exec(className)[1],
    folder = (/folder_([^\s]*)/).exec(className)[1],
    p1 = $li.offset(),
    p2 = $("#container").offset();
        $(".footer2").css({ 'z-index': '99' });
        $("#quickinfopopup")
      .css({ 'z-index': '100', 'position': 'absolute', 'left': (p1.left - p2.left + 5) + 'px', 'top': (p1.top - p2.top + 29) + 'px' })
      .load(
        "/" + folder + "/callbackquickinfo.asp",
        { 'emnegruppeid': id },
        function() {
            $("#quickinfopopup")
            .css({ 'display': 'block' })
            .click(function(e) { e.stopPropagation(); })
            .find("a.popupwide").colorbox({ width: "700px", height: "550px", scrollbars: false, iframe: true }).end()
            .find(".quickinfopopup .close").bind("click", quickinfoclose);
        });
        $(document).bind("click", quickinfoclose);
        return false;
    }

    function quickinfoclose() {
        $(".footer2").css({ 'z-index': '200' });
        $(document).unbind("click", quickinfoclose);
        $("#quickinfopopup").css({ 'display': 'none' }).unbind("click");
        $(".emner .quickinfo").unbind("click").bind("click", quickinfoopen);
    }
    quickinfoclose();

    function mandatoryopen() {
        mandatoryclose();
        var p1 = $(this).unbind("click").closest("li").offset();
        var p2 = $("#container").offset();
        $("#quickinfopopup")
      .html($(this).closest("li").find(".mandatorycontainer").html())
      .css({ 'z-index': '100', 'position': 'absolute', 'left': (p1.left - p2.left + 5) + 'px', 'top': (p1.top - p2.top + 29) + 'px', 'display': 'block' })
      .click(function(e) { e.stopPropagation(); });
        $(document).bind("click", mandatoryclose);
        return false;
    }

    function mandatoryclose() {
        $(document).unbind("click", mandatoryclose);
        $("#quickinfopopup").css({ 'display': 'none' }).unbind("click");
        $(".emner .mandatory").unbind("click").bind("click", mandatoryopen);
    }
    mandatoryclose();

    $("ul.geonoder li").css("cursor", "pointer").click(function() {
        window.location = $(this).find("a").attr("href"); return false;
    });

    $("div.emner ul li img").each(function(index, item) {
        $(item).wrap($("<a></a>").attr("href", $(item).closest("li").find("a").attr("href")));
    });

    $("div.geodescriptiontoggle").each(function() {
        divs = $(this).find("> div");
        if (divs.length == 2) {
            var toggle = divs.filter(":gt(0)").css("display", "none");
            var a = $("<a></a>").attr("href", "#").html(languagetext.descriptiontoggle.showdesc).addClass("showgeodesc").click(function() {
                toggle.slideToggle("fast", function() {
                    if ($(this).is(':visible')) {
                        a.html(languagetext.descriptiontoggle.hidedesc).removeClass("showgeodesc").addClass("hidegeodesc");
                    } else {
                        a.html(languagetext.descriptiontoggle.showdesc).removeClass("hidegeodesc").addClass("showgeodesc");
                    }
                }); return false;
            }).insertAfter(toggle);
        }
    });

    $("div.geonodestoggle").each(function() {
        var ul = $(this).find("ul");
        var li = ul.find("li:gt(2)");
        if (li.length) {
            var toggle = $("<ul/>").append(li).insertAfter(ul).css("display", "none");
            var a = $("<a/>").attr("href", "#").html(languagetext.geonodestoggle.showdesc).addClass("showgeodesc").click(function() {
                toggle.slideToggle("fast", function() {
                    if ($(this).is(':visible')) {
                        a.html(languagetext.geonodestoggle.hidedesc).removeClass("showgeodesc").addClass("hidegeodesc");
                    } else {
                        a.html(languagetext.geonodestoggle.showdesc).removeClass("hidegeodesc").addClass("showgeodesc");
                    }
                }); return false;
            }).insertAfter(toggle);
        }
    });

    $("div.feholocationdescriptiontoggle").each(function() {
        var a = $("<a/>").attr("href", "#").html(languagetext.feholocationdescriptiontoggle.showdesc).addClass("showdesc").click(function() {
            if ($("#feholocaitondescriptiontext").is(':hidden')) {
                $(".locationdescriptionheader").css({ 'display': 'none' });
            }
            $("#feholocaitondescriptiontext").slideToggle("fast", function() {
                if ($("#feholocaitondescriptiontext").is(':visible')) {
                    a.html(languagetext.feholocationdescriptiontoggle.hidedesc).removeClass("showdesc").addClass("hidedesc");
                } else {
                    a.html(languagetext.feholocationdescriptiontoggle.showdesc).removeClass("hidedesc").addClass("showdesc");
                    $(".locationdescriptionheader").css({ 'display': 'block' });
                }
            });
            return false;
        }).appendTo($(this));
    });

    $("div.descriptiontoggle").each(function() {
        var a = $("<a/>").attr("href", "#").html(languagetext.descriptiontoggle.showdesc).addClass("showdesc").click(function() {
            $("#beskrivelse2").slideToggle("fast", function() {
                if ($("#beskrivelse2").is(':visible')) {
                    a.html(languagetext.descriptiontoggle.hidedesc).removeClass("showdesc").addClass("hidedesc");
                } else {
                    a.html(languagetext.descriptiontoggle.showdesc).removeClass("hidedesc").addClass("showdesc");
                }
            });
            return false;
        }).insertAfter($(this));
    });

    var favorites = $("div.favorite");
    if (favorites.length) {
        $.getJSON("/sommerhus/callbackmemo.asp", { "type": "json", "action": "list" },
      function(data) {
          data = data.memolines;
          function addFavorite() {
              var params = this.className.split(" ")[1].split("_");
              var $e = $(this);
              $.getJSON(
            "/sommerhus/callbackmemo.asp",
            { "type": "json",
                "action": "add",
                "EmneGruppeID": params[1],
                "GruppeID": params[2],
                "FraDato": params[3],
                "AntalDage": params[4],
                "AntalVoksne": params[5],
                "AntalBoern": params[6],
                "AntalSmaaBoern": params[7],
                "PersonFordeling": params[8]
            },
            function(data) {
                $e.attr("memolineid", data.id).removeClass("addfavorite").addClass("removefavorite").attr("title", languagetext.favorites.remove).html($e.closest(".presentation").length ? languagetext.favorites.remove : '').one('click', removeFavorite);
                updatefavoritesteaser();
            });
          }
          function removeFavorite() {
              var params = this.className.split(" ")[1].split("_");
              var $e = $(this);
              $.getJSON(
            "/sommerhus/callbackmemo.asp",
            { "type": "json",
                "action": "remove",
                "MemoLineID": this.getAttribute('memolineid'),
                "GruppeID": params[2]
            },
            function(data) {
                $e.removeAttr("memolineid").removeClass("removefavorite").addClass("addfavorite").attr("title", languagetext.favorites.add).html($e.closest(".presentation").length ? languagetext.favorites.add : '').one('click', addFavorite);
                updatefavoritesteaser();
            });
          }

          $.each(data, function(i, f) {
              var selector = ".id_" + f.emnegruppeid + "_" + f.gruppeid + "_" + f.fradato + "_" + f.antaldage + "_" + f.antalvoksne + "_" + f.antalboern + "_" + f.antalsmaaboern + "_" + f.personfordeling;
              var $e = favorites.filter(selector)
              $e.attr("memolineid", f.id).addClass("removefavorite").attr("title", languagetext.favorites.remove).html($e.closest(".presentation").length ? languagetext.favorites.remove : '').one('click', removeFavorite);
          });
          var $e = favorites.not(".removefavorite");
          $e.addClass("addfavorite").attr("title", languagetext.favorites.add).html($e.closest(".presentation").length ? languagetext.favorites.add : '').one('click', addFavorite);
      });
    }
    function updatefavoritesteaser() {
        $("#favoritesteaser").each(function() {
            $(this).load("/" + $(this).attr("class").split(" ")[0].substring(7) + "/huskelisteteaser.asp");
        });
    }
    updatefavoritesteaser();

    $("#emneGruppeBeskrivelse").each(function() {
        var $description = $(this);
        var classes = $description.attr("class").split(" ");
        $.getJSON("/" + classes[1] + "/callbacktextlist.asp", { EmneGruppeID: classes[0].substring(2), Type:2 }, function(data, status) {
            var $dropdown = $("<select/>").append("<option value=''>" + data.caption + "</option>");
            var $group = $dropdown;
            var first = true;
            var popup = data.popup;
            $.each(data.texts, function() {
                if (first && this.data.type != "Text") {
                    $group = $("<optgroup label='" + data.caption2 + "'/>").appendTo($group);
                    first = false;
                }
                $("<option>" + this.text + "</option>").appendTo($group).data("data", this.data);
            });
            $dropdown.bind("change keyup", function() {
                var data = $(this).find(":selected").data("data");
                if (data.type == "Text") {
                    $dropdown.prev("button").remove();
                    $.get("/" + data.basefolder + "/callbackEmneGruppeTekst.asp", { EmnegruppeID: data.id, SprogNummer: data.sprognummertil, fradato: data.fradato }, function(data, status) {
                        $description.html($(data).find("beskrivelse").text().replace(/(<13><10>)|(<13>)|(<10>)/gi, " ").replace(/m2/gi, "m&sup2;"));
                    });
                }
                if (data.type == "GoogleTranslate") {
                    function feline2google(lang) {
                        lang = lang.toLowerCase();
                        switch (lang) {
                            case 'gb': return 'en';
                            case 'd': return 'de';
                            case 'dk': return 'da';
                        }
                        return lang;
                    }
                    var url = window.location.protocol + '//' + window.location.host + '/' + data.basefolder;
                    url += '/emneGruppeTekst.asp?EmnegruppeID=' + data.id + '&SprogNummer=' + data.sprognummerfra + '&FraDato=' + data.fradato;
                    var googleLangPair = feline2google(data.sprognummerfra) + '|' + feline2google(data.sprognummertil);
                    var googleUrl = 'http://translate.google.com/translate?u=' + escape(url) + '&langpair=' + googleLangPair + '&hl=en&ie=UTF8';
                    var left = screen ? (screen.width / 2) - (800 / 2 + 10) : 10;
                    var top = screen ? (screen.height / 2) - (350 / 2 + 20) : 10;

                    window.open(googleUrl, '_blank', 'toolbar=no,resizable=yes,width=800,height=350,left=' + left + ',top=' + top + ',scrollbars=yes');

                    var $button = $dropdown.prev("button").unbind("click");
                    if (!$button.length) $button = $("<button>" + popup + "</button>").insertBefore($dropdown);
                    $button.click(function() {
                        window.open(googleUrl, '_blank', 'toolbar=no,resizable=yes,width=800,height=350,left=' + left + ',top=' + top + ',scrollbars=yes');
                        return false;
                    });
                }
            });
            $description.before($dropdown);
        });
    }).resize(function() {
        $(this).closest("div.descriptiontext").css("display", "inline-block").css("display", "block");
    });


    $("head, body").eq(0).append($("<script/>").attr({ type: "text/javascript", async: true, src: ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js' }));

    $("#header .links li.search").after($("<li class='print'><a class='print'>" + languagetext.print.link + "</a></li>"));
    $("a.print").attr("href", "#").click(function() { window.print(); return false; });


    if ($.browser.msie) {
        $("#container").bind("resize", function() {
            $("#links").css("position", "relative").css("position", "absolute");
        });
        if ($.browser.version <= 6) {
            $(".emner .quickinfo, div.links li").bind("mouseenter", function() { $(this).addClass("hover"); }).bind("mouseleave", function() { $(this).removeClass("hover") });
        }
    }
    //alert("navigator.userAgent:"+navigator.userAgent);
    //alert("$.browser.version:"+$.browser.version);
    if (!($.browser.msie && $.browser.version <= 6) && !($.browser.opera && $.browser.version <= 9)) {
        var $email = $("#header .links li.email");
        $email.after($("<li class='bookmark'><a href='#'>" + languagetext.bookmark.link + "</a><div class='bookmarks'><div class='center'><span>" + languagetext.bookmark.header + "</span><div><a class='addthis_button_facebook'>Facebook</a><a class='addthis_button_twitter'>Twitter</a><a class='addthis_button_delicious'>Delicious</a><a class='addthis_button_digg'>Digg</a><a class='addthis_button_misterwong'>Mister Wong</a><a class='addthis_button_mixx'>Mixx</a><a class='addthis_button_stumbleupon'>StumbleUpon</a><a class='addthis_button_linkedin'>LinkedIn</a><a class='addthis_button_propeller'>Propeller</a><a class='addthis_button_squidoo'>Squidoo</a></div></div><div class='bottom'></div></div></li>"));
        $('.links li.bookmark > a').click(function() { $('.links li.bookmark div.bookmarks').slideToggle("fast"); return false; });
        $('.links li.bookmark div.bookmarks').css({ display: "none" }); // Opera Fix
        if ($email.length) {
            $("head, body").eq(0).append($("<script/>").attr({ type: "text/javascript", async: true, src: "http://s7.addthis.com/js/250/addthis_widget.js?domready=1#username=xa-4b45bdca661d8ada" }));
        }
    }

    $("a.BookingLink,a.BookingCalendarLink").bind("book", function(e, url) {
        url = url.toLowerCase().replace("/bookingv2.asp", "/bookingv2js.asp");
        if (_gaq && !$.isArray(_gaq)) {
            _gaq.push(['_link', url]);
        } else {
            location.href = url;
        }
    });

    $("a.BookingLink").click(function(e) {
        var $this = $(this);
        $this.triggerHandler("book", [$this.attr("href")]);
        e.preventDefault();
        return false;
    });

    $("body").bind("changelocation", function() {
        $.fn.loadingSplash.show();
    });
    
    $(".kendtfratv2").click( function() {
      window.open(this.href,'default','height=580,width=786,left=50,top=50').focus();
      return false;
    });
});

function setdata(emnegruppeid, fradato, antaldage, antalvoksne, antalboern, antalsmaaboern, flag, action, personfordeling) {
  var $ = jQuery;
  
  $("a.BookingLink,a.BookingCalendarLink").each(function(){
    var $this = $(this);
    var link = $this.attr("search");  
    var params = {};
    $.each(link.substring(1).split("&"), function(n,i) {
      var kv = i.split("=");
      if(kv.length=2) params[kv[0].toLowerCase()]=kv[1];
    });
    params["fradato"] = fradato;
    params["antaldage"] = antaldage;
    params["antalvoksne"] = antalvoksne;
    params["antalboern"] = antalboern;
    params["antalsmaaboern"] = antalsmaaboern;
    params["personfordeling"] = personfordeling;
    $this.triggerHandler("book", [action + "?" + $.param(params)]);
  });
}