/* javascript functions for wp-monalisa edit form */ /* diese funktion haengt die smilies an den vorhandenen im editor text an */ function smile2edit(textid,smile,replace) { var itext; var tedit = null; // einzufügenden text ermitteln if ( replace == 1) itext = ""; else itext = " " + smile + " "; // add space to separate smilies // editor objekt holen, falls vorhanden if ( typeof tinyMCE != "undefined" ) tedit = tinyMCE.get('content'); if ( tedit == null || tedit.isHidden() == true) { // text in html editor einfügen tarea = document.getElementById(textid); insert_text(itext, tarea); } else if ( (tedit.isHidden() == false) && window.tinyMCE) { // füge den text in den tinymce ein var tmce_ver=window.tinyMCE.majorVersion; if (tmce_ver=="4") { window.tinyMCE.execCommand('mceInsertContent', false, itext); } else { window.tinyMCE.execInstanceCommand('content', 'mceInsertContent', false, itext); } } } /* diese funktion fügt den text stxt an der aktuellen position des cursors der textarea obj ein. obj ist als objekt zu übergeben */ function smile2comment(textid,smile,replace,myid){ var tedit = null; // First try to find it top down tarea = top.document.getElementById(textid); // now try to find it bottom up if (tarea == null) { tarea = jQuery('#'+myid).parent().find('textarea')[0]; } if (tarea == null) { tarea = jQuery('#'+myid).parent().parent().find('textarea')[0]; } if (tarea == null) { tarea = jQuery('#'+myid).parent().parent().parent().find('textarea')[0]; } if (tarea == null) { tarea = jQuery('#'+myid).parent().parent().parent().parent().find('textarea')[0]; } if (tarea == null) { tarea = jQuery('#'+myid).parent().parent().parent().parent().parent().find('textarea')[0]; } if (tarea == null) { tarea = jQuery('#'+myid).parent().parent().parent().parent().parent().parent().find('textarea')[0]; } // for jetpack support #FIXME if (tarea == null) { tarea = jQuery('jetpack_remote_comment').contents().find('textarea')[1]; } // for rtmedia buddypress media plugin if (tarea == null) { tarea = jQuery('#comment_content')[0]; } if (tarea == null) { tarea = jQuery('#'+textid)[0]; } if (tarea == null) { tarea = jQuery('#bbp_topic_content')[0]; } // maybe we are using TinyMCE // editor objekt holen, falls vorhanden if ( typeof tinyMCE != "undefined" ) { teid=tinyMCE.activeEditor.editorId; // this is for bbPress with tinyMCE 4 if (typeof teid == "undefined") teid=tinyMCE.activeEditor.id; tedit = tinyMCE.get(teid); } if (tarea == null && tedit == null) { alert('wp-monalisa: Textarea not found. Please contact the webmaster of this site.'); return; } // calculate text to insert var itext=""; if ( replace == 1) itext="" + smile + ""; else itext=" " + smile + " "; // add space to separate smilies // insert text into editor and or textarea if ( tarea != null) { insert_text(itext, tarea); } if ( tedit != null && tedit.isHidden() == false) { var tmce_ver=window.tinyMCE.majorVersion; if (tmce_ver=="4") { window.tinyMCE.execCommand('mceInsertContent', false, itext); } else { window.tinyMCE.execInstanceCommand(teid, 'mceInsertContent', false, itext); } } } /* diese funktion fügt den text stxt an der aktuellen stelle des cursors der textarea obj ein. obj ist als objekt zu übergeben */ function insert_text(stxt,obj) { try { // pruefe of fckeditor aktiv ist entweder // als comment editor oder als text editor if(typeof window.CKEDITOR.instances.comment!='undefined') { // wenn ja, nutzen wir die fckeditor funktion // um den text einzufügen window.CKEDITOR.instances.comment.insertHtml(stxt); return; } if(typeof CKEDITOR.instances.content!='undefined') { // wenn ja, nutzen wir die fckeditor funktion // um den text einzufügen CKEDITOR.instances.content.insertHtml(stxt); return; } } catch(e) {} if(document.selection) { obj.focus(); document.selection.createRange().text=stxt; document.selection.createRange().select(); } else if (obj.selectionStart || obj.selectionStart == '0') { intStart = obj.selectionStart; intEnd = obj.selectionEnd; obj.value = (obj.value).substring(0, intStart) + stxt + (obj.value).substring(intEnd, obj.value.length); obj.selectionStart = obj.selectionEnd = intStart + stxt.length; obj.focus(); } else { obj.value += stxt; } } /* diese funktion(en) dient zum auf und zuklappen der gesamten smilies im comment form und zwar ajax-like */ /* does not work with bwp minify jQuery(function() { // show all smilies jQuery("#buttonm").click(function() { jQuery("#smiley1").toggle("slow"); jQuery("#smiley2").toggle("slow"); }); // hide all smilies jQuery("#buttonl").click(function() { jQuery("#smiley2").toggle("slow"); jQuery("#smiley1").toggle("slow"); }); }); */ // globale javascript variable um zu kontrollieren, dass jedes bild nur einmal geladen wird var wpml_first_preload=true; // globales array für die smileyliste var wpml_imglist = new Array(); // globales array für die html strings var wpml_more_html = new Array(); // startet das vorladen der smilies an, nach 2000ms jQuery(document).load( setTimeout( function() {wpml_preload();}, 2000)); // // diese funktion lädt die bilder im hintergrund genau einmal // die bilder urls stehen im array wpml_imglist // function wpml_preload() { if (wpml_first_preload) { var i=0; for (i = 0; i < wpml_imglist.length; i++) { var wpml_image = new Image(); wpml_image.src = wpml_imglist[i]; } wpml_first_preload=false; } } // // diese funktion fügt das vorbereitete html in das div ein // das html steht im array wpml_more_html // function wpml_more_smilies(muid) { if (jQuery('#smiley2-'+muid).html() == ' ' ) { jQuery('#smiley2-'+muid).html(unescape(wpml_more_html[muid])); } } function wpml_toggle_smilies(uid) { jQuery("#smiley1-"+uid).toggle("slow"); jQuery("#smiley2-"+uid).toggle("slow"); } //calls wpml_edit with a post call and the id of the post to disable comment smilies on //puts the returned string into the element with id message function wpml_comment_exclude(postid) { jQuery("#wpml_messages").html(''); // ajax call to itself jQuery.post("../wp-content/plugins/wp-monalisa/wpml_edit.php", {postid: postid}, function(data){jQuery("#wpml_messages").html(data);}); return false; } // // toggle smiley popup // function wpml_popup_toggle(id) { var dobj = document.getElementById(id).style.display; if (dobj == 'none') { document.getElementById(id).style.display='inline-block'; } else { document.getElementById(id).style.display='none'; } }