var textEditor = (function () {
    var commonConfiguration = {
        language : 'sv_SE',
        entity_encoding : "raw",
        menubar : false,
        contextmenu: false,
        statusbar : true, // Required by license
        cache_suffix: '?v=4.9.3',
        browser_spellcheck : true,
        relative_urls : false,
    };

    var standard = function(selector, initCallback, customConfig) {
        var config = {
            selector: selector,
            toolbar: 'formatselect | undo redo | bold italic | superscript | bullist numlist | link | removeformat pastetext',
            plugins: 'paste,link,lists',
            block_formats: 'Paragraph=p;Header 1=h1;Header 2=h2;Header 3=h3;Header 4=h4;Header 5=h5;Header 6=h6',
            paste_word_valid_elements: "b,strong,i,em,h1,h2,h3,h4,a,p,br",
            content_style: 'body {font-size: 11pt;}',
            init_instance_callback: initCallback
        };

        if (typeof customConfig !== 'undefined') {
            config = $.extend(config, customConfig);
        }

        initTinyMCE(config);
    };

    var minimal = function(selector) {
        var config = {
            selector : selector,
            toolbar: 'bold italic',
            plugins: 'paste',
            paste_word_valid_elements : "b,strong,i,em",
            forced_root_block: false
        };

        initTinyMCE(config);
    };

    var landingpage = function(selector, height) {
        var config = {
            selector : selector,
            height: height,
            remove_script_host : false,
            plugins: [
                'advlist lists autolink link media image lists charmap hr anchor pagebreak',
                'searchreplace wordcount visualblocks visualchars fullscreen insertdatetime nonbreaking',
                'save table contextmenu directionality template paste code'
            ],
            style_formats: [
                { title: 'Headings', items: [
                    { title: 'Heading 1', format: 'h1' },
                    { title: 'Heading 2', format: 'h2' },
                    { title: 'Heading 3', format: 'h3' },
                    { title: 'Heading 4', format: 'h4' },
                    { title: 'Heading 5', format: 'h5' },
                    { title: 'Heading 6', format: 'h6' }
                ]},
                { title: 'Blocks', items: [
                        { title: 'Paragraph', format: 'p' },
                        { title: 'Div', format: 'div' },
                ]},
                { title: 'Buttons', items: [
                    {title: 'Knapp', inline: 'a', classes: ['btn', 'btn-default']},
                    {title: 'Knapp primär', inline: 'a', classes: ['btn btn-primary']},
                    {title: 'Knapp grön', inline: 'a', classes: ['btn btn-success']}
                ]},
            ],
            content_css: '/assets/css/bootstrap.css,/assets/css/landingpage.css',
            toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image media hr | code',
            entity_encoding : "raw"
        };

        initTinyMCE(config);
    };

    var initTinyMCE = function(config) {
        tinymce.init($.extend(config, commonConfiguration));
    };

    var remove = function(id) {
        var editor = tinyMCE.get(id);
        if (editor) {
            editor.remove();
        }
    };

    return {
        standard: standard,
        minimal: minimal,
        landingpage: landingpage,
        remove: remove
    };
})();
"use strict";

function allowAnotherFileupload(formId) {
    if (formId.indexOf('fileupload-question-') < 0) {
        return true; //Only run for filueupload-questions
    }
    var questionId = formId.replace(/[^0-9]+/g, '');
    var maxNumerOfUploadedFiles = $('#question-' + questionId).attr('data-limit');
    var currentNumberOfUploadedFiles = $('#attached-filelist-question-' + questionId + ' > div').length;

    if (currentNumberOfUploadedFiles >= maxNumerOfUploadedFiles) {
        alert('Max antal filer har blivit uppladdade i denna fråga. Om du inte ser filerna så testa att ladda om sidan.');
        return false;
    }
    return true;
}

function isFileSizeAndTypeAccepted(formId, data) {
    
    var maxAcceptedFilesize = parseInt($('#' + formId).data('maxFileSize'));
    var currentFilesize = parseInt(data.originalFiles[0].size,10); 
    
    /* if (Number.isNaN(currentFilesize)){ //Number.isNaN NOT working in IE9 */
    if (isNaN(currentFilesize)){
        currentFilesize = 0;
    }
    /*if (Number.isNaN(maxAcceptedFilesize)){ */
    if (isNaN(maxAcceptedFilesize)){
        maxAcceptedFilesize = 0;
    }
    
    if ( (maxAcceptedFilesize > 0) && (currentFilesize > maxAcceptedFilesize) ) {
        alert('Filen är för stor. Max filstorlek är: ' +  Math.round((maxAcceptedFilesize/1024)/1024) + 'MB');
        return false;
    }
    
    /* Here we could check for type. We only get 'document', 'image' and so on from:
     * console.log($('#' + formId).data('acceptedFileTypeGroup'));
     * but in :
     * console.log(data.originalFiles[0].type);
     * We have mime, like application/pdf 
     * so that would need translation.
    */

    return true;
}