function keepAlive() {
	if (navigator.appName == "Microsoft Internet Explorer") {
		if (_ctl3_divEditor != null) {
			_ctl3_divEditor.style.pixelTop = document.body.scrollTop;
		}
	}
}

function doLoad() {
	if (navigator.appName == "Microsoft Internet Explorer") {
		try {
			var divEditor;
			if (_ctl3_divEditor != null) {
				divEditor = _ctl3_divEditor;
			}
			//Our editing div is inside the content of the page, so scrolling won't work 
			//properly.  Make a copy of this div and put it outside everything
			if (divEditor != null) {
				var divEditorCopy = divEditor.cloneNode(true);
				try {
					document.forms[0].insertBefore(divEditorCopy, PageMain);
				}
				catch(e) {
					document.forms[0].insertBefore(divEditorCopy, Page);
				}
				var divEditorParent = divEditor.parentNode;
				divEditorParent.removeChild(divEditor);
				document.getElementById("_ctl3_ddlTemplates").selectedIndex = document.getElementById("_ctl3_divTemplateIndex").innerText;
			}
		}
		catch(e) {
		}
	}

	window.onscroll = keepAlive;
	keepAlive();
}
window.onload = doLoad;

//Function provides a method for opening videos.  See proper URL format in readme file under /media.
function video(page) {
	OpenWin = this.open(page, "CtrlWindow", "toolbar=no,menubar=no,location=no,scrollbars=no,resizeable=no,width=320,height=300");
}

function savePage(sEditor) {
	document.forms[0].inpTemplateIndex.value = document.getElementById("_ctl3_ddlTemplates").selectedIndex;
	document.forms[0].inpResultHTML.value = document.all(sEditor).innerHTML;
}

function selOn(ctrl, simg) {
	ctrl.src = '/images/internal/editpages/' + simg
	ctrl.style.cursor = 'hand';	
}
  
function selOff(ctrl, simg) {
	ctrl.src = '/images/internal/editpages/' + simg
}
  
function callFormatting(sEditor, sFormat) {
	document.all(sEditor).focus();
	document.all(sEditor).document.execCommand(sFormat, false, null);
}

function doCreateLink(sEditor) {
	document.all(sEditor).focus();
	document.all(sEditor).document.execCommand('createlink');	
}

function doForeColor(sEditor, URL) {
    document.all(sEditor).focus();
	var arr = showModalDialog(URL, '', 'font-family:arial; font-size:9; dialogWidth:350px; dialogHeight:500px; status: no;');
	if (arr != null) {
		document.all(sEditor).document.execCommand('forecolor', false, arr);	
	}
	document.all(sEditor).focus();
}

function doBackColor(sEditor) {
	document.all(sEditor).focus();
	document.all(sEditor).document.execCommand('backcolor', false, 'yellow');
}
  
function doImage(sEditor, URL) {
	document.all(sEditor).focus();
	var sel = document.all(sEditor).document.selection.createRange();
	var arr = showModalDialog(URL,'', 'font-family:arial; font-size:9; dialogWidth:700px; dialogHeight:500px; resizable: yes; status: no;');
	if (arr != null) {
		var temp = '<img src="' + arr['src'];
		if (arr['alt'] != '') {
			temp += '" alt="' + arr['alt'];
		}
		if (arr['align'] != '') {
			temp += '" align="' + arr['align'];
		} 
		temp += '">';
		sel.pasteHTML(temp);
	}
	document.all(sEditor).focus();
}
   
