
var selectedString = ""; function getSelectedHTML() {
    selectedString = ""; var rng = undefined; if (window.getSelection) {
        selobj = window.getSelection(); if (!selobj.isCollapsed) {
            if (selobj.getRangeAt) { rng = selobj.getRangeAt(0); }
            else { rng = document.createRange(); rng.setStart(selobj.anchorNode, selobj.anchorOffset); rng.setEnd(selobj.focusNode, selobj.focusOffset); }
            if (rng) { DOM = rng.cloneContents(); object = document.createElement('div'); object.appendChild(DOM.cloneNode(true)); selectedString = object.innerHTML; }
            else { selectedString = selobj; } 
        } 
    }
    else if (document.selection) {
        selobj = document.selection; rng = selobj.createRange(); if (rng && rng.htmlText) { selectedString = rng.htmlText; }
        else if (rng && rng.text) { selectedString = rng.text; } 
    }
    else if (document.getSelection) { selectedString = document.getSelection(); }
    selectedString = cleanSelectedString(selectedString);
}
function copySelection() { setTimeout("getSelectedHTML()", 50); }
document.onmouseup = copySelection; document.onkeyup = copySelection; function cleanSelectedString(theString) {
    var comments = theString.match(/<!--/gi); var temp = ""; if (comments != undefined) { for (i = 0; i < comments.length; i++) { var temp = theString.substring(theString.search(/<!--/gi), theString.search(/-->/gi) + 3); theString = theString.replace(temp, ""); } }
    var regexp = /(<\/?[A-Z]+[0-9]?)\s?[^>]*>/gi
    theString = theString.replace(regexp, "$1>"); var regexp2 = /<\/?[A-Z]+[0-9]?\s?>/gi
    theString = theString.replace(regexp2, function (m) { return returnTags(m); }); var regexp_spaces = /\s+?\s*/gi
    theString = theString.replace(regexp_spaces, " "); var regexp_br = /(<br>)+?\s?(<br>\s*)*/gi
    theString = theString.replace(regexp_br, "<br>"); return theString;
}
function returnTags(thematch) {
    var regtag = /<\/?(h[1-6]|a|area|ul|ol|dl|dd|dt|li|table|td|tr|th|p|hr|br)>/i
    if (regtag.test(thematch)) { return thematch; }
    else { return ""; } 
}
var ZHGA = ZHGA || {}; ZHGA.initPrintButton = function () { if (typeof ZHGA.printImageUrl != 'undefined' && ZHGA.printImageUrl != '') { $printLink = $('<a href="#"><img alt="Afdrukken" id="print" src="' + ZHGA.printImageUrl + '"/></a>').click(function () { window.print(); return false; }); $('#topSideNav').append($('<li>').append($printLink)); } }
ZHGA.initHoverButtons = function () {
    $('#topSideNav').find('img').hover(function () {
        $this = $(this); $this.attr('hover', $this.attr('src'))
        $this.attr('src', $this.attr('src').replace('.png', '_on.png'));
    }, function () { $this = $(this); $this.attr('src', $this.attr('hover')); });
}
ZHGA.initSearchForm = function () {
    if (!Modernizr.input.placeholder) {
        $('input[placeholder]').each(function () {
            $this = $(this); if ($this.val() == null || $this.val() == "") { $this.val($this.attr('placeholder')); }
            $this.focus(function () { $this = $(this); if ($this.val() == $this.attr('placeholder')) { $this.val(''); } }).blur(function () { $this = $(this); if ($this.val() == '') { $this.val($this.attr('placeholder')); } });
        });
    } 
}
ZHGA.initCollapsibleList = function () { $('dl.collapsible-list dd').each(function () { $this = $(this); $entryText = $.trim($this.text()); if ($entryText.length > 300) { $this.text($entryText.substring(0, 250)); $this.append("<span class=\"action\">... <a href=\"#\" class=\"readmore\">lees meer</a></span>"); $this.append("<span class=\"more\">" + $entryText.substring(250, $entryText.length) + " <a href=\"#\" class=\"readless\">verbergen</a></p></span>"); $this.find("span.more").toggle(); $this.find("a.readmore").click(function () { $this = $(this); $span = $this.parent().parent(); $otherSpan = $span.parent(); $otherSpan.find("span.more").toggle(false); $otherSpan.find("span.action").toggle(true); $this.toggle(true); $span.find("span.more").toggle(true); $span.find("span.action").toggle(false); return false; }); $this.find("a.readless").click(function () { $this = $(this); $action = $this.parent(); $span = $action.parent(); $action.toggle(false); $span.find("a.readmore").toggle(true); $span.find("span.action").toggle(true); return false; }); } }); $('dl.collapsible-list dd').first().find("span.more").toggle(); $('dl.collapsible-list dd').first().find("span.action").toggle(); }
ZHGA.bannerAnimation = function () { var banner = $('.threeimages #banner figure'); banner.addClass('enabled'); var bannerImage = banner.find('img'); bannerImage.one("load", function () { banner.find('img').animate({ top: '-30px' }, 2000); }).each(function () { if (this.complete) $(this).trigger("load"); }); }
ZHGA.markSupport = function () { var element = document.createElement('mark'); document.body.appendChild(element); var supportsMark = typeof HTMLElement != 'undefined' && element instanceof HTMLElement && (color = ZHGA.getStyle(element, 'background-color')) && (color == 'yellow' || color == 'rgb(255, 255, 0)' || color == '#ffff00'); var html = document.getElementsByTagName('html')[0]; html.className += supportsMark ? ' mark' : ' no-mark'; document.body.removeChild(element); }
ZHGA.getStyle = function (elem, name) {
    function camelCase(str) { return str.replace(/-\D/g, function (match) { return match.charAt(1).toUpperCase() }) }
    if (elem.style[name]) { return elem.style[name]; } else if (elem.currentStyle) { return elem.currentStyle[camelCase(name)]; }
    else if (document.defaultView && document.defaultView.getComputedStyle) { s = document.defaultView.getComputedStyle(elem, ''); return s && s.getPropertyValue(name); } else { return null; } 
}
ZHGA.displayPollResults = function () {
    $('.poll.results .votes').each(function () {
        $vote = $(this); $voteString = $vote.text(); if ($voteString == '0%') { $voteString += '; background-color: #fff;'; }
        $vote.before('<span class="vote-bar"><span class="vote-value" style="width: ' + $voteString + '">&nbsp;</span></span>');
    });
}
ZHGA.initGallery = function () {
    if ($.prettyPhoto != undefined) { $(function () { $("a[class^='galleryItem']").prettyPhoto(); }); }
    $('.gallery.video .frame').prepend('<div class="play-button"></div>');
}
ZHGA.initSummarize = function () { $('#article-body article.dated-overview').each(function () { $this = $(this); $entry = $this.find("p.entry"); if ($.trim($entry.text()).length > 500) { $entryText = $.trim($entry.text()); $entry.text($entryText.substring(0, 500)); $entry.append("<span class=\"action\">... <a href=\"#\" class=\"readmore\">lees meer</a></span>"); $entry.append("<span class=\"more\">" + $entryText.substring(500, $entryText.length) + " <a href=\"#\" class=\"readless\">verbergen</a></p></span>"); $entry.find("span.more").toggle(); $entry.find("a.readmore").click(function () { $this = $(this); $action = $this.parent(); $span = $action.parent(); $action.toggle(); $span.find("span.more").toggle(); $span.find('span.action').toggle(false); return false; }); $entry.find("a.readless").click(function () { $this = $(this); $action = $this.parent(); $span = $action.parent(); $action.toggle(); $span.find("span.action").toggle(); return false; }); } }); }
ZHGA.initProReader = function () { $proreader = $('a.proreader'); $proreader.click(function () { window.open(this.href + '&selhtml=' + escape(selectedString), 'prwin', 'width=190, height=120, resizable=1, scrollbars=1, screenX=0, screenY=0, left=0, top=0'); return false; }); }
$(function () { ZHGA.initPrintButton(); ZHGA.initProReader(); ZHGA.initHoverButtons(); ZHGA.initSearchForm(); ZHGA.initCollapsibleList(); ZHGA.bannerAnimation(); ZHGA.markSupport(); ZHGA.displayPollResults(); ZHGA.initGallery(); ZHGA.initSummarize(); });
