﻿var prm = null;
var ready = false;
var confirmed = false;
var dockToAction = null;
var lastDock = null;
var elementToClick = null;
var elementToConfirm = null;

var radDockClass = 'RadDock';

theForm.onsubmit = function () {
    confirmCancel();
    $('.hfdummy input[type="hidden"]').val(isEditing() ? "true" :"");
    var ret = ready && confirmed;
    confirmed = false;
    return ret;
};

if (Sys.WebForms.PageRequestManager != undefined) {
    prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_pageLoaded(pageLoaded);
    prm.add_initializeRequest(initializeRequest);
    prm.add_endRequest(endRequest);
}

function confirmCancel() {
    var texts = $('input[type="hidden"][value="textediting"]');
    var blogs = $('input[type="hidden"][value="blogediting"]');
    var sender = $($get(theForm.__EVENTTARGET.value.replace(/\$/g, '_')));

    if ((texts.length == 0 && blogs.length == 0) || sender.length == 0) {
        confirmed = true;
        return;
    }

    if (!sender.hasClass(radDockClass) && sender.parents('.' + radDockClass).length) {
        sender = sender.parents('.' + radDockClass);
    }

    var dontconfirm = false;
    if (sender.hasClass('dontconfirm'))
        dontconfirm = true;
    else if (texts.length > 0 && (sender[0] != null && sender[0].id == texts.parents('.' + radDockClass)[0].id))
        dontconfirm = true;
    else if (blogs.length > 0 && (sender[0] != null && sender[0].id == blogs.parents('.' + radDockClass)[0].id))
        dontconfirm = true;

    if (!dontconfirm && !confirmed && texts.length + blogs.length > 0) {
        confirmed = false;
        var con = $($get('divConfirmCancelText')).find('.confirmtext');
        texts.length > 0 ? con.show().next().hide() : con.hide().next().show();
        var cbe = $find('CancelTextConfirmButton');
        cbe.set_postBackScript('confirmed = true;__doPostBack(theForm.__EVENTTARGET.value, theForm.__EVENTARGUMENT.value);');
        cbe._displayConfirmDialog();
    } else {
        confirmed = true;
    }
}

function isEditing() {
    return $('input[type="hidden"][value="textediting"]').length +
            $('input[type="hidden"][value="blogediting"]').length +
            $('input[type="hidden"][value="linklistediting"]').length +
            $('.menucontainer:visible').length > 0;
}

function notEditing() {
    return !isEditing();
}

function pageLoaded(sender, args) {
    ready = true;
    confirmed = false;
    if (dockToAction != null) {
        var tmp = dockToAction.split(';');
        confirmWebpartAction($find(tmp[0]), tmp[1]);
    } else if (elementToClick != null) {
        $($get(elementToClick)).click();
    } else if (elementToConfirm != null) {
        $get(elementToConfirm).ConfirmButtonBehavior._displayConfirmDialog();
    }

    dockToAction = null;
    elementToClick = null;
    elementToConfirm = null;
    lastDock = null;

    $('.hfdummy input[type="hidden"]').val("");

    if (typeof window.FB != "undefined")
        window.FB.XFBML.parse();

    var top = document.getElementById('publicConfigContainer');
    if (top != null) {
        makeUnselectable(top);
    }
    top = document.getElementById('publicConfigContainerWrapper');
    if (top != null) {
        makeUnselectable(top);
    }
    top = document.getElementById('publicConfigContainerWrapper');
    if (top != null) {
        makeUnselectable(top);
    }

}

function initializeRequest(sender, args) {
    var postBackElement = args.get_postBackElement();
    var pr = $('#loading').parent();

    if (pr.length && sender._form.__EVENTARGUMENT.value == 'dockPositionChanged') {
        pr.css('display', 'block');
    }
    if (prm != null && prm.get_isInAsyncPostBack()) {
        args.set_cancel(true);
    }
}

