includes/clientside/tinymce/plugins/searchreplace/jscripts/searchreplace.js
changeset 335 67bd3121a12e
parent 334 c72b545f1304
child 336 bfa2e9c23f03
equal deleted inserted replaced
334:c72b545f1304 335:67bd3121a12e
     1 function init() {
       
     2 	tinyMCEPopup.resizeToInnerSize();
       
     3 
       
     4 	// start with appropiate tab
       
     5 	var task = (tinyMCE.getWindowArg("replacestring") != null) ? "replace" : "search";
       
     6 	mcTabs.displayTab(task + '_tab', task +'_panel');
       
     7 	manageReplaceButtons();
       
     8 	
       
     9 	var formObj = document.forms[0];
       
    10 
       
    11 	formObj[task + "_panel_searchstring"].value = tinyMCE.getWindowArg("searchstring");
       
    12 	formObj["replace_panel_replacestring"].value = (tinyMCE.getWindowArg("replacestring") != null) ? tinyMCE.getWindowArg("replacestring") : "";
       
    13 	formObj[task + "_panel_casesensitivebox"].checked = tinyMCE.getWindowArg("casesensitive");
       
    14 	formObj[task + "_panel_backwardsu"].checked = tinyMCE.getWindowArg("backwards");
       
    15 	formObj[task + "_panel_backwardsd"].checked = !tinyMCE.getWindowArg("backwards");
       
    16 }
       
    17 
       
    18 function searchNext(replacemode) {
       
    19 	// "search" or "replace" mode of operation?
       
    20 	var task = (document.getElementById("search_tab").className == "current") ? "search" : "replace";
       
    21 
       
    22 	var formObj = document.forms[0];
       
    23 
       
    24 	if (task == "replace") {
       
    25 		// Whats the point?
       
    26 		if (formObj[task + "_panel_searchstring"].value == "" || formObj[task + "_panel_searchstring"].value == formObj[task + "_panel_replacestring"].value)
       
    27 			return false;
       
    28 	}
       
    29 
       
    30 	// Do search
       
    31 	tinyMCEPopup.execCommand('mceSearch', false, { 
       
    32 		string : formObj[task + "_panel_searchstring"].value,
       
    33 		replacestring : formObj["replace_panel_replacestring"].value,
       
    34 		replacemode : replacemode,
       
    35 		casesensitive : formObj[task + "_panel_casesensitivebox"].checked,
       
    36 		backwards : formObj[task + "_panel_backwardsu"].checked,
       
    37 		win : window
       
    38 		}, false);
       
    39 
       
    40 	window.focus();
       
    41 
       
    42 	return false;
       
    43 }
       
    44 
       
    45 function cancelAction() {
       
    46 	tinyMCEPopup.close();
       
    47 }
       
    48 
       
    49 function manageReplaceButtons() {
       
    50 	// "search" or "replace" mode of operation?
       
    51 	var task = (document.getElementById("search_tab").className == "current") ? "search" : "replace";
       
    52 	document.getElementById("replace_buttons").style.visibility = (task == "replace") ? "visible" : "hidden";
       
    53 }
       
    54 
       
    55 function copyValues(link) {
       
    56 	// check if tab is already active
       
    57 	var tab = link;
       
    58 	while (tab.tagName && tab.tagName.toLowerCase() != "li") tab = tab.parentNode;
       
    59 	if (tab.className) return false; // tab is already active -> no need to copy any values!
       
    60 
       
    61 	// copy values from one panel to the other (if they exist there)
       
    62 	var from_panel_name = tab.id.match(/^search/i) ? "replace_panel" : "search_panel";
       
    63 	var to_panel_name = (from_panel_name == "search_panel") ? "replace_panel" : "search_panel";
       
    64 
       
    65 	// find all elements with IDs to copy their values
       
    66 	var elms = document.getElementById(from_panel_name).getElementsByTagName("*");
       
    67 	for (var i = 0; i < elms.length; i++) {
       
    68 		if (elms[i].id && elms[i].id != "") {
       
    69 			var checked = "undefined";
       
    70 			if (elms[i].type.toLowerCase() == "checkbox" || elms[i].type.toLowerCase() == "radio")
       
    71 				checked = elms[i].checked;
       
    72 
       
    73 			// copy values if element exists in other panel
       
    74 			var to_elm_name = to_panel_name + elms[i].id.substring(from_panel_name.length, elms[i].id.length);
       
    75 			var to_elm = document.getElementById(to_elm_name);
       
    76 			if (to_elm) {
       
    77 				if (checked != "undefined")
       
    78 					to_elm.checked = checked;
       
    79 				else
       
    80 					to_elm.value = elms[i].value;
       
    81 			}
       
    82 		}
       
    83 	}
       
    84 
       
    85 	return false;
       
    86 }