Shadowbox.init({
    // a darker overlay looks better on this particular site
    overlayOpacity: 0.2,
    displayCounter: false,
    animate: false,
    handleOversize: "resize",
    // setupDemos is defined in assets/demo.js
    onFinish: function () {
        jQuery('#sb-body-inner  li a').bind("click", function (e) {
            jQuery('#sb-body-inner  li a').removeClass("ui-selected");
            jQuery(this).addClass("ui-selected");
            if (jQuery(this).parent().hasClass("jcarousel-last")) {
                //alert("yes");
                jQuery("#sb-player .jcarousel-next").trigger("click");
            }
            if (jQuery(this).parent().hasClass("jcarousel-first")) {
                //alert("yes");
                jQuery("#sb-player .jcarousel-prev").trigger("click");
            }
            var thisHref2 = jQuery(this).attr("href");
            //thisHref2 = "http://localhost" + thisHref;
            jQuery('#sb-body-inner .enlarged img').attr("src", thisHref2);

            return false;
        });
        if (jQuery("#tab-fotos .photosvideos").length > 0) {
            jQuery('#tab-fotos .photosvideos').jcarousel();
        }
        if (jQuery("#tab-plattegronden .photosvideos").length > 0) {
            jQuery('#tab-plattegronden .photosvideos').jcarousel();
        }

    }
});


var modalDialog;
function InitModalPopup(elem, url, contentPart, isImage, loadInIFrame, onSuccesFunc) {
    // note: contentPart has to be an element name string (for instance 'div') for the IE fix to work! (class names an ids will not work)
    elem.click(function () {
        var modalYPos = 100;
        var flashDiv = jQuery('#flash_header');
        if (flashDiv.length) {
            modalYPos = flashDiv.offset().top + flashDiv.outerHeight() + 10;
        }

        modalDialog.dialog('open').html('<img src="/images/loader.gif" alt="loading..." />');
        var centerPos = Math.round(jQuery('body').width() / 2 - modalDialog.width() / 2);
        modalDialog.closest('.ui-dialog').css({ 'left': centerPos + 'px', 'top': modalYPos + 'px' });

        if (isImage) {
            modalDialog.html('<img src="' + url + '" alt="" />');
            if (onSuccesFunc) onSuccesFunc();
        } else if (loadInIFrame) {
            modalDialog.html('<iframe src="' + url + '" width="90%" height="400" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" />');
            if (onSuccesFunc) onSuccesFunc();
        } else {
            if (!$.browser.msie) {
                var loadUrl = url;
                if (contentPart && contentPart.length > 0) {
                    loadUrl = url + ' ' + contentPart;
                }
                modalDialog.dialog('open').load(loadUrl);

                if (onSuccesFunc) onSuccesFunc();
            } else {
                // IE fix (for malformed page?)
                $.ajax({
                    url: url,
                    cache: false,
                    success: function (html) {
                        if (contentPart && contentPart.length > 0) {
                            // get relevant part of the page (like we do in the non-IE fix version using jquery)
                            var begin = html.indexOf('<' + contentPart);
                            var end = html.indexOf('</' + contentPart + '>') + 10;
                            html = html.substring(begin, end);
                            //var r = new RegExp('<' + contentPart + '.*?</' + contentPart + '>', 'i');
                            //alert('=>' /*+ html.indexOf('<article')*/ + html.match('<article.*', i));
                            //html = html.match(r).join().replace('<' + contentPart, '<div').replace(contentPart + '>', 'div>');
                        }

                        modalDialog.html(html);
                        if (onSuccesFunc) onSuccesFunc();
                    }
                });
            }
        }

        window.scrollTo(0, modalYPos - 5);

        return false;
    });
}

function CloseDialog() {
    modalDialog.dialog('close');
}

function InitModalPopups() {
    modalDialog = jQuery('<div></div>').dialog({
        autoOpen: false,
        modal: true,
        width: 600,
        height: 500,
        zIndex: 3000
    });
}

// *** refactored function (to ensure that it also works outside of #tabs)
function InitPhotosVideos(elem, maxSize) {
    var img = jQuery(elem).find('img');
    if (img.length) {
        var imgUrl = img.attr('src').replace(/=max.../i, maxSize);
        InitModalPopup(jQuery(elem), imgUrl, null, true);
    }
}
function show_box(html, title) {
    Shadowbox.open({
        content: html,
        player: "html",
        height: 560,
        width: 540,
        title: title,
        animate: false
    });

}
function show_boxSidepage(html, header) {
    var html = html + "?alttemplate=contentpopup";
    //alert(html);
    Shadowbox.open({
        content: html,
        player: "iframe",
        height: 550,
        width: 540,
        title: header
    });

}

