﻿/**
* PBU specifik javascript
**/
var PBU = {
    frontPage: {
        init: function () {
            try {
                var tdHeader = $('.bottomRow .wpPadding:not(.bottomRowWP) td[id^=MSOZoneCell]:not(:has(.ms-WPHeader))'),
                    divHeader = $('.bottomRow .wpPadding:not(.bottomRowWP) .WebPart-Wrapper:not(:has(.ms-WPHeader))'),
                    noHeader = (tdHeader.length > 0) ? tdHeader : divHeader,
                    sizeUnit = $('.bottomRow > .size1of2').eq(0);
                noHeader.each(function () {
                    var closestUnit = $(this).closest('.unit')[0],
                        closestUnitExists = $(closestUnit).is('.size1of2');
                    if ($(this).find('.nyhedscqwp').length == 0 || closestUnitExists) {
                        $(this).find('.ms-WPBody').parent().addClass('noHeader');
                    }
                });

                var sizeUnitHeight = sizeUnit.height(),
                    lastUnitHeight = $('.bottomRow > .lastUnit').height();
                if (sizeUnitHeight < lastUnitHeight+195) { sizeUnit.find('.ms-WPBody:first').css('height', (lastUnitHeight + 195)); }
            }
            catch (err) {
                log('PBU.frontPage.init ' + err);
            }
        }
    },
    notFrontPage: {
        init: function () {
            var subsiteImg = $('img.subsiteImg'),
                rightCol = $('#rightCol'),
                leftCol = $('#leftCol'),
                leftColVisible = leftCol.is(':visible');
            if (subsiteImg.length == 1 && leftCol.length >= 1) {
                var subsiteImgHeight = subsiteImg.height(),
                    marginTop = subsiteImgHeight - 88;
                subsiteImg.before('<a href="/" class="frontpageLink" title="Link til forsiden" style="margin-top:' + marginTop + 'px;">Link til forsiden</a>');
            }
            if (leftColVisible) {
                leftCol.find(".ms-WPBody:not(:has(.nyhedscqwp,.infoBoxWP))").addClass('stylish');
            }
            rightCol.find(".wpPadding:not(.addThisCol) .ms-WPBody:not(:has(.nyhedscqwp,.infoBoxWP,.ms-WPBody))").addClass('stylish');
        }
    },
    async: {
        endHandler: function (sender, args) {
            var senderID = sender._postBackSettings.panelID;
            if (senderID.indexOf('Sitemap') > 1) {
                var sitemapWidget = $('div[id$=sitemapWidget]').attr('id'),
                    senderType = senderID.split('Alfabetisk');
                if (owp.common !== undefined) {
                    if (sitemapWidget !== 'undefined') { owp.common.siteMap.init(sitemapWidget, senderType); }
                }
            }
        }
    },
    news: {
        kommentarToggle: function (ele) {
            $(ele).animate({ height: '80' });
            $('#VisFlereKommentarfelter').slideDown();
        }
    },
    init: function () {
        try {
            var pageType = $('#pageType').val(),
            sitemapWidget = $('div[id$=sitemapWidget]').attr('id');
            if (owp.common !== undefined) {
                if (sitemapWidget !== 'undefined') { owp.common.siteMap.init(sitemapWidget); };
            }
            if (pageType == 'frontPage') {
                PBU.frontPage.init();                
            } else {
                PBU.notFrontPage.init();
            }
            owp.events.focus.fnKommentarArea = function (data) { PBU.news.kommentarToggle(data.ele); };
        } catch (err) {
            log(err);
        }
    }
}
$('document').ready(function () {
    if (editMode == undefined) {
        var editMode = $('#contentArea').is(':has(.ms-SPZone,.ms-formfieldvaluecontainer)');
    }
    if (editMode !== true) {
        PBU.init();
    }
    var pbuRequestInstance;
    try {
        pbuRequestInstance = Sys.WebForms.PageRequestManager.getInstance();
        pbuRequestInstance.add_endRequest(PBU.async.endHandler);
    }
    catch (err) {
        log('Could not set request handlers: ' + err.Message);
    }
});
