var ddsettings = [];

$(document).ready(function() {
    $(".DropDownLinkList ul").hide();

    $(".DropDownLinkList a.toplink").click(function() {
        $(this).next("ul").slideToggle(250);
    });

    initMenuDropDown();
    initContentBundleBoxes();
    initClouds();
    initActivityList();
    initParkMap();

    setWarningOnExternalLinks();

    initSlideshowWidgets();

});

function debugOut(txt) {
    if(debugOn)
        alert(txt);
}

function trackEvent(category, action, label) {
    try {
        _gaq.push(['_trackEvent', category, action, label]);
    }
    catch (e) { debugOut('Analytics async err: '+e) }
    try {
        pageTracker._trackEvent(category, action, label);
    }
    catch (e) { debugOut('Analytics err: ' + e) }
}

function openFullScreen() {
    var features = "width=" + screen.width + ",height=" + screen.height;
    window.open('/ParkMapFullscreen.aspx?lan=' + currentLanguage, 'ParkMap', features);
}

function SafeRedirect(url) {
    if (url.indexOf('http') < 0) {
        window.location.href = url;
        return;
    }
        
    var safe = false
    
    for (i = 0; i < safeListUrls.length; i++) {
        var u = safeListUrls[i];
        if (url.indexOf(u) >= 0) {
            safe = true;
        }
    }
    if (!safe) {
        getLinkWarningMsg(url);
        return false;
    }
    else
        window.location.href = url;
}

function setWarningOnExternalLinks() {
    $("a").each(function() {
        var href = $(this).attr("href");
        if (href != null) {
            if (href.indexOf('http') >= 0) {
                var safe = false
                for (i = 0; i < safeListUrls.length; i++) {
                    var url = safeListUrls[i];
                    if (href.indexOf(url) >= 0) {
                        safe = true;
                    }
                }
                if (!safe) {
                    $(this).click(function() {
                        $.blockUI();
                        var newWindow = $(this).attr("target") == "_blank" ? true : false;
                        getLinkWarningMsg(href, newWindow); return false;
                    });
                }
            }
        }
    });
    
}



function ShowOops() {
    var str = $("#OopsDiv").html();
    $("#OopsDiv").html("");
    $.blockUI({ css: {
        top: ($(window).height() - 400) / 2 + 'px',
        left: ($(window).width() - 687) / 2 + 'px',
        width: '600px',
        border: '1px solid Gray',
        textAlign: 'left',
        cursor: 'default'
    }, message: str
    });
}

function ShowIE6() {
    var str = $("#IE6Div").html();
    $("#IE6Div").html("");
    $.blockUI({ css: {
        top: ($(window).height() - 400) / 2 + 'px',
        left: ($(window).width() - 687) / 2 + 'px',
        width: '600px',
        border: '1px solid Gray',
        textAlign: 'left',
        cursor: 'default'
    }, message: str
    });
    
}

function CloseIE6Popup() {
    $.unblockUI()
    createCookie("ie6pop","off",7);
}

function GetLinkWarningCallback(result) {

    var str = '<div class="exitpopupdiv"><div class="content"><h1>{h1}</h1>{body}<div class="buttonContainer"><a class="button" onclick="$.unblockUI();"><span>{backBtn}</span></a><span> {to} {sitename}</span> </div><div class="buttonContainer"><a class="button" href="{url}" target="{target}" onclick="$.unblockUI();"><span>{backNext}</span></a><span> {to} {url}</span></div> </div></div>';
    str = str.replace('{h1}', result.MessageTitle);
    str = str.replace('{body}', result.MessageBody);
    str = str.replace(/{url}/g, result.Href);
    str = str.replace('{target}', result.NewWindow == true ? "_blank" : "_self");

    str = str.replace('{backBtn}', result.ButtonBack);
    str = str.replace('{backNext}', result.ButtonContinue);
    str = str.replace(/{to}/g, result.LabelTo);
    str = str.replace('{sitename}', result.SiteDisplayName);
    

    $.blockUI({ css: {
        top: ($(window).height() - 400) / 2 + 'px',
        left: ($(window).width() - 687) / 2 + 'px',
        width: '687px',
        height: '400px',
        cursor: 'default'
    }, message: str
    });
    
}

function getLinkWarningMsg(href, newWindow) {
    if (newWindow == null)
        newWindow = false;
    Legoland.Web.Service.CallbackService.GetExternalLinkDialog(href, newWindow, currentLanguage, GetLinkWarningCallback);
}

function openSlideShowLink(link) {
    trackEvent(SlideShowCategory, link);
    SafeRedirect(link);
}

function initSlideshowWidgets() {

    $(".slideshow-flash").each(function(index) {
        var id = "slideshow-flash-" + index;
        var pageId = $(this).find(".page-id").val();
        var flashURL = $(this).find(".flash-url").val();
        $(this).attr("id", id);

        swfobject.embedSWF(
            flashURL+"?version="+currentVersion,
            id,
            "891",
            "342",
            "9.0.0",
            "",
            { xmlSource: "/SlideShowData.aspx?pageId=" + pageId, lan: currentLanguage },
            { wmode: "transparent", scale: "showall", allowScriptAccess: "always" },
            { }
        );
        
    })  
}

