// LyFileScript.js
// Copyright (c) 2000-2009, Lyria-W4.
// All rights reserved.
// @version	$Id: LyFileScript.js,v 1.3.4.1 2009/08/11 08:48:15 nha Exp $

// This function updates an hidden field with a file field.
function UpdateFile(form, fieldName, isDirectory)
{
	var field = form.elements[fieldName];
	var fileField = form.elements[fieldName + "File"];

	if (fileField.value != "")
	{
		var dir = fileField.value;

		// If directory field, remove file from path
		// and keep only directory path
		if (isDirectory)
		{
			var pos = dir.lastIndexOf("/");

			if (pos < 0)
				pos = dir.lastIndexOf("\\");

			if (pos > 0)
				dir = dir.substring(0, pos + 1)
		}

		field.value = dir;
	}
}

// This function set the disable state of a file input.
function DisableFileInput(form, fieldName, disable)
{
	var field = form.elements[fieldName];
	var fileField = form.elements[fieldName + "File"];
	
	fileField.disabled = disable;
}

// This function uploads a file to the server
function SendFile(form, controller, frameName, fileErrorMessage, path, encoding)
{
	var oldTarget = form.target;
	var oldAction = form.action;
	var oldEncoding = form.encoding;

	try
	{
		form.encoding = encoding;
		form.target = frameName;
		form.action = _rootUrl + path + "?_upload=true&" + controllerParam + "=" + controller;

		// And we submit the form
		form.submit();

		form.encoding = oldEncoding;
		form.target = oldTarget;
		form.action = oldAction;
		getLeonardiTopFrame().showWaitDiv(true, true);
	}
	catch (ex)
	{
		// When a file input is displayed in the HTML form, the submit of form may
		// launch an error. Display a message asking the user to check values of
		// file inputs.
		alert(fileErrorMessage);
	}
}