// Double Click Plugin for HTMLArea-3.0
// Implementation by Marijn Kampf http://www.marijn.org
// Sponsored by http://www.smiling-faces.com
//
// (c) Marijn Kampf 2004.
// Distributed under the same terms as HTMLArea itself.
// This notice MUST stay intact for use (see license.txt).
//
// Cut-n-paste version of double click plugin.
// Almost no original code used. Based on
// Luis HTMLarea and Mihai Bazon Context Menu
//
//
//

DoubleClick._pluginInfo = {
	name          : "DoubleClick",
	version       : "1.0",
	developer     : "Marijn Kampf",
	developer_url : "http://www.marijn.org",
	c_owner       : "Marijn Kampf",
	sponsor       : "smiling-faces.com",
	sponsor_url   : "http://www.smiling-faces.com",
	license       : "htmlArea"
};

function DoubleClick(editor) {
	this.editor = editor;

	// ADDING CUSTOM DOUBLE CLICK ACTIONS
	// format of the dblClickList elements is "TAGNAME: [ ACTION ]"
	//    - TAGNAME: tagname of the tag that is double clicked
	//    - ACTION: function that gets called when the button is clicked.
	//              it has the following prototype:
	//                 function(editor, event)
	//              - editor is the HTMLArea object that triggered the call
	//							- target is the selected object
	this.editor.dblClickList = {
		// Edit Link dialog
		a: [ function(e) {e.config.btnList['createlink'][3](e); } ],
		// Follow link
		//a: [ function(editor, target) { window.location = target.href; properties(target); } ],

		img: [ function(e) {e.execCommand("insertimage");} ],
		td: [ function(e) {e.execCommand("inserttable");} ]
	};
}

DoubleClick.prototype.onGenerate = function() {
	var self = this;
	var doc = this.editordoc = this.editor._iframe.contentWindow.document;
	HTMLArea._addEvents(doc, ["dblclick"],
			    function (event) {
			    return self.onDoubleClick(HTMLArea.is_ie ? self.editor._iframe.contentWindow.event : event);
			    });
	this.currentClick = null;
};

DoubleClick.prototype.onDoubleClick = function(ev) {
	var target = HTMLArea.is_ie ? ev.srcElement : ev.target;
	var tagName = target.tagName.toLowerCase();

	if (this.editor.dblClickList[tagName] != undefined) {
		this.editor.dblClickList[tagName][0](this.editor, target);
	}
};