// Marquee plugin for HTMLArea/Xinha
// Implementation by Udo Schmal based on HTMLArea 3.0
// Original Author - Udo Schmal, Schaffrath-NeueMedien
//
// (c) Udo Schmal.2004
// Distributed under the same terms as HTMLArea itself.
// This notice MUST stay intact for use (see license.txt).

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

	var cfg = editor.config;
	var self = this;

	// register the toolbar buttons provided by this plugin
	cfg.registerButton({
	id       : "insertmarquee",
	tooltip  : this._lc("Insert scrolling marquee"),
	image    : editor.imgURL("ed_marquee.gif", "InsertMarquee"),
	textMode : false,
	action   : function(editor) {
			self.buttonPress(editor);
		}
	})
	cfg.addToolbarElement("insertmarquee", "inserthorizontalrule", -1);
}

InsertMarquee._pluginInfo = {
	name          : "InsertMarquee",
	version       : "1.0",
	developer     : "Udo Schmal",
	developer_url : "http://www.schaffrath-NeueMedien.de/",
	c_owner       : "Udo Schmal & Schaffrath NeueMedien",
	license       : "htmlArea"
};

InsertMarquee.prototype._lc = function(string) {
    return Xinha._lc(string, "InsertMarquee");
};

InsertMarquee.prototype.buttonPress = function(editor, node) {
  function setAttr(el, attr, value) {
    if (value != "")
      el.setAttribute(attr, value);
    else
      el.removeAttribute(attr);
  }
  var outparam = new Object();
	if (typeof node == "undefined") {
	  node = editor.getParentElement();
	}
  if ( node.tagName.toLowerCase() == "marquee") {
    outparam.f_name         = node.name;
		outparam.f_behavior     = node.behavior;
		outparam.f_direction    = node.direction;
		outparam.f_text         = node.innerHTML;
		outparam.f_width	      = node.width;
		outparam.f_height	      = node.height;
		outparam.f_bgcolor      = node.bgColor;
		outparam.f_scrollamount = node.scrollAmount;
		outparam.f_scrolldelay  = node.scrollDelay;
	} else {
	outparam = {
    f_name    : '',
		f_behavior	: '',
		f_direction	: '',
		f_text		: '',
		f_width		: '',
		f_height	: '',
		f_bgcolor	: '',
		f_scrollamount	: '',
		f_scrolldelay	: ''
		};
	}
	editor._popupDialog( "plugin://InsertMarquee/insert_marquee", function( param )
	{
		if ( !param )
		{ //user must have pressed Cancel
			return false;
		} else if ( node.tagName.toLowerCase() == "marquee") {
        setAttr(node, "name", param["f_name"]);
        setAttr(node, "id", param["f_name"]);
				setAttr(node, "behavior",	param["f_behavior"]);
				setAttr(node, "direction", param["f_direction"]);
				setAttr(node, "width", param["f_width"]);
				setAttr(node, "height", param["f_height"]);
				setAttr(node, "bgColor", param["f_bgcolor"]);
				setAttr(node, "scrollAmount", param["f_scrollamount"]);
				setAttr(node, "scrollDelay", param["f_scrolldelay"]);
        node.innerHTML = param["f_text"];
		} else {
			var text = '<marquee name="' + param["f_name"] + '" ' +
          'id="' + param["f_name"] + '" ' + 
          'behavior="' + param["f_behavior"] + '" ' +
					'direction="' + param["f_direction"] + '" ' +
					'width="' + param["f_width"] + '" ' +
					'height="' + param["f_height"] + '" ' +
					'bgcolor="' + param["f_bgcolor"] + '" ' +
					'scrollamount="' + param["f_scrollamount"] + '" ' +
					'scrolldelay="' + param["f_scrolldelay"] + '">\n';
          alert(text);
			text = text + param["f_text"];
			text = text + '</marquee>';
			editor.insertHTML( text );
		}
	}, outparam);
};