| Current Path : /home/s/u/n/sunflowe/www2/j15/plugins/editors/jce/tiny_mce/plugins/hsexpander/js/ |
| 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);