/// <reference path="../../Scripts/jquery-1.5.1-vsdoc.js" />


/* function to fix the -10000 pixel limit of jquery.animate */
$.fx.prototype.cur = function () {
    if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) {
        return this.elem[this.prop];
    }
    var r = parseFloat(jQuery.css(this.elem, this.prop));
    return typeof r == 'undefined' ? 0 : r;
}

function setupScrollbars() {

    var offset;
    /* 
    malihu custom scrollbar function parameters: 
    1) scroll type (values: "vertical" or "horizontal")
    2) scroll easing amount (0 for no easing) 
    3) scroll easing type 
    4) extra bottom scrolling space for vertical scroll type only (minimum value: 1)
    5) scrollbar height/width adjustment (values: "auto" or "fixed")
    6) mouse-wheel support (values: "yes" or "no")
    7) scrolling via buttons support (values: "yes" or "no")
    8) buttons scrolling speed (values: 1-20, 1 being the slowest)
    9) Init offset in %
    */
    var i=0;
    var $scrollboxes = $(".scrollbox");
    for (i = 0; i < $scrollboxes.length; i++) {

        offset = 0;

        if ($(".selected", $($scrollboxes[i])).length > 0) {

            if (($(".selected", $scrollboxes[i]).position().top + $(".selected", $scrollboxes[i]).height()) > $($scrollboxes[i]).height()) {

                offset = (($(".selected", $($scrollboxes[i])).position().top + $(".selected", $scrollboxes[i]).height()) - $($scrollboxes[i]).height()) / ($(".container", $($scrollboxes[i])).height() - $($scrollboxes[i]).height()) * 100;
            }//if
        } //if

        $($scrollboxes[i]).mCustomScrollbar("vertical", 0, "easeOutCirc", 1, "auto", "yes", "no", 0, offset);
    }
    $(".scrollbox.INIT").removeClass("INIT");
}



//Custom scripts
var autoSliderTimer = null;
var scrollTimer = null;
var speed = 5;

var googleTranslateInit = true;
var counter = 0;
var galleryTimer = null;

$(document).ready(function () {

    //Setup scrollbars
    setupScrollbars();

    //Setup contactlist hover functions
    setupContactListHover();

    //Setup gallery
    setupGalleryViewer();

    //Start image fader
    if ($(".image-slider").children().length > 1)
        autoSliderTimer = setInterval("fadeToNextImage()", 4000);

    //Catch google translate
    $("#google_translate_element").bind("DOMSubtreeModified", function () {

        var lang = $(".goog-te-menu-value span:first").text();
        lang = lang.toLowerCase();

        if (lang == "dansk" || lang == "danish" || lang == "dänisch" || lang == "deens" || lang == "engelsk" || lang == "english" || lang == "englisch" || lang == "engels" ||
        lang == "tysk" || lang == "german" || lang == "deutsch" || lang == "duits" || lang == "hollandsk" || lang == "dutch" || lang == "niederländisch" || lang == "nederlands") {
            $("body").removeClass("DA").removeClass("EN").removeClass("DE").removeClass("NL");

            if (lang == "dansk" || lang == "danish" || lang == "dänisch" || lang == "deens") {
                $("body").addClass("DA")
            }
            else if (lang == "engelsk" || lang == "english" || lang == "englisch" || lang == "engels") {
                $("body").addClass("EN")
            }
            else if (lang == "tysk" || lang == "german" || lang == "deutsch" || lang == "duits") {
                $("body").addClass("DE")
            }
            else if (lang == "hollandsk" || lang == "dutch" || lang == "niederländisch" || lang == "nederlands") {
                $("body").addClass("NL")
            }
        }
    });
});

function setupGalleryViewer() {

    //Start gallery fader
    if ($(".div-gallery-container").children().length > 1)
        galleryTimer = setInterval("fadeToNextGalleryImage()", 5000);

    $(".div-gallery-viewer-root .close").click(function () {

        $(".div-gallery-viewer-background").css({ display: "none" });
        $(".div-gallery-viewer-root").css({ display: "none" });

        clearInterval(galleryTimer);
    });


    $(".div-gallery-viewer-root .galleryback").click(function () {
        clearInterval(galleryTimer);

        fadeToPrevGalleryImage();

        if ($(".div-gallery-container").children().length > 1)
            galleryTimer = setInterval("fadeToNextGalleryImage()", 5000);
    });
    $(".div-gallery-viewer-root .play").click(function () {
        if ($(".div-gallery-container").children().length > 1)
            galleryTimer = setInterval("fadeToNextGalleryImage()", 5000);

        $(this).addClass("hide").removeClass("show");
        $(".div-gallery-viewer-root .pause").addClass("show").removeClass("hide");
    });
    $(".div-gallery-viewer-root .pause").click(function () {
        clearInterval(galleryTimer);

        $(this).addClass("hide").removeClass("show");
        $(".div-gallery-viewer-root .play").addClass("show").removeClass("hide");
    });
    $(".div-gallery-viewer-root .next").click(function () {

        clearInterval(galleryTimer);

        fadeToNextGalleryImage();

        if ($(".div-gallery-container").children().length > 1)
            galleryTimer = setInterval("fadeToNextGalleryImage()", 5000);
    });
}

