﻿/* ProReader */

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 "";
    }
}

/* /ProReader */

jQuery.cookie = function (name, value, options) {
    if (typeof value != 'undefined') {
        options = options || {}; if (value === null) { value = ''; options.expires = -1; }
        var expires = ''; if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date; if (typeof options.expires == 'number') { date = new Date(); date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); } else { date = options.expires; }
            expires = '; expires=' + date.toUTCString();
        }
        var path = options.path ? '; path=' + (options.path) : ''; var domain = options.domain ? '; domain=' + (options.domain) : ''; var secure = options.secure ? '; secure' : ''; document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else {
        var cookieValue = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); if (cookie.substring(0, name.length + 1) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } }
        return cookieValue;
    }
};

jQuery.urlParam = function (name) {
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (!results) { return 0; }
    return results[1] || 0;
}

var SZ = {};
SZ.hideHints = function () {
    $(".hint").hide();
}

SZ.hookupEnterWithSearchBox = function () {
    $("#search input:text").keydown(function (e) {
        if (e.which == 13) {
            $("#search input:image").click();
            return false;
        }
    });
}

SZ.renderActions = function () {
    $("#actions").append('<li id="print"></li>');
    $("#actions li:last").prepend('<a href="#">Afdrukken</a>');
    $("#actions li:last a").click(function () {
        window.print();
        return false;
    });
}

SZ.configureByLetterOverview = function () {
    if ($(".by-letter-overview.toggle").length > 0) {
        $(".by-letter-overview.toggle .details").hide();
        $(".by-letter-overview.toggle dd li .title").wrap('<a href="#"/>');
        $(".by-letter-overview.toggle dd li a").toggle(function () {
            $(".details", $(this).parent()).show();
            $(this).toggleClass("active");
        }, function () {
            $(".details", $(this).parent()).hide();
            $(this).toggleClass("active");
        });
    }
}

SZ.configureByLetterNameOverview = function () {
    $(".specialist-by-letter-overview dl.facebook dt").each(function () {
        $tmp = this.innerHTML;
        this.innerHTML = '<a href="#">' + $tmp + '</a>';
    });

    $(".specialist-by-letter-overview dl.facebook dt").toggle(function () {
        $($(this).next("dd")).show();
        $('a:first', $(this)).addClass("active");
        return false;
    }, function () {
        $($(this).next("dd")).hide();
        $('a:first', $(this)).removeClass("active");
        return false;
    });

    $(".specialist-by-letter-overview dl.facebook dd").toggle(false);
}

SZ.setFontSize = function () {
    var cookieName = "SZ-fontSize";
    var cookieOptions = { path: "/", expires: 365 };

    var requestedFontSize = $.urlParam("fontSize");
    if (requestedFontSize != null && (requestedFontSize == "small" || requestedFontSize == "normal" || requestedFontSize == "large")) {
        if (requestedFontSize == "normal") {
            $.cookie(cookieName, null, cookieOptions);
        }
        else {
            $.cookie(cookieName, requestedFontSize, cookieOptions);
        }
    }

    var fontSizeName = $.cookie(cookieName);
    if (fontSizeName != null) {
        var fontSize = 1;

        switch (fontSizeName) {
            case "small":
                fontSize = 0.8;
                break;
            case "large":
                fontSize = 1.2;
                break;
        }

        $("#wrapper").css("font-size", fontSize + "em");
    }

    var activeFontId = "#fontSize-" + (fontSizeName || "normal");
    $(activeFontId).addClass("active");
}

SZ.setImageSelectorEvents = function () {
    $("table.ImageSelector td").click(function () {
        $("input:radio", $(this)).attr("checked", "checked");
    });
}

SZ.hideImageSelectorCategories = function () {
    var category = $('.ecardcategoryselector option:selected').text();

    if (category == "Alle") {
        $('.ecardcategoryselector option:first').remove();
        category = $('.ecardcategoryselector option:first').text();
    }

    if (category != null) {
        $('.ImageSelector table tr').show().not(':has([name="' + category + '"])').hide();
    }
}

