// _lcid="1033" _version="12.0.4518"
// _localBinding
// Version: "12.0.4518"
// Copyright (c) Microsoft Corporation.  All rights reserved.
var L_SpellCheckerDialogWidth_TEXT="500px";
var L_SpellCheckerDialogHeight_TEXT="550px";
function SpellCheckEntirePage(webServiceUrl, dialogUrl, alertNoWebParts)
{
	if (null==document.getElementById("__spPickerHasReturnValue"))
	{
		var hasReturnValueElement=document.createElement("INPUT");
		hasReturnValueElement.type="hidden";
		hasReturnValueElement.id="__spPickerHasReturnValue";
		document.body.appendChild(hasReturnValueElement);
	}
	if (null==document.getElementById("__spPickerReturnValueHolder"))
	{
		var returnValueHolderElement=document.createElement("INPUT");
		returnValueHolderElement.type="hidden";
		returnValueHolderElement.id="__spPickerReturnValueHolder";
		document.body.appendChild(returnValueHolderElement);
	}
	var index;
	var spellableFields=new Array();
	var chunksToSpell=new Array();
	var elements=document.body.getElementsByTagName("*");
	for (index=0; index < elements.length;++index)
	{
		if (null !=elements[index].getAttribute("excludeFromSpellCheck"))
		{
			continue;
		}
		if (elements[index].tagName=="INPUT")
		{
			if ("text"==elements[index].type)
			{
				if ((null==elements[index].id || !elements[index].id.match("SearchBox")) && elements[index].value !="")
				{
					spellableFields[spellableFields.length]=elements[index];
					chunksToSpell[chunksToSpell.length]=new ChunkToSpell(elements[index].value,
									"text", elements[index].title, spellableFields.length - 1);
				}
			}
			else if ("hidden"==elements[index].type && elements[index].id.match(/\$RichHtmlField$/))
			{
				if ('undefined' !=typeof document.body.createTextRange)
				{
					var displayContentWrapper=RTE2_DisplayElementFromInputElement(elements[index].id);
					spellableFields[spellableFields.length]=elements[index];
					chunksToSpell[chunksToSpell.length]=new ChunkToSpell(displayContentWrapper.innerHTML,
									"html", elements[index].nextSibling.nextSibling.nextSibling.nextSibling.title, spellableFields.length - 1);
				}
			}
		}
		else if (elements[index].tagName=="TEXTAREA")
		{
			var foundInlineHtmlEditor=false;
			if (null !=elements[index].id)
			{
				var strBaseElementID=elements[index].id.replace(/\$/g, "_");
				var docEditor=RTE_GetEditorDocument(strBaseElementID);
				if (null !=docEditor && docEditor.body.innerHTML !="")
				{
					foundInlineHtmlEditor=true;
					if ('undefined' !=typeof document.body.createTextRange)
					{
						spellableFields[spellableFields.length]=elements[index];
						chunksToSpell[chunksToSpell.length]=new ChunkToSpell(docEditor.body.innerHTML,
								"html", elements[index].title, spellableFields.length - 1);
					}
				}
			}
			if (false==foundInlineHtmlEditor && elements[index].value !="")
			{
				spellableFields[spellableFields.length]=elements[index];
				chunksToSpell[chunksToSpell.length]=new ChunkToSpell(elements[index].value,
							"text", elements[index].title, spellableFields.length - 1);
			}
		}
	}
	var features=SpellCheckerDialogFeaturesString();
	var args=new Object();
	args.chunks=chunksToSpell;
	args.lang=L_Language_Text;
	args.webServiceUrl=webServiceUrl;
	args.alertNoWebParts=alertNoWebParts;
	var callback=function(spelledChunks)
	{
		if (null==spelledChunks)
		{
			var hasReturnValueElement=document.getElementById("__spPickerHasReturnValue");
			var returnValueHolderElement=document.getElementById("__spPickerReturnValueHolder");
			if (null !=hasReturnValueElement && hasReturnValueElement.value=="1" && null !=returnValueHolderElement)
			{
				try
				{
					spelledChunks=jsonDeserialize(returnValueHolderElement.value);
				}
				catch (e) {}
			}
		}
		else if ("string"==typeof(spelledChunks))
		{
				try
				{
					spelledChunks=jsonDeserialize(spelledChunks);
				}
				catch (e) {}
		}
		if (null !=spelledChunks && "string" !=typeof(spelledChunks))
		{
			for (index=0; index < spelledChunks.length;++index)
			{
				if ("INPUT"==spellableFields[spelledChunks[index].Index].tagName)
				{
					if ("text"==spellableFields[spelledChunks[index].Index].type)
					{
						spellableFields[spelledChunks[index].Index].value=spelledChunks[index].Text;
					}
					else if ("hidden"==spellableFields[spelledChunks[index].Index].type)
					{
						RTE2_ReplaceContent(spellableFields[spelledChunks[index].Index].id, spelledChunks[index].Html);
					}
				}
				else if ("TEXTAREA"==spellableFields[spelledChunks[index].Index].tagName)
				{
					if (null !=spelledChunks[index].Text)
					{
						spellableFields[spelledChunks[index].Index].value=spelledChunks[index].Text;
					}
					else if (null !=spelledChunks[index].Html && null !=spellableFields[spelledChunks[index].Index].id)
					{
						var strBaseElementID=spellableFields[spelledChunks[index].Index].id.replace(/\$/g, "_");
						var docEditor=RTE_GetEditorDocument(strBaseElementID);
						docEditor.body.innerHTML=spelledChunks[index].Html;
					}
				}
			}
		}
	};
	commonShowModalDialog(dialogUrl, features, callback, args);
}
function ChunkToSpell(content, type, displayName, index)
{
	if ("text"==type)
	{
		this.Text=content;
		this.Html=null;
	}
	else
	{
		this.Text=null;
		this.Html=content;
	}
	this.DisplayName=displayName;
	this.Index=index;
}
function SpellCheckerDialogFeaturesString()
{
	return "dialogWidth:"+L_SpellCheckerDialogWidth_TEXT+";dialogHeight:"+L_SpellCheckerDialogHeight_TEXT+";status:no;resizable:yes;scroll:no";
}

