function MM_setTextOfLayer(objName,x,newText) { //v3.0
  if ((obj=MM_findObj(objName))!=null) with (obj)
    if (navigator.appName=='Netscape') {document.write(unescape(newText)); document.close();}
    else innerHTML = unescape(newText);
}

function OpenWnd(url, name, attributes)
{
  newWnd = window.open(url, name, attributes)
  return newWnd;
}

//restore the original image
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
//pre load images
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//find object
function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
//swap image
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
												
				
	
//*****************************************************
//verifyData finalises the validation 
function verifyData(form){
	//if start today & never expires have been checked then form is valid
		if (document.frmData.Start.checked && document.frmData.Expiry.checked){
			return true;
		}
		//check start date
		if (document.frmData.Start.checked){ //start day is today	
			//check expiry dropdowns
				if (document.frmData.expiryDay.value != "0" && document.frmData.expiryMonth.value != "0" & document.frmData.expiryYear.value != "0"){
					//there is value for the date so check expiry is AFTER start and check valid day for a particular month
					checkValidExpiryDay			
					var d = new Date() //today
					//compare years
					if (parseInt(document.frmData.expiryYear.value) == d.getFullYear()){//expiry year cannot be less than today's year value
							 //because we don't allow it be chosen so if equal to then check Month						
						if (parseInt(document.frmData.expiryMonth.value) < d.getMonth()){//expiry is before start	
							alert("start date is after expiry date")
							return false;
						}
						if (parseInt(document.frmData.expiryMonth.value) > d.getMonth()){//valid dates	
							return true;
						}
						if (parseInt(document.frmData.expiryMonth.value) == d.getMonth()){//check day
							if (expiryDay <= d.getDate()){//expiry is before or same as start
							alert("start date is on or after expiry date")
							return false;	
							}
							if (parseInt(document.frmData.expiryDay.value) > d.getDate()){//valid dates
								return true;
							}	
						}
					}	
					else{
					 //expiry year is after so return true
						return true;
					}
				}
				else{//no expiry date
					alert("please enter an expiry date");
					return false;			
				}	
		}
		//if never expires is checked but start today is not then check that all start
		//fields are entered as if they are then all will be valid dates
		if (document.frmData.Expiry.checked && !document.frmData.Start.checked){
			//checking start drop downs
			checkValidStartDay
			if (document.frmData.startDay.value != "0" && document.frmData.startMonth.value != "0" && document.frmData.startYear.value != "0"){
				//all fields have values so valid
				return true;
			}
			else{//no start date
				alert("please enter a start date");
				return false;			
			}	
		}
		//neither never expires nor start today is checked so check drop downs
		//to ensure that start date is before expiry date
		checkValidStartDay()
		checkValidExpiryDay()
		//check years first
		if (parseInt(document.frmData.expiryYear.value) > parseInt(document.frmData.startYear.value)){//dates are valid
			return true;
		}
		if (parseInt(document.frmData.expiryYear.value) < parseInt(document.frmData.startYear.value)){//dates are invalid
			alert("start date is after expiry date");
			return false;
		}
		if	(parseInt(document.frmData.expiryYear.value) == parseInt(document.frmData.startYear.value)){//check months
			if (parseInt(document.frmData.expiryMonth.value) > parseInt(document.frmData.startMonth.value)){//dates are valid
				return true;
			}
			if	(parseInt(document.frmData.expiryMonth.value) < parseInt(document.frmData.startMonth.value)){// dates are invalid
				alert("start date is after expiry date");
				return false;
			}
			if (parseInt(document.frmData.expiryMonth.value) == parseInt(document.frmData.startMonth.value)){//check days
				if (parseInt(document.frmData.expiryDay.value) > parseInt(document.frmData.startDay.value)){//dates are valid
					return true;
				}
				if (parseInt(document.frmData.expiryDay.value) <= parseInt(document.frmData.startDay.value)){//dates are invalid
					alert("start date is on or after expiry date");
					return false;
				}
			}
			return true;
		}	
}//end of verifyData

