{# {% if '.webkul.com' == application_service.getConfigParameter('site.url') %}
	<script src='{{ asset("bundles/webkuldefault/js/tinymce/tinymce.min.js") }}'></script>
{% else %} #}
	{# <script src='{{ asset("bundles/tinymce/tinymce.min.js") }}'></script> #}
	<script src='https://cloud.tinymce.com/stable/tinymce.min.js'></script>

{# {% endif %} #}
<script type="text/javascript">
var sfTinyMce = {
	tinymce : tinymce,
	options : {
		browser_spellcheck : true,		
		selector: '.uv-view textarea',
		branding: false,
		relative_urls : false,
		remove_script_host : false,
		image_title: true,
		autoresize_max_height: 350,
		theme: 'modern',
		menubar: false,
		height: 150,
			toolbar: 'undo redo | bold italic | forecolor | bullist | numlist | link imageupload | spellchecker',
		spellchecker_languages: 'English=en',
			
		plugins: [
			'spellchecker advlist autolink lists link charmap print preview hr anchor pagebreak',
			'searchreplace wordcount visualblocks visualchars code fullscreen',
			'media nonbreaking table directionality',
			'emoticons template paste textcolor colorpicker textpattern codesample toc',
			'autoresize image imagetools',
			'mention',
		],
		invalid_elements : 'script,style,iframe,input,textarea,form,onmouseover,onmouseout,onclick',
	    // paste_as_text: true,
		paste_data_images: true,		
		mentions : {
			source: function(){
				return [];	
			},
		},
	},
	init : function (options){
		if(typeof(options.setup) === 'function'){
			let optionsSetup = options.setup;
			this.options.setup = function(editor){
				sfTinyMce.initImageUpload(editor);
				optionsSetup(editor);
			}

			delete options.setup;
		}else{
			this.options.setup = function(editor){
				sfTinyMce.initImageUpload(editor);
			}

			delete options.setup;
		}

		this.options = $.extend({}, this.options, options)
		window.tinymce.dom.Event.domLoaded = true;
		tinymce.init(this.options);
	},
	html : function(selector, html){
		tinymce.get(selector).setContent(html);
	},
	initImageUpload : function(editor) {
		// create input and insert in the DOM
		var inp = $('<input id="tinymce-uploader" type="file" name="pic" accept="image/*" style="display:none">');
		$(editor.getElement()).parent().append(inp);

		// add the image upload button to the editor toolbar
		editor.addButton('imageupload', {
			text: '',
			icon: 'image',
			onclick: function(e) { // when toolbar button is clicked, open file select modal
				inp.trigger('click');
			}
		});

		// when a file is selected, upload it to the server
		inp.on("change", function(e){
			sfTinyMce.uploadFile($(this), editor);
		});
	},
	uploadFile : function(input, editor) {
		sendFile(input.get(0).files).done(function(json){
				//remove loading image
				if(json['error'] != ''){
					var response = {
						'alertClass' : 'danger',
						'alertMessage' : json['error'],
					};
					app.appView.hideLoader();
					app.appView.renderResponseAlert(response);
				}else if(json['fileNames']){
					$.each(json['fileNames'], function(key, path){
						editor.insertContent('<img class="content-img" src="' + path + '"/>');
					});
				}
				if(json.location != undefined)
					window.location = json.location; 
			})
			.fail(function(xhr) {
				if(url = xhr.getResponseHeader('Location'))
					window.location = url;

				app.appView.hideLoader();
				app.appView.renderResponseAlert(warningResponse);
			})
		;
	},
}

function sendFile(files) {
    var data = new FormData();
	var nonEmptyFlag;
    $.each(files, function(key, file){
		var patt = new RegExp("(image/)(?!tif)");
		if(file.type && patt.test(file.type)) {
			data.append("attachments[]", file);
			nonEmptyFlag = true;
		}
    });
	var path = "{{ '/customer/' in app.request.requestUri ? path('ajax_file_upload_customer') : path('ajax_file_upload') }}";
	if(nonEmptyFlag) {
		return $.ajax({
				data: data,
				type: "POST",
				enctype: 'multipart/form-data',
				url: path,
				processData: false,
				contentType: false,
				cache: false,
			});
	} else {
		app.appView.renderResponseAlert({'alertClass': 'danger', 'alertMessage': '{{ "Warning! Select valid image file."|trans }}' });
	}
}

function sendUrls(url) {
	var path = "{{ '/customer/' in app.request.requestUri ? path('ajax_url_file_customer') : path('ajax_url_file') }}";
    return $.ajax({
		        data: {'url': url},
		        type: "POST",
		        url: path,
		        dataType: 'json'
		    });
}

function removeFile(file) {
	var path = "{{ '/customer/' in app.request.requestUri ? path('ajax_file_remove_customer') : path('ajax_file_remove') }}";
    return $.ajax({
		        data: {'path': file},
		        type: "POST",
		        url: path,
		        dataType: 'json'
		    });
}
{# addTranslateButton = function(editor) {
	editor.addButton('translate', {
		type: 'listbox',
		title : 'selectContentAndTranslate',
		text: '{{ "Translate"|trans }}',
		onselect: function (e) {
			this.text('{{ "Translate"|trans }}');
			if(editor.selection.getContent({format : 'html'})) {
				ajaxData = {
					'lang': this.value(),
					'content': editor.selection.getContent({format : 'html'}),
				};
				tinyMCE.activeEditor.setProgressState(true);
				$.ajax({
					url: '{{ path("app_translate_action") }}',
					data: ajaxData,
					method: 'POST',
					success: function (response) {			
						tinyMCE.activeEditor.setProgressState(false);
						editor.execCommand('mceInsertContent', true, response);							
						$('.mce-toolbar-grp .uv-loader').remove()
					},
					error: function (model, xhr, options) {
						tinyMCE.activeEditor.setProgressState(false);
						app.appView.renderResponseAlert(warningResponse);									
						if('undefined' != typeof(url = xhr.getResponseHeader) && (url = xhr.getResponseHeader('Location')))
							window.location = url;
					}						
				});
			} else {
				editor.notificationManager.close();
				editor.notificationManager.open({
					text: '{{ "Select text then select language to translate text."|trans }}',
					type: 'info',					
					timeout: 3000,
					closeButton: true
				});
			}
		},
		values: [
			{% for value, text in application_service.getTranslationSupportedLanguages() %}
				{ text: '{{ text }}', value: '{{ value }}' },
			{% endfor %}
			{ text: '“Powered by Yandex.Translate”', value: '', disabled: true },
		],
	});
} #}
</script>

{#theme: 'inlite',
inline: true,
insert_toolbar: 'quickimage quicktable',
plugins: [
	'advlist autolink lists link image charmap print preview hr anchor pagebreak',
	'searchreplace wordcount visualblocks visualchars code fullscreen',
	'insertdatetime media nonbreaking save table contextmenu directionality',
	'emoticons template paste textcolor colorpicker textpattern imagetools codesample toc'
],
toolbar1: 'undo redo | insert | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image codesample',
image_advtab: true,
templates: [
	{ title: 'Test template 1', content: 'Test 1' },
	{ title: 'Test template 2', content: 'Test 2' }
],
content_css: [
	'//fonts.googleapis.com/css?family=Lato:300,300i,400,400i',
	'//www.tinymce.com/css/codepen.min.css'
]#}