function initShadowboxSetup(elem, player) {
    Shadowbox.setup(elem, {
        player: player
    });
}


function initPhotoCarousel(elem) {
    if (jQuery(elem).is(":visible")) {
        if (jQuery(elem + ' .photosvideos').length > 0) {
            jQuery(elem + ' .photosvideos').jcarousel();
        }
    }
}

function initEnlargedPhotoVideo(elem) {
    if (jQuery(elem + ' .tabbedMedia').length > 0) {
        if (jQuery(elem + ' .tabbedMediagallery').length == 0) {
            jQuery(elem + ' .tabbedMedia').prepend('<div class="tabbedMediagallery"><div class="enlarged" /></div>');
        }
        var firstImg = jQuery(elem + ' .photosvideos li a:first').attr("href");

        // Remove the width of img
        var firstImgBig = firstImg.replace('&Class=max540', '');

        jQuery(elem + ' .tabbedMedia .tabbedMediagallery').append("<a href='#' class='img-links'><span>links</span></a> <a href='#' class='img-rechts'><span>rechts</span></a>");
        jQuery(elem + ' .tabbedMedia .enlarged img').remove();

        var referenceProjectTitle = jQuery(".detailview .details h1").text().replace(/"/g, '\'') + ",&nbsp;" + jQuery(".detailview .details .info").text().replace(/"/g, '\'');

        jQuery(elem + ' .tabbedMedia .enlarged').append('<a href="' + firstImgBig + '" rel="shadowbox"  title="' + referenceProjectTitle + '"><img src="' + firstImg + '" alt="" width="500" /></a>');

        jQuery(elem + ' .tabbedMedia .photosvideos li a').addClass("nolb");
        jQuery(elem + ' .tabbedMedia .photosvideos li a:first').addClass("activePhoto");

        jQuery("#projectdetail a.tabs-media").click(function () {
            initShadowboxSetup(elem + " tabbedMedia .enlarged a", "img");
            jQuery(elem + ' .tabbedMedia .photosvideos li:first').addClass("jcarousel-first");
            jQuery(elem + ' .tabbedMedia .photosvideos li:eq(3)').addClass("jcarousel-last");
        });

        jQuery(elem + ' .tabbedMedia').each(function () {

            jQuery(this).find('.photosvideos li a').bind("click", function (e) {
                if (jQuery(this).parent().hasClass("jcarousel-last")) {
                    jQuery(this).closest('.tabbedMedia').find('.jcarousel-next').trigger('click');
                }
                if (jQuery(this).parent().hasClass("jcarousel-first")) {
                    jQuery(this).closest('.tabbedMedia').find('.jcarousel-prev').trigger('click');
                }
                var thisHref2 = jQuery(this).attr("href");
                //thisHref2 = "http://localhost" + thisHref;
                jQuery(this).find('.enlarged img').attr("src", thisHref2);

                return false;
            });
        });

        jQuery(elem + ' .img-links').hide();
    }

    //alert("niet tabbed");
    jQuery(elem + ' .img-links').click(function () {
        var nextImg = jQuery(elem + ' .tabbedMedia .activePhoto').parent().prev().find("a");
        var nextImgHref = nextImg.attr("href");
        var nextImgHrefBig = nextImgHref.replace('&Class=max540', '');

        jQuery(elem + ' .tabbedMedia .photosvideos li a').removeClass("activePhoto");
        nextImg.addClass("activePhoto");
        if (jQuery(elem + ' activePhoto').parent().hasClass("jcarousel-first")) {
            jQuery(elem + ' tabbedMedia .jcarousel-prev').trigger("click");
        };

        var secondImg = jQuery(elem + ' .tabbedMedia .activePhoto').parent().prev().find("a");
        if (secondImg.length > 0) {
            jQuery(elem + ' .img-rechts').show();
            jQuery(elem + ' .img-links').show();
        } else {
            jQuery(elem + ' .img-links').hide();
            jQuery(elem + ' .img-rechts').show();
        }
        jQuery(elem + ' .tabbedMedia .enlarged img').remove();
        jQuery(elem + ' .tabbedMedia .enlarged').append('<a href="' + nextImgHrefBig + '" rel="shadowbox"  title="' + referenceProjectTitle + '"><img src="' + nextImgHref + '" alt="" width="500" /></a>');
        initShadowboxSetup(elem + ' .tabbedMedia .enlarged a', 'img');
        return false;
    });
    jQuery(elem + ' .img-rechts').click(function () {
        var nextImg = jQuery(elem + ' .tabbedMedia .activePhoto').parent().next().find("a");
        var nextImgHref = nextImg.attr("href");
        var nextImgHrefBig = nextImgHref.replace('&Class=max540', '');

        jQuery(elem + ' .tabbedMedia .photosvideos li a').removeClass("activePhoto");
        nextImg.addClass("activePhoto");
        if (jQuery(elem + " .activePhoto").parent().hasClass("jcarousel-last")) {
            jQuery(elem + " .tabbedMedia .jcarousel-next").trigger("click");
        };
        var secondImg = jQuery(elem + ' .tabbedMedia .activePhoto').parent().next().find("a");
        if (secondImg.length > 0) {
            jQuery(elem + ' .img-rechts').show();
            jQuery(elem + ' .img-links').show();
        } else {
            jQuery(elem + ' .img-rechts').hide();
            jQuery(elem + ' .img-links').show();
        }
        jQuery(elem + ' .tabbedMedia .enlarged img').remove();
        jQuery(elem + ' .tabbedMedia .enlarged').append('<a href="' + nextImgHrefBig + '" rel="shadowbox"  title="' + referenceProjectTitle + '"><img src="' + nextImgHref + '" alt="" width="500" /></a>');
        initShadowboxSetup(elem + ' .tabbedMedia .enlarged a', 'img');
        return false;
    });

    jQuery(elem + ' .photosvideos').each(function () {

        jQuery(this).find('li a').click(function () {

            if (jQuery(this).hasClass("nolb")) {
                jQuery(this).closest('.photosvideos').find('li a').removeClass("activePhoto");
                jQuery(this).addClass("activePhoto");

                var thisHref = jQuery(this).attr("href");
                // Remove the width of img
                var thisHrefBig = thisHref.replace('&Class=max540', '');

                jQuery(this).closest('.tabbedMedia').find('.enlarged img').remove();
                jQuery(this).closest('.tabbedMedia').find('.enlarged').append('<a href="' + thisHrefBig + '" rel="shadowbox" title="' + referenceProjectTitle + '"><img src="' + thisHref + '" alt="" width="500" /></a>');
                initShadowboxSetup(elem + ' .tabbedMedia .enlarged a', 'img');

                var checkImg = jQuery(this).closest('.tabbedMedia').find('.activePhoto').parent().next().find("a");
                if (checkImg.length > 0) {
                    jQuery(elem + ' .img-rechts').show();

                } else {
                    jQuery(elem + ' .img-rechts').hide();
                }
                var checkImg2 = jQuery(this).closest('.tabbedMedia').find('.activePhoto').parent().prev().find("a");
                if (checkImg2.length > 0) {
                    jQuery(elem + ' .img-links').show();
                } else {
                    jQuery(elem + ' .img-links').hide();
                }

                return false;
            } else {
                //alert("jawel.cache?");
                if (jQuery(".page-showcase").length > 0) {
                    var title = jQuery("h1:first").text();
                } else {
                    var title = jQuery("h1:first").text() + ", " + jQuery("h2:first").text();
                }
                jQuery(elem + ' .boxinfo .photosvideos li a').removeClass("activePhoto");
                jQuery(this).addClass("activePhoto");

                var thisHref = jQuery(this).attr("href");

                jQuery(elem + ' .boxinfo .enlarged img').attr('src', thisHref);

                var data = jQuery(elem + ' .boxinfo').html();

                show_box(data, title);

                return false;
            }
        });
    });

}

function InitFooter() {
    jQuery('#footer-bottom ul li a').click(function (event) {
        event.stopImmediatePropagation();
        var thisHref = jQuery(this).attr("href");
        header = jQuery(this).text();
        var val = thisHref;
        show_boxSidepage(val, header);
        return false;
    });
}

function lastElementChecker(elem) {
    jQuery(elem + ":last-child").addClass("lastElem");
}

jQuery(document).ready(function () {
    Shadowbox.init();
    InitFooter();
    InitModalPopups();
    lastElementChecker("#woonproeven div.detailview div.vcard a");
});



