1e141b84a776cbb16e91871160e789b16d7189a2.svn-base 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // ================================================================
  2. // CHEditor 5
  3. // ================================================================
  4. var oEditor = null,
  5. button = [
  6. { alt : "", img : 'submit.gif', cmd : returnSelected },
  7. { alt : "", img : 'cancel.gif', cmd : popupClose }
  8. ];
  9. function resetValues() {
  10. document.getElementById('fm_link_value').value = 'http://';
  11. document.getElementById("fm_title").value = '';
  12. }
  13. function popupClose() {
  14. oEditor.popupWinCancel();
  15. }
  16. function updateProtocol() {
  17. var selectedItem = protocolSel.selectedIndex,
  18. selectedItemValue = protocolSel.options[selectedItem].value,
  19. inputtedText = document.getElementById("fm_link_value").value,
  20. datum,
  21. protocol = inputtedText.split(":");
  22. if (protocol[1]) {
  23. datum = protocol[1].replace(/^\/\//, "");
  24. datum = datum.replace(/\\/, "");
  25. datum = datum.replace(/^\//, "");
  26. } else {
  27. if (inputtedText.indexOf(":") > 0) {
  28. datum = "";
  29. } else {
  30. datum = protocol[0].replace(/^\/\/\//, "//");
  31. }
  32. }
  33. document.getElementById("fm_link_value").value = selectedItemValue + datum;
  34. document.getElementById("fm_link_value").focus();
  35. }
  36. function returnSelected() {
  37. var text, target = '', title = '';
  38. if (document.getElementById("fm_link_value").value !== "") {
  39. text = document.getElementById("fm_link_value").value;
  40. } else {
  41. alert("링크 URL을 입력하여 주십시오.");
  42. return false;
  43. }
  44. if (document.getElementById("fm_target").value !== "") {
  45. target = document.getElementById("fm_target").value;
  46. }
  47. if (document.getElementById("fm_title").value !== "") {
  48. title = document.getElementById("fm_title").value;
  49. }
  50. if ((/^(http|https|file|ftp|mailto|gopher|news|telnet|):\/\//i.test(text)) === false &&
  51. (/^(wias|javascript):/i.test(text) === false))
  52. {
  53. text = "http://" + text;
  54. }
  55. oEditor.hyperLink(text, target, title);
  56. oEditor.popupWinClose();
  57. }
  58. function getSelected() {
  59. var rng = oEditor.range, link = null, protocol, protocolSel, i, oldTarget, targetSel, j;
  60. if (window.getSelection) {
  61. link = oEditor.getElement(rng.startContainer, "A");
  62. } else {
  63. link = rng.parentElement ? oEditor.getElement(rng.parentElement(), "A") : oEditor.getElement(rng.item(0), "A");
  64. }
  65. if (link === null || link.nodeName.toLowerCase() !== 'a') {
  66. return;
  67. }
  68. protocol = link.href.split(":");
  69. if (protocol[0]) {
  70. protocolSel = document.getElementById("fm_protocol");
  71. for (i = 0; i < protocolSel.length; i++) {
  72. if (protocolSel[i].value.indexOf(protocol[0].toLowerCase()) !== -1) {
  73. oldTarget = link.target;
  74. targetSel = document.getElementById("fm_target");
  75. if (oldTarget) {
  76. for (j = 0; j < targetSel.length; j++) {
  77. if (targetSel[j].value === oldTarget.toLowerCase()) {
  78. targetSel[j].selected = true;
  79. break;
  80. }
  81. }
  82. } else {
  83. targetSel[0].selected = true;
  84. }
  85. protocolSel[i].selected = true;
  86. if (link.title) {
  87. document.getElementById("fm_title").value = link.title;
  88. }
  89. break;
  90. }
  91. }
  92. }
  93. document.getElementById("fm_link_value").value = link.href;
  94. }
  95. function init(dialog) {
  96. oEditor = this;
  97. oEditor.dialog = dialog;
  98. resetValues();
  99. getSelected();
  100. var dlg = new Dialog(oEditor);
  101. dlg.showButton(button);
  102. dlg.setDialogHeight();
  103. }