function initActivityList() {
    var content = $(".btn-long-blue").first().addClass("btn-long-orange").next().clone();
    $("#content-display").append(content);
    content.show();

    $(".btn-long-blue").mouseenter(function() {

        $(".btn-long-blue").removeClass("btn-long-orange");
        $(this).addClass("btn-long-orange")

        if ($(this).next().attr("class").indexOf("content") > -1) {
            var content = $(this).next().clone();
            $("#content-display").empty();
            $("#content-display").append(content);
            content.show();
        }
    });
}

var videoPlayerName = "414_258_v8.swf"

function loadNewVideo(lnkVideoSrc, lnkImgSrc) {
    var videoplayer = document.getElementById('video_player');
    if (videoplayer == null) {
        alert("Player not found");
        return false;
    }
    
    videoplayer.SetVariable("srcType", "video");
    videoplayer.SetVariable("videoSrc", lnkVideoSrc);
    videoplayer.SetVariable("videoThumbSrc", lnkImgSrc);
     
    videoplayer.SetVariable("loadNew", true);

    return false;
}

function loadNewImage(lnkImgSrc) {
    var videoplayer = document.getElementById('video_player');
    if (videoplayer == null) {
        alert("Player not found");
        return false;
    }

    videoplayer.SetVariable("srcType", "img");
    videoplayer.SetVariable("imgSrc", lnkImgSrc);
    videoplayer.SetVariable("loadNew", true);

    return false;
}

function initImagePlayer(lnkImgSrc) {
    swfobject.embedSWF(
        "/Chrome/Styles/Flash/" + videoPlayerName,
        "video-player",
        "414",
        "258",
        "9.0.0",
        "",
        { srcType: "img", imgSrc: lnkImgSrc },
        { allowFullScreen: "flase", allowScriptAccess: "always", play: "true", loop: "false", wmode: "transparent", scale: "showall" },
        { name: "video_player", align: "middle", id: "video_player" }
    );
}

function initVideoPlayer(lnkVideoSrc, lnkImgSrc) {
    swfobject.embedSWF(
        "/Chrome/Styles/Flash/" + videoPlayerName,
        "video-player",
        "414",
        "258",
        "9.0.0",
        "",
        { srcType: "video", videoSrc: lnkVideoSrc, videoThumbSrc: lnkImgSrc },
        { allowFullScreen: "flase", allowScriptAccess: "always", play: "false", loop: "false", wmode: "transparent", scale: "showall" },
        { name: "video_player", align: "middle", id: "video_player" }
    );
}

function initParkMap() {


    swfobject.embedSWF(
        "/Global/ParkMap/legoland_parkmap.swf",
        "park-map",
        "724",
        "500",
        "9.0.0",
        "",
        { parkmap_data_xml_path: "/Chrome/Styles/Flash/parkmap_data2.xml", show_debug: false },
        { allowFullScreen: "true", allowScriptAccess: "sameDomain", play: "true", loop: "true", wmode:"window", scale:"showall" },
        { name: "legoland_parkmap", align: "middle", id: "legoland_parkmap"}

    );
}

function initClouds() {
    if ($(".kill-clouds").length == 0) {
        swfobject.embedSWF(
            "/Chrome/Styles/Flash/clouds.swf",
            "clouds",
            "100%",
            "350",
            "9.0.0",
            "",
            {},
            { wmode: "transparent" }
        );
    }
    
}

function initContentBundleBoxes() {
    $(".content-bundle-list > div").mouseenter(function() {
        $(this).parent().find("div").removeClass("selected");
        $(this).addClass("selected");

        var elemClass = $(this).attr("class").split(" ")[0];

        $(this).parent().parent().find(".body-box > div").hide();
        $(this).parent().parent().find(".body-box > ." + elemClass).show();

    });
}

function initMenuDropDown() {
    $(".navbar-item").each(function() {
        var dropdown = $(this).parent().find(".navbar-dropdown");

        var id = $(this).attr("id");
        if (ddsettings[id] == null)
            ddsettings[id] = dropdown.height();

        dropdown.css("height", "0px");

    });

    $(".navbar-item").click(function(element) {
        var dropdown = $(this).parent().find(".navbar-dropdown");
        dropdown.hide();
        dropdown.stop();
    });

    $(".navbar-item").mouseenter(function(element) {
        var id = $(this).attr("id");
        var dropdown = $(this).parent().find(".navbar-dropdown");
        var left = $(this).position().left;
        dropdown.css("left", left + "px");

        if (dropdown.queue("fx").length == 0) {
            dropdown.hide().css("height", "0px").delay(700).animate(
               { height: ddsettings[id] + "px" }, 300
            );
        }
        else {
            dropdown.stop().animate({
                height: ddsettings[id] + "px"
            }, 300);
        }
    })

    $(".navbar-item").mouseleave(function() {
        var dropdown = $(this).parent().find(".navbar-dropdown");
        dropdown.clearQueue("fx");
        dropdown.stop().slideUp(300);
    })
}

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}