home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
WindowsServerTrial
/
server.iso
/
sources
/
install.wim
/
1
/
Windows
/
System32
/
mshtmler.dll
/
HTML
/
FORCHAR.JS
< prev
next >
Wrap
Text (UTF-16)
|
2006-11-02
|
25KB
|
580 lines
function callHelp(elm)
{
if (null != elm.helpid)
{
window.showHelp(elm.helpfile, "" + parseInt(elm.helpid),
"popup");
}
else
{
if ("BODY" != elm.tagName)
{
callHelp(elm.parentElement);
}
}
}
function btnCancelClick()
{
window.close();
}
function getTextRange(elm)
{
var r = elm.parentTextEdit.createTextRange();
r.moveToElementText(elm);
return r;
}
function mouseClick()
{
if (window.event.srcElement.id.substring(0,3)
== "txt")
{
return;
}
if (window.event.button == 2)
{
callHelp(window.event.srcElement);
}
}
function txtDefaultESC()
{
if (event.keyCode == 27)
{
window.close();
return;
}
}
var g_bSearchList = false;
var g_nTimeoutID;
var g_szLastFound = "";
var g_nLastFoundIndex = 0;
var g_nMatchLength = 0;
function loadBdy()
{
var doc = window.dialogArguments;
if (doc.parentWindow.frames.length > 0 &&
doc.all.tags("IFRAME").length == 0)
{
alert(L_InsideFrameset_ErrorMessage);
window.close();
}
var rngCurrent = doc;
document.onhelp = new Function("callHelp(window.event.srcElement)");
document.onmouseup = new Function("mouseClick()");
txtFontName.onblur = new
Function("syncSelect(cmdFontName, txtFontName)");
txtFontName.onfocus = new Function("txtFontName.select()");
txtFontName.onchange = new
Function("setFont(getTextRange(elmSample))");
txtFontName.onkeyup = new Function("syncTextFont()");
txtFontName.onfocus = new Function("txtFontName.select()");
txtFontName.onkeypress = new Function("txtDefaultESC()");
txtFontStyle.onblur = new
Function("syncSelect(selFontStyle, txtFontStyle)");
txtFontStyle.onfocus = new Function("txtFontStyle.select()");
txtFontStyle.onchange = new Function("setFontStyle" +
"(getTextRange(elmSample))");
txtFontStyle.onkeyup = new Function("synchText()");
txtFontStyle.onfocus = new Function("txtFontStyle.select()");
txtFontStyle.onkeypress = new Function("txtDefaultESC()");
txtFontSize.onblur = new
Function("syncSelect(cmdFontSize, txtFontSize)");
txtFontSize.onfocus = new Function("txtFontSize.select()");
txtFontSize.onchange = new
Function("setSelectStateCmd(cmdFontSize, " +
"getTextRange(elmSample))");
txtFontSize.onkeyup = new Function("synchText()");
txtFontSize.onfocus = new Function("txtFontSize.select()");
txtFontSize.onkeypress = new Function("txtDefaultESC()");
cmdFontName.onchange = new Function("syncSelect2(cmdFontName, txtFontName);" +
"setFont(getTextRange(elmSample))");
selFontStyle.onchange = new Function("syncSelect2(selFontStyle," +
"txtFontStyle);" +
"setFontStyle(getTextRange(elmSample))");
cmdFontSize.onchange = new Function("syncSelect2(cmdFontSize, txtFontSize);" +
"setSelectStateCmd(cmdFontSize, getTextRange(elmSample))");
chkUnderline.onclick = new Function("setCheckStateCmd(chkUnderline," +
"getTextRange(elmSample))");
selColor.onchange = new Function("setFontColor(getTextRange(elmSample))");
btnCustom.onclick = new Function("btnCustomClick()");
btnOK.onclick = new Function("btnOKClick()");
btnCancel.onclick = new Function("btnCancelClick()");
fillFontSelect(cmdFontName);
getCheckStateCmd(chkUnderline, rngCurrent);
getSelectStateCmd(cmdFontName, rngCurrent);
getSelectStateCmd(cmdFontSize, rngCurrent);
getFontStyle();
selColor.customColor = 0;
getFontColor();
syncSelect2(cmdFontName, txtFontName);
syncSelect2(selFontStyle, txtFontStyle);
syncSelect2(cmdFontSize, txtFontSize);
txtFontName.select();
g_szLastFound = txtFontName.value;
updateSample();
txtFontName.focus();
}
function GetSampleString()
{
var strReturn = "AaBbYyZz";
if (txtFontName.value != "")
{
switch (dialogHelper.getCharset(txtFontName.value))
{
case 2:
{
strReturn = "Symbol";
break;
}
case 128:
{
strReturn = "Aa\u3042\u3041\u30a2\u30a1\u4e9c\u5b87";
break;
}
case 129:
case 130:
{
strReturn = "\uac00\ub098\ub2e4\u0041\u0061\u0042\u0062\u0059\u0079\u005a\u007a";
break;
}
case 136:
{
strReturn = "\u4e2d\u6587\u5b57\u578b\u7bc4\u4f8b";
break;
}
case 161:
{
strReturn = "AaBb\u0391\u03b1\u0392\u03b2";
break;
}
case 162:
{
strReturn = "AaBb\u011e\u011f\u015e\u015f";
break;
}
case 177:
{
strReturn = "AaBb\u05e0\u05e1\u05e9\u05ea";
break;
}
case 178:
case 179:
{
strReturn = "AaBb\u0639\u0645\u0646\u062e\u0631\u0648\u0643\u0645";
break;
}
case 204:
{
strReturn = "AaBb\u0411\u0431\u0424\u0444";
break;
}
case 238:
{
strReturn = "AaBb\u00c1\u00e1\u00d4\u00f4";
break;
}
case 255:
{
strReturn = "Aa\u00f8\u00f1\u00fd";
break;
}
}
}
return strReturn;
}
function getCheckStateCmd(checkbox, range)
{
checkbox.checked = (true == range.queryCommandState(checkbox.value));
}
function getSelectStateCmd(select, range)
{
var index;
if (null != range.queryCommandValue(select.id.substring(3)))
{
for (index = 0; index < select.options.length; index++)
{
if (select.options[index].value ==
range.queryCommandValue(select.id.substring(3)))
{
select.selectedIndex = index;
break;
}
}
}
else
{
select.selectedIndex = -1;
}
}
function setCheckStateCmd(checkbox, range)
{
if (checkbox.checked !=
(true == range.queryCommandState(checkbox.value)))
{
range.execCommand(checkbox.value, false);
}
}
function setSelectStateCmd(select, range)
{
if (-1 != select.selectedIndex)
{
range.execCommand(select.id.substring(3), false,
select.options[select.selectedIndex].value);
}
}
function NoCaseCompare(str1, str2)
{
var ideo1 = 1 != escape(str1.charAt(0)).length;
var ideo2 = 1 != escape(str2.charAt(0)).length;
if (ideo1 != ideo2)
return ideo1 ? -1 : 1;
if (str1.toLowerCase() < str2.toLowerCase())
return -1;
if (str1.toLowerCase() > str2.toLowerCase())
return 1;
return 0;
}
function fillFontSelect(select)
{
var index;
var fontList = new Array();
var optFontName;
var len = dialogHelper.fonts.length;
for (index = 0; index < len; index++)
{
fontList[index] =
dialogHelper.fonts.item(index);
}
fontList.sort(NoCaseCompare);
for (index = 0; index < fontList.length; index++)
{
optFontName = new Option();
optFontName.value = fontList[index];
optFontName.text = fontList[index];
select.options[index] = optFontName;
}
}
function setFont(range)
{
var FontNameCommand = "FontName";
if (window.event.srcElement == txtFontName ||
window.event.srcElement == cmdFontName)
{
range.text = GetSampleString();
range = getTextRange(elmSample);
}
if (-1 != cmdFontName.selectedIndex)
{
range.execCommand(FontNameCommand, false, txtFontName.value);
}
}
function getFontStyle()
{
var cmdBold = "Bold";
var cmdItalic = "Italic";
var globalDoc = window.dialogArguments;
var range = globalDoc;
with (range)
{
if (queryCommandState(cmdBold) && queryCommandState(cmdItalic))
{
selFontStyle.value = "Bold-Italic";
}
else if (queryCommandState(cmdBold))
{
selFontStyle.value = "Bold";
}
else if (queryCommandState(cmdItalic))
{
selFontStyle.value = "Italic";
}
else
{
selFontStyle.value = "Regular";
}
}
}
function setFontStyle(range)
{
var cmdBold = "Bold";
var cmdItalic = "Italic";
with (range)
{
if ("Bold-Italic" == selFontStyle.value)
{
if (true != queryCommandState(cmdBold))
{
execCommand(cmdBold, false);
}
if (true != queryCommandState(cmdItalic))
{
execCommand(cmdItalic, false);
}
}
else if ("Bold" == selFontStyle.value)
{
if (true != queryCommandState(cmdBold))
{
execCommand(cmdBold, false);
}
if (true == queryCommandState(cmdItalic))
{
execCommand(cmdItalic, false);
}
}
else if ("Italic" == selFontStyle.value)
{
if (true == queryCommandState(cmdBold))
{
execCommand(cmdBold, false);
}
if (true != queryCommandState(cmdItalic))
{
execCommand(cmdItalic, false);
}
}
else
{
if (true == queryCommandState(cmdBold))
{
execCommand(cmdBold, false);
}
if (true == queryCommandState(cmdItalic))
{
execCommand(cmdItalic, false);
}
}
}
}
function getFontColor()
{
var cmdForeColor = "ForeColor";
var globalDoc = window.dialogArguments;
var range = globalDoc;
var intColor = range.queryCommandValue(cmdForeColor);
if (null != intColor)
{
selColor.value = intColor;
if (parseInt(selColor.value) != parseInt(intColor))
{
selColor.customColor = intColor;
selColor.value = "custom";
}
}
else
{
selColor.selectedIndex = -1;
}
}
function setFontColor(range)
{
var cmdForeColor = "ForeColor";
var intDefaultColor = 0;
if (-1 != selColor.selectedIndex)
{
if ("custom" == selColor.value)
{
range.execCommand(cmdForeColor, false,
parseInt(selColor.customColor));
return;
}
else
{
range.execCommand(cmdForeColor, false,
parseInt(selColor.value));
}
}
}
function syncSelect(ctlSelect, ctlText)
{
if (-1 != ctlSelect.selectedIndex)
{
if (ctlText.value.toLowerCase()
== ctlSelect.options[ctlSelect.selectedIndex]
.text.toLowerCase())
{
ctlText.value = ctlSelect.options[ctlSelect.selectedIndex].text;
}
}
}
function syncSelect2(ctlSelect, ctlText)
{
if (-1 != ctlSelect.selectedIndex)
{
ctlText.value = ctlSelect.options[ctlSelect.selectedIndex].text;
}
}
function findMatch (strMatch, optionsList)
{
var index;
var index2;
var bestChar = 0;
var bestMatch = 0;
var strOptText;
for (index = 0; index < optionsList.length; index++)
{
strOptText = optionsList.options[index].text;
for (index2 = bestChar; index2 < strMatch.length; index2++)
{
if (strMatch.substring(0, index2 + 1).toLowerCase() ==
strOptText.substring(0, index2 + 1)
.toLowerCase())
{
bestChar = index2 + 1;
bestMatch = index;
}
else
{
break;
}
}
}
return bestMatch;
}
function updateSample()
{
var rngSample = getTextRange(elmSample);
setCheckStateCmd(chkUnderline, rngSample);
rngSample.text = GetSampleString();
rngSample = getTextRange(elmSample);
setFont(rngSample);
setSelectStateCmd(cmdFontSize, rngSample);
setFontStyle(rngSample);
setFontColor(rngSample);
}
function searchText()
{
var index;
var index2;
var bestChar = g_nMatchLength;
var bestMatch = g_nLastFoundIndex;
var strOptText;
var optionsList = cmdFontName.options;
var strMatch = txtFontName.value;
if (strMatch.length == 0)
{
cmdFontName.selectedIndex = -1;
g_nMatchLength = 0;
g_nLastFoundIndex = 0;
g_bSearchList = false;
g_szLastFound = "";
return;
}
if (strMatch.length >= g_szLastFound.length
&& (strMatch.substring(0, g_nMatchLength).toLowerCase()
== g_szLastFound.substring(0, g_nMatchLength).toLowerCase()))
{
index = g_nLastFoundIndex;
}
else
{
index = 0;
bestChar = 0;
}
for (; index < optionsList.length; index++)
{
strOptText = optionsList.options[index].text;
for (index2 = bestChar; index2 < strMatch.length; index2++)
{
if (strMatch.substring(index2, index2 + 1).toLowerCase() ==
strOptText.substring(index2, index2 + 1)
.toLowerCase())
{
bestChar = index2 + 1;
bestMatch = index;
g_nLastFoundIndex = bestMatch;
g_nMatchLegth = bestChar;
}
else
{
break;
}
}
if (bestChar > 0 && index < optionsList.options.length - 2 &&
optionsList.options[index + 1].text
.substring(bestChar - 1, bestChar).toLowerCase()
!= strMatch.substring(bestChar - 1, bestChar).toLowerCase())
{
break;
}
}
cmdFontName.selectedIndex = bestMatch;
g_bSearchList = false;
g_szLastFound = txtFontName.value;
}
function TextboxKeyDown(textbox, select, iKeyCode)
{
var fReturn = false;
if (38 == iKeyCode || 40 ==iKeyCode)
{
var iDirection = (iKeyCode == 38) ? -1 : 1;
if (!((iDirection == 1 &&
!(select.selectedIndex < select.options.length - 1))
|| (iDirection == -1 && !select.selectedIndex)))
{
select.selectedIndex = select.selectedIndex + iDirection;
textbox.value =
select.options(select.selectedIndex).text;
textbox.select();
updateSample(getTextRange(elmSample));
}
fReturn = true;
}
return fReturn;
}
function syncTextFont()
{
if (TextboxKeyDown(txtFontName, cmdFontName, window.event.keyCode))
return;
if (g_szLastFound.toLowerCase() == txtFontName.value.toLowerCase())
{
return;
}
if (g_bSearchList)
{
window.clearTimeout(g_nTimeoutID);
}
g_bSearchList = true;
g_nTimeoutID = window.setTimeout("searchText()", 200);
}
function btnCustomClick()
{
var result = dialogHelper.choosecolordlg(selColor.customColor);
if (result != 0)
{
selColor.customColor = result;
selColor.value = "custom";
setFontColor(getTextRange(elmSample));
}
}
function btnOKClick()
{
var globalDoc = window.dialogArguments;
var range = globalDoc;
setCheckStateCmd(chkUnderline, range);
setSelectStateCmd(cmdFontSize, range);
setFont(range);
setFontColor(range);
setFontStyle(range);
window.close();
}
function synchText()
{
var index;
var elmSource = window.event.srcElement;
var arrSelect = new Array();
var elmSelect;
var elmOptions;
arrSelect["txtFontName"] = cmdFontName;
arrSelect["txtFontStyle"] = selFontStyle;
arrSelect["txtFontSize"] = cmdFontSize;
elmSelect = arrSelect[elmSource.id];
elmOptions = elmSelect.options;
if (TextboxKeyDown(elmSource, elmSelect, window.event.keyCode))
return;
if ("" != elmSource.value)
{
elmSelect.selectedIndex = findMatch(elmSource.value,
elmOptions);
}
}