function checkValidExpiryDay(){
	//only have to check 30 day months and Feb
		if (parseInt(document.frmData.expiryMonth.value)==4|| parseInt(document.frmData.expiryMonth.value)==6 ||
				parseInt(document.frmData.expiryMonth.value)==9 || parseInt(document.frmData.expiryMonth.value)==11){
			if (parseInt(document.frmData.expiryDay.value) == 31){
				alert("this month only has 30 days");
				return false;
			}
		}	
		if (parseInt(document.frmData.expiryMonth.value) ==2){
			if (parseInt(document.frmData.expiryYear.value)%4 == 0 && (parseInt(document.frmData.expiryYear.value)%100 ==0 || parseInt(document.frmData.expiryYear.value)%400==0)){
				if (parseInt(document.frmData.expiryDay.value) > 29){
					alert("this month only has 29 days");
					return false;
				}
			}
			else{
				if (parseInt(document.frmData.expiryDay.value) > 28){
					alert("this month only has 28 days");
					return false;
				}
			}	
		}
}

function checkValidStartDay(){
	//only have to check 30 day months and Feb
	if (parseInt(document.frmData.startMonth.value)==4|| parseInt(document.frmData.startMonth.value)==6 ||
			parseInt(document.frmData.startMonth.value)==9 || parseInt(document.frmData.startMonth.value)==11){
		if (parseInt(document.frmData.startDay.value) == 31){
			alert("this month only has 30 days");
			return false;
		}
	}	
	if (parseInt(document.frmData.startMonth.value) ==2){
		if (parseInt(document.frmData.startYear.value)%4 == 0 && (parseInt(document.frmData.startYear.value)%100 ==0 || parseInt(document.frmData.startYear.value))%400==0){
			if (parseInt(document.frmData.startDay.value) > 29){
				alert("this month only has 29 days");
				return false;
			}
		}
		else{
			if (parseInt(document.frmData.startDay.value) > 28){
				alert("this month only has 28 days");
				return false;
			}
		}	
	}
}	
	
	
//**********************text editor js functions***********************	
	
	var tabNum = 0//global table counter

function addLink()
{
	// CK 23 Aug 2002  link opens in the current window.  
	
	//document.execCommand('CreateLink');
	
	var linkWindow
	if (linkWindow && !linkWindow.closed()){//checks if window is already open and then closes it
		linkWindow.close();
	}	
	linkWindow = window.open('AdminAddExternalSiteLink.asp','Extlink','toolbar=no,resizable=no,scrollbars=no,width=400,height=100');
	linkWindow.focus(); //brings window to top	
}

function addArticleLink()
{
	
	var linkWindow
	if (linkWindow && !linkWindow.closed()){//checks if window is already open and then closes it
		linkWindow.close();
	}	
	linkWindow = window.open('AdminLinkArticle.asp','linkArticle','toolbar=no,resizable=no,scrollbars=no,width=400,height=200');
	linkWindow.focus(); //brings window to top	
}

function addFileLink() {
  var linkWindow;
  linkWindow = window.open('AdminUploadedArticleFile.asp?CameFrom=EditPage', 'linkFile', 'toolbar=no,resizable=no,width=550,height=600, scrollbars=yes');
  linkWindow.focus();
}

function addExternalSiteLink()
{
	// CK 23 Aug 2002 external link opens link in the new window.
	
	document.execCommand('CreateLink');
	
	//var linkWindow
	//if (linkWindow && !linkWindow.closed()){//checks if window is already open and then closes it
	//	linkWindow.close();
	//}	
	//linkWindow = window.open('AdminAddExternalSiteLink.asp','Extlink','toolbar=no,resizable=no,scrollbars=no,width=400,height=100');
	//linkWindow.focus(); //brings window to top	
}

function addArticleLinkID(theURL)
{
  //theURL = '_selfWindow:' + theURL;
  document.execCommand('CreateLink',false, theURL);
}

function changeFontColour()
{
	myDialog.str = ""
	myDialog.str = window.showModalDialog("AdminColourPicker.htm",myDialog,"dialogHeight:450px;dialogWidth:350px;scroll:yes");
	if (myDialog.str !== null)//make sure user has not hit cancel button
	{
		document.execCommand('ForeColor',false, myDialog.str);
		return
	}	
		return
}

function disableSelection() //disables selection for all elements except the editable div and toher input fields
{
	var i
	for (i=0; i < document.all.length; i++) 
	{
		document.all(i).unselectable = "on";
		document.all("ETEditor").unselectable = "off";
	}
	//enable DIVs content to have the text selectable
	var objContent
	objContent = document.all("ETEditor");
	objContent = objContent.all;

	for (i=0; i < objContent.length; i++) 
	{
		objContent(i).unselectable = "off";
	}

}