function doStyle(sEditor, sStyle) {
	document.all(sEditor).focus();
	var iHTML;
	if (sStyle != '') {
		var sel = document.all(sEditor).document.selection.createRange();
		if (sStyle == 'Page') {
			if (sel.text.length != 0) {
				iHTML = document.all(sEditor).document.createElement("<span>");
				iHTML.insertAdjacentText("afterBegin", sel.text);
				sel.pasteHTML(iHTML.outerHTML);
			}
		}
		else if (sStyle == 'H1') {
			if (sel.text.length != 0) {
				iHTML = document.all(sEditor).document.createElement("<h1>");
				iHTML.insertAdjacentText("afterBegin", sel.text);
				sel.pasteHTML(iHTML.outerHTML);
			}
		}
		else if (sStyle == 'H2') {
			if (sel.text.length != 0) {
				iHTML = document.all(sEditor).document.createElement("<h2>");
				iHTML.insertAdjacentText("afterBegin", sel.text);
				sel.pasteHTML(iHTML.outerHTML);
			}
		}
		else if (sStyle == 'H3') {
			if (sel.text.length != 0) {
				iHTML = document.all(sEditor).document.createElement("<h3>");
				iHTML.insertAdjacentText("afterBegin", sel.text);
				sel.pasteHTML(iHTML.outerHTML);
			}
		}
		else if (sStyle == 'CAPTION') {
			if (sel.text.length != 0) {
				iHTML = document.all(sEditor).document.createElement("<span class='CAPTION'>");
				iHTML.insertAdjacentText("afterBegin", sel.text);
				sel.pasteHTML(iHTML.outerHTML);
			}
		}
	}
	document.all(sEditor).focus();
}

function doLineBreak(sEditor) {
	document.all(sEditor).focus();
	var sel = document.all(sEditor).document.selection.createRange();
	sel.pasteHTML('<br />');
}

function doInsertTable(sEditor, rows, columns) {
	document.all(sEditor).focus();
	var newTable = document.all(sEditor).document.createElement("<TABLE CLASS='TABLE-BORDER'>");
	newTable.rules = 'all';
	newTable.width = 25 * columns;
	for (y=0; y<rows; y++) {
		var newRow = newTable.insertRow();
		newRow.vAlign = 'TOP';
		for (x=0; x<columns; x++) {
			var newCell = newRow.insertCell();
			newCell.className = '';
			if ((y==0)&&(x==0)) {
				newCell.id='ura';
			}
		}
	}
	
	var sel = document.all(sEditor).document.selection.createRange();
	sel.pasteHTML(newTable.outerHTML);
 
	var r = document.all(sEditor).document.body.createTextRange();
	var item = document.all(sEditor).document.getElementById('ura');
	item.id='';
	r.moveToElementText(item);
	r.moveStart('character',r.text.length);
	r.select();
}

function doInsertTableRow(sEditor) {
	document.all(sEditor).focus();
	objReference=doGetRangeReference(sEditor);
	objReference=doCheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
	switch(objReference.tagName) {
		case 'TABLE' :
			if (objReference.width >= 600) {
				return;
			}
			var newTable=objReference.cloneNode(true);
			var newRow=newTable.insertRow();
			newRow.vAlign = 'TOP';
			for (x=0; x<newTable.rows[0].cells.length; x++) {
				var newCell = newRow.insertCell();
				newCell.className = '';
			}
			objReference.outerHTML=newTable.outerHTML;
			break;
 
		case 'TBODY' :
			if (objReference.parentElement.width >= 600) {
				return;
			}
			var newTable=objReference.cloneNode(true);
			var newRow = newTable.insertRow();
			newRow.vAlign = 'TOP';
			for (x=0; x<newTable.rows[0].cells.length; x++) {
				var newCell = newRow.insertCell();
			}
			objReference.outerHTML=newTable.outerHTML;
			break;
		
		case 'TR' :
			if (objReference.parentElement.parentElement.width >= 600) {
				return;
			}
			var rowIndex = objReference.rowIndex;
			var parentTable=objReference.parentElement.parentElement;
			var newTable=parentTable.cloneNode(true);
			var newRow = newTable.insertRow(rowIndex+1);
			newRow.vAlign = 'TOP';
			for (x=0; x< newTable.rows[0].cells.length; x++) {
				var newCell = newRow.insertCell();
			}
			parentTable.outerHTML=newTable.outerHTML;
			break;
 
		case 'TD' :
			if (objReference.parentElement.parentElement.parentElement.width >= 600) {
				return;
			}
			var parentRow=objReference.parentElement;
			var rowIndex = parentRow.rowIndex;
			var cellIndex=objReference.cellIndex;
			var parentTable=objReference.parentElement.parentElement.parentElement;
			var newTable=parentTable.cloneNode(true);
			var newRow = newTable.insertRow(rowIndex+1);
			newRow.vAlign = 'TOP';
			for (x=0; x< newTable.rows[0].cells.length; x++) {
				var newCell = newRow.insertCell();
				if (x==cellIndex) {
					newCell.id='ura';
				}
			}
			parentTable.outerHTML=newTable.outerHTML;
			var r = document.all(sEditor).document.body.createTextRange();
			var item=document.all(sEditor).document.getElementById('ura');
			item.id='';
			r.moveToElementText(item);
			r.moveStart('character',r.text.length);
			r.select();
			break;
 
		default :
			break;
		return;
	}
}