function setupContactListHover() {

    $(".contact-row").mouseenter(function () {

        //Update selected row
        $(".contact-row.selected").removeClass("selected");
        $(this).addClass("selected");

        //Update hover details
        var selectedId = $(this).attr("data");
        $(".hover-contact .article-contact.show").removeClass("show").addClass("hide");
        $(".article-contact.contact-" + selectedId).removeClass("hide").addClass("show");
    });
}

function fadeToNextImage() {

        $(".image-slider").stop(true, true);

        //Fade image
        var $currentImage = $(".image-slider img.show");
        var $nextImage = $currentImage.next().length > 0 ? $currentImage.next() : $(".image-slider img:first");
        $currentImage.css({"z-index":"1"}).removeClass("show").addClass("current");
        $nextImage.css({ "opacity": "0.0", "z-index": "2" }).addClass("next").removeClass("hide");
        $nextImage.animate({ "opacity": "1.0" }, 1000, function () {

            $(".image-slider img.current").addClass("hide").removeClass("current");
            $(this).addClass("show").removeClass("next");
        });
} //fadeToNextImage

function scrollDown(containerClass) {
    var start = $("." + containerClass + " .scroll-box").position().top;
    var end = start - speed;

    var min = ($("." + containerClass + " .scroll-box").height() - $("." + containerClass).height()) * -1;
    if (end < min) {
        end = min;
        $(".arrow-down[data='" + containerClass + "']").addClass("hide");
        clearInterval(scrollTimer);
    } //if

    if ($(".arrow-up[data='" + containerClass + "']").hasClass("hide")) {
        $(".arrow-up[data='" + containerClass + "']").removeClass("hide");     
    }

    $("." + containerClass + " .scroll-box").css({ top: end + "px" });
}
function scrollUp(containerClass) {
    var start = $("." + containerClass + " .scroll-box").position().top;
    var end = start + speed;
    if (end > 0) {
        end = 0;
        $(".arrow-up[data='" + containerClass + "']").addClass("hide");
        clearInterval(scrollTimer);
    }//if 

    if ($(".arrow-down[data='" + containerClass + "']").hasClass("hide")) {
        $(".arrow-down[data='" + containerClass + "']").removeClass("hide");
    }

    $("." + containerClass + " .scroll-box").css({ top: end + "px" });
}

function scrollRight(containerClass) {
    var start = $("." + containerClass + " .scroll-box").position().left;
    var end = start - speed;
    var min = ($("." + containerClass + " .scroll-box").width() - $("." + containerClass).width()) * -1;
    if (end < min) {
        end = min;
        $(".arrow-right[data='" + containerClass + "']").addClass("hide");
        clearInterval(scrollTimer);
    } //if
    if ($(".arrow-left[data='" + containerClass + "']").hasClass("hide")) {
        $(".arrow-left[data='" + containerClass + "']").removeClass("hide");
    }
    $("." + containerClass + " .scroll-box").css({ left: end + "px" });
}
function scrollLeft(containerClass) {
    var start = $("." + containerClass + " .scroll-box").position().left;
    var end = start + speed;
    if (end > 0) {
        end = 0;
        $(".arrow-left[data='" + containerClass + "']").addClass("hide");
        clearInterval(scrollTimer);
    } //if 

    if ($(".arrow-right[data='" + containerClass + "']").hasClass("hide")) {
        $(".arrow-right[data='" + containerClass + "']").removeClass("hide");
    }

    $("." + containerClass + " .scroll-box").css({ left: end + "px" });
}


function ShowBookingForm(url) {

    $("body").append("<div class='div-popup-shadow-background'><div class='div-popup-iframe-container'><div class='div-close-popup' onclick='ClosePopup();'></div><iframe frameborder='0' src='" + url + "'></iframe></div></div>");
}

function ClosePopup() {
    $('.div-popup-shadow-background').remove();
}

function fadeToNextGalleryImage() {

    $(".div-gallery-container img").stop(true, true);
    $(".div-gallery-container img").stop(true, true);

    //Fade image
    var $currentImage = $(".div-gallery-container img.show");
    var $nextImage = $currentImage.next().length > 0 ? $currentImage.next() : $(".div-gallery-container img:first");

    $currentImage.css({ "z-index": "4" }).removeClass("show").addClass("current");
    $nextImage.css({ "opacity": "0.0", "z-index": "5" }).addClass("next").removeClass("hide");

    $nextImage.animate({ "opacity": "1.0" }, 1000, function () {

        $(".div-gallery-container img.current").addClass("hide").removeClass("current");
        $(this).addClass("show").removeClass("next");
    });
} //fadeToNextImage

function fadeToPrevGalleryImage() {

    $(".div-gallery-container img").stop(true, true);
    $(".div-gallery-container img").stop(true, true);

    //Fade image
    var $currentImage = $(".div-gallery-container img.show");
    var $nextImage = $currentImage.prev().length > 0 ? $currentImage.prev() : $(".div-gallery-container img:last");

    $currentImage.css({ "z-index": "4" }).removeClass("show").addClass("current");
    $nextImage.css({ "opacity": "0.0", "z-index": "5" }).addClass("next").removeClass("hide");

    $nextImage.animate({ "opacity": "1.0" }, 1000, function () {

        $(".div-gallery-container img.current").addClass("hide").removeClass("current");
        $(this).addClass("show").removeClass("next");
    });
} //fadeToNextImage
