﻿$(window).resize(function () {
    //applyLayout();
});

/// <summary>
/// StartUp script for the Publicatie site
/// </summary>
$(function () {
    //applyLayout();

    //Initialize the Menu
    initMenu("menu");

    $("a").checkDocument();

    $("body.full div#dossiers div.letter").each(function () {
        var $this = $(this);
        var index = $this.index();
        var mod = index % 2;
        var otherIndex = mod == 0 ? index + 1 : index - 1;
        var other = mod == 0 ? $this.next("div.letter") : $this.prev("div.letter");
        var h = other.height() > $this.height() ? other.height() : $this.height();

        $this.height(h);
    });

    //TableSorter
    if ($(".tablesorter").exists()) {

        var tableSorter = $(".tablesorter");
        var defaultColumn = tableSorter.find("th.default");
        var sortIndex = 0;
        var descending = 0;

        if (defaultColumn.exists()) {
            sortIndex = defaultColumn.parent("tr").children().index(defaultColumn);
            descending = 1;
        }

        tableSorter.tablesorter({ sortList: [[sortIndex, descending]] });
        tableSorter.addHover();
    }

    var twitter = $("div#twitter");
    if (twitter.exists() && !twitter.parents("#homepagetwitter").exists()) {
        if (!twitter.find("ul").exists()) {
            twitter.twitter();
        } else {
            twitter.fixUrl("span");
        }
    }

    var homePageTwitter = $("div#homepagetwitter");
    if (homePageTwitter.exists()) {
        if (!homePageTwitter.find("ul").exists()) {
            homePageTwitter.twitter({ showHeader: false });
        } else {
            homePageTwitter.fixUrl("span");
        }
    }

    $(".zebra").zebra();

    $('a.modal, a[href$="IsDlg=1"]').click(function () {
        var element = $(this);
        $.fn.infoPuntModal({ iframe: true, url: element.attr("href"), width: 600, height: 450, title: element.attr("title") });
        return false;
    });

    //SharePageControl
    $("div#sharepage a").each(function () {
        var element = $(this);

        element.click(function () {
            if (element.attr("id") == "print") {
                $("div#content").printElement({
                    printBodyOptions:
                    {
                        classNameToAdd: "print"
                    }
                });
            }
        });
    });

    //News for Dossier
    var dossierNews = $("div#news");

    if (dossierNews.exists()) {
        dossierNews.fixUrl("li");
        //        var terms = $.format("%22{0}%22", dossierNews.find("#newsterminologie").val().replace(";", "%22+%22"));

        //        dossierNews.rssReader({ zebra: true, max: 5, url: $.format("http://news.google.nl/news?hl=nl&q={0}&um=1&ie=UTF-8&output=rss", terms) });
    }

    resizeContent();

    $("body").textResizer();

    //Nieuws Handler
    var nieuws = $("div#nieuws");
    if (nieuws.exists()) {
        var nieuwsItems = nieuws.find("div.item").each(function () {
            var $this = $(this);

            $this.addHover();

            var a = $this.find("div.readmore a");

            if (a.exists()) {
                $this.click(function () {
                    document.location = a.attr("href");
                });
            }
        });
    }

    var search = $("div#searchpage");
    if (search.exists()) {
        search.find("div.item").each(function () {
            var $this = $(this);

            $this.addHover();

            var a = $this.find("div.title a");

            if (a.exists()) {
                $this.click(function () {
                    document.location = a.attr("href");
                });
            }
        });
    }

    var rubriekenitems = $("div.rubriekenitems");
    if (rubriekenitems.exists()) {
        rubriekenitems.each(function () {
            var $this = $(this);
            $this.append('<div class="toggler">&nbsp;</div>');

            var table = $this.next("table.tablesorter").first();
            table.hide();

            $this.click(function () {
                //                $("table.tablesorter").each(function () {
                //                    if ($(this).attr("uniqueID") != table.attr("uniqueID")) {
                //                        $(this).hide();
                //                    }
                //                });

                $this.find("div.toggler").toggleClass("down");
                table.toggle(400);
            });
        });

        $("div.rubriekenitems:first").click();
    }

    var text = new Array("Alles uitklappen", "Alles inklappen");

    $("div.toggleall").click(function () {
        var div = $("div.toggler");
        var table = $("table.tablesorter");

        if (div.hasClass("down")) {
            div.removeClass("down");
            table.hide();

            toggler = "down";
            $(this).text(text[0]);
        } else {
            div.addClass("down");
            table.show();

            toggler = "";

            $(this).text(text[1]);
        }
    });

    var homepagebanners = $("input#homepagebanners");
    if (homepagebanners.exists()) {
        setInterval("rotateHomePageBanner()", 6000);
    }

    var mediaPlayers = $("a.infopuntmediaplayer");

    if (mediaPlayers.exists()) {
        $.include("/_layouts/mediaplayer.js", function () {
            mediaPlayers.each(function () {
                var player = $(this);
                var id = player.html();
                var link = player.attr("href");

                var div = $("<div />").attr("id", "player_" + id).html("&nbsp;");

                player.after(div);

                if (getExtension(link) == "swf") {
                    $.include("/_layouts/Nifv.InfoPunt/Scripts/jquery.swfobject.js", function () {
                        div.flash({ swf: link, height: 300, width: 400 });
                        player.before().remove();
                        player.remove();

                        resizeContent();
                    });
                } else {
                    var div = $("<div />").attr("id", "player_" + id).html("&nbsp;");

                    player.after(div);

                    mediaPlayer.createMediaPlayer(document.getElementById("player_" + id), "media_" + id, "400px", "300px",
                    {
                        displayMode: "Inline",
                        mediaTitle: "",
                        mediaSource: player.attr("href"),
                        previewImageSource: "",
                        autoPlay: true,
                        loop: false,
                        mediaFileExtensions: 'wmv;wma;avi;mpg;mp3;',
                        silverlightMediaExtensions: 'wmv;wma;mp3;'
                    }, "", false, function () {
                        player.before().remove();
                        player.remove();

                        resizeContent();
                    });
                }
            }); 4
        });
    }

    $("a.infopuntyoutube").each(function () {
        var $this = $(this);
        var href = $this.attr("href");

        var iframe = $.format('<iframe title="YouTube video player" width="{0}" height="{1}" src="{2}" frameborder="0" allowfullscreen></iframe>', $.urlParam(href, "width"), $.urlParam(href, "height"), href);
        var youtube = $(iframe);

        $(this).after(youtube);
        $this.remove();

        resizeContent();
    });
});

