<!-- the target must have a setText method -->
<head>
<PUBLIC:COMPONENT tagName=FILE_LOADER>
	<PUBLIC:PROPERTY Name=target />
	<PUBLIC:PROPERTY Name=size />
	<PUBLIC:PROPERTY Name=file />
	<PUBLIC:DEFAULTS viewLinkContent />
	<PUBLIC:METHOD Name=click />
	<PUBLIC:METHOD Name=setFile />
	<PUBLIC:METHOD Name=getFile />
	<PUBLIC:METHOD Name=changeFileName />
	<PUBLIC:EVENT NAME=onFileChange ID=fcID />
  	<PUBLIC:ATTACH event="oncontentready" onevent="fnInit()" />
</PUBLIC:COMPONENT>

<STYLE>
	body
	{
		background: lightgray;
	}
</STYLE>
<script type='text/javascript'>
function fnInit()
{
	if(file=null) file=""
	if(size!=null)
	{
		hidfile1.size = size
		file1.size = size
	}
	hidfile1.onchange = function()
	{
		file1.value = hidfile1.value
		if(target!=null)
		{
			var obj=eval(target)
			obj.setText(readfile(file1.value))
			var oEvent = createEventObject();
			oEvent.result = file1.value;
			fcID.fire (oEvent);
			file = file1.value
		}
	}
	btnReload.onclick = function()
	{
		if(file1.value!="")
			if(target!=null)
			{
				var obj=eval(target)
				obj.setText(readfile(file1.value))
				file = file1.value
			}
	}
	btnReload.onclick = function()
	{
		if(file1.value!="")
			if(target!=null)
			{
				var obj=eval(target)
				obj.setText(readfile(file1.value))
				file = file1.value
			}
	}
}
function click()
{
	hidfile1.click()
}
function changeFileName(sFile)
{
	file1.value = sFile
	var obj=eval(target)
	savefile(sFile, obj.getText())
	file = file1.value
}
function setFile(sFile)
{
	file1.value = sFile
	var obj=eval(target)
	obj.setText(readfile(file1.value))
	file = file1.value
}
function getFile(sFile)
{	
	file = file1.value
	return file
}
function readfile(path)
{
	var fso = new ActiveXObject("Scripting.FileSystemObject")
	var f = fso.OpenTextFile(path, 1)
	var r = f.ReadAll()
	f.Close()
	fso = null
	f = null
	return r
}
function savefile(path,sContent)
{
	var fso = new ActiveXObject("Scripting.FileSystemObject")
	var result = fso.createTextFile(path, true)
	result.Write(sContent)
	result.Close()
}
</script>
</head>
<body>
<div style="position:absolute;">
<input id="hidfile1" type="file" size="110">&nbsp;&nbsp;(Open File)&nbsp;&nbsp;<button id="btnReload">ReLoad</button>
</div>
<div style="position:absolute;">
<input id="file1" type="text" size="110">
</div>
</body>
