web/wp-admin/js/media-upload.dev.js
changeset 194 32102edaa81b
parent 136 bde1974c263b
--- a/web/wp-admin/js/media-upload.dev.js	Thu Sep 16 15:45:36 2010 +0000
+++ b/web/wp-admin/js/media-upload.dev.js	Mon Nov 19 18:26:13 2012 +0100
@@ -1,15 +1,32 @@
 // send html to the post editor
+
+var wpActiveEditor;
+
 function send_to_editor(h) {
-	var ed;
+	var ed, mce = typeof(tinymce) != 'undefined', qt = typeof(QTags) != 'undefined';
 
-	if ( typeof tinyMCE != 'undefined' && ( ed = tinyMCE.activeEditor ) && !ed.isHidden() ) {
-		ed.focus();
-		if ( tinymce.isIE )
-			ed.selection.moveToBookmark(tinymce.EditorManager.activeEditor.windowManager.bookmark);
+	if ( !wpActiveEditor ) {
+		if ( mce && tinymce.activeEditor ) {
+			ed = tinymce.activeEditor;
+			wpActiveEditor = ed.id;
+		} else if ( !qt ) {
+			return false;
+		}
+	} else if ( mce ) {
+		if ( tinymce.activeEditor && (tinymce.activeEditor.id == 'mce_fullscreen' || tinymce.activeEditor.id == 'wp_mce_fullscreen') )
+			ed = tinymce.activeEditor;
+		else
+			ed = tinymce.get(wpActiveEditor);
+	}
+
+	if ( ed && !ed.isHidden() ) {
+		// restore caret position on IE
+		if ( tinymce.isIE && ed.windowManager.insertimagebookmark )
+			ed.selection.moveToBookmark(ed.windowManager.insertimagebookmark);
 
 		if ( h.indexOf('[caption') === 0 ) {
-			if ( ed.plugins.wpeditimage )
-				h = ed.plugins.wpeditimage._do_shcode(h);
+			if ( ed.wpSetImgCaption )
+				h = ed.wpSetImgCaption(h);
 		} else if ( h.indexOf('[gallery') === 0 ) {
 			if ( ed.plugins.wpgallery )
 				h = ed.plugins.wpgallery._do_gallery(h);
@@ -19,28 +36,30 @@
 		}
 
 		ed.execCommand('mceInsertContent', false, h);
-
-	} else if ( typeof edInsertContent == 'function' ) {
-		edInsertContent(edCanvas, h);
+	} else if ( qt ) {
+		QTags.insertContent(h);
 	} else {
-		jQuery( edCanvas ).val( jQuery( edCanvas ).val() + h );
+		document.getElementById(wpActiveEditor).value += h;
 	}
 
-	tb_remove();
+	try{tb_remove();}catch(e){};
 }
 
 // thickbox settings
 var tb_position;
 (function($) {
 	tb_position = function() {
-		var tbWindow = $('#TB_window'), width = $(window).width(), H = $(window).height(), W = ( 720 < width ) ? 720 : width;
+		var tbWindow = $('#TB_window'), width = $(window).width(), H = $(window).height(), W = ( 720 < width ) ? 720 : width, adminbar_height = 0;
+
+		if ( $('body.admin-bar').length )
+			adminbar_height = 28;
 
 		if ( tbWindow.size() ) {
-			tbWindow.width( W - 50 ).height( H - 45 );
-			$('#TB_iframeContent').width( W - 50 ).height( H - 75 );
+			tbWindow.width( W - 50 ).height( H - 45 - adminbar_height );
+			$('#TB_iframeContent').width( W - 50 ).height( H - 75 - adminbar_height );
 			tbWindow.css({'margin-left': '-' + parseInt((( W - 50 ) / 2),10) + 'px'});
 			if ( typeof document.body.style.maxWidth != 'undefined' )
-				tbWindow.css({'top':'20px','margin-top':'0'});
+				tbWindow.css({'top': 20 + adminbar_height + 'px','margin-top':'0'});
 		};
 
 		return $('a.thickbox').each( function() {
@@ -48,19 +67,22 @@
 			if ( ! href ) return;
 			href = href.replace(/&width=[0-9]+/g, '');
 			href = href.replace(/&height=[0-9]+/g, '');
-			$(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 ) );
+			$(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 - adminbar_height ) );
 		});
 	};
 
 	$(window).resize(function(){ tb_position(); });
 
-})(jQuery);
+	// store caret position in IE
+	$(document).ready(function($){
+		$('a.thickbox').click(function(){
+			var ed;
 
-jQuery(document).ready(function($){
-	$('a.thickbox').click(function(){
-		if ( typeof tinyMCE != 'undefined' && tinyMCE.activeEditor ) {
-			tinyMCE.get('content').focus();
-			tinyMCE.activeEditor.windowManager.bookmark = tinyMCE.activeEditor.selection.getBookmark('simple');
-		}
+			if ( typeof(tinymce) != 'undefined' && tinymce.isIE && ( ed = tinymce.get(wpActiveEditor) ) && !ed.isHidden() ) {
+				ed.focus();
+				ed.windowManager.insertimagebookmark = ed.selection.getBookmark();
+			}
+		});
 	});
-});
+
+})(jQuery);