Vergleich jscripts/editor.js - 1.6.8 - 1.6.17

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 125Zeile 125
		this.colors[38] = "#E6E6FA";
this.colors[39] = "#DDA0DD";
this.colors[40] = "#FFFFFF";

		this.colors[38] = "#E6E6FA";
this.colors[39] = "#DDA0DD";
this.colors[40] = "#FFFFFF";

		
// An array of video services to be shown (youtube, vimeo, etc)


// An array of video services to be shown (youtube, vimeo, etc)

		this.videos = new Object();
this.videos["dailymotion"] = this.options.lang.video_dailymotion;
this.videos["metacafe"] = this.options.lang.video_metacafe;

		this.videos = new Object();
this.videos["dailymotion"] = this.options.lang.video_dailymotion;
this.videos["metacafe"] = this.options.lang.video_metacafe;

Zeile 156Zeile 156

// Now this.textarea becomes the new textarea ID
this.textarea += "_new";


// Now this.textarea becomes the new textarea ID
this.textarea += "_new";





		// Begin the creation of our new editor.

this.editor = document.createElement("div");

		// Begin the creation of our new editor.

this.editor = document.createElement("div");

Zeile 186Zeile 186
			h = oldTextarea.clientHeight+"px";
}
else if(oldTextarea.style.height)

			h = oldTextarea.clientHeight+"px";
}
else if(oldTextarea.style.height)

		{

		{

			h = oldTextarea.style.height;
}
else

			h = oldTextarea.style.height;
}
else

Zeile 195Zeile 195
		}
this.editor.style.width = w;
this.editor.style.height = h;

		}
this.editor.style.width = w;
this.editor.style.height = h;





		this.createToolbarContainer('top');

this.createToolbar('closetags', {

		this.createToolbarContainer('top');

this.createToolbar('closetags', {

			container: 'top',
alignment: 'right',
items: [

			container: 'top',
alignment: 'right',
items: [

				{type: 'button', name: 'close_tags', insert: 'zzzz', sprite: 'close_tags', width: 80, style: {visibility: 'hidden'}}
]
});

				{type: 'button', name: 'close_tags', insert: 'zzzz', sprite: 'close_tags', width: 80, style: {visibility: 'hidden'}}
]
});

Zeile 231Zeile 231
				{type: 'button', name: 'code', sprite: 'code', insert: 'code', title: this.options.lang.title_code},
{type: 'button', name: 'php', sprite: 'php', insert: 'php', title: this.options.lang.title_php},
{type: 'button', name: 'video', insert: 'video', image: 'television.gif', dropdown: true, title: this.options.lang.title_video, options: this.videos}

				{type: 'button', name: 'code', sprite: 'code', insert: 'code', title: this.options.lang.title_code},
{type: 'button', name: 'php', sprite: 'php', insert: 'php', title: this.options.lang.title_php},
{type: 'button', name: 'video', insert: 'video', image: 'television.gif', dropdown: true, title: this.options.lang.title_video, options: this.videos}

			]

			]

		});
this.createToolbar('formatting', {
container: 'bottom',

		});
this.createToolbar('formatting', {
container: 'bottom',

Zeile 246Zeile 246
				{type: 'button', name: 'align_justify', sprite: 'align_justify', insert: 'align', extra: 'justify', title: this.options.lang.title_justify}
]
});

				{type: 'button', name: 'align_justify', sprite: 'align_justify', insert: 'align', extra: 'justify', title: this.options.lang.title_justify}
]
});





		// Create our new text area
areaContainer = document.createElement("div");
areaContainer.style.clear = "both";

// Set the width/height of the area
subtract = 20;

		// Create our new text area
areaContainer = document.createElement("div");
areaContainer.style.clear = "both";

// Set the width/height of the area
subtract = 20;

		subtract2 = 12;

		subtract2 = 8;

		areaContainer.style.height = parseInt(Element.getDimensions(this.editor).height)-this.toolbarHeight-subtract+"px";
areaContainer.style.width = parseInt(Element.getDimensions(this.editor).width)-subtract2+"px";


		areaContainer.style.height = parseInt(Element.getDimensions(this.editor).height)-this.toolbarHeight-subtract+"px";
areaContainer.style.width = parseInt(Element.getDimensions(this.editor).width)-subtract2+"px";


Zeile 369Zeile 369
		if(toolbar.lastChild.previousSibling)
toolbar.lastChild.previousSibling.className += ' toolbar_button_group_last';
},

		if(toolbar.lastChild.previousSibling)