function doDeleteTableRow(sEditor) {
	document.all(sEditor).focus();
	objReference=doGetRangeReference(sEditor);
	objReference=doCheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
	switch(objReference.tagName) {
		case 'TR' :
			if (objReference.parentElement.parentElement.width >= 600) {
				return;
			}
			var rowIndex = objReference.rowIndex;
			var parentTable=objReference.parentElement.parentElement;
			parentTable.deleteRow(rowIndex);
			break;
 
		case 'TD' :
			if (objReference.parentElement.parentElement.parentElement.width >= 600) {
				return;
			}
			var cellIndex = objReference.cellIndex;
			var parentRow = objReference.parentElement;
			var rowIndex = parentRow.rowIndex;
			var parentTable=objReference.parentElement.parentElement.parentElement;
			parentTable.deleteRow(rowIndex);
			if (rowIndex>=parentTable.rows.length) {
				rowIndex=parentTable.rows.length-1;
			}
			if (rowIndex>=0) {
				var r = document.all(sEditor).document.body.createTextRange();
				r.moveToElementText(parentTable.rows[rowIndex].cells[cellIndex]);
				r.moveStart('character',r.text.length);
				r.select();
			}
			else {
				parentTable.removeNode(true);
			}
			break;
 
		default :
			return;
	}
}

function doInsertTableColumn(sEditor) {
	document.all(sEditor).focus();
	objReference = doGetRangeReference(sEditor);
	objReference = doCheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
	switch(objReference.tagName) {
		//if a table is selected, it adds a new column on the right hand side of the table.
		case 'TABLE' :
			if (objReference.width >= 600) {
				return;
			}
			var newTable=objReference.cloneNode(true);
			for (x=0; x<newTable.rows.length; x++) {
				var newCell = newTable.rows[x].insertCell();
			}
			newCell.focus();
			objReference.outerHTML=newTable.outerHTML;
			break;
		
		//if a table is selected, it adds a new column on the right hand side of the table.
		case 'TBODY' :
			if (objReference.parentElement.width >= 600) {
				return;
			}
			var newTable=objReference.cloneNode(true);
			for (x=0; x<newTable.rows.length; x++) {
				var newCell = newTable.rows[x].insertCell();
			}
			objReference.outerHTML=newTable.outerHTML;
			break;
 
		//if a table is selected, it adds a new column on the right hand side of the table.
		case 'TR' :
			if (objReference.parentElement.parentElement.width >= 600) {
				return;
			}
			objReference=objReference.parentElement.parentElement;
			var newTable=objReference.cloneNode(true);
			for(x=0; x<newTable.rows.length; x++) {
				var newCell = newTable.rows[x].insertCell();
			}
			objReference.outerHTML=newTable.outerHTML;
			break;
		
		// IF the cursor is in a cell, or a cell is selected, it adds a new column to the right of that cell.			
		case 'TD' :
			if (objReference.parentElement.parentElement.parentElement.width >= 600) {
				return;
			}
			var cellIndex = objReference.cellIndex;
			var rowIndex=objReference.parentElement.rowIndex;
			var parentTable=objReference.parentElement.parentElement.parentElement;
			var newTable=parentTable.cloneNode(true);
			for (x=0; x<newTable.rows.length; x++) {
				var newCell = newTable.rows[x].insertCell(cellIndex+1);
				if (x==rowIndex) {
					newCell.id='ura';
				}
			}
			parentTable.outerHTML=newTable.outerHTML;
			var r = document.all(sEditor).document.body.createTextRange();
			var item=document.all(sEditor).document.getElementById('ura');
			item.id='';
			r.moveToElementText(item);
			r.moveStart('character',r.text.length);
			r.select();
			break;
		
		default :
			return;
	}
}