function endRequest(sender, args) {
    $('#loading').parent().css('display', 'none');

    //==AddThis Section START
    var tempAddThis = $('.AddThisWebPartNameClass');
    if (tempAddThis != null && tempAddThis.length > 0) {
        var script = 'http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4d6b9efd104250dc';
//        if (window.addthis) {
//            window.addthis = null;
//       }
        if (window.addthis) {
            window.addthis.ost = 0;
            window.addthis.ready();
        } 
        $.getScript(script);
    }

    var tempAddThisBouble = $('.AddThisWebPartNameClassBouble');
    if (tempAddThisBouble != null && tempAddThisBouble.length > 0) {
        var script = 'http://s7.addthis.com/js/250/addthis_widget.js#pubid=xa-4e4bba8c7d32888d';
        if (window.addthis) {
            window.addthis.ost = 0;
            window.addthis.ready();
        } 
        $.getScript(script);
    }
    //==AddThis Section END
}

function getLeftScroll() {
    return window.pageXOffset ? window.pageXOffset : (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft
}

function getTopScroll() {
    return window.pageYOffset ? window.pageYOffset : (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop
}

function toggleMenu(sender, eventArgs) {
    var a = sender._getBounds();
    var menu = $(sender.get_element()).find('.mainmenu');

    var left = a.x + a.width - menu.width();
    var top = a.y - menu.height() - 5;

    menu.css("left", left + "px");
    menu.css("top", top + "px");

    sender.set_enableDrag(!sender.get_enableDrag());
    menu.toggle("fast");
}

function showMenuViaServer(menudivId, also_visible, relToElementId, above) {
    var menudiv = $('#' + menudivId + (also_visible ? '' : ':hidden'));

    if (menudiv.length > 0) {
        if (typeof (relToElementId) != 'undefined') {
            var relToElement = $get(relToElementId);

            var relToOffset = $(relToElement).offset();
            if (above) {
                menudiv.css('top', relToOffset.top - menudiv.height());
                menudiv.css('left', relToOffset.left + $(relToElement).width() - menudiv.width());
            } else {
                menudiv.css('top', relToOffset.top);
                menudiv.css('left', relToOffset.left);
            }
        }

        menudiv.show("fast", function () {
            if (this.getBoundingClientRect != undefined && this.getBoundingClientRect().top < 50) {
                scrollToTop(this.id, 50);
            } else if (this.getBoundingClientRect == undefined) {
                scrollToTop(this.id, 50);
            }
        });
    }
}

function scrollToTop(id, topOffset) {
    var ctl = $($get(id));
    $.scrollTo(ctl, "slow", { offset: -topOffset, axis: "y", onAfter: function (e) {
        if (e.length > 0 && e[0].getBoundingClientRect != undefined) {
            var top = e[0].getBoundingClientRect().top;
            if (top < 0) {
                e.css("top", topOffset + "px");
            }
        }
    }
    });
}

function hideMenuViaServer(menudivId) {
    $($get(menudivId)).hide("fast");
}

function hideMenu(sender) {
    $(sender).parents('.menucontainer').hide('fast');
    var dock = $find($(sender).parents('.' + radDockClass)[0].id);
    dock.set_enableDrag(true);
}

function confirmDelete(sender, dropdownElements, radioType, idAndType, textFormat, namebox, litconfirm) {
    var type = radioType.find("input[type='radio'][checked]").val();
    var element = dropdownElements.val();
    var cbe = $find('MenuConfirmButtonExtender');
    if (namebox.val().length == 0) {
        return false;
    }
    cbe.set_postBackScript("__doPostBack('" + sender.name + "','')");

    if (type != undefined && type == '2') {
        textFormat = textFormat.replace('{1}', radioType.find('.urltextbox').val());
    }

    if (type != undefined && type == '1' && element != undefined && element != idAndType) {
        textFormat = textFormat.replace('{1}', dropdownElements.find("option[value='" + element + "']").text());
    }

    if ((type != undefined && type != '1') || (element != undefined && element != idAndType)) {
        litconfirm.html(textFormat);
        cbe._displayConfirmDialog();
        return false;
    }
    return true;
}

function confirmDeleteSimp(sender, text, litconfirm) {
    if (!isEditing()) {
        var cbe = $find('MenuConfirmButtonExtender');
        cbe.set_postBackScript(sender.href.replace('javascript:', '').replace(/%20/g, ' '));
        litconfirm.html(text);
        cbe._displayConfirmDialog();
        return false;
    } else {
        return true;
    }
}

function confirmWebpartAction(sender, args) {
    if (isEditing()) {
        return;
    }

    var cbe = $find("CloseWebpartConfirmButton");
    var msg = $(sender._element).find('.confirmmessage').html();
    var con = $($get('divMajorConfirm')).find('.confirmtext');
    if (msg != null && msg != '') {
        con.html(msg).show().next().hide();
    } else {
        var found = false;
        var url = $(sender._element).find('a.modulelink');
        if (url.length > 0) {
            var el = $('.RadTreeView a[href="' + url.attr('href') + '"]');
            if (el.length > 0) {
                found = true;
                msg = $($get('divMajorConfirm')).find('.confirmtextspec').html();
                msg = msg.replace("{0}", el.html()).replace("{0}", el.html());
                con.html(msg).show().next().hide();
            }
        }
        if (!found) {
            con.hide().next().show();
        }
    }
    var name = args.Command != null ? args.Command.get_name() : args;

    cbe.set_postBackScript("$find('" + sender._element.id + "').getCommand('" + name + "').conditionalPostback()");
    cbe._displayConfirmDialog();

    if (args.set_cancel != null)
        args.set_cancel(true);
}

function fillReportInfo(sender, text) {
    $(sender).parent().parent().parent().find('.reportinfo').html(text);
}

function fillReportInfoForWhile(sender, text, later) {
    fillReportInfo(sender, text);
    setTimeout("var sender = $('#" + sender.id + "');" +
               "fillReportInfo(sender, '');" +
               "sender.mouseover(function() {fillReportInfo(this,'" + later + "');});" +
               "sender.mouseout(function() {fillReportInfo(this,'');});", 10000);
}

function initTopDock(sender, e) {
    sender.set_handle(sender.get_element());
    sender.add_dragStart(function () {
        $('.popup-tooltip-parent').each(function () {
            this.PopupBehavior.hide();
        });
    });
    sender.add_dragEnd(function (s) {
        var col = $(s.get_element()).closest('.popupHover');
        if (col.length ) {
            col[0].HoverMenuBehavior._inHover = false;
            col[0].HoverMenuBehavior.initialize();
        }
    });
    $(sender.get_element()).mouseleave(function (s) {
        var col = $(this).closest('.popupHover');
        if (col.length) {
            col[0].HoverMenuBehavior._popupBehavior.hide();
        }
    });
}

function initBottomDock(sender, e) {
    sender.set_handle($(sender.get_element()).find('.dragger')[0]);
}

function bottomDockDragEnd(dock, args) {
    $(dock._element).css("position", "static").find('.rdContent').css("overflow", "");
}

function dockDragStart(dock, args) {
    lastDock = new Array(dock.get_element().id, dock.get_dockZoneID(), dock.get_index());
}

function repositionLastDock() {
    if (lastDock) {
        $get(lastDock[1]).control.dock($get(lastDock[0]).control, lastDock[2]);
    }
}

/* editor */

currentEditor = null;

function setEditorFocus(editor) {
    editor.get_toolAdapter()._showToolbarHolder(true);
    setTimeout(function () { editor.setFocus(); }, 50);
}

function editorInit(editor, args) {
    var toolbarPrototype = Telerik.Web.UI.Editor.DefaultToolAdapter.prototype;
    toolbarPrototype._positionToolbarAboveEditor = positionToolbarAboveEditor;
    if (!toolbarPrototype.old_onContextMenu) {
        toolbarPrototype.old_onContextMenu = toolbarPrototype.onContextMenu;
        toolbarPrototype.onContextMenu = function (e) {
            var element = e.srcElement ? e.srcElement : e.target;
            if (element.tagName == "IMG") return false;
            this.old_onContextMenu(e);
        }
    }
}

function editorLoadBase(editor) {
    editorRegisterDialogs();

    var iframe = editor.get_contentAreaElement();
    iframe.allowTransparency = true;
}

function editorLoadBlog(editor) {
    editorLoadBase(editor);
}

function editorLoad(editor) {
    editorLoadBase(editor);
    setRadDockTitlebar(editor.get_element(), true);
    setEditorFocus(editor);
    scrollToTop(editor.get_element().id, 100);
}

function GenerateCloseButton(sender, e) {
    if ($('#ajax__calendar_close_button').length == 0) {
        $(sender._header).before("<div id='ajax__calendar_close_button'><div></div><br class='clear'/></div>");
        $('#ajax__calendar_close_button').bind("click", sender, function (e) {
            e.data.hide();
        });
    }
}

function isUrl(s) {
    var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    return regexp.test(s);
}

function setRadDockTitlebar(element, s) {
    if (s) {
        $(element).closest('.' + radDockClass).find('.rdTitleBar').hide();
    } else {
        $(element).closest('.' + radDockClass).find('.rdTitleBar').show();
    }
}

function setElementsInTextWidth(element, xsize) {
    $(element).find('img').each(function () {
        var el = $(this);
        var ratio = el.attr('width') / xsize;

        el.css('max-width', xsize + 'px');
        el.css('max-height', (el.attr('height') / ratio) + 'px');
    });

    $(element).find('p').each(function () {
        var el = $(this);
        el.css('max-width', xsize + 'px');
    });
}

function editorOnClose(sender) {
    $('body').click();
}

function positionToolbarAboveEditor() {
    $(this._toolbarHolder._popupElement).addClass('isolatedToolbar');
    var wnd = this._toolbarHolder;
    var editor = this.get_editor();
    var editorSize = $telerik.getBounds(editor.get_element());
    var bodywidth = $telerik.getBounds(document.body).width;
    var windowSize = $telerik.getBounds(wnd.get_popupElement());
    var x = editorSize.x;
    if (x + windowSize.width > bodywidth)
        x = bodywidth - windowSize.width - 20;
    var y = editorSize.y;//  - windowSize.height;
    wnd.moveTo(x, y);
}

function enableEditMode(sender) {
    $(sender).parent().nextAll('input.edit').click();
}

function editorRegisterDialogs() {
    Telerik.Web.UI.Editor.CommandList["YouTube"] = showEditorToolbarYouTubeDlg;
    Telerik.Web.UI.Editor.CommandList["Hyperlink"] = showEditorToolbarHyperlink;
    Telerik.Web.UI.Editor.CommandList["AddImage"] = showEditorAddImageDlg;
}

function showEditorToolbarYouTubeDlg(commandName, editor, args) {
    var oncallback = function (sender, args) {
        editor.pasteHtml(flashContentFix(args));
    }
    editor.showDialog("YouTubeToolDlg", {}, oncallback);
}

function flashContentFix(content) {
    content = content.replace('</param>', '</param><param name="wmode" value="transparent"></param>');

    if (($telerik.isIE6 || $telerik.isFirefox) && content.search('iframe') == -1) {
        var filter = new Telerik.Web.UI.Editor.MozillaKeepFlash();
        filter._flashImageSrc = "/App_Themes/DefaultTheme/Editor/n_flash.gif";
        return $(filter.getDesignContent($(content)[0])).html();
    } else {
        return content;
    }
}

function showEditorToolbarHyperlink(commandName, editor, args) {
    var oncallback = function (sender, args) {
        if (typeof (args.url) == 'string') {
            if (args.url.indexOf("://") > 0) {
                editor.pasteHtml(String.format('<a href="{0}">{1}</a>', args.url, args.name));
            } else {
                editor.pasteHtml(String.format('<a href="{0}{1}">{2}</a>', 'http://', args.url, args.name));
            }
        }
    }

    var text = null;
    var selection = editor.getSelection();
    if (selection != null) {
        text = selection.getText();
    }

    editor.showDialog("HyperlinkToolDlg", { "text": text }, oncallback);
}

function showEditorAddImageDlg(commandName, editor, args) {
    currentEditor = editor;
    eval($(editor.get_element()).parent().find("input[id$='ImageUploaderParams']").val());
    editor.get_toolAdapter().get_toolbarHolder().Hide();
}

function trimAll(sString) {
    while (sString.substring(0, 1) == ' ') {
        sString = sString.substring(1, sString.length);
    }
    while (sString.substring(sString.length - 1, sString.length) == ' ') {
        sString = sString.substring(0, sString.length - 1);
    }
    return sString;
}

function dockAction(id) {
    dockToAction = id;
}

function clickElement(id) {
    elementToClick = id;
}

function displayAssociatedConfirm(id) {
    elementToConfirm = id;
}

function WizardDisableNextButton(btn) {
    if (btn) {
        btn.attr("disabled", true);
        btn.removeClass("button dalej").removeClass("button dalej_gray");
        btn.addClass("button dalej_gray");
    }
}

function WizardEnableNextButton(btn) {
    if (btn) {
        btn.removeAttr("disabled");
        btn.removeClass("button dalej").removeClass("button dalej_gray");
        btn.addClass("button dalej");
    }
}

function CheckOffScreenEntries(xsize, id) {
    menu = $($get(id));
    li = menu.find('li');
    cm = menu.find('.rdNew');
    sum = 0;
    li.each(function () { sum += $(this).width(); });

    if (xsize > 0 && sum + 170 > xsize)
        cm.hide();
    else
        cm.show();
}

function addImgBordersToWidth(id) {
    ctl = $($get(id));
    img = ctl.find('img');
    ctl.width(ctl.width() + parseInt(img.css('borderLeftWidth'), 10) * 2);
    ctl.height(ctl.height() + parseInt(img.css('borderTopWidth'), 10) * 2);
}

function GoogleSearchWebPartSubmit(userUrl, radioId, searchBoxId) {
    searchPart = 'http://www.google.pl/search?q=';
    searchPhrase = $('#' + searchBoxId).val();
    if (searchPhrase.length == 0) {
        return;
    }
    var val = $('#' + radioId).find('input:checked').val();
    if (val == 0) {
        location.href = searchPart + searchPhrase + '+site:' + userUrl;
    } else if (val == 1) {
        window.open(searchPart + searchPhrase);
    }
}

function RssChannelReadFeed(channelId, extenderId, canEdit) {
    if (canEdit == "True") {
        return;
    }
    var behavior = $find(extenderId);
    if (behavior) {
        behavior.populate(channelId);
    }
}

function closeUploader() {
    var bh = $find("ImageUploaderBehavior");
    bh.close();
}

function ImageUploader_InitCompleted() {
    var bh = $find("ImageUploaderBehavior");
    bh.refreshvalues();
}

function ImageUploader_BeforeUpload() {
    var bh = $find("ImageUploaderBehavior");
    var iu = bh.get_imageUploader();

    iu.metadata().resetCookie();
    iu.metadata().addCookie('ASP.NET_SessionId=' + bh._sessionId);
    iu.metadata().addCookie(bh._formsCookieName + '=' + bh._formsCookieValue);
}

function ImageUploader_AfterUpload(html) {
    var bh = $find("ImageUploaderBehavior");

    if (html.indexOf("RELOAD=1") != -1) {
        window.location.reload();
    } else {
        bh.close();
    }

    var pos = html.indexOf("IMAGES=");
    if (pos >= 0) {
        var pos2 = html.indexOf("ENDIMAGES", pos);
        if (pos2 > pos + 7) {
            var imagesInfo = html.substring(pos + 7, pos2);
            currentEditor.pasteHtml(imagesInfo);
        }
    }
}

function setFakeDivWidth(id1, id2, id3) {
    var c1 = $(document.getElementById(id1));
    var c2 = $(document.getElementById(id2));
    var c3 = $(document.getElementById(id3));

    c1.height(c2.height() - c3.height());
    c2[0].scrollTop = c2[0].scrollHeight;
}

function makeUnselectable(node) {
    if (node.nodeType == 1) {
        node.unselectable = true;
    }
    var child = node.firstChild;
    while (child) {
        makeUnselectable(child);
        child = child.nextSibling;
    }
}


