// rich_commands.js

//-----------------------------------------
/*
function Rich_Bold(elem)
function Rich_Italic(elem)
function Rich_Underline(elem)
function Rich_SetSize(elem)
function Rich_SetColor(elem)
function Rich_InsertHorizLine(elem)
function Rich_Copy(elem)
function Rich_Cut(elem)
function Rich_Paste(elem)
function Rich_Delete(elem)
function Rich_Undo(elem)
function Rich_Redo(elem)
function Rich_InsertImage(elem)
function Rich_CreateLink(elem)
function Rich_JustifyCenter(elem)
function Rich_JustifyFull(elem)
function Rich_JustifyLeft(elem)
function Rich_JustifyRight(elem)
function Rich_SelectAll(elem)
function Rich_InsertOrderedList(elem)
function Rich_InsertUnorderedList(elem)
function Rich_InsertParagraph(elem)

*/

var mRichTextID = "rich_text_if";
var mRichTextDivID = "rich_text_div";

//-----------------------------------------
function Rich_Init()
	{
	var elem = document.getElementById(mRichTextID);
	elem.contentWindow.document.designMode = "on";
	elem.contentWindow.focus();
	}
	
//-----------------------------------------
function DoRichEditCommand(aName, aArg)
	{
	var elem = document.getElementById(mRichTextID);
	elem.contentWindow.document.execCommand(aName, false, aArg);
  	elem.contentWindow.focus();
	}

//-----------------------------------------
function Rich_Bold(elem)
	{
	DoRichEditCommand("bold", "");
	}
//-----------------------------------------
function Rich_Italic(elem)
	{
	DoRichEditCommand("italic", "");
	}
//-----------------------------------------
function Rich_Underline(elem)
	{
	DoRichEditCommand("underline", "");
	}

//-----------------------------------------
function Rich_SetSize(elem)
	{
	DoRichEditCommand("fontsize", elem.value);
	}
//-----------------------------------------
function Rich_SetColor(elem)
	{
	DoRichEditCommand("forecolor", elem.value);
	}
//-----------------------------------------
function Rich_InsertHorizLine(elem)
	{
	DoRichEditCommand("inserthorizontalrule", "");
	}
//-----------------------------------------
function Rich_Copy(elem)
	{
	DoRichEditCommand("copy", "");
	}
//-----------------------------------------
function Rich_Cut(elem)
	{
	DoRichEditCommand("copy", "");
	DoRichEditCommand("delete", "");
	}
//-----------------------------------------
function Rich_Paste(elem)
	{
	DoRichEditCommand("paste", "");
	}
//-----------------------------------------
function Rich_Delete(elem)
	{
	DoRichEditCommand("delete", "");
	}
//-----------------------------------------
function Rich_Undo(elem)
	{
	DoRichEditCommand("undo", "");
	}
//-----------------------------------------
function Rich_Redo(elem)
	{
	DoRichEditCommand("redo", "");
	}
//-----------------------------------------
function Rich_InsertImage(elem)
	{
	DoRichEditCommand("insertimage", "");
	}
//-----------------------------------------
function Rich_CreateLink(elem)
	{
	DoRichEditCommand("createlink", elem.value);
	}
//-----------------------------------------
function Rich_JustifyCenter(elem)
	{
	DoRichEditCommand("justifycenter", "");
	}
//-----------------------------------------
function Rich_JustifyFull(elem)
	{
	DoRichEditCommand("justifyfull", "");
	}
//-----------------------------------------
function Rich_JustifyLeft(elem)
	{
	DoRichEditCommand("justifyleft", "");
	}
//-----------------------------------------
function Rich_JustifyRight(elem)
	{
	DoRichEditCommand("justifyright", "");
	}
//-----------------------------------------
function Rich_SelectAll(elem)
	{
	DoRichEditCommand("selectall", "");
	}
//-----------------------------------------
function Rich_InsertOrderedList(elem)
	{
	DoRichEditCommand("insertOrderedList", "");
	}
//-----------------------------------------
function Rich_InsertUnorderedList(elem)
	{
	DoRichEditCommand("insertUnorderedList", "");
	}
//-----------------------------------------
function Rich_InsertParagraph(elem)
	{
	DoRichEditCommand("insertParagraph", "");
	}
//-----------------------------------------
function Rich_ViewCSS(elem)			
	{
	DoRichEditCommand("styleWithCSS", true);
	}
//-----------------------------------------
function Rich_ViewHTML(elem)
	{
	DoRichEditCommand("styleWithCSS", false);
	}

//-----------------------------------------
function Rich_GetHTML()
	{
	return read_from_iframe(mRichTextID);
	}
//-----------------------------------------
function Rich_SetHTML(html)				
	{
	write_to_iframe(mRichTextID, html)
	}

//----------------------------------------------------------
function get_IFRAME_doc(iframe_id)
{
	var oIframe = document.getElementById(iframe_id);

	if (oIframe != null)
		{	
		if (oIframe.contentDocument) 
			return oIframe.contentDocument; 
		else if (oIframe.contentWindow) 
			return oIframe.contentWindow.document;
		else if (oIframe.document) 
			return oIframe.document;
		else return null;
		}
	}


//----------------------------------------------------------
function write_to_iframe(iframe_id, html)
	{
	var oIframe = document.getElementById(iframe_id);
	IFrameDoc = get_IFRAME_doc(iframe_id);
	if (IFrameDoc) IFrameDoc.getElementsByTagName('BODY').item(0).innerHTML = html;
	}

//----------------------------------------------------------
function read_from_iframe(iframe_id)
	{
	var oIframe = document.getElementById(iframe_id);
	IFrameDoc = get_IFRAME_doc(iframe_id);
	if (IFrameDoc) return IFrameDoc.getElementsByTagName('BODY').item(0).innerHTML;
	return null;
	}