var old = 0;
var current = 0;

function rotateHomePageBanner() {

    var banners = $(homepagebanners).val().split(";");
    var banner = $("div#banner");

    if (banners.length == 1) {
        current = 0;
    } else {
        while (current == old) {
            current = Math.floor(Math.random() * banners.length);
        }

        old = current;
    }

    old = current;

    //Set the fade in effect for the next image, the show class has higher z-index
    banner.css("background-image", "url(" + banners[current] + ")");
};

function resizeContent() {
    if (!$("body.mobiel").exists()) {
        $("div#container").height($(document).height());
        if ($("div#content").exists()) {
            //resize for the Content
            var width = $("div#right").exists() ? 600 : 800;
            $("div#content").width(width).height($(document).height() - 150); ;
            $("div.content").width(width - 20);

            if (!$("div#right").exists()) {
                $("div#breadcrum").width(645);
            }
        } else {
            $("div#middle").height($(document).height() - 150);
        }
    }
}

function applyLayout() {
    //Write Layout as Jquery plugin
    var layout = $("body").layout({
        closable: false,
        resizable: false,
        slidable: false,
        spacing_closed: 0,
        spacing_open: 0,
        togglerLength_closed: 0,
        initHidden: true,
        initClosed: true,
        contentSelector: "#content",
        north: {
            paneSelector: "#header",
            size: 150
        },
        south: {
            paneSelector: "#footer",
            size: 20
        },
        west: {
            paneSelector: "#left",
            size: 250
        },
        east: {
            paneSelector: "#right",
            size: 250
        },
        center: {
            paneSelector: "#content",
            size: 600
        }
    });

    layout.panes.center.find("div").each(function () {
        var $this = $(this);

        if ($this.width() == layout.panes.center.width()) {
            $this.width($this.width() - 18);
        }
    });

    //Resize the Banner (so the whole width is taken)
    $("div#bannercontainer").width(layout.panes.north.width() - 500);

    $("a").checkDocument(layout);
}

/// <summary>
/// Init Menu
/// </summary>
function initMenu(menuId) {
    var menu = $.format("ul#{0}", menuId);

    $($.format("{0} ul", menu)).hide();

    //    $($.format("{0} li a", menu)).click(function() {
    //        var element = $(this).next();

    //        if ((element.is("ul")) && (element.is(":visible"))) {   
    //            element.slideUp("normal"); 
    //            //return false;
    //        }

    //        if((element.is("ul")) && (!element.is(":visible"))) {
    //            $($.format("{0} ul:visible", menu)).slideUp("normal");
    //            element.slideDown("normal");
    //            //return false;
    //        }
    //    });

    //Gets the Active Item show it
    var activeItem = $(menu).find(".active");

    if (activeItem.exists()) {
        activeItem.parents("ul").first().show();
        activeItem.next().slideDown("normal");
    }
}
