]> git.donarmstrong.com Git - roundcube.git/blobdiff - program/js/tiny_mce/plugins/searchreplace/jscripts/searchreplace.js
Imported Upstream version 0.1~rc2
[roundcube.git] / program / js / tiny_mce / plugins / searchreplace / jscripts / searchreplace.js
diff --git a/program/js/tiny_mce/plugins/searchreplace/jscripts/searchreplace.js b/program/js/tiny_mce/plugins/searchreplace/jscripts/searchreplace.js
new file mode 100644 (file)
index 0000000..ac6cdf6
--- /dev/null
@@ -0,0 +1,86 @@
+function init() {\r
+       tinyMCEPopup.resizeToInnerSize();\r
+\r
+       // start with appropiate tab\r
+       var task = (tinyMCE.getWindowArg("replacestring") != null) ? "replace" : "search";\r
+       mcTabs.displayTab(task + '_tab', task +'_panel');\r
+       manageReplaceButtons();\r
+       \r
+       var formObj = document.forms[0];\r
+\r
+       formObj[task + "_panel_searchstring"].value = tinyMCE.getWindowArg("searchstring");\r
+       formObj["replace_panel_replacestring"].value = (tinyMCE.getWindowArg("replacestring") != null) ? tinyMCE.getWindowArg("replacestring") : "";\r
+       formObj[task + "_panel_casesensitivebox"].checked = tinyMCE.getWindowArg("casesensitive");\r
+       formObj[task + "_panel_backwardsu"].checked = tinyMCE.getWindowArg("backwards");\r
+       formObj[task + "_panel_backwardsd"].checked = !tinyMCE.getWindowArg("backwards");\r
+}\r
+\r
+function searchNext(replacemode) {\r
+       // "search" or "replace" mode of operation?\r
+       var task = (document.getElementById("search_tab").className == "current") ? "search" : "replace";\r
+\r
+       var formObj = document.forms[0];\r
+\r
+       if (task == "replace") {\r
+               // Whats the point?\r
+               if (formObj[task + "_panel_searchstring"].value == "" || formObj[task + "_panel_searchstring"].value == formObj[task + "_panel_replacestring"].value)\r
+                       return false;\r
+       }\r
+\r
+       // Do search\r
+       tinyMCEPopup.execCommand('mceSearch', false, { \r
+               string : formObj[task + "_panel_searchstring"].value,\r
+               replacestring : formObj["replace_panel_replacestring"].value,\r
+               replacemode : replacemode,\r
+               casesensitive : formObj[task + "_panel_casesensitivebox"].checked,\r
+               backwards : formObj[task + "_panel_backwardsu"].checked,\r
+               win : window\r
+               }, false);\r
+\r
+       window.focus();\r
+\r
+       return false;\r
+}\r
+\r
+function cancelAction() {\r
+       tinyMCEPopup.close();\r
+}\r
+\r
+function manageReplaceButtons() {\r
+       // "search" or "replace" mode of operation?\r
+       var task = (document.getElementById("search_tab").className == "current") ? "search" : "replace";\r
+       document.getElementById("replace_buttons").style.visibility = (task == "replace") ? "visible" : "hidden";\r
+}\r
+\r
+function copyValues(link) {\r
+       // check if tab is already active\r
+       var tab = link;\r
+       while (tab.tagName && tab.tagName.toLowerCase() != "li") tab = tab.parentNode;\r
+       if (tab.className) return false; // tab is already active -> no need to copy any values!\r
+\r
+       // copy values from one panel to the other (if they exist there)\r
+       var from_panel_name = tab.id.match(/^search/i) ? "replace_panel" : "search_panel";\r
+       var to_panel_name = (from_panel_name == "search_panel") ? "replace_panel" : "search_panel";\r
+\r
+       // find all elements with IDs to copy their values\r
+       var elms = document.getElementById(from_panel_name).getElementsByTagName("*");\r
+       for (var i = 0; i < elms.length; i++) {\r
+               if (elms[i].id && elms[i].id != "") {\r
+                       var checked = "undefined";\r
+                       if (elms[i].type.toLowerCase() == "checkbox" || elms[i].type.toLowerCase() == "radio")\r
+                               checked = elms[i].checked;\r
+\r
+                       // copy values if element exists in other panel\r
+                       var to_elm_name = to_panel_name + elms[i].id.substring(from_panel_name.length, elms[i].id.length);\r
+                       var to_elm = document.getElementById(to_elm_name);\r
+                       if (to_elm) {\r
+                               if (checked != "undefined")\r
+                                       to_elm.checked = checked;\r
+                               else\r
+                                       to_elm.value = elms[i].value;\r
+                       }\r
+               }\r
+       }\r
+\r
+       return false;\r
+}
\ No newline at end of file