function saveDoc()
{
	document.frmData.divValue.value = document.all.ETEditor.innerHTML
}

function myDialog()
{
	var mystr;
}
function InsertMyTable()
{
	myDialog.str = ""
	myDialog.str = window.showModalDialog("AdminInsertTable.htm",myDialog,"dialogHeight:300px;dialogWidth:350px;scroll:no");
	if (myDialog.str !=null)//make sure user has not hit cancel button
	{
		createTable(myDialog.str)
	}
}
function createTable(tabAttributes)
{
	tabNum= tabNum+1
	var rowNum, colNum,tabBorder,cellCol, cellWid, tabWid
	var splitString = tabAttributes.split(":")
	rowNum = splitString[0]
	colNum = splitString[1]
	tabBorder = splitString[2]
	cellCol = splitString[3]
	cellWid = splitString[4]
	tabWid = splitString[5]

	var Table=document.createElement("TABLE");
	Table.ID = "T" + tabNum
	Table.border = splitString[2]
	if (Table.border==0)
	{
	Table.border==0
	Table.style.borderwidth= '.01cm'
	Table.style.borderStyle = 'dashed'
	}
	var TableBody = document.createElement("TBODY");	
	TableBody.id = "TB" + tabNum
	var tRow, tCell;
	var i, j
	if (tabWid == "100%")
	{
		Table.width = "100%"	
	}
	
	Table.appendChild(TableBody);
	Table.border=tabBorder;
	Table.bgColor="white";
	i=0
	// Insert rows and cells 
	for (i=0; i<rowNum; i++)
	{
	  tRow = TableBody.insertRow();
	  tRow.ID = Table.ID + "R" + (i + 1)
	  for (j=0; j<colNum; j++)
	  {
	    tCell = tRow.insertCell();
	    tCell.width = cellWid
	    tCell.ID = "(" + tRow.ID + "," + (j+1) + ")"
	  }  
	}

// Set the background colour for the body.
TableBody.bgColor = cellCol;
// add the table
ETEditor.appendChild(Table);
}

function addARow()
{
	myDialog.str = ""
	myDialog.str = window.showModalDialog("AdminInsertRow.htm",myDialog,"dialogHeight:250px;dialogWidth:350px;scroll:no");
	if (myDialog.str ==null)//make sure user has not hit cancel button
	{
		return
	}
	var splitString = myDialog.str.split(":")
	var tabNum = splitString[0]
	var tabID = "T" + tabNum
	var tabBodID = "TB" + tabNum
	var rowNum = tabID + "R" + splitString[1]
	var numOfRows = splitString[2]
	var aRows=eval("document.all." + tabBodID + ".rows")
	var aCells=	aRows(0).cells
	var numOfCells = aCells.length

	var count
	count=0
	for (count=0; count<numOfRows; count++)
	{
		var newRow = eval("document.all." + tabBodID + ".insertRow(splitString[1])")
		//todo newRow.ID = "T" + 1 + "R" + 4
		var w=0
		for(w=0; w<numOfCells; w++)
		{
		var newCell
		newCell = eval("document.all." + tabBodID + ".rows[" + (splitString[1]) + "].insertCell(-1)") 
		//todo cell ids
		}
	}	
}
function deleteARow()
{
	myDialog.str = ""
	myDialog.str = window.showModalDialog("AdminDeleteRow.htm",myDialog,"dialogHeight:200px;dialogWidth:350px;scroll:no");
	if (myDialog.str ==null)//make sure user has not hit cancel button
	{
		return
	}
	var splitString = myDialog.str.split(":")
	var tabNum = splitString[0]
	var tabID = "T" + tabNum
	var tabBodID = "TB" + tabNum
	var rowNum = tabID + "R" + splitString[1]
	var numOfRows = splitString[2]

	eval("document.all." + tabBodID + ".deleteRow(" + splitString[1] + ")")
}