SZ.rewriteLinks = function () {
    $('a[href$="pdf"]').attr('target', '_blank');
}

SZ.rePositionHomeFlexkader = function () {

    var inDesignMode = document.forms[MSOWebPartPageFormName].MSOLayout_InDesignMode.value;

    if (inDesignMode != "1") {

        if ($('#homeflexkader').offset() != null) {

            var sidebar_top = parseInt($('#sidebar').offset().top);
            var sidebar_height = $('#sidebar').height();
            var sidebar_bottom = sidebar_top + sidebar_height;

            var flexkader_height = $('#homeflexkader').height();
            var flexkader_top = (sidebar_bottom - flexkader_height) - 2;

            if ($.browser.msie != true && $.browser.mozilla != true) {
                flexkader_top -= 2;
            }

            var flexkader_left = parseInt($('#homeflexkader').offset().left);
            var flexkader_width = $('#homeflexkader').width();

            $('#homeflexkader').css("position", "relative");
            $('#homeflexkader').css("width", flexkader_width + "px");
            $('#homeflexkader').offset({ top: flexkader_top, left: flexkader_left });
        }
    }
}
$(function () {
    SZ.hideHints();
    SZ.hookupEnterWithSearchBox();
    SZ.renderActions();
    SZ.configureByLetterOverview();
    SZ.configureByLetterNameOverview();
    SZ.setFontSize();
    SZ.setImageSelectorEvents();
    SZ.hideImageSelectorCategories();
    SZ.rewriteLinks();
    ImageOut()
});

$(document).ready(function () {
    SZ.rePositionHomeFlexkader();
});

function ImageboxPopup(obj) {

    $('#screen-opaque').css('display', 'block');

    var imageUrl = obj.src.toLowerCase();
    imageUrl = imageUrl.replace("_t/", "");
    imageUrl = imageUrl.replace("_png.jpg", ".png");
    imageUrl = imageUrl.replace("_jpg.jpg", ".jpg");

    var image = $('#imgbox-image')[0];
    image.src = imageUrl;

    $('#imgbox-image').load(function () {
        ResizeImgbox($('#imgbox-image')[0]);
    });

    if ($(image).complete == true) {
        ResizeImgbox(image);
    }

    $('#imgbox').css("display", "block");
}

function SwapEcardPanel(obj) {
    var imgName = $(obj).val();
    $('.ImageSelector table tr').show().not(':has([name="' + imgName + '"])').hide();
}

function ImageOut() {
    $('#imgbox').css("visibility", "hidden");
    $('#screen-opaque').css("display", "none");
}

function ResizeImgbox(obj) {

    if ($.browser.msie == true && $.browser.version < parseInt(8)) {
        $('#imgbox').css("width", $(obj).width() + parseInt($('#imgbox-image').css('marginLeft')) + parseInt($('#imgbox-image').css('marginRight')));
        $('#imgbox').css("height", $(obj).height() + parseInt($('#imgbox-image').css('marginTop')) + parseInt($('#imgbox-image').css('marginBottom')) +
									parseInt($('#imgbox-footer').css('height'))
						);
    }
    else {
        // below works on all to be supported browsers except IE7
        $('#imgbox').css("width", "auto");
        $('#imgbox').css("height", "auto");
    }

    $(obj).ScreenCenter();
}

jQuery.fn.ScreenCenter = function () {
    $('#imgbox').css("position", "fixed");
    $('#imgbox').css("top", (($(window).height() - $(this).height()) / 2) + $(window).scrollTop() + "px");
    $('#imgbox').css("left", (($(window).width() - $(this).width()) / 2) + $(window).scrollLeft() + "px");

    $('#imgbox').css("visibility", "visible");

    return $('#imgbox')[0];
}


