1
|
<!-- based on insimage.dlg -->
|
2
|
|
3
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML 3.2//EN">
|
4
|
<HTML id=dlgImage STYLE="width: 432px; height: 194px; ">
|
5
|
<HEAD>
|
6
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
7
|
<meta http-equiv="MSThemeCompatible" content="Yes">
|
8
|
<TITLE>Insert Image</TITLE>
|
9
|
<style>
|
10
|
html, body, button, div, input, select, fieldset { font-family: MS Shell Dlg; font-size: 8pt; position: absolute; };
|
11
|
</style>
|
12
|
<SCRIPT defer>
|
13
|
|
14
|
function _CloseOnEsc() {
|
15
|
if (event.keyCode == 27) { window.close(); return; }
|
16
|
}
|
17
|
|
18
|
function _getTextRange(elm) {
|
19
|
var r = elm.parentTextEdit.createTextRange();
|
20
|
r.moveToElementText(elm);
|
21
|
return r;
|
22
|
}
|
23
|
|
24
|
window.onerror = HandleError
|
25
|
|
26
|
function HandleError(message, url, line) {
|
27
|
var str = "An error has occurred in this dialog." + "\n\n"
|
28
|
+ "Error: " + line + "\n" + message;
|
29
|
alert(str);
|
30
|
window.close();
|
31
|
return true;
|
32
|
}
|
33
|
|
34
|
function Init() {
|
35
|
var elmSelectedImage;
|
36
|
var htmlSelectionControl = "Control";
|
37
|
var globalDoc = window.dialogArguments;
|
38
|
var grngMaster = globalDoc.selection.createRange();
|
39
|
|
40
|
// event handlers
|
41
|
document.body.onkeypress = _CloseOnEsc;
|
42
|
btnOK.onclick = new Function("btnOKClick()");
|
43
|
|
44
|
txtFileName.fImageLoaded = false;
|
45
|
txtFileName.intImageWidth = 0;
|
46
|
txtFileName.intImageHeight = 0;
|
47
|
|
48
|
if (globalDoc.selection.type == htmlSelectionControl) {
|
49
|
if (grngMaster.length == 1) {
|
50
|
elmSelectedImage = grngMaster.item(0);
|
51
|
if (elmSelectedImage.tagName == "IMG") {
|
52
|
txtFileName.fImageLoaded = true;
|
53
|
if (elmSelectedImage.src) {
|
54
|
txtFileName.value = elmSelectedImage.src.replace(/^[^*]*(\*\*\*)/, "$1"); // fix placeholder src values that editor converted to abs paths
|
55
|
txtFileName.intImageHeight = elmSelectedImage.height;
|
56
|
txtFileName.intImageWidth = elmSelectedImage.width;
|
57
|
txtVertical.value = elmSelectedImage.vspace;
|
58
|
txtHorizontal.value = elmSelectedImage.hspace;
|
59
|
txtBorder.value = elmSelectedImage.border;
|
60
|
txtAltText.value = elmSelectedImage.alt;
|
61
|
selAlignment.value = elmSelectedImage.align;
|
62
|
}
|
63
|
}
|
64
|
}
|
65
|
}
|
66
|
txtFileName.value = txtFileName.value || "http://";
|
67
|
txtFileName.focus();
|
68
|
}
|
69
|
|
70
|
function _isValidNumber(txtBox) {
|
71
|
var val = parseInt(txtBox);
|
72
|
if (isNaN(val) || val < 0 || val > 999) { return false; }
|
73
|
return true;
|
74
|
}
|
75
|
|
76
|
function btnOKClick() {
|
77
|
var elmImage;
|
78
|
var intAlignment;
|
79
|
var htmlSelectionControl = "Control";
|
80
|
var globalDoc = window.dialogArguments;
|
81
|
var grngMaster = globalDoc.selection.createRange();
|
82
|
|
83
|
// error checking
|
84
|
|
85
|
if (!txtFileName.value || txtFileName.value == "http://") {
|
86
|
alert("Image URL must be specified.");
|
87
|
txtFileName.focus();
|
88
|
return;
|
89
|
}
|
90
|
if (txtHorizontal.value && !_isValidNumber(txtHorizontal.value)) {
|
91
|
alert("Horizontal spacing must be a number between 0 and 999.");
|
92
|
txtHorizontal.focus();
|
93
|
return;
|
94
|
}
|
95
|
if (txtBorder.value && !_isValidNumber(txtBorder.value)) {
|
96
|
alert("Border thickness must be a number between 0 and 999.");
|
97
|
txtBorder.focus();
|
98
|
return;
|
99
|
}
|
100
|
if (txtVertical.value && !_isValidNumber(txtVertical.value)) {
|
101
|
alert("Vertical spacing must be a number between 0 and 999.");
|
102
|
txtVertical.focus();
|
103
|
return;
|
104
|
}
|
105
|
|
106
|
// delete selected content and replace with image
|
107
|
if (globalDoc.selection.type == htmlSelectionControl && !txtFileName.fImageLoaded) {
|
108
|
grngMaster.execCommand('Delete');
|
109
|
grngMaster = globalDoc.selection.createRange();
|
110
|
}
|
111
|
|
112
|
idstr = "\" id=\"556e697175657e537472696e67"; // new image creation ID
|
113
|
if (!txtFileName.fImageLoaded) {
|
114
|
grngMaster.execCommand("InsertImage", false, idstr);
|
115
|
elmImage = globalDoc.all['556e697175657e537472696e67'];
|
116
|
elmImage.removeAttribute("id");
|
117
|
elmImage.removeAttribute("src");
|
118
|
grngMaster.moveStart("character", -1);
|
119
|
} else {
|
120
|
elmImage = grngMaster.item(0);
|
121
|
if (elmImage.src != txtFileName.value) {
|
122
|
grngMaster.execCommand('Delete');
|
123
|
grngMaster = globalDoc.selection.createRange();
|
124
|
grngMaster.execCommand("InsertImage", false, idstr);
|
125
|
elmImage = globalDoc.all['556e697175657e537472696e67'];
|
126
|
elmImage.removeAttribute("id");
|
127
|
elmImage.removeAttribute("src");
|
128
|
grngMaster.moveStart("character", -1);
|
129
|
txtFileName.fImageLoaded = false;
|
130
|
}
|
131
|
grngMaster = _getTextRange(elmImage);
|
132
|
}
|
133
|
|
134
|
if (txtFileName.fImageLoaded) {
|
135
|
elmImage.style.width = txtFileName.intImageWidth;
|
136
|
elmImage.style.height = txtFileName.intImageHeight;
|
137
|
}
|
138
|
|
139
|
if (txtFileName.value.length > 2040) {
|
140
|
txtFileName.value = txtFileName.value.substring(0,2040);
|
141
|
}
|
142
|
|
143
|
elmImage.src = txtFileName.value;
|
144
|
|
145
|
if (txtHorizontal.value != "") { elmImage.hspace = parseInt(txtHorizontal.value); }
|
146
|
else { elmImage.hspace = 0; }
|
147
|
|
148
|
if (txtVertical.value != "") { elmImage.vspace = parseInt(txtVertical.value); }
|
149
|
else { elmImage.vspace = 0; }
|
150
|
|
151
|
elmImage.alt = txtAltText.value;
|
152
|
|
153
|
if (txtBorder.value != "") { elmImage.border = parseInt(txtBorder.value); }
|
154
|
else { elmImage.border = 0; }
|
155
|
|
156
|
elmImage.align = selAlignment.value;
|
157
|
grngMaster.collapse(false);
|
158
|
grngMaster.select();
|
159
|
window.close();
|
160
|
}
|
161
|
</SCRIPT>
|
162
|
</HEAD>
|
163
|
<BODY id=bdy onload="Init()" style="background: threedface; color: windowtext;" scroll=no>
|
164
|
|
165
|
<DIV id=divFileName style="left: 0.98em; top: 1.2168em; width: 7em; height: 1.2168em; ">Image URL:</DIV>
|
166
|
<INPUT ID=txtFileName type=text style="left: 8.54em; top: 1.0647em; width: 21.5em;height: 2.1294em; " tabIndex=10 onfocus="select()">
|
167
|
|
168
|
<DIV id=divAltText style="left: 0.98em; top: 4.1067em; width: 6.58em; height: 1.2168em; ">Alternate Text:</DIV>
|
169
|
<INPUT type=text ID=txtAltText tabIndex=15 style="left: 8.54em; top: 3.8025em; width: 21.5em; height: 2.1294em; " onfocus="select()">
|
170
|
|
171
|
<FIELDSET id=fldLayout style="left: .9em; top: 7.1em; width: 17.08em; height: 7.6em;">
|
172
|
<LEGEND id=lgdLayout>Layout</LEGEND>
|
173
|
</FIELDSET>
|
174
|
|
175
|
<FIELDSET id=fldSpacing style="left: 18.9em; top: 7.1em; width: 11em; height: 7.6em;">
|
176
|
<LEGEND id=lgdSpacing>Spacing</LEGEND>
|
177
|
</FIELDSET>
|
178
|
|
179
|
<DIV id=divAlign style="left: 1.82em; top: 9.126em; width: 4.76em; height: 1.2168em; ">Alignment:</DIV>
|
180
|
<SELECT size=1 ID=selAlignment tabIndex=20 style="left: 10.36em; top: 8.8218em; width: 6.72em; height: 1.2168em; ">
|
181
|
<OPTION id=optNotSet value=""> Not set </OPTION>
|
182
|
<OPTION id=optLeft value=left> Left </OPTION>
|
183
|
<OPTION id=optRight value=right> Right </OPTION>
|
184
|
<OPTION id=optTexttop value=textTop> Texttop </OPTION>
|
185
|
<OPTION id=optAbsMiddle value=absMiddle> Absmiddle </OPTION>
|
186
|
<OPTION id=optBaseline value=baseline SELECTED> Baseline </OPTION>
|
187
|
<OPTION id=optAbsBottom value=absBottom> Absbottom </OPTION>
|
188
|
<OPTION id=optBottom value=bottom> Bottom </OPTION>
|
189
|
<OPTION id=optMiddle value=middle> Middle </OPTION>
|
190
|
<OPTION id=optTop value=top> Top </OPTION>
|
191
|
</SELECT>
|
192
|
|
193
|
<DIV id=divHoriz style="left: 19.88em; top: 9.126em; width: 4.76em; height: 1.2168em; ">Horizontal:</DIV>
|
194
|
<INPUT ID=txtHorizontal style="left: 24.92em; top: 8.8218em; width: 4.2em; height: 2.1294em; ime-mode: disabled;" type=text size=3 maxlength=3 value="" tabIndex=25 onfocus="select()">
|
195
|
|
196
|
<DIV id=divBorder style="left: 1.82em; top: 12.0159em; width: 8.12em; height: 1.2168em; ">Border Thickness:</DIV>
|
197
|
<INPUT ID=txtBorder style="left: 10.36em; top: 11.5596em; width: 6.72em; height: 2.1294em; ime-mode: disabled;" type=text size=3 maxlength=3 value="" tabIndex=21 onfocus="select()">
|
198
|
|
199
|
<DIV id=divVert style="left: 19.88em; top: 12.0159em; width: 3.64em; height: 1.2168em; ">Vertical:</DIV>
|
200
|
<INPUT ID=txtVertical style="left: 24.92em; top: 11.5596em; width: 4.2em; height: 2.1294em; ime-mode: disabled;" type=text size=3 maxlength=3 value="" tabIndex=30 onfocus="select()">
|
201
|
|
202
|
<BUTTON ID=btnOK style="left: 31.36em; top: 1.0647em; width: 7em; height: 2.2em; " type=submit tabIndex=40>OK</BUTTON>
|
203
|
<BUTTON ID=btnCancel style="left: 31.36em; top: 3.6504em; width: 7em; height: 2.2em; " type=reset tabIndex=45 onClick="window.close();">Cancel</BUTTON>
|
204
|
|
205
|
</BODY>
|
206
|
</HTML>
|