function addAColumn()
{
	myDialog.str = ""
	myDialog.str = window.showModalDialog("AdminInsertColumn.htm",myDialog,"dialogHeight:250px;dialogWidth:350px;scroll:no");
	if (myDialog.str ==null)//make sure user has not hit cancel button
	{
		return
	}
	var splitString = myDialog.str.split(":")
	var tabNum = splitString[0]
	var tabID = "T" + tabNum
	var rowNum = splitString[1]
	var tabBodID = "TB" + tabNum
	var colPos = (splitString[1])
	var rowID =  tabID + "R" + rowNum
	var numOfCols = splitString[2]
	var newCell
	var aRows=eval("document.all." + tabBodID + ".rows")
	var aCells=	aRows(0).cells
	var i=0
	var j=0
	
	for (j=0;j<numOfCols;j++)
	{
		for(i=0;i<aRows.length;i++)
		{
			newCell = eval("document.all." + tabBodID + ".rows[" + i + "].insertCell(" + colPos + ")") 
			newCell.ID = "(" + rowID + "," + (aCells.length+1) + ")"
		}
	}	
}

function deleteAColumn()
{
	myDialog.str = ""
	myDialog.str = window.showModalDialog("AdminDeleteColumn.htm",myDialog,"dialogHeight:250px;dialogWidth:350px;scroll:no");
	if (myDialog.str ==null)//make sure user has not hit cancel button
	{
		return
	}
	var splitString = myDialog.str.split(":")
	var tabNum = splitString[0]
	var tabID = "T" + tabNum
	var rowNum = splitString[1]
	var tabBodID = "TB" + tabNum
	var colPos = (splitString[1])
	var rowID =  tabID + "R" + rowNum
	var numOfCols = splitString[2]
	var aRows=eval("document.all." + tabBodID + ".rows")
	var aCells=	aRows(0).cells
	var i=0
	var j=0
	for (j=0;j<numOfCols;j++)
	{
		for(i=0;i<aRows.length;i++)
		{
			eval("document.all." + tabBodID + ".rows[" + i + "].deleteCell(" + colPos + ")") 
		}
	}	
}
function checkSelection(sel)
{
	var rge = document.selection.createRange();
	if ((event.type!="select")||(sel.text!=""))
	{
		sel._selection = rge
	}	
}
function addImage(imageval,altText)
{
		if (imageval != "0")
		{
			imageval= "../images/" + imageval
			imageval= imageval + '"  alt="' + altText + '" border=0'
			document.execCommand("InsertImage", false, imageval);
		}
		else
		{
		alert("Please select an image")
		return
		}
}

function addNewImage(strControlName)
{
	var imageWindow
	if (imageWindow && !imageWindow.closed()){//checks if window is already open and then closes it
		imageWindow.close();
	}	
	var aURL ='AdminUploadedImages.asp?CameFrom=EditPage&sControl=' + strControlName;
	imageWindow = window.open(aURL,'UploadImage','toolbar=no,resizable=no,width=550,height=600, scrollbars=yes');
	imageWindow.focus(); //brings window to top
}

function ChooseColour(strControl)
{
	var colourWindow
	var intleft
	var inttop
	var strnewpage = "AdminHexColour.asp?Control=" + strControl
	intleft = window.screenLeft; inttop = parent.screenTop
	if (colourWindow && !colourWindow.closed()){//checks if window is already open and then closes it
		colourWindow.close();
	}
	colourWindow = window.open(strnewpage,'HexColour','toolbar=no,status=yes,resizable=no,scrollbars=no,width=600,height=350');
	colourWindow.moveTo(intleft,inttop) ; colourWindow.focus(); //brings window to top	
		
}

function UpdateImageList(aControl, aDisplayName,aFileName)
{
	var LEN = eval("document.forms[0]." + aControl + ".length;")
	eval("document.forms[0]." + aControl + ".options[LEN] = new Option(aDisplayName,aFileName)");
}

function toggleFormatting()
{
	document.execCommand('RemoveFormat');
}

function toggleBold()
{
	document.execCommand('Bold');
}

function toggleItalic()
{
	document.execCommand('Italic');
}

function toggleCenter()
{
	document.execCommand('JustifyCenter');
}

function toggleRight()
{
	document.execCommand('JustifyRight');
}
function toggleLeft()
{
	document.execCommand('JustifyLeft');
}
function Cut()
{
	document.execCommand('Cut');
}
function Paste()
{
	document.execCommand('Paste');
}
function Copy()
{
	document.execCommand('Copy');
}
function toggleUnder()
{
	document.execCommand('UnderLine');
}

function toggleNumList(event)
{
	document.execCommand('InsertOrderedList');
}
function toggleUnOrderedList()
{
	document.execCommand('InsertUnorderedList');
}
function ReplaceEnter(e) {

	var intChar = e.keyCode;
	var strHTML = '';
	
	if (window.event.keyCode == 13) {

		ETEditor.innerHTML += '<br>';
		ETEditor.focus();
		return false;
		
	}
}

