

(function($){

    if(false){ //jQuery.browser.msie < 8) {
        /* Internet Explorer 6/7 cannot handle this script */
        return;
    }

    function isAuthenticated()
    {
        return true;
    }

    function getPermissions()
    {

    }

    function PermissionRegistry()
    {
    }
    PermissionRegistry.prototype = {
        'load': function(){}
    };


    $(document).ready(function(){
        var container = $('div.adminlinker');
        if(container.length < 1) {
            container = $('<div class="adminlinker"/>').appendTo('#content');
        }

        $('.object-detail[data-content-type][data-object-id]').each(function(){
            if($('#content').find('.edit-object-shortcut').length > 0)
                return;
            var targetObject = container;
            var render = function(changeURL){
                if(changeURL)
                    $('<div class="adminlink change"><a href="' + changeURL + '">Admin-rediger</a></div>').appendTo(targetObject);
            };
            if($(this).data('changeurl')) {
                var changeurl = $(this).data('changeurl');
                $.get('/api/objperm/'+$(this).attr('data-content-type')+'/'+$(this).attr('data-object-id')+'/', function(res){
                    if(res.change) {
                        render(changeurl);
                    }
                });
            } else {
                var parts = ['/api/changeurl', $(this).attr('data-content-type'), $(this).attr('data-object-id')];
                var lookupURL = parts.join('/') + '/';
                if(window.addUserstateListener) {
                    window.addUserstateListener(function(event, info){
                        if(info.user && info.user.is_staff)
                            $.get(lookupURL, render);
                    });
                } else {
                    $.get(lookupURL, render);
                }
            }
        });

        $('.object-list[data-content-type], .alternate-object-list[data-content-type]').each(function(){
            var content_type_id = $(this).attr('data-content-type');
            var addurl = $(this).data('addurl');
            if($('#content').find('.action.create-object').length > 0)
                return;
            var targetObject = this;
            var render = function(addURL){
                if(addURL)
                    container.append('<div class="adminlink add"><a href="'+addURL+'">Legg til ny</a></div>');
            };

            if(addurl) {
                $.get('/api/hasperm-add/'+content_type_id+'/', function(res){
                    if(res == '1') {
                        render(addurl);
                    }
                });
            } else {
                var lookupURL = '/api/addurl/' + $(this).attr('data-content-type') + '/';
                if(window.addUserstateListener) {
                    window.addUserstateListener(function(event, info){
                        $.get(lookupURL, render);
                    });
                } else {
                    $.get(lookupURL, render);
                }
            }

            $(this).find('.object-detail[data-object-id]').each(function(){
                var url = '/api/changeurl/' + $(targetObject).attr('data-content-type') + '/' + $(this).attr('data-object-id') + '/';
                $.ajax({
                    url: url,
                    context: this,
                    success: function(textContent){
                        if(textContent)
                            $('<div class="adminlink change"><a href="' + textContent + '">Endre</a></div>')
                                .appendTo(this);
                    }
                });
            });
        });

        $('[data-content-type] > li[data-object-id]').each(function(){
            var targetObject = this,
                parts = ['/api/changeurl', $(this).parent().attr('data-content-type'), $(this).attr('data-object-id')];
            $.get(parts.join('/') + '/', function(textContent){
                if(textContent)
                    $('<div class="adminlink change"><a href="' + textContent + '">Admin-rediger</a></div>').appendTo(targetObject);
            });
        });

        if(window.addUserstateListener) {
            window.addUserstateListener(function(event, info){
                if(info.user && info.user.is_staff) {
                    var localURL = document.documentURI.substring(document.documentURI.indexOf('/', 7));
                    var refreshURL = '/viewcache/rebuild/';
                    $('<div class="adminlink refresh"/>')
                        .append($('<span>Refresh</span>').click(function(){
                            $.get(refreshURL, {'path': localURL}, function(){
                                window.location.reload(true);
                            });
                        }))
                        .appendTo(container);
                }
            });
        }

        /*if($.tinymce) {
            $('textarea').tinymce({
                'script_url': '/media/tiny_mce/tiny_mce.js',
                'valid_elements': 'p,blockquote,acronym,abbr,ul,ol,li,a,em,sup,sub,h1,h2,h3,h4',
                'theme': 'advanced',
                'plugins': 'emotions,style,table,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,paste,directionality,noneditable,visualchars,nonbreaking,xhtmlxtras,template',
                'theme_advanced_toolbar_location': 'top',
                'theme_advanced_disable': 'cleanup,visualaid,hr,image,italic,underline,outdent,indent,help,justifyleft,justifycenter,justifyright,justifyfull,styleselect,fontselect',
                'theme_advanced_layout_manager': 'RowLayout',
                'theme_advanced_containers': 'onlyrow,editorcontainer',
                'theme_advanced_container_onlyrow': 'bold,italic,bullist,numlist,formatselect,undo,redo,link,unlink,blockquote,charmap,image,sub,sup',
                'theme_advanced_container_editorcontainer': 'mceEditor'
            });
        } else*/ if(window.tinymce) {
            $('textarea.basichtml').addClass('mceEditor');
            tinymce.init({
                'mode': "specific_textareas",
                'editor_selector': "mceEditor",
                //'valid_elements': 'p,blockquote,acronym,abbr,ul,ol,li,a,em,sup,sub,h1,h2,h3,h4',
                'theme': "advanced",
                'plugins': "fullscreen",/*-youtube,*/
                'theme_advanced_toolbar_location': 'top',
                'theme_advanced_layout_manager': 'RowLayout',
                'theme_advanced_containers': 'onlyrow,editorcontainer',
                'theme_advanced_container_onlyrow': 'bold,italic,bullist,numlist,formatselect,undo,redo,link,unlink,blockquote,charmap,image,sub,sup,youtube,fullscreen',
                'theme_advanced_container_editorcontainer': 'mceEditor',
                'height': '18em',
                'content_css': '/media/stylesheets/tinymce-content.css'
            });
        }
    });

})(jQuery);