toolbar.lastChild.previousSibling.className += ' toolbar_button_group_last';
},

	



	setElementState: function(element, state) {
element.addClassName('toolbar_'+state);

	setElementState: function(element, state) {
element.addClassName('toolbar_'+state);

		
if(element.hasClassName('toolbar_button_group_first')) {
if(state == 'clicked') {
append = 'toolbar_clicked';
}
else if(state == 'hover') {
append = 'toolbar_hover';
}
append += '_button_group_first';
element.addClassName(append);
}

if(element.hasClassName('toolbar_button_group_last')) {
if(state == 'clicked') {
append = 'toolbar_clicked';
}


if(element.hasClassName('toolbar_button_group_first')) {
if(state == 'clicked') {
append = 'toolbar_clicked';
}
else if(state == 'hover') {
append = 'toolbar_hover';
}
append += '_button_group_first';
element.addClassName(append);
}

if(element.hasClassName('toolbar_button_group_last')) {
if(state == 'clicked') {
append = 'toolbar_clicked';
}

			else if(state == 'hover') {
append = 'toolbar_hover';
}

			else if(state == 'hover') {
append = 'toolbar_hover';
}

Zeile 395Zeile 395
			element.addClassName(append);
}
},

			element.addClassName(append);
}
},

	



	removeElementState: function(element, state)
{
element.removeClassName('toolbar_'+state);

	removeElementState: function(element, state)
{
element.removeClassName('toolbar_'+state);

		



		if(element.hasClassName('toolbar_button_group_first')) {

		if(element.hasClassName('toolbar_button_group_first')) {

			if(state == 'clicked') {
append = 'toolbar_clicked';
}
else if(state == 'hover') {

			if(state == 'clicked') {
append = 'toolbar_clicked';
}
else if(state == 'hover') {

				append = 'toolbar_hover';
}
append += '_button_group_first';
element.removeClassName(append);
}

				append = 'toolbar_hover';
}
append += '_button_group_first';
element.removeClassName(append);
}

		



		if(element.hasClassName('toolbar_button_group_last')) {
if(state == 'clicked') {

		if(element.hasClassName('toolbar_button_group_last')) {
if(state == 'clicked') {

				append = 'toolbar_clicked';
}

				append = 'toolbar_clicked';
}

			else if(state == 'hover') {
append = 'toolbar_hover';
}
append += '_button_group_last';
element.removeClassName(append);

			else if(state == 'hover') {
append = 'toolbar_hover';
}
append += '_button_group_last';
element.removeClassName(append);

		}	

		}

	},

	},





	dropDownMenuItemClick: function(e)
{
this.restartEditorSelection();
element = Event.element(e);

	dropDownMenuItemClick: function(e)
{
this.restartEditorSelection();
element = Event.element(e);





		if(!element)
return;

		if(!element)
return;

		



		if(!element.extra)
element = element.up('li');

		if(!element.extra)
element = element.up('li');

		



		var mnu = element.up('ul');
var dropdown = this.getElementToolbarItem(mnu);
var label = dropdown.down('.editor_dropdown_label');

		var mnu = element.up('ul');
var dropdown = this.getElementToolbarItem(mnu);
var label = dropdown.down('.editor_dropdown_label');





		if(!dropdown.insertText || (dropdown.insertText != "video" && mnu.activeItem && mnu.activeItem == element))
return;

		if(!dropdown.insertText || (dropdown.insertText != "video" && mnu.activeItem && mnu.activeItem == element))
return;

		



		mnu.lastItemValue = element.extra;

if(this.getSelectedText($(this.textarea)))

		mnu.lastItemValue = element.extra;

if(this.getSelectedText($(this.textarea)))

Zeile 526Zeile 526
	createDropDownMenu: function(options)
{
var dropdown = document.createElement('div');

	createDropDownMenu: function(options)
{
var dropdown = document.createElement('div');

		dropdown.itemType = options.type;

		dropdown.elementType = options.type;

		if(options.image || options.sprite)
dropdown.className = 'toolbar_dropdown_image';
else

		if(options.image || options.sprite)
dropdown.className = 'toolbar_dropdown_image';
else

Zeile 596Zeile 596
				this.setDropDownMenuActiveItem(dropdown, 0);
}.bindAsEventListener(this));
}

				this.setDropDownMenuActiveItem(dropdown, 0);
}.bindAsEventListener(this));
}

		



		$H(options.options).each(function(option)
{
if(options.draw_option)

		$H(options.options).each(function(option)
{
if(options.draw_option)

Zeile 604Zeile 604
				item = options.draw_option(option)
}
else

				item = options.draw_option(option)
}
else

			{

			{

				var item = document.createElement('li');
item.innerHTML = option.value;


				var item = document.createElement('li');
item.innerHTML = option.value;


Zeile 616Zeile 616
			Event.observe(item, 'mouseover', function()
{
item.addClassName('editor_dropdown_menu_item_over');

			Event.observe(item, 'mouseover', function()
{
item.addClassName('editor_dropdown_menu_item_over');

			});

			});

			Event.observe(item, 'mouseout', function()
{
item.removeClassName('editor_dropdown_menu_item_over');

			Event.observe(item, 'mouseout', function()
{
item.removeClassName('editor_dropdown_menu_item_over');

Zeile 631Zeile 631
		element = Event.element(e);
if(!element)
return;

		element = Event.element(e);
if(!element)
return;

		if(!element.itemType)

		if(!element.elementType)

			element = this.getElementToolbarItem(element);

			element = this.getElementToolbarItem(element);

		



		var mnu = $(element).down('ul');

		var mnu = $(element).down('ul');

		



		// This menu is already open, close it
if(mnu.style.display != 'none')
{

		// This menu is already open, close it
if(mnu.style.display != 'none')
{

Zeile 664Zeile 664
		this.setElementState(element, 'clicked');
this.openDropDownMenu = mnu;
Event.observe(document, 'click', this.hideOpenDropDownMenu.bindAsEventListener(this));

		this.setElementState(element, 'clicked');
this.openDropDownMenu = mnu;
Event.observe(document, 'click', this.hideOpenDropDownMenu.bindAsEventListener(this));

	},

	},


hideOpenDropDownMenu: function()
{


hideOpenDropDownMenu: function()
{

Zeile 679Zeile 679
	},

getElementToolbarItem: function(elem)

	},

getElementToolbarItem: function(elem)

	{

	{

		var parent = elem;
do {
if(parent.insertText) return parent;
parent = parent.parentNode;
} while($(parent));

		var parent = elem;
do {
if(parent.insertText) return parent;
parent = parent.parentNode;
} while($(parent));





		return false;
},

storeCaret: function()
{
if(MyBB.browser != 'ie' || !this.trackingCaret)

		return false;
},

storeCaret: function()
{
if(MyBB.browser != 'ie' || !this.trackingCaret)

		{
return;
}


		{
return;
}


		// Internet explorer errors if you try and select an element... so just handle that by try catch
try {
var range = document.selection.createRange();

		// Internet explorer errors if you try and select an element... so just handle that by try catch
try {
var range = document.selection.createRange();

Zeile 739Zeile 739

// Does this item already exist?
if($('editor_item_'+options.name)) return;


// Does this item already exist?
if($('editor_item_'+options.name)) return;





		insert_first_class = false;

// Is this the first item? childnodes = 1 (closing br) or lastchild.previousSibling = sep
if(toolbar.childNodes.length == 1 || (toolbar.lastChild.previousSibling && toolbar.lastChild.previousSibling.className.indexOf('toolbar_sep') > -1 || (toolbar.lastChild.previousSibling.className.indexOf('editor_dropdown') > -1 && options.type != 'dropdown')))

		insert_first_class = false;

// Is this the first item? childnodes = 1 (closing br) or lastchild.previousSibling = sep
if(toolbar.childNodes.length == 1 || (toolbar.lastChild.previousSibling && toolbar.lastChild.previousSibling.className.indexOf('toolbar_sep') > -1 || (toolbar.lastChild.previousSibling.className.indexOf('editor_dropdown') > -1 && options.type != 'dropdown')))

		{

		{

			insert_first_class = true;
}

			insert_first_class = true;
}





		if(options.type == "dropdown")
{
var dropdown = this.createDropDownMenu(options);
if(dropdown)
toolbar.insertBefore(dropdown, toolbar.lastChild);

		if(options.type == "dropdown")
{
var dropdown = this.createDropDownMenu(options);
if(dropdown)
toolbar.insertBefore(dropdown, toolbar.lastChild);


if(insert_first_class == true)


if(insert_first_class == true)

				dropdown.className += ' toolbar_dropdown_group_first';
}
else if(options.type == 'button')

				dropdown.className += ' toolbar_dropdown_group_first';
}
else if(options.type == 'button')

Zeile 772Zeile 772
				toolbar.lastChild.previousSibling.className += ' toolbar_button_group_last';
}
var separator = document.createElement("span");

				toolbar.lastChild.previousSibling.className += ' toolbar_button_group_last';
}
var separator = document.createElement("span");

			separator.itemType = options.type;

			separator.elementType = options.type;

			separator.className = "toolbar_sep";
toolbar.insertBefore(separator, toolbar.lastChild);
}

			separator.className = "toolbar_sep";
toolbar.insertBefore(separator, toolbar.lastChild);
}

Zeile 781Zeile 781
	createToolbarButton: function(options)
{
var button = document.createElement('span');

	createToolbarButton: function(options)
{
var button = document.createElement('span');

		button.itemType = options.type;

		button.elementType = options.type;

		button.id = 'editor_item_'+options.name;
if(typeof(options.title) != 'undefined')
{
button.title = options.title;

		button.id = 'editor_item_'+options.name;
if(typeof(options.title) != 'undefined')
{
button.title = options.title;

		}

		}

		button.className = 'toolbar_button toolbar_normal toolbar_button_'+options.name;

		button.className = 'toolbar_button toolbar_normal toolbar_button_'+options.name;





		if(typeof(options.style) == 'object')
{
$H(options.style).each(function(item) {

		if(typeof(options.style) == 'object')
{
$H(options.style).each(function(item) {

Zeile 799Zeile 799
		button.insertExtra = '';
if(typeof(options.extra) != 'undefined')
button.insertExtra = options.extra;

		button.insertExtra = '';
if(typeof(options.extra) != 'undefined')
button.insertExtra = options.extra;

		



		if(typeof(options.sprite) != 'undefined')
{
var img = document.createElement('span');

		if(typeof(options.sprite) != 'undefined')
{
var img = document.createElement('span');

Zeile 832Zeile 832

// Create the actual drop down menu
if(options.dropdown)


// Create the actual drop down menu
if(options.dropdown)

		{

		{

			// create the menu item container
var mnu = this.buildDropDownMenu(options);


			// create the menu item container
var mnu = this.buildDropDownMenu(options);


Zeile 861Zeile 861
			button.disable = function()
{
if(button.disabled == true) return;

			button.disable = function()
{
if(button.disabled == true) return;





				if(options.disabled_sprite)
{
img.removeClassName('toolbar_sprite_'+options.sprite);

				if(options.disabled_sprite)
{
img.removeClassName('toolbar_sprite_'+options.sprite);

Zeile 921Zeile 921
		if(!element)
return false;


		if(!element)
return false;


		if(!element.itemType)

		if(!element.elementType)

			element = 	this.getElementToolbarItem(element);

if(element.disabled)

			element = 	this.getElementToolbarItem(element);

if(element.disabled)

Zeile 953Zeile 953
		if(!element)
return false;


		if(!element)
return false;


		if(!element.itemType)

		if(!element.elementType)

			element = this.getElementToolbarItem(element);

if(element.disabled)

			element = this.getElementToolbarItem(element);

if(element.disabled)

Zeile 970Zeile 970
		if(!element)
return false;


		if(!element)
return false;


		if(!element.itemType)

		if(!element.elementType)

			element = this.getElementToolbarItem(element);

if(element.disabled)

			element = this.getElementToolbarItem(element);

if(element.disabled)

Zeile 1103Zeile 1103
			this.performInsert("[img]"+image+"[/img]", "", true);
}
},

			this.performInsert("[img]"+image+"[/img]", "", true);
}
},

	



	insertVideo: function(type)
{
selectedText = this.getSelectedText($(this.textarea));

	insertVideo: function(type)
{
selectedText = this.getSelectedText($(this.textarea));

Zeile 1172Zeile 1172
							this.removeElementState(elem, 'clicked');
}


							this.removeElementState(elem, 'clicked');
}


						if(elem && (elem.itemType == "dropdown" || elem.dropdown || elem.menu))

						if(elem && (elem.elementType == "dropdown" || elem.dropdown || elem.menu))

						{
this.setDropDownMenuActiveItem(elem, 0);
}

						{
this.setDropDownMenuActiveItem(elem, 0);
}

Zeile 1359Zeile 1359
		textarea.focus();
this.trackingCaret = true;
this.storeCaret();

		textarea.focus();
this.trackingCaret = true;
this.storeCaret();

		this.trackingCaret = false;		

		this.trackingCaret = false;

		return is_closed;
},


		return is_closed;
},


Zeile 1383Zeile 1383
				}
if(tag)
{

				}
if(tag)
{

					if(tag.itemType == "dropdown" || tag.dropdown || tag.menu)

					if(tag.elementType == "dropdown" || tag.dropdown || tag.menu)

					{
this.setDropDownMenuActiveItem(tag, 0);
}

					{
this.setDropDownMenuActiveItem(tag, 0);
}