//Check Parameters is a valid date
//return true/false
//n.b format = day month year and seperate by parameters "delimiter"
function IsValidDate(vData, delimiter) {
  var arrData, vDay, vMonth, vYear;
  
  //get date from data using delimiter
  arrData = vData.split(delimiter);
  vDay = arrData[0];
  vMonth = arrData[1];
  vYear = arrData[2];

 //if any date part is 0
  if (parseInt(vDay) == 0 || parseInt(vMonth) == 0 || parseInt(vYear) == 0)
    return false;
    
  //check Apr, Jun, Sep, Nov for 31 Days
  if ((parseInt(vMonth)==4|| parseInt(vMonth)==6 || parseInt(vMonth)==9 || parseInt(vMonth)==11) && parseInt(vDay) == 31)
    return false;

  //check Feb
  if (parseInt(vMonth) ==2) {
    if (((parseInt(vYear) % 4 == 0) && (parseInt(vYear) % 100 != 0)) || (parseInt(vYear) % 400 == 0)) {
      if (parseInt(vDay) > 29)
        return false;
    } else if (parseInt(vDay) > 28)
      return false;
  }

  return true;
}

//Check valid email address
//return true/false
function IsEmail(vData) {
var tmpArr;
//if empty
if (vData.length ==0)
  return false;
  
//if no '@' found
if (vData.indexOf('@') <= 0)
  return false;

tmpArr = vData.split('@');

//if spacing found
if (tmpArr[0].indexOf(' ') > 0 || tmpArr[1].indexOf(' ') > 0)
    return false;

//if no '.' found in domain
if (tmpArr[1].indexOf('.') <= 0 ||
    tmpArr[1].lastIndexOf('.') == tmpArr[1].length -1)
  return false;
  
return true;
}

//Move select Item from 1 select to another
function MoveOptions(objFrom, objTo) {
if (objFrom.selectedIndex < 0)
  return;

var iCount = 0;
//add selected item into objTo  
for (var i=0; i<objFrom.options.length ;  i++) {
  if (objFrom.options[i].selected) {
    iCount ++;
    objTo.options.length ++;
    objTo.options[objTo.options.length-1].value = objFrom.options[i].value;
    objTo.options[objTo.options.length-1].text = objFrom.options[i].text;
    objTo.options[objTo.options.length-1].selected = true;
  }
}
if (iCount == 0)
  return;

var iIndex=0;
//remove selected item
for (var i=0; i<objFrom.options.length; i++) {
  if (!objFrom.options[i].selected) {
    objFrom.options[iIndex].value = objFrom.options[i].value;
    objFrom.options[iIndex].text = objFrom.options[i].text;
    iIndex ++;
  }
}
objFrom.options.length -= iCount;
}

//Add a new option for a select control
//sSelName - select object name
//sValue - value of <option>
//sText - Text of <option>
//ignoreRepeat - a flag to ignore repeatance check
function AddSelectOption(sSelName, sText, sValue, ignoreRepeat) {
  var objSel;
  objSel = eval('document.forms[0].' + sSelName);
  
  if (!ignoreRepeat) {
    for (var i=0; i<objSel.options.length; i++) {
      if (objSel.options[i].value == sValue)
        return;
    }
  }
	var LEN = objSel.length;
	objSel.options[LEN] = new Option(sText, sValue);
}

//Remove a option from a control
//

function RemoveSelectOptionByValue(sSelName, sValue) {
var objSel = eval('document.forms[0].' + sSelName);
var iIndex=0;
//remove selected item
for (var i=0; i<objSel.options.length; i++) {
  if (objSel.options[i].value == sValue) {
    for (var j=i+1; j<objSel.options.length; j++) {
      objSel.options[j-1].value = objSel.options[j].value;
      objSel.options[j-1].text = objSel.options[j].value;
    }
    objSel.options.length --;
  }
}
}

//Get date from flash calendar
function GetFlashDate(ElementName)
	{

		var TheDate = ""
		TheDate = showModalDialog("../Include/Calendar.htm",0,"dialogWidth:136px;dialogHeight:168px;status:no;edge:raised;scroll:no;help:no;unadorned:yes")

		if (TheDate != "")
		{

			eval("document." + ElementName + ".value = '" + TheDate + "'")
			
			if (ElementName == "frmEntry.DateStart")
			{
				DefaultDate1 = TheDate
				DefaultDate2 = TheDate
				document.frmEntry.DateEnd.value = TheDate
			} else {
				DefaultDate2 = TheDate
			}

		}
		return
	}

