// ==================================================================
// Предопределенные переменные
// ==================================================================
var ON		= 1;
var OFF		= 0;
var CHECKED	= 1;
var UNCHECKED	= 0;
var DISABLED	= 1;
var ENABLED 	= 0;
var PASSWORD	= 1;
var TEXTFIELD	= 0;
var SELECTED	= 1;
var DATETIME	= 3;
var ONLYDATE	= 1;

// ==================================================================
// Определим объект Fields - Объект свойств модуля
// ==================================================================
var Forms = function()
{
	// Свойства интерфейса
	//=======================
	this.Version = "1.0";
	this.Supported = function (fld)
				{
					supported_elements = 	{
								"TextField": 1,
								"Checkbox": 1,
								"Radio": 1,
								"Selector": 1
								}
					if (supported_elements[fld]==1) return 1; else return 0;
				}

	// Настройки модуля
	//======================

	this.BaseURL = "/inc/forms/";

	// Внутренние переменные
	//=======================
	this.LastID = 1;
	this.ZIndex = 1;
	this.ObjectList = new Array();

	this.WindowIsDisabled = 0;
}

var Fields = new Forms();

document.onclick = function(event_obj)
	{
	if (!event_obj) event_obj=event;
	if (!event_obj.srcElement) srcElement = event_obj.target; else srcElement=event_obj.srcElement;

	for (i in Fields.ObjectList)
	{
		s = Fields.ObjectList[i].CanExpand;
		if (s && srcElement.id.substr(0, Fields.ObjectList[i].FieldId.length) != Fields.ObjectList[i].FieldId && Fields.ObjectList[i].Expanded)
			{
				Fields.ObjectList[i].Collapse();
			}
	}
}

// ==================================================================
// Класс Field - Поле формы
// ==================================================================
var Field = function(FormName, FieldName, Default, Disabled)
{
	this.ParentForm	= FormName || "";
	this.FieldName	= FieldName || "";

	this.FormsModuleError=function(ErrorText)
	{
		alert ("Ошибка при создании поля:\n\n" + ErrorText);
	}


	if (this.FieldName=="") 
		{
			this.FormsModuleError("Не определено имя поля");
			return 0;
		}

	if (FormName!="")
	{
		this.ParentObject = document.getElementsByName(FormName)[0];

		if (this.ParentObject.tagName!="FORM") 
			{
				this.FormsModuleError("Форма " + FormName + " не найдена");
				return 0;
			}
	}

	if (this.FieldName.substring(this.FieldName.length-2,this.FieldName.length)=="[]")
	{
		this.FieldName =this.FieldName.substring(0,this.FieldName.length-1) + Fields.LastID + "]";
	};

	sn = Fields.LastID++;
	sn = "" + sn;

	for (i=sn.length; i<5; i++)
	{
		sn = "0" + sn;
	}

	this.FieldId	= "Field_" + sn;

	Fields.ObjectList[this.FieldId] = this;

	this.Default	= Default || "";
	this.Disabled	= Disabled || "";

	return 1;
}

document.write ("<LINK href='" + Fields.BaseURL + "images/forms1.1.0.css' type='text/css' rel='stylesheet'>\n");
document.write ("<script src='" + Fields.BaseURL + "modules/httpload.1.1.0.js'></script>");
document.write ("<script src='" + Fields.BaseURL + "modules/checkbox.1.1.0.js'></script>");
document.write ("<script src='" + Fields.BaseURL + "modules/radio.1.1.0.js'></script>");
document.write ("<script src='" + Fields.BaseURL + "modules/selector.1.1.1.js'></script>");
document.write ("<script src='" + Fields.BaseURL + "modules/submit.1.1.0.js'></script>");
document.write ("<script src='" + Fields.BaseURL + "modules/textfield.1.1.0.js'></script>");
document.write ("<script src='" + Fields.BaseURL + "modules/datetime.1.1.0.js'></script>");
document.write ("<script src='" + Fields.BaseURL + "modules/combi.1.1.0.js'></script>");
