Your IP : 216.73.216.240


Current Path : /home/s/u/n/sunflowe/www2/j15/plugins/editors/jce/tiny_mce/plugins/hsexpander/js/
Upload File :
Current File : /home/s/u/n/sunflowe/www2/j15/plugins/editors/jce/tiny_mce/plugins/hsexpander/js/hsexpander.js

var HsExpanderDialog = {
	preInit : function() {
		tinyMCEPopup.requireLangPack();
	},
	init : function() {
		var ed = tinyMCEPopup.editor, n = ed.selection.getNode(), action = 'insert';
		tinyMCEPopup.resizeToInnerSize();

		dom.html('hrefbrowsercontainer', TinyMCE_Utils.getBrowserHTML('hrefbrowser','href','file','hsexpander'));
		dom.html('psrcbrowsercontainer', TinyMCE_Utils.getBrowserHTML('psrcbrowser','psrc','file','hsexpander'));
		dom.html('srcbrowsercontainer', TinyMCE_Utils.getBrowserHTML('srcbrowser','src','file','hsexpander'));

		var im = null;

		if (n != null && n.nodeName == "IMG") {
			im = n;
		}
		el = ed.dom.getParent(n, "A");
		if (el != null && el.nodeName == "A"){
			action = "update";
		}

		// Init plugin
		this.HsExpander = initHsExpander();


		var target = '';/*HsExpander.getParam('target');*/
		if(target == 'default') target = '';

		dom.value('insert', tinyMCEPopup.getLang(action, 'Insert', true));

		if (action == "update") {
			var href = ed.documentBaseURI.toRelative(ed.dom.getAttrib(el, 'href'));
			// Setup form data
			dom.value('href', href);
			dom.value('title', ed.dom.getAttrib(el, 'title'));
			dom.value('id', ed.dom.getAttrib(el, 'id'));
			dom.value('style', ed.dom.getAttrib(el, "style"));
			dom.value('onclick', ed.dom.getAttrib(el, 'onclick'));
			dom.value('onmouseover', ed.dom.getAttrib(el, 'onmouseover'));
		}

		if (im != null) {
			dom.value('src', ed.dom.getAttrib(im,'src'));
			dom.value('imgtitle', ed.dom.getAttrib(im,'title'));
			dom.value('imgstyle', ed.dom.getAttrib(im,'style'));
			dom.value('imgid', ed.dom.getAttrib(im,'id' ));
			dom.value('alt', ed.dom.getAttrib(im,'alt' ));
			dom.value('height', ed.dom.getAttrib(im,'height'));
			dom.value('width', ed.dom.getAttrib(im,'width'));
		}

		this.setHsValues();

		if (dom.value('captionid') != '') {
			var divobj = ed.dom.get(dom.value('captionid'));
			if (divobj != null && divobj.nodeName == "DIV" && ed.dom.getAttrib( divobj, 'class') == 'highslide-caption') {
				dom.value('caption', divobj.innerHTML );
				dom.value('captionstyle', ed.dom.getAttrib( divobj, 'style' ));
				dom.value('origcaptionid', dom.value('captionid'));
			}
		}

		TinyMCE_EditableSelects.init();
		window.focus();
	},
	setHsValues : function(){
		var onclick = dom.value('onclick');
		var onmouseover = dom.value('onmouseover');

		if (onclick != null && onclick.indexOf('return hs.') != -1)
		{
			var onclickprop = onclick.match(/([A-Za-z])*:\s*([^,}])*/g);

			if (onclickprop != null)
			{
				for (i = 0; i < onclickprop.length; i++)
				{
					var prop = onclickprop[i].split(":",2);
					if (prop.length == 2)
					{
						var propvalu = prop[1].replace(/\'/g,"");
						while (propvalu.charAt(0) == ' ')
						{
					    	propvalu = propvalu.substr(1);
						}

						switch( prop[0] )
						{
							case "align":
								dom.value('align', propvalu );
								break;
							case "anchor":
								dom.value('anchor', propvalu );
								break;
							case "easing":
								dom.value('easing', propvalu );
								break;
							case "easingClose":
								dom.value('easingclose', propvalu );
								break;
							case "allowSizeReduction":
								dom.value('allowsizereduction', propvalu );
								break;
							case "fadeInOut":
								dom.value('fadeinout', propvalu );
								break;
							case "outlineWhileAnimating":
								dom.value('outlinewhileanimating', propvalu );
								break;
							case "outlineType":
								dom.value('outlinetype', propvalu );
								break;
							case "minWidth":
								dom.value('minwidth', propvalu );
								break;
							case "minHeight":
								dom.value('minheight', propvalu );
								break;
							case "targetX":
								dom.value('targetx', propvalu );
								break;
							case "targetY":
								dom.value('targety', propvalu );
								break;
							case "wrapperClassName":
								dom.value('wrapperclass', propvalu );
								break;
							case "src":
								dom.value('psrc', propvalu );
								break;
							case "captionId":
								dom.value('captionid', propvalu );
								break;
							case "spaceForCaption":
								dom.value('spaceforcaption', propvalu );
								break;
							case "slideshowGroup":
								dom.value('slideshowgroup', propvalu );
								break;
							case "overlayId":
								dom.value('overlayid', propvalu );
								break;
							case "fade":
								dom.value('fade', propvalu );
								break;
							case "position":
								dom.value('position', propvalu );
								break;
							case "hideOnMouseOut":
								dom.value('hideonmouseout', propvalu );
								break;
							case "opacity":
								dom.value('opacity', propvalu );
								break;
							case "dimmingOpacity":
								dom.value('dimmingopacity', propvalu );
								break;
							case "captionText":
								dom.value('captiontext', propvalu );
								break;
							default:
								break;
						}
					}
				}
			}
		}
		if (onmouseover != null && onmouseover.indexOf('return this.onclick()') != -1)
		{
			dom.value('openonhover', 'yes' );
		}
		else
		{
			dom.value('openonhover', 'no');
		}
	},
	buildHsOnMouseOver : function(){
		if ((v=dom.value('openonhover')) == 'yes')
		{
			dom.value('onmouseover', 'return this.onclick()' );
		}
		else
		{
			dom.value('onmouseover', '' );
		}
	},
	buildHsOnClick : function(){
		var ed = tinyMCEPopup.editor;
		var onclick = "return hs.expand(this";
		var onclickopts = "";
		var onclickcustomopts = "";
		var v;

		if ((v=dom.value('align')) != "")
		{
			onclickopts += "align: ";
			onclickopts += "'" + v + "'";
		}
		if ((v=dom.value('anchor')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "anchor: '" + v + "'";
		}
		if ((v=dom.value('easing')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "easing: '" + v + "'";
		}
		if ((v=dom.value('easingclose')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "easingClose: '" + v + "'";
		}
		if ((v=dom.value('allowsizereduction')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "allowSizeReduction: " + v;
		}
		if ((v=dom.value('fadeinout')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "fadeInOut: " + v;
		}
		if ((v=dom.value('outlinewhileanimating')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "outlineWhileAnimating: " + v;
		}
		if ((v=dom.value('outlinetype')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			if (v == 'null')
			{
				onclickopts += "outlineType: " + v;
			}
			else
			{
				onclickopts += "outlineType: '" + v + "'";
			}
		}
		if ((v=dom.value('minwidth')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "minWidth: " + v;
		}
		if ((v=dom.value('minheight')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "minHeight: " + v;
		}
		if ((v=dom.value('targetx')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "targetX: '" + v + "'";
		}
		if ((v=dom.value('targety')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "targetY: '" + v + "'";
		}
		if ((v=dom.value('wrapperclass')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "wrapperClassName: '" + v + "'";
		}
		if ((v=dom.value('psrc')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			v	= new tinymce.util.URI(ed.getParam('document_base_url')).toAbsolute(v,true);
			onclickopts += "src: '" + v + "'";
		}
		if ((v=dom.value('captionid')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "captionId: '" + v + "'";
		}
		if ((v=dom.value('spaceforcaption')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "spaceForCaption: " + v;
		}
		if ((v=dom.value('slideshowgroup')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "slideshowGroup: '" + v + "'";
		}
		if ((v=dom.value('dimmingopacity')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "dimmingOpacity: " + v;
		}
		if ((v=dom.value('captiontext')) != "")
		{
			onclickopts += (onclickopts.length > 0) ? ", " : "";
			onclickopts += "captionText: '" + v + "'";
		}
		if ((v=dom.value('overlayid')) != "")
		{
			onclickcustomopts += "overlayId: ";
			onclickcustomopts += "'" + v + "'";

			onclickcustomopts += ", fade: ";
			if ((v=dom.value('fade')) != "")
			{
				onclickcustomopts += v;
			}
			else
			{
				onclickcustomopts += "1";
			}
			onclickcustomopts += ", position: ";
			if ((v=dom.value('position')) != "")
			{
				onclickcustomopts += "'" + v + "'";
			}
			else
			{
				onclickcustomopts += "'top right'";
			}

			onclickcustomopts += ", hideOnMouseOut: ";
			if ((v=dom.value('hideonmouseout')) != "")
			{
				onclickcustomopts += v;
			}
			else
			{
				onclickcustomopts += "true";
			}

			onclickcustomopts += ", opacity: ";
			if ((v=dom.value('opacity')) != "")
			{
				onclickcustomopts += v;
			}
			else
			{
				onclickcustomopts += "1";
			}
		}

		if (onclickopts != "")
			onclick += ",{" + onclickopts + "}";

		if (onclickcustomopts != "")
		{
			if (onclickopts == "")
			{
				onclick += ",null";
			}
			onclick += ",{" + onclickcustomopts + "}";
		}
		onclick += ")"
		dom.value('onclick', onclick );
	},
	insert : function(){
		var ed = tinyMCEPopup.editor, el = null, elementArray, i, args = {};
		var n = ed.selection.getNode(), imargs = {}, divargs = {}, br = '';

		this.buildHsOnClick();
		this.buildHsOnMouseOver();

		tinymce.extend(args, {
			href 		: dom.value('href'),
			title 		: dom.value('title'),
			id 			: dom.value('id'),
			style 		: dom.value('style'),
			'class' 	: 'highslide',
			onclick 	: dom.value('onclick'),
			onmouseover : dom.value('onmouseover')
		});

		tinymce.extend(imargs, {
			src 		: dom.value('src'),
			title 		: dom.value('imgtitle'),
			id 			: dom.value('imgid'),
			style 		: dom.value('imgstyle'),
			alt			: dom.value('alt'),
			height		: dom.value('height'),
			width		: dom.value('width')
		});

		tinymce.extend(divargs, {
			id 			: dom.value('captionid'),
			style 		: dom.value('captionstyle'),
			'class'		: 'highslide-caption'
		});

		n = ed.selection.getNode();
		tinyMCEPopup.execCommand("mceBeginUndoLevel");

		if (n && n.nodeName == 'IMG')
		{
			//	update img
			ed.dom.setAttribs(n, imargs);
		}
		else
		{
			var content = '<a href=#mce_temp_url#><img id="__mce_tmp" src="javascript:;" /></a>';

			//	insert anchor/img
			ed.execCommand('mceInsertContent', false, content);
			elementArray = tinymce.grep(ed.dom.select("img"), function(n) {return ed.dom.getAttrib(n, 'id') == '__mce_tmp';});
			for (i=0; i<elementArray.length; i++)
			{
				n = elementArray[i];

				// Make active selection
				try
				{
					tinyMCEPopup.editor.selection.collapse(false);
				}
				catch (ex)
				{
					// Ignore
				}
				ed.dom.setAttribs( n, imargs);
			}
		}

		el = ed.dom.getParent(n, "A");

		// Create new anchor elements
		if (el == null)
		{
			tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#");
			elementArray = tinymce.grep(ed.dom.select("a"), function(n) {return ed.dom.getAttrib(n, 'href') == '#mce_temp_url#';});
			for (i=0; i<elementArray.length; i++)
			{
				el = elementArray[i];

				// Move cursor to end
				try
				{
					tinyMCEPopup.editor.selection.collapse(false);
				}
				catch (ex)
				{
					// Ignore
				}
				ed.dom.setAttribs(el, args);
			}
		}
		else
		{
			ed.dom.setAttribs(el, args);
		}

		if (dom.value('captionid') != '')
		{
			var divel = ed.dom.get(dom.value('captionid'));

			if (divel == null)
			{
				try
				{
					tinyMCEPopup.editor.selection.collapse(false);
					var ele = ed.dom.create( "DIV", divargs, dom.value('caption') );
					tinyMCEPopup.editor.selection.setNode( ele );
				}
				catch (ex)
				{
					// Ignore
				}
			}
			else
			{
				if (divel.nodeName == "DIV" && ed.dom.getAttrib( divel, 'class') == 'highslide-caption') {
					ed.dom.setAttribs( divel, divargs );
					ed.dom.setHTML( divel, dom.value( 'caption' ));
				}
			}
		}

		if (dom.value('origcaptionid') != '' && dom.value('origcaptionid') != dom.value('captionid'))
		{
			var origcaptionid = dom.value('origcaptionid' );
			ed.dom.remove( origcaptionid );
		}
		tinyMCEPopup.execCommand("mceEndUndoLevel");
		tinyMCEPopup.close();
	}
}
var HsExpander = Plugin.extend({
	moreOptions : function(){
		return {};
	},
	initialize : function(options){
		this.setOptions(this.moreOptions(), options);
		this.parent('HsExpander', this.options);
	}
});
HsExpander.implement(new Events, new Options);
HsExpanderDialog.preInit();
tinyMCEPopup.onInit.add(HsExpanderDialog.init, HsExpanderDialog);