function Flash5Detect() {
<!-- attempt to detect at least Flash 5 -->
  if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] 
    && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) 
    {
    if (navigator.plugins && navigator.plugins["Shockwave Flash"] 
    && (versionIndex = navigator.plugins["Shockwave Flash"].description.indexOf(".")) 
    != - 1) {
    var versionString = navigator.plugins["Shockwave Flash"].description.substring(versionIndex-1, 
    versionIndex);
    versionIndex = parseInt( versionString );
    if ( versionIndex >= 5 ) {
    FlashMode = 1;
    }
    }
    }
    else if (document.all) {
    document.write('<SCRIPT LANGUAGE=VBScript\> \n');
    document.write('on error resume next \n');
    document.write('FlashMode = false\n');
    document.write('FlashMode = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5")))\n');
    document.write('</SCRIPT\> \n');
    }
    return FlashMode;
}

function addUserField()
{
	var linkWindow
	if (linkWindow && !linkWindow.closed()){//checks if window is already open and then closes it
		linkWindow.close();
	}	
	linkWindow = window.open('AdminAddUserFields.asp','UserField','toolbar=no,resizable=yes,scrollbars=yes,width=450,height=400');
	linkWindow.focus(); //brings window to top	
}
function StripAndAddFormTags()
{
	var sMainStr="";
	var sFormTag_Start = "ELCOMFORMTAG_START";
	var sFormTag_End = "ELCOMFORMTAG_END";

	sMainStr = document.all.ETEditor.innerHTML;
	
	//strip out the form tags
	sMainStr = replaceString(sMainStr, sFormTag_Start, "")
	sMainStr = replaceString(sMainStr, sFormTag_End, "")

	//add the form start tag
	//document.all.ETEditor.innerHTML = sFormTag_Start + document.all.ETEditor.innerHTML;
	sMainStr = sFormTag_Start + sMainStr;
	
	//add the form end tag
	//document.all.ETEditor.innerHTML += sFormTag_End;
	sMainStr += sFormTag_End;
	alert('sMainStr=' + sMainStr)

	//save the changes back
	document.all.ETEditor.innerHTML = sMainStr;
	

}

function AddSubmitButton()
{
	var sMainStr;
	var sSubmitTag = '<INPUT Type=button value=Send Name=Send onClick="javascript:SubmitUserPage();">';

//	var sSubmitTag = '<INPUT Type=submit value=Send Name=Send unselectable="off">';

	sMainStr = document.all.ETEditor.innerHTML;

	if (sMainStr.search('UserTable_') != -1)
	{
		//only add the submit button if it is not already there	
		if (sMainStr.search('type=button')== -1)
		{
			document.all.ETEditor.innerHTML += sSubmitTag + '<br>';
		}
	}
}

// extract front part of string prior to searchString 
function getFront(mainStr,searchStr){ 
	foundOffset = mainStr.indexOf(searchStr) 
	
	if (foundOffset == -1) {
		return null 
	}
	return mainStr.substring(0,foundOffset) 
}

// extract back end of string after searchString 
function getEnd(mainStr,searchStr) { 
	foundOffset = mainStr.indexOf(searchStr) 
	if (foundOffset == -1) { 
		return null 
	} 
	return mainStr.substring(foundOffset+searchStr.length,mainStr.length) 
} 

// insert insertString immediately before searchString 
function insertString(mainStr,searchStr,insertStr) { 
	var front = getFront(mainStr,searchStr) 
	var end = getEnd(mainStr,searchStr) 
	
	if (front != null && end != null) { 
		return front + insertStr + searchStr + end 
	} 
	return null 

} 

// remove deleteString 
function deleteString(mainStr,deleteStr) { 
	return replaceString(mainStr,deleteStr,"") 
} 

// replace searchString with replaceString 
function replaceString(mainStr,searchStr,replaceStr) { 
	var front = getFront(mainStr,searchStr) 
	var end = getEnd(mainStr,searchStr) 
	
	if (front != null && end != null) { 
		return front + replaceStr + end 
	}
	else if (front == null && end != null) {
		return replaceStr + end 
	}
	else if (front != null && end == null) {
		return front + replaceStr
	}
	else {
		return mainStr 
	}
}