function doDeleteTableColumn(sEditor) {
	document.all(sEditor).focus();
	objReference=doGetRangeReference(sEditor);
	objReference=doCheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
	switch(objReference.tagName) {
		case 'TD' :
			if (objReference.parentElement.parentElement.parentElement.width >= 600) {
				return;
			}
			var rowIndex=objReference.parentElement.rowIndex;
			var cellIndex = objReference.cellIndex;
			var parentTable=objReference.parentElement.parentElement.parentElement;
			var newTable=parentTable.cloneNode(true);
			if (newTable.rows[0].cells.length==1) {
				parentTable.removeNode(true);
				return;
			}
			for (x=0; x<newTable.rows.length; x++) {
				if (newTable.rows[x].cells[cellIndex]=='[object]') {
					newTable.rows[x].deleteCell(cellIndex);
				}
			}
			if (cellIndex>=newTable.rows[0].cells.length) {
				cellIndex=newTable.rows[0].cells.length-1;
			}
			if (cellIndex>=0) {  
				newTable.rows[rowIndex].cells[cellIndex].id='ura';
			}
			parentTable.outerHTML=newTable.outerHTML;
			if (cellIndex>=0) {
				var r = document.all(sEditor).document.body.createTextRange();
				var item=document.all(sEditor).document.getElementById('ura');
				item.id='';
				r.moveToElementText(item);
				r.moveStart('character',r.text.length);
				r.select();
			}
			break;
		
		default :
			return;
	}
}
 
function doGetRangeReference(sEditor) {
	document.all(sEditor).focus();
	var objReference = null;
	var RangeType = document.all(sEditor).document.selection.type;
	var selectedRange = document.all(sEditor).document.selection.createRange();
 
	switch(RangeType) {
		case 'Control' :
		if (selectedRange.length > 0 ) {
			objReference = selectedRange.item(0);
		}
		break;
 
		case 'None' :
		objReference = selectedRange.parentElement();
		break;
 
		case 'Text' :
		objReference = selectedRange.parentElement();
		break;
	}
return objReference
}

function doCheckTag(item,tagName) {
	if (item.tagName.search(tagName)!=-1) {
		return item;
	}
	if (item.tagName=='BODY') {
		return false;
	}
	item=item.parentElement;
	return doCheckTag(item,tagName);
}

