/****************************************************
* Spell Checker Client JavaScript Code
****************************************************/
// spell checker constants
var spellURL = "/Resources/SpellCheck.aspx";
var showCompleteAlert = true;

var tagGroup = new Array("INPUT", "TEXTAREA", "DIV", "SPAN");
// global elements to check
var checkElements = new Array();

function FTB_BrowserDetect() {
	doc=window.document;
	navVersion=navigator.appVersion.toLowerCase();
	this.ie4=(!doc.getElementById&&doc.all)?true:false;
	this.ie5=(navVersion.indexOf("msie 5.0")!=-1)?true:false;
	this.ie55=(navVersion.indexOf("msie 5.5")!=-1)?true:false;
	this.ie6=(navVersion.indexOf("msie 6.0")!=-1)?true:false;
	this.ie7=(navVersion.indexOf("msie 7.0")!=-1)?true:false;
	this.isIE=(this.ie5||this.ie55||this.ie6||this.ie7)?true:false;
	this.isGecko=!this.isIE;
};
FTB_Browser = new FTB_BrowserDetect();
function getText(index){
var oElement = document.getElementById(checkElements[index]);
var sText = "";
switch (oElement.tagName){
case "INPUT" :
case "TEXTAREA" :
sText = oElement.value;
break;
case "DIV" :
case "SPAN" :
case "BODY" :
sText = oElement.innerHTML;
break;
case "IFRAME" :
var oFrame = null;
if (document.all) // IE
{
oFrame = eval(oElement.id);
sText = oFrame.document.body.innerHTML;
}
else
{
oFrame = oElement;
sText = oFrame.contentDocument.body.innerHTML;
}
break;
}
return sText;
}
function setText(index, text)
{
var oElement = document.getElementById(checkElements[index]);
switch (oElement.tagName)
{
case "INPUT" :
case "TEXTAREA" :
oElement.value = text;
break;
case "DIV" :
case "SPAN" :
oElement.innerHTML = text;
break;
case "IFRAME" :
var oFrame = null;
if (document.all)
{
oFrame = eval(oElement.id);
oFrame.document.body.innerHTML = text;
}
else
{
oFrame = oElement;
oFrame.contentDocument.body.innerHTML = text;
}
break;
}
}
function checkSpelling()
{
checkElements = new Array();
for (var i = 0; i < tagGroup.length; i++)
{
var sTagName = tagGroup[i];
var oElements = document.getElementsByTagName(sTagName);
for(var x = 0; x < oElements.length; x++)
{
if ((sTagName == "INPUT" && oElements[x].type == "text") || sTagName == "TEXTAREA")
checkElements[checkElements.length] = oElements[x].id;
else if ((sTagName == "DIV" || sTagName == "SPAN") && oElements[x].isContentEditable)
checkElements[checkElements.length] = oElements[x].id;
}
}
openSpellChecker();
}
function checkSpellingById(id)
{
checkElements = new Array();
checkElements[checkElements.length] = id;
openSpellChecker();
}
function checkElementSpelling(oElement)
{
checkElements = new Array();
checkElements[checkElements.length] = oElement.id;
openSpellChecker();
}
function openSpellChecker()
{
if (window.showModalDialog)
var result = window.showModalDialog(spellURL + "?Modal=true", window, "dialogHeight:320px; dialogWidth:400px; edge:Raised; center:Yes; help:No; resizable:No; status:No; scroll:No");
else
var newWindow = window.open(spellURL, "newWindow", "height=300,width=400,scrollbars=no,resizable=no,toolbars=no,status=no,menubar=no,location=no");
}
/****************************************************
* Spell Checker Suggestion Window JavaScript Code
****************************************************/
var iElementIndex = -1;
var parentWindow;
function initialize()
{
//hide cancel button in FF
	if (!isIE){
		document.getElementById('btnCancel').style.display = 'none';
	}
iElementIndex = parseInt(document.getElementById("ElementIndex").value);
if (parent.window.dialogArguments)
parentWindow = parent.window.dialogArguments;
else if (top.opener)
parentWindow = top.opener;
var spellMode = document.getElementById("SpellMode").value;
switch (spellMode)
{
case "start" :
break;
case "suggest" :
updateText();
break;
case "end" :
updateText();
default :
if(loadText())
document.SpellingForm.submit();
else
endCheck()
break;
}
}
function loadText()
{
if (!parentWindow.document)
return false;
for (++iElementIndex; iElementIndex < parentWindow.checkElements.length; iElementIndex++)
{
var newText = parentWindow.getText(iElementIndex);
if (newText.length > 0)
{
updateSettings(newText, 0, iElementIndex, "start");
document.getElementById("StatusText").innerText = "Spell Checking Text ...";
return true;
}
}
return false;
}
function updateSettings(currentText, wordIndex, elementIndex, mode)
{
document.getElementById("CurrentText").value = currentText;
document.getElementById("WordIndex").value = wordIndex;
document.getElementById("ElementIndex").value = elementIndex;
document.getElementById("SpellMode").value = mode;
}
function updateText()
{
if (!parentWindow.document)
return false;
var newText = document.getElementById("CurrentText").value;
parentWindow.setText(iElementIndex, newText);
}
function endCheck()
{
if (showCompleteAlert)
alert("Spell Check Complete");
closeWindow();
}
function closeWindow()
{
if (top.opener || parent.window.dialogArguments)
self.close();
}
function changeWord(oElement)
{
var k = oElement.selectedIndex;
oElement.form.ReplacementWord.value = oElement.options[k].value;
}