function doChangeTableBorder(sEditor) {
	document.all(sEditor).focus();
	objReference=doGetRangeReference(sEditor);
	objReference=doCheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
	switch(objReference.tagName) {
		case 'TABLE' :
			if (objReference.width == 600) {
				return;
			}
			else {
				if (objReference.className == 'TABLE-BORDER2') {
					objReference.className = '';
					objReference.rules = 'none';
					objReference.border = 0;
				}
				else if (objReference.className == '') {
					objReference.className = 'TABLE-BORDER';
					objReference.rules = 'all';
					objReference.border = 1;
				}
				else {
					objReference.className = 'TABLE-BORDER2';
					objReference.rules = 'all';
					objReference.border = 1;
				}
				break;
			}
		case 'TBODY' :
			objReference = objReference.parentElement;
			if (objReference.width == 600) {
				return;
			}
			else {
				if (objReference.className == 'TABLE-BORDER2') {
					objReference.className = '';
					objReference.rules = 'none';
					objReference.border = 0;
				}
				else if (objReference.className == '') {
					objReference.className = 'TABLE-BORDER';
					objReference.rules = 'all';
					objReference.border = 1;
				}
				else {
					objReference.className = 'TABLE-BORDER2';
					objReference.rules = 'all';
					objReference.border = 1;
				}
				break;
			}
		case 'TR' :
			objReference=objReference.parentElement.parentElement;
			if (objReference.width == 600) {
				return;
			}
			else {
				if (objReference.className == 'TABLE-BORDER2') {
					objReference.className = '';
					objReference.rules = 'none';
					objReference.border = 0;
				}
				else if (objReference.className == '') {
					objReference.className = 'TABLE-BORDER';
					objReference.rules = 'all';
					objReference.border = 1;
				}
				else {
					objReference.className = 'TABLE-BORDER2';
					objReference.rules = 'all';
					objReference.border = 1;
				}
				break;
			}
		case 'TD' :
			objReference=objReference.parentElement.parentElement.parentElement;
			if (objReference.width == 600) {
				return;
			}
			else {
				if (objReference.className == 'TABLE-BORDER2') {
					objReference.className = '';
					objReference.rules = 'none';
					objReference.border = 0;
				}
				else if (objReference.className == '') {
					objReference.className = 'TABLE-BORDER';
					objReference.rules = 'all';
					objReference.border = 1;
				}
				else {
					objReference.className = 'TABLE-BORDER2';
					objReference.rules = 'all';
					objReference.border = 1;
				}
				break;
			}
	}
	return;
}

function doChangeTableColor(sEditor) {
	document.all(sEditor).focus();
	objReference=doGetRangeReference(sEditor);
	objReference=doCheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
	switch(objReference.tagName) {
		case 'TABLE' :
			if (objReference.width == 600) {
				return;
			}
			else {
				if (objReference.style.backgroundColor == '#c2d7eb') {
					objReference.style.backgroundColor = '#336699';
				}
				else if (objReference.style.backgroundColor == '#336699') {
					objReference.style.backgroundColor = '#003366';				
				}
				else if (objReference.style.backgroundColor == '#003366') {
					objReference.style.backgroundColor = 'transparent';	
				}
				else {
					objReference.style.backgroundColor = '#c2d7eb';
				}
				break;
			}
		case 'TBODY' :
			objReference = objReference.parentElement;
			if (objReference.width == 600) {
				return;
			}
			else {
				if (objReference.style.backgroundColor == '#c2d7eb') {
					objReference.style.backgroundColor = '#336699';
				}
				else if (objReference.style.backgroundColor == '#336699') {
					objReference.style.backgroundColor = '#003366';				
				}
				else if (objReference.style.backgroundColor == '#003366') {
					objReference.style.backgroundColor = 'transparent';	
				}
				else {
					objReference.style.backgroundColor = '#c2d7eb';
				}
				break;
			}
		case 'TR' :
			objReference=objReference.parentElement.parentElement;
			if (objReference.width == 600) {
				return;
			}
			else {
				if (objReference.style.backgroundColor == '#c2d7eb') {
					objReference.style.backgroundColor = '#336699';
				}
				else if (objReference.style.backgroundColor == '#336699') {
					objReference.style.backgroundColor = '#003366';				
				}
				else if (objReference.style.backgroundColor == '#003366') {
					objReference.style.backgroundColor = 'transparent';	
				}
				else {
					objReference.style.backgroundColor = '#c2d7eb';
				}
				break;
			}
		case 'TD' :
			objReference=objReference.parentElement.parentElement.parentElement;
			if (objReference.width == 600) {
				return;
			}
			else {
				if (objReference.style.backgroundColor == '#c2d7eb') {
					objReference.style.backgroundColor = '#336699';
				}
				else if (objReference.style.backgroundColor == '#336699') {
					objReference.style.backgroundColor = '#003366';				
				}
				else if (objReference.style.backgroundColor == '#003366') {
					objReference.style.backgroundColor = 'transparent';	
				}
				else {
					objReference.style.backgroundColor = '#c2d7eb';
				}
				break;
			}
	}
	return;
}