/**
 * In The Name of Allah, The Most Gracious, The Most Merciful
 * This file includes functions for form processing 
 *
 * @version 6.2.x.x
 * @copyright (c) 2007/1386, vwdev.com
 */
//------------------------------------------
function SetScreen()
{
	if (TD = xGetElementById("tdForm"))
	{
		ScreenWidth = screen.width;
		ScreenHeight = screen.height;
		if (ScreenWidth >= 1024)
		{
			TD.height = "350px";
		}
	}
}
//------------------------------------------
function FormLoading()
{
	SetScreen();
	PageStyle = xGetElementById("lnkStyle");
	Scripts = xGetElementsByTagName("script");
	IsForm = false;
	for (var i = 0; i < Scripts.length; i++)
	{
		if (Scripts[i].src.indexOf('js/form.js') != -1)
		{
			IsForm = true;
		}
	}

	if (IsForm)
	{
		SetSelectedData();
		Table = xGetElementById("tblTable");
		if (Table.dir == "rtl")
		{
			SetDirection("rtl");
			if (document.title == "")
			{
				document.title = "سيستم مديريت محتواي پروانه";
			}
			//PageStyle.href = "../css/style_rtl.css";
		}
		else if (xGetElementById("tblTable").dir == "ltr")
		{
			SetDirection("ltr");
			if (document.title == "")
			{
				document.title = "Butterfly CMS";
			}
			//PageStyle.href = "../css/style_ltr.css";
		}
		if (Save = xGetElementById("btnSave"))
		{
			if (Save.onclick == null)
			{
				Save.onclick = FormSubmit;
			}
		}
		
	}

	if (((typeof FormLoading_) !== 'undefined' ) && FormLoading_)
	{
		FormLoading_();
	}
	else
	{
	}
}
//------------------------------------------
function FormSubmit(FormID)
{
	Form = GetInfo();
	if (!Form)
	{
		if (FormID)
		{
			Form = FormID;
		}
		else
		{
			Form = document.forms[0];
		}
	}

	if (FormValidate(Form.id))
	{
		Form.submit();
	}
}
function AddToListFromList(ListID1, ListID2)
{
	ListID1 = xGetElementById(ListID1);
	ListID2 = xGetElementById(ListID2);

	for (var i = 0; i < ListID1.length; i++)
	{
		if (ListID1[i].selected)
		{
			View = ListID1[i].text;
			Value = ListID1[i].value;
			//------------------------------------------
			if (!IsInList(Value, ListID2))
			{
				n = ListID2.options.length;
				ListID2.options[n] = new Option(View, Value);
				ListID2.options[n].title = View;
			}
			else
			{
				alert(View + ' ' + W_WARNING_SELECTED);
			}
			//------------------------------------------
		}
	}
}
//------------------------------------------
function addToList(View, Value, ListID)
{
	ListID = xGetElementById(ListID);

	if (!IsInList(Value, ListID)) {
		n = ListID.options.length;
		ListID.options[n] = new Option(View, Value);
		ListID.options[n].title = View;
	} else {
		alert(View + ' ' + W_WARNING_SELECTED);
	}
}
//------------------------------------------
function ReturnToList(ListID2, ListID1)
{
	ListID1 = xGetElementById(ListID1);
	ListID2 = xGetElementById(ListID2);

	for (var i = 0; i < ListID2.length; i++) {
		if (ListID2[i].selected) {
			for (var j = 0; j < ListID1.length; j++) {
				if (ListID1[j].value == ListID2[i].value) {
					xColor(ListID1[j], '#000000');
				}
			}
		}
	}
	//----------------------
	DeleteFromList(ListID2);
}
//------------------------------------------
function DeleteFromList(ListID)
{
	ListID = xGetElementById(ListID);

	for (var i = 0; i < ListID.length; )
	{
		if (ListID[i].selected) {
			ListID.removeChild(ListID[i]);
		} else {
			i++;	
		}
	}
}
//------------------------------------------
function RemoveFromList(ListID)
{
	ListID = xGetElementById(ListID);

	for (var i = 0; i < ListID.length; i++) {
		if (ListID[i].selected) {
			xColor(ListID[i], '#BBBBBB');
			ListID[i].selected = false;
		}
	}
}
//------------------------------------------
function deactiveAnElementFromList(Value, ListID)
{
	ListID = xGetElementById(ListID);
	var Index = 0;
	if (Index = IsInList(Value, ListID)) {
//		for (var i = 0; i < ListID.length; i++) {
//			if (ListID[i].selected) {
				xColor(ListID[Index - 1], '#BBBBBB');
				ListID[Index - 1].selected = false;
//			}
//		}
	}
	else
	{
	}
}
//------------------------------------------
function SelectAllList(ListID)
{
	ListID = xGetElementById(ListID);

	for (var i = 0; i < ListID.length; i++)
	{
		ListID[i].selected = true;
	}
}
//------------------------------------------
function DeselectAllList(ListID)
{
	ListID = xGetElementById(ListID);

	for (var i = 0; i < ListID.length; i++)
	{
		ListID[i].selected = false;
	}
}
//------------------------------------------
function MoveToList(ListID1, ListID2)
{
	ListID1 = xGetElementById(ListID1);
	ListID2 = xGetElementById(ListID2);

	AddToListFromList(ListID1, ListID2);
	DeleteFromList(ListID1);
}
//------------------------------------------
function CopyToList(ListID1, ListID2)
{
	ListID1 = xGetElementById(ListID1);
	ListID2 = xGetElementById(ListID2);

	AddToListFromList(ListID1, ListID2);
	RemoveFromList(ListID1);
}
//------------------------------------------
function IsInList(Value, ListID)
{
	ListID = xGetElementById(ListID);

	for(var i = 0; i < ListID.length; i++)
	{
		if (Value == ListID[i].value)
		{
			return i + 1;
		}
	}
	return false;
}
//------------------------------------------
function IsInTable(Value, TableID)
{
	TableID = xGetElementById(TableID);

	for (var i = 0; i < TableID.rows.length; i++)
	{
		if (Value == TableID.rows[i].id)
		{
			return true;
		}
	}
	return false;
}
//------------------------------------------
function AddToTable(ListID, TableID)
{
	ListID = xGetElementById(ListID);
	TableID = xGetElementById(TableID);

	for (var i = 0; i < ListID.length; i++)
	{
		if (ListID[i].selected)
		{
			Value = ListID[i].value;
			View = ListID[i].text;
			//------------------------------------------
			if (!IsInTable(Value, TableID))
			{
				TR = TableID.insertRow(-1);
				TR.className = "TableListClass";
				TR.height = "20";
				TR.id = Value;

				var TD = xCreateElement('td');
				TD.className = "TableListClass";
					/**/
					var Element = xCreateElement("input");
					Element.type = "checkbox";
					/**
					var Element = xCreateElement("img");
					Element.src = "../admin/images/icon-delete.gif";
					Element.title = W_DELETE;
					Element.onclick = DeleteTableRow;
					Element.style.cursor = "hand";
					/**/
				xAppendChild(TD, Element);
				xAppendChild(TR, TD);

				var TD = xCreateElement('td');
				TD.className = "TableListClass";
				xInnerHtml(TD, TableID.rows.length - 1);
				
				if (TableID.rows[0].cells.length == 4)
				{
					var TD = xCreateElement('td');
					TD.className = "TableListClass";
					ComboID = "cmb" + ListID.id.substr(3);
					xInnerHtml(TD, getParent(ComboID.id, Value));
					xAppendChild(TR, TD);
				}
				xAppendChild(TR, TD);
			
				var TD = xCreateElement('td');
				TD.className = "TableListClass";
				xInnerHtml(TD, View);
				xAppendChild(TR, TD);
			}
			else
			{
				alert(View + W_WARNING_SELECTED);
			}
			//------------------------------------------
			//ListID[i].selected = false;
		}
	}
	//-----------------------
	RemoveFromList(ListID);
}
//------------------------------------------
function DeleteFromTable(TableID)
{
	TableID = xGetElementById(TableID);

	for (var i = 0; i < TableID.rows.length; )
	{
		if (xFirstChild(TableID.rows[i].cells[0]).checked)
		{
			TableID.deleteRow(i);
		}
		else
		{
			i++;	
		}
	}
}
//------------------------------------------
function SelectAllTable(TableID)
{
	TableID = xGetElementById(TableID);

	for (var i = 0; i < TableID.rows.length; i++)
	{
		xFirstChild(TableID.rows[i].cells[0]).checked = true;
	}
}
//------------------------------------------
function DeselectAllTable(TableID)
{
	TableID = xGetElementById(TableID);

	for (var i = 0; i < TableID.rows.length; i++)
	{
		xFirstChild(TableID.rows[i].cells[0]).checked = false;
	}
	return true;
}
//------------------------------------------
function Select_Deselect(TableID, Evt)
{
	var Event = new xEvent(Evt);
	var Element = Event.target;

	TableID = xGetElementById(TableID);

	if (Element.checked)
	{
		SelectAllTable(TableID);
	}
	else
	{
		DeselectAllTable(TableID);
	}
	return true;
}
//------------------------------------------
function DataSetting(ComboID, ListID)
{
	ComboID = xGetElementById(ComboID);
	ListID = xGetElementById(ListID);

	for (var i = 0; i < ListID.length; )
	{
		ListID.removeChild(ListID[i]);
	}
	//------------------------------------------
	DataArray = "DataArray_" + ComboID.id;
	DataArray = eval(DataArray);
	var n = 0;
	for (var i = 0; i < DataArray.length; i++)
	{
		if (DataArray[i].Parent == ComboID.value)
		{
			View = DataArray[i].View;
			Value = DataArray[i].Value;
			//------------------------------------------
			ListID.options[n] = new Option(View, Value);
			ListID.options[n].title = View;
			n++;
			//------------------------------------------
		}
	}
	return true;
}
//------------------------------------------
function DataSetting_DL_MS_MP(ComboID, ListID)
{
//	alert(1);
	ComboID = xGetElementById(ComboID);
	ListID = xGetElementById(ListID);

	DataArray = eval("DataArray_" + ComboID.id);
	DataSetting(ComboID, ListID);

//	ListID2 = xGetElementById(ListID2);
//	alert(DataArray.length);
//	for (var i = 0; i < DataArray.length; i++) {
//		deactiveAnElementFromList(DataArray[i].Value, ListID);
//	}

	return true;
}
//------------------------------------------
function DataSetting3(ComboID, ListID1, ListID2)
{
	ComboID = xGetElementById(ComboID);
	ListID1 = xGetElementById(ListID1);
	ListID2 = xGetElementById(ListID2);

	DataSetting(ComboID, ListID1);
	// Delete All From List :
	SelectAllList(ListID2);
	DeleteFromList(ListID2);
	return true;
}
//------------------------------------------
function IsSavedTable(Table)
{
	Table = xGetElementById(Table);

	for (var i = 0; i < Table.rows.length; i++)
	{
		//if (TableID.rows[i].id != "SAVED")
		//alert(Table.rows[i].id);
		if (Table.rows[i].id == "NEW" || Table.rows[i].id == "EDIT")
		{
			return false;
		}
	}
	return true;
}
//------------------------------------------
function AddTableRow(TableID)
{
	TableID = xGetElementById(TableID);

	var Error = false;
	if (IsSavedTable(TableID))
	{
		//------------------------------------------
		Fields = "Fields_" + TableID.id;
		Fields = eval(Fields);

		TR = TableID.insertRow(-1);
		TR.id = "NEW";
		TR.className = "TableClass";

		TD = xCreateElement("td");
		TD.className = "TableClass";

		var Element = xCreateElement("img");
			Element.src = "../admin/images/icon-delete.gif";
			Element.title = W_DELETE;
			Element.onclick = DeleteTableRow;
			//xAddEventListener(Element,"click",DeleteTableRow)
			Element.style.cursor = "pointer";
		xAppendChild(TD, Element);
		xAppendChild(TR, TD);

		if (TableID.rows[0].cells[0].colSpan == 3)
		{
			TD = xCreateElement("td");
			TD.className = "TableClass";
				var Element = xCreateElement("img");
				Element.src = "../admin/images/up.gif";
				Element.title = W_UP;
				Element.direction = -1;
				Element.onclick = MoveTableRow;
				Element.style.cursor = "pointer";
				Element.id = "1";
			xAppendChild(TD, Element);
			Element.insertAdjacentHTML("afterEnd","<br />");
			//Element.insertAdjacentText("afterEnd", "\n");
				var Element = xCreateElement("img");
				Element.src = "../admin/images/dn.gif";
				Element.title = W_DOWN;
				Element.direction = +1;
				Element.onclick = MoveTableRow;
				Element.style.cursor = "pointer";
			xAppendChild(TD, Element);
		}
		xAppendChild(TR, TD);

		TD = xCreateElement("td");
		TD.className = "TableClass";
			var Element = xCreateElement("input");
			Element.type = "button";
			Element.value = W_SAVE;
			Element.className = "ButtonClass";
			Element.onclick = SaveTableRow;
			//xRemoveEventListener(Element,"click",EditTableRow);
			//xAddEventListener(Element,"click",SaveTableRow)
		xAppendChild(TD, Element);
		xAppendChild(TR, TD);
		//------------------------------------------
		for (var i = 0; i < Fields.length; i++)
		{
			TD = xCreateElement("td");
			TD.className = "TableClass";
			if (Fields[i].Data)
			{
				var Element = xCreateElement("select");
				Element.className = "TableClass";
				for (var j = 0; j < Fields[i].Data.length; j++)
				{
					View = Fields[i].Data[j].View;
					Value = Fields[i].Data[j].Value;
					Element.options[j] = new Option(View, Value);
					Element.options[j].title = View;
				}
				//if (j == 1 && View == "")
				//if (Element.length == 1 && Element[0].text == "")
				if (Fields[i].Data.length == 1 && Fields[i].Data[0].View == "")
				{
					TD.style.width = "0%";
					Element.className = "";
					//Element.style.width = "0px";
					xWidth(Element, 0);
					xVisibility(Element, false);
				}
				else if (Fields[i].Data.length == 0)
				{
					Error = true;
				}
			}
			else
			{
				var Element = xCreateElement("input");
				Element.type = "text";
				Element.className = "TableClass";
			}
			xAppendChild(TD, Element);
			xAppendChild(TR, TD);
		}
		//------------------------------------------
		if (Error)
		{
			TableID.deleteRow(TR.rowIndex);
			alert("اطلاعات كافي براي نمايش سطر جديد وجود ندارد !");
		}
	}
	else
	{
		alert(W_WARNING_SAVE_ROW);
	}
}
//------------------------------------------
function SaveTableRow(Evt, Row)  //cross - browser
{
	if (typeof Evt == 'undefined' && Evt == null && typeof Row == 'object')
	{
		TR = Row;
	}
	else
	{
		var Event = new xEvent(Evt);
		var Element = Event.target;
	
		TD = xParentNode(Element, 1);
		TR = xParentNode(TD, 1);
	}

	TBody = xParentNode(TR, 1);

	if(TBody.tagName.toLowerCase() == "table")
	{
		Table = TBody;
	}
	else
	{
		Table = xParentNode(TBody, 1);
	}

	var c = Table.rows[0].cells[0].colSpan;
	if (c != 3) c = 2;

	Fields = "Fields_" + Table.id;
	Fields = eval(Fields);

	IsEmpty = false;
	NotValid = "";
	//------------------------------------------
	for (var i = 0; i < TR.cells.length; i++)
	{
		Cell = TR.cells[i];
		var CellFirstChild = xFirstChild(Cell);
		if (CellFirstChild)
		{
			if (CellFirstChild.tagName == "SELECT")
			{
				si = CellFirstChild.selectedIndex;
				if (si != -1)
				{
					Cell.id = CellFirstChild.options[si].value;
					xInnerHtml(Cell, CellFirstChild.options[si].text);
				}
			}
			else if (CellFirstChild.tagName == "INPUT")
			{
				if (CellFirstChild.type == "text")
				{
					var CellInnerHtml = xInnerHtml(Cell);
					xInnerHtml(Cell, CellInnerHtml = trim(CellFirstChild.value));
					if (CellInnerHtml == "")
					{
						
					}
					else if (Validate(CellInnerHtml, Fields[i - c].Type))
					{
						//IsEmpty = false;
					}
					else
					{
						//IsEmpty = false;
						//NotValid += Table.rows[0].cells[i].innerHTML + " و ";
						NotValid += i + " و ";
					}
				}
				else if (CellFirstChild.type != "checkbox" && i == 0)
				{
					Cell.removeChild(CellFirstChild);
					var Element = xCreateElement("input");
					Element.type = "checkbox";
					xAppendChild(Cell, Element);
				}
				else if (CellFirstChild.type == "button")
				{
					CellFirstChild.value = W_EDIT;
					CellFirstChild.onclick = EditTableRow;
					//xRemoveEventListener(CellFirstChild,"click",SaveTableRow);
					//xAddEventListener(CellFirstChild,"click",EditTableRow);
				}
			}

			/*
			else if (Cell.firstChild.tagName == "IMG" && i == 0)// && TR.id != "NEW")
			{
				Cell.removeChild(Cell.firstChild);
				var Element = document.createElement("input");
				Element.type = "checkbox";
				Cell.appendChild(Element);
			}
			*/
		}
	}
	//------------------------------------------
	if (TR.id == "NEW" || TR.id == "EDIT")
	{
		TR.id = "SAVED";
	}
	TR.className = "TableClass";
	//------------------------------------------
	if (IsEmpty)
	{
		alert(W_WARNING_NO_DATA);
		var TRF = xFirstChild(TR.cells[0]);
		TRF.checked = true;
		DeleteFromTable(Table);
	}
	else if (NotValid != "")
	{
		NotValid = NotValid.substr(0, NotValid.length - 3);
		Warning = W_WARNING_NOT_VALID_1 + ' ' + NotValid + ' ' + W_WARNING_NOT_VALID_2;
		alert(Warning);
		EditTableRow(null, TR);
	}
	//------------------------------------------
}
//------------------------------------------
function EditTableRow(Evt, Row)  //cross - browser
{
	if (typeof Evt != 'undefined' && Evt == null && typeof Row == 'object')
	{
		TR = Row;
	}
	else
	{
		var Event = new xEvent(Evt);
		var Element = Event.target;
		TD = xParentNode(Element, 1);
		TR = xParentNode(TD, 1);
	}

	TBody = xParentNode(TR, 1);

	if(TBody.tagName.toLowerCase() == "table")
	{
		Table = TBody;
	}
	else
	{
		Table = xParentNode(TBody, 1);
	}

	var c = Table.rows[0].cells[0].colSpan;

	if (c != 3)
	{
		c = 2;
	}

	Fields = "Fields_" + Table.id;
	Fields = eval(Fields);

	if (IsSavedTable(Table))
	{
		for (var i = 0; i < TR.cells.length; i++)
		{
			Cell = TR.cells[i];
			//alert(i + " ::::>> " + Cell.firstChild)
			//alert(i + " ::::>> " + xFirstChild(Cell))
			if (!xFirstChild(Cell))
			{
				if (!Cell.id)
				{
					var Element = xCreateElement("input");
					Element.type = "text";
					Element.className = "TableClass";
					var InnerHTML = xInnerHtml(Cell);
					Element.value = InnerHTML;
					xInnerHtml(Cell, "");
					xAppendChild(Cell, Element);
				}
				else if (Cell.id && xInnerHtml(Cell) != "")
				{
					var Element = xCreateElement("select");
					Element.className = "TableClass";
					for (j = 0; j < Fields[i - c].Data.length; j++)	// !!! ???
					{
						View = Fields[i - c].Data[j].View;
						Value = Fields[i - c].Data[j].Value;
						Element.options[j] = new Option(View, Value);
						Element.options[j].title = View;
					}
					Element.value = Cell.id;
					xInnerHtml(Cell, "");
					xAppendChild(Cell, Element);
				}
			}
			else if (!xFirstChild(Cell).tagName)
			{
				if (Cell.id)
				{
					var Element = xCreateElement("select");
					Element.className = "TableClass";
					for (j = 0; j < Fields[i - c].Data.length; j++)	// !!! ???
					{
						View = Fields[i - c].Data[j].View;
						Value = Fields[i - c].Data[j].Value;
						Element.options[j] = new Option(View, Value);
						Element.options[j].title = View;
					}
					Element.value = Cell.id;
					xInnerHtml(Cell, "");
					xAppendChild(Cell, Element);
				}
				else
				{
					var Element = xCreateElement("input");
					Element.type = "text";
					Element.className = "TableClass";
					var InnerHTML = xInnerHtml(Cell);
					Element.value = InnerHTML;
					xInnerHtml(Cell, "");
					xAppendChild(Cell, Element);
				}
			}
			else if (xFirstChild(Cell).type == "button")
			{
				var FirstChild = xFirstChild(Cell);
				FirstChild.value = W_SAVE;
				FirstChild.onclick = SaveTableRow;
				//xRemoveEventListener(FirstChild,"click",EditTableRow);
				//xAddEventListener(FirstChild,"click",SaveTableRow)
			}
		}
		//------------------------------------------
		if (TR.id == "SAVED")
		{
			TR.id = "EDIT";
		}

		TR.className = "TableClass";
		//------------------------------------------
	}
	else
	{
		alert(W_WARNING_SAVE_ROW);
	}
}
//------------------------------------------
function AddSaveTableRow(Evt)
{
	var Event = new xEvent(Evt);
	var Element = Event.target;
	TD = xParentNode(Element, 1);
	TRow = xParentNode(TD, 1);

	TBody = xParentNode(TRow, 1);

	if(TBody.tagName.toLowerCase() == "table")
	{
		Table = TBody;
	}
	else
	{
		Table = xParentNode(TBody, 1);
	}

	Fields = "Fields_" + Table.id;
	Fields = eval(Fields);

	if (IsSavedTable(Table))
	{
		//------------------------------------------
		TR = Table.insertRow(-1);
		TR.className = "TableClass";
		TR.id = "SAVED";
	
		TD = xCreateElement('td');
		TD.className = "TableClass";
			var Element = xCreateElement("input");
			Element.type = "checkbox";
		xAppendChild(TD, Element);

		TD = xCreateElement('td');
		TD.className = "TableClass";
			var Element = xCreateElement("input");
			Element.type = "button";
			Element.value = W_EDIT;
			Element.className = "ButtonClass";
			Element.onclick = EditTableRow;
		xAppendChild(TD, Element);
		xAppendChild(TR, TD);
		
		//TD.innerHTML = TableID.rows.length - 1;

		IsEmpty = false;
		NotValid = "";
		//------------------------------------------
		for (var i = 0; i < TRow.cells.length; i++)
		{
			if (xFirstChild(TRow.cells[i]).tagName == "SELECT")
			{
				TD = xCreateElement('td');
				TD.className = "TableClass";
				si = xFirstChild(TRow.cells[i]).selectedIndex;
				TD.id = xFirstChild(TRow.cells[i]).options[si].value;
				xInnerHtml(TD, xFirstChild(TRow.cells[i]).options[si].text);
				xAppendChild(TR, TD);
			}
			else if (xFirstChild(TRow.cells[i]).tagName == "INPUT")
			{
				if (xFirstChild(TRow.cells[i]).type == "text")
				{
					TD = xCreateElement('td');
					TD.className = "TableClass";
					xInnerHtml(TD, trim(xFirstChild(TRow.cells[i]).value));
					xFirstChild(TRow.cells[i]).value = "";
					if ((tmp_ = xInnerHtml(TD)) == "")
					{
					}
					else if (Validate(tmp_ ,Fields[i-1].Type))	// !!! ???
					{
						//IsEmpty = false;
					}
					else
					{
						//IsEmpty = false;
						//NotValid += Table.rows[1].cells[i].innerHTML + " و ";
						NotValid += i + " و ";
					}
					xAppendChild(TR, TD);
				}
			}
		}
		//------------------------------------------
		if (IsEmpty)
		{
			alert(W_WARNING_NO_DATA);
			xFirstChild(TR.cells[0]).checked = true;
			DeleteFromTable(Table);
		}
		else if (NotValid != "")
		{
			NotValid = NotValid.substr(0,NotValid.length-3);
			Warning = W_WARNING_NOT_VALID_1 + ' ' + NotValid + ' ' + W_WARNING_NOT_VALID_2;
			alert(Warning);
			EditTableRow(TR);
		}
		//------------------------------------------
	}
	else
	{
		alert(W_WARNING_SAVE_ROW);
	}
}
//------------------------------------------
function DeleteTableRow(Evt)
{
	var Event = new xEvent(Evt);
	var Element = Event.target;

	TD = xParentNode(Element,1);
	TR = xParentNode(TD,1);
	TBody = xParentNode(TR,1);

	if(TBody.tagName.toLowerCase() == "table")
	{
		Table = TBody;
	}
	else
	{
		Table = xParentNode(TBody, 1);
	}

	Table.deleteRow(TR.rowIndex);
}
//------------------------------------------
function SetSelectedDataArray(Name, ShouldBeSpecifiedArray)
{
	if ((typeof ShouldBeSpecifiedArray) == 'undefined')
	{
		ShouldBeSpecifiedArray = false;
	}

	try
	{
		var SDA = eval("SelectedDataArray_" + Name);
	}
	catch(Error)
	{
		if (!ShouldBeSpecifiedArray)
		{
			try
			{
				var SDA = SelectedDataArray_OSRelation;
			}
			catch(Error)
			{
				alert("Error : " + Error.description);
			}
		}
		else
		{
			alert("Error : " + Error.description);
		}
	}
	return SDA;
	//-----------------------------------------------------------
	/**
	if (typeof(eval("SelectedDataArray_" + Name)) != "undefined")
	{
		var SDA = eval("SelectedDataArray_" + Name);
	}
	else if (typeof(SelectedDataArray_OSRelation) != "undefined")
	{
		var SDA = SelectedDataArray_OSRelation;
	}
	else
	{
		alert("Error");
		return false;
	}
	return SDA;
	/**/
	//-----------------------------------------------------------
}
//------------------------------------------
function SetSelectedData_Radio_Check(Name)
{
	//SelectedDataArray = eval("SelectedDataArray_" + Name);
	SelectedDataArray = SetSelectedDataArray(Name);
	var i = 0;
	while (Element = xGetElementById(Name + i))
	{
		i++;
		for (var j = 0; j < SelectedDataArray.length; j++)
		{
			if (Element.value == SelectedDataArray[j])
			{
				Element.checked = true;
				break;
			}
		}
	}
}
//------------------------------------------
function SetSelectedData_List(Name)
{
	//SelectedDataArray = eval("SelectedDataArray_" + Name);
	SelectedDataArray = SetSelectedDataArray(Name);
	Element = xGetElementById(Name);
	for (var i = 0; i < Element.length; i++)
	{
		for (var j = 0; j < SelectedDataArray.length; j++)
		{
			if (Element[i].value == SelectedDataArray[j])
			{
				Element[i].selected = true;
				break;
			}
		}
	}
}
//------------------------------------------
function SetSelectedData_TwoList(ListID1,ListID2)
{
	SetSelectedData_List(ListID1);
	ListID1 = xGetElementById(ListID1);
	ListID2 = xGetElementById(ListID2);
	//MoveToList(ListID1,ListID2);
	CopyToList(ListID1, ListID2);
}
//------------------------------------------
function SetSelectedData_TableList(Name)
{
	SetSelectedData_List(Name);
	Table = "tbl" + Name.substr(3);
	List = xGetElementById(Name);
	Table = xGetElementById(Table);
	AddToTable(List, Table);
}
//------------------------------------------
function SetSelectedData_DL(ComboID, ListID)
{
	ComboID = xGetElementById(ComboID);
	ListID = xGetElementById(ListID);

	DataArray = eval("DataArray_" + ComboID.id);
	//SelectedDataArray = eval("SelectedDataArray_" + ListID);
	SelectedDataArray = SetSelectedDataArray(ListID.id);
	SelectedDataParent = "";
	for (var i = 0; i < DataArray.length; i++)
	{
		for (var j = 0; j < SelectedDataArray.length; j++)
		{
			if (DataArray[i].Value == SelectedDataArray[j])
			{
				SelectedDataParent = DataArray[i].Parent;
			}
		}
	}
	//----------------------------------------------
	for (i = 0; i < ComboID.length; i++)
	{
		if (ComboID[i].value == SelectedDataParent)
		{
			ComboID[i].selected = true;
			break;
		}
	}
	//----------------------------------------------
	DataSetting(ComboID, ListID);
	SetSelectedData_List(ListID.id);
}
//------------------------------------------
function SetSelectedData_DL_MS_SP_2List(ComboID, ListID1, ListID2)
{
	ComboID = xGetElementById(ComboID);
	ListID1 = xGetElementById(ListID1);
	ListID2 = xGetElementById(ListID2);

	SetSelectedData_DL(ComboID.id, ListID1.id);
	//MoveToList(ListID1,ListID2);
	CopyToList(ListID1, ListID2);
}
//------------------------------------------
function SetSelectedData_DL_MS_MP_2List(ComboID, ListID1, ListID2)
{
	ComboID = xGetElementById(ComboID);
	ListID1 = xGetElementById(ListID1);
	ListID2 = xGetElementById(ListID2);

	SetSelectedData_DL(ComboID.id, ListID1.id);
	//AddToListFromList(ListID1, ListID2);

	DataArray = eval("DataArray_" + ComboID.id);
	//SelectedDataArray = eval("SelectedDataArray_" + ListID);
	SelectedDataArray = SetSelectedDataArray(ListID1.id);

	for (var i = 0; i < DataArray.length; i++) {
		value = DataArray[i].Value;
		view = DataArray[i].View;
		parentValue = DataArray[i].Parent;
		parentView = getView(ComboID.id, parentValue);
		for (var j = 0; j < SelectedDataArray.length; j++) {
			if (value == SelectedDataArray[j]) {
//				addToList(view + '(' + parentView + ')', value, ListID2);
				addToList(parentView + ' - ' + view, value, ListID2);
//				deactiveAnElementFromList(value, ListID1);
			}
		}
	}
}
//------------------------------------------
function SetSelectedData_DL_MS_TableList(ComboID, ListID, TableID)
{
	ComboID = xGetElementById(ComboID);
	ListID = xGetElementById(ListID);
	TableID = xGetElementById(TableID);

	DataArray = eval("DataArray_" + ComboID.id);
	//SelectedDataArray = eval("SelectedDataArray_" + ListID);
	SelectedDataArray = SetSelectedDataArray(ListID.id);
	for (var i = 0; i < DataArray.length; i++)
	{
		Value = DataArray[i].Value;
		View = DataArray[i].View;
		Parent = DataArray[i].Parent;
		for (var j = 0; j < SelectedDataArray.length; j++)
		{
			if (Value == SelectedDataArray[j])
			{
				TR = TableID.insertRow(-1);
				TR.className = "TableListClass";
				TR.id = Value;

				TD = xCreateElement('td');
				TD.className = "TableListClass";
					var Element = xCreateElement("input");
					Element.type = "checkbox";
				xAppendChild(TD, Element);
				xAppendChild(TR, TD);

				TD = xCreateElement('td');
				TD.className = "TableListClass";
				xInnerHtml(TD, TableID.rows.length - 1);
				xAppendChild(TR, TD);

				xAppendChild(TR, TD);
				TD = xCreateElement('td');
				TD.className = "TableListClass";
				xInnerHtml(TD, getView(ComboID.id, Parent));
				xAppendChild(TR, TD);

				TD = xCreateElement('td');
				TD.className = "TableListClass";
				xInnerHtml(TD, View);
				xAppendChild(TR, TD);
			}
		}
	}
}
//------------------------------------------
function SetSelectedData_ML_MS_Tree_List(TreeID, ListID)
{
	List = xGetElementById(ListID);
	Tree = xGetElementById(TreeID);
	if(SelectedDataArray = SetSelectedDataArray(TreeID, true))
	{
		
	}

//	SetSelectedData_ML(TreeID,ListID);
//	ListID1 = document.getElementById(ListID1);
//	ListID2 = document.getElementById(ListID2);
//	AddToListFromList(ListID1,ListID2);
//	DeselectAllList(ListID1);
//	CopyFromTreeToList(TreeID,ListID);
}
//------------------------------------------
function CopyFromTreeToList(TreeID, ListID)
{
	Tree = xGetElementById(TreeID);
	
	if (ListID = xGetElementById(ListID))
	{
		try
		{
			var _tree = eval('tree_' + TreeID);
			var _n;
			if (ItemUID = _tree.getSelectedItemId())
			{
				ItemText = _tree.getItemText(ItemUID);
				//------------------------------------------
				if (!IsInList(ItemUID, ListID))
				{
					_n = ListID.options.length;
					ListID.options[_n] = new Option(ItemText, ItemUID);
					ListID.options[_n].title = ItemText;
				}
				else
				{
					alert(ItemText + ' ' + W_WARNING_SELECTED);
				}
				return true;
			}
			else
			{
				return true;
			}
		}
		catch (Err)
		{
//			alert('An error accurred when is going to copy an item from tree to list');
			return false;
		}
	}
	else
	{
		return false;
	}
}
//------------------------------------------
function ReturnFromListToTree(ListID, TreeID)
{
	List = xGetElementById(ListID);
//	TreeID = xGetElementById(TreeID);
	DeleteFromList(List);
}
//------------------------------------------
function getView(ArrayID, Value)
{
	DataArray = eval("DataArray_" + ArrayID);
	for (var i = 0; i < DataArray.length; i++)
	{
		if (DataArray[i].Value == Value)
		{
			return DataArray[i].View;
		}
	}
}
//------------------------------------------
function getParent(ArrayID, Child)
{
	DataArray = eval("DataArray_" + ArrayID);
	for (var i = 0; i < DataArray.length; i++)
	{
		if (DataArray[i].Value == Child)
		{
			Parent = DataArray[i].Parent;
			break;
		}
	}
	return getView(ArrayID, Parent);
}
//------------------------------------------
function SetHiddenValue(Name, hiddenValue)
{
	hiddenID = "hid" + Name;
	hiddenElement = xGetElementById(hiddenID);
	hiddenElement.value = hiddenValue;
	//alert(hiddenID + " : " + hiddenValue);
}
//------------------------------------------
function GetCheckInfo(Name)
{
	hiddenValue = "";
	var i = 0;
	var k = 0;
	while (Element = xGetElementById("chk" + Name + i))
	{
		i++;
		if(Element.checked)
		{
			if(k > 0)
			{
				hiddenValue += "*";
			}

			hiddenValue += Element.value;
			k++;
		}
	}
	SetHiddenValue(Name, hiddenValue);
}
//------------------------------------------
function GetListInfo(Name)
{
	ListID = "lst" + Name + "_1";
	ListID = xGetElementById(ListID);
	DeselectAllList(ListID);
	//---------------------------------------
	ListID = "lst" + Name + "_2";
	ListID = xGetElementById(ListID);
	SelectAllList(ListID);
/*
	hiddenValue = "";
	n = 0;
	for (var i = 0; i < ListID.length; i++)
	{
		if (n > 0)
			hiddenValue += "*";
		hiddenValue += ListID[i].value;
		n++;
	}
	SetHiddenValue(Name,hiddenValue);
*/
}
//------------------------------------------
function GetListInfo2(ListID)
{
	List = xGetElementById(ListID);
	SelectAllList(List);
/*
	hiddenValue = "";
	n = 0;
	for (var i = 0; i < ListID.length; i++)
	{
		if (n > 0)
			hiddenValue += "*";
		hiddenValue += ListID[i].value;
		n++;
	}
	SetHiddenValue(Name,hiddenValue);
*/
}
//------------------------------------------
function GetTableListInfo(Name)
{
	ListID = "lst" + Name;
	ListID = xGetElementById(ListID);
	DeselectAllList(ListID);
	//---------------------------------------
	TableID = "tbl" + Name;
	TableID = xGetElementById(TableID);
	hiddenValue = "";
	var n = 0;
	for (var i = 1; i < TableID.rows.length; i++)
	{
		if (n > 0)
		{
			hiddenValue += "*";
		}
		Row = TableID.rows[i];
		//Cell = Row.cells[2];
		hiddenValue += Row.id;
		n++;
	}
	SetHiddenValue(Name, hiddenValue);
}
//------------------------------------------
function GetTableInfo(Name)
{
	TableID = "tbl" + Name;
	TableID = xGetElementById(TableID);
	hiddenValueNew = "";
	hiddenValueOld = "";
	for (var i = 0; i < TableID.rows.length; i++)
	{
		Row = TableID.rows[i];
		if (Row.id == "SAVED")
		{
			for (var j = 0; j < Row.cells.length; j++)
			{
				Cell = Row.cells[j];
				if (!xFirstChild(Cell))
				{
					if (Cell.id)
					{
						hiddenValueNew += Cell.id;
					}
					else
					{
						var CellInnerHTML = xInnerHtml(Cell);
						hiddenValueNew += CellInnerHTML;
					}
					hiddenValueNew += "*";
				}
				else if (!xFirstChild(Cell).tagName)
				{
					if (Cell.id)
					{
						hiddenValueNew += Cell.id;
					}
					else
					{
						var CellInnerHTML = xInnerHtml(Cell);
						hiddenValueNew += CellInnerHTML;
					}
					hiddenValueNew += "*";
				}
			}
			hiddenValueNew = hiddenValueNew.substr(0, hiddenValueNew.length - 1);
			hiddenValueNew += "||";
		}
		else if (Row.id != "NEW" && Row.id != "EDIT" && Row.id != "")
		{
			hiddenValueOld += Row.id + "*";
			for (var j = 0; j < Row.cells.length; j++)
			{
				Cell = Row.cells[j];
				if (!xFirstChild(Cell))
				{
					if (Cell.id)
					{
						hiddenValueOld += Cell.id;
					}
					else
					{
						var CellInnerHTML = xInnerHtml(Cell);
						hiddenValueOld += CellInnerHTML;
					}
					hiddenValueOld += "*";
				}
				else if (!xFirstChild(Cell).tagName)
				{
					if (Cell.id)
					{
						hiddenValueOld += Cell.id;
					}
					else
					{
						var CellInnerHTML = xInnerHtml(Cell);
						hiddenValueOld += CellInnerHTML;
					}
					hiddenValueOld += "*";
				}
			}
			hiddenValueOld = hiddenValueOld.substr(0, hiddenValueOld.length-1);
			hiddenValueOld += "||";
		}
	}
	hiddenValueNew = hiddenValueNew.substr(0, hiddenValueNew.length-2);
	hiddenValueOld = hiddenValueOld.substr(0, hiddenValueOld.length-2);
	hiddenValue = hiddenValueNew + "###" + hiddenValueOld;
	SetHiddenValue(Name, hiddenValue);
}
//------------------------------------------
function DeleteFromTable_(TableID)
{
	TableID = xGetElementById(TableID);

	hiddenValue = "";
	var n = 0;
	for (var i = 0; i < TableID.rows.length; i++)
	{
		Row = TableID.rows[i];
		//Cell = Row.cells[0];
		if (xFirstChild(Row.cells[0]))
		{
			if (xFirstChild(Row.cells[0]).checked)
			{
				if (n > 0)
				{
					hiddenValue += "*";
				}
				hiddenValue += Row.id;
				n++;
			}
		}
	}
	if (n > 0)
	{
		Name = TableID.id;
		Name = Name.substr(3);
		SetHiddenValue(Name, hiddenValue);
		if (confirm(W_WARNING_CONFIRM))
		{
			document.forms[0].action = "save.php?Mode=DELETE";
			document.forms[0].submit();
		}
	}
	else
	{
		alert(W_WARNING_NO_SELECTED);
	}
}
//------------------------------------------
function Arrange(event, TableID)
{
	TableID = xGetElementById(TableID);

	hiddenValue = "";
	var n = 0;
	for (var i = 0; i < TableID.rows.length; i++) {
		Row = TableID.rows[i];
		//Cell = Row.cells[0];
		if (xFirstChild(Row.cells[0]))
		{
			if (n > 0)
			{
				hiddenValue += "*";
			}
			hiddenValue += Row.id;
			n++;
		}
	}
	if (n > 0)
	{
		Name = TableID.id;
		Name = Name.substr(3);
		SetHiddenValue(Name, hiddenValue);
		if (confirm(W_WARNING_CONFIRM))
		{
			document.forms[0].action = "save.php?Mode=ARRANGE";
			document.forms[0].submit();
		}
	}
	else
	{
		alert(W_WARNING_NO_SELECTED);
	}
}
//------------------------------------------
function Set(TableID, Subject)
{
	TableID = xGetElementById(TableID);

	hiddenValue = "";
	var n = 0;
	for (var i = 0; i < TableID.rows.length; i++)
	{
		Row = TableID.rows[i];
		//Cell = Row.cells[0];
		if (xFirstChild(Row.cells[0]))
		{
			if (xFirstChild(Row.cells[0]).checked || Subject == 0)
			{
				if (n > 0)
				{
					hiddenValue += "*";
				}
				hiddenValue += Row.id;
				n++;
			}
		}
	}
	if (n > 0)
	{
		Name = TableID.id;
		Name = Name.substr(3);
		SetHiddenValue(Name, hiddenValue);
		if (confirm(W_WARNING_CONFIRM))
		{
			document.forms[0].action = "save.php?Mode=SET&Subject=" + Subject;
			document.forms[0].submit();
		}
	}
	else
	{
		alert(W_WARNING_NO_SELECTED);
	}
}
//------------------------------------------
function SetForStaticTables(TableID, Subject)
{
	TableID = xGetElementById(TableID);

	hiddenValue = "";
	var n = 0;
	for (var i = 2; i < TableID.rows.length; i++) {
		Row = TableID.rows[i];
		//Cell = Row.cells[0];
		if (xFirstChild(Row.cells[0])) {
			if (xFirstChild(Row.cells[0]).checked || Subject == 0) {
				if (n > 0) {
					hiddenValue += "*";
				}
				hiddenValue += Row.id;
				n++;
			}
		}
	}
	if (n > 0) {
		Name = TableID.id;
		Name = Name.substr(3);
		SetHiddenValue(Name, hiddenValue);
		if (confirm(W_WARNING_CONFIRM)) {
			document.forms[0].action = "save.php?Mode=SET&Subject=" + Subject;
			document.forms[0].submit();
		}
	} else {
		alert(W_WARNING_NO_SELECTED);
	}
}
//------------------------------------------
function SetDirection(dir)
{
	//document.body.dir = dir;
	if (FormElementsArray)
	{
		for (var i = 0; i < FormElementsArray.length; i++)
		{
			ID = FormElementsArray[i].ID;
			Type = FormElementsArray[i].Type;
			if (Type)
			{
				if (Element = xGetElementById(ID))
				{
					if (Type == "Fa_STRING" || Type == "STRING" || Type == "NAME")
					{
						Element.dir = dir;
					}
					else if (Type != "TABLE" && Type != "TABLE_LIST" && Type != "RADIO" && Type != "CHECKBOX" && Type != "LIST")
					{
						Element.dir = "ltr";
					}
				}
			}
		}
	}
}
//------------------------------------------
function FormValidate(FormID)
{
	FormID = xGetElementById(FormID);
	if (FormID)
	{
		try
		{
			var FEA = eval("FormElementsArray_" + FormID.id);
		}
		catch (Error)
		{
			var FEA = eval("FormElementsArray");
		}
		FormElementsArray = FEA;
	}
	//----------------------
	var PasswordValue = "";
	//----------------------
	for (var i = 0; i < FormElementsArray.length; i++)
	{
		if (FormElementsArray[i])
		{
			Name = FormElementsArray[i].Name;
			ID = FormElementsArray[i].ID;
			Type = FormElementsArray[i].Type;
			Force = FormElementsArray[i].Force;
			if (Type)
			{
				if (Element = xGetElementById(ID))
				{
					Value = Element.value;
				}
				else
				{
					Value = false;
				}

				WarningEmpty = W_WARNING_ENTER_1 + ' ' + Name + ' ' + W_WARNING_ENTER_2;
				Warning = W_WARNING_NOT_VALID_1 + ' ' + Name + ' ' + W_WARNING_NOT_VALID_2;

				if (Type == "TABLE")
				{
					k = 0;
					for (j = 0; j < Element.rows.length; j++)
					{
						if (Element.rows[j].id == "NEW" || Element.rows[j].id == "EDIT")
						{
							alert(W_WARNING_SAVE_ROW);
							Element.focus();
							return false;
						}
						else if (Element.rows[j].id == "SAVED")
						{
							k++;
						}
					}
					if (Force && k == 0)
					{
						alert(WarningEmpty);
						Element.focus();
						return false;
					}
				}
				else if (Type == "TABLE_LIST")
				{
					if (Force)
					{
						if (Element.rows.length < 2)
						{
							alert(WarningEmpty);
							Element.focus();
							return false;
						}
					}
				}
				else if (Type == "RADIO" || Type == "CHECKBOX")
				{
					if (Force)
					{
						k = 0;
						j = 0;
						while (Element = xGetElementById(ID + j))
						{
							j++;
							if(Element.checked)
							{
								k++;
							}
						}
						if (k == 0)
						{
							alert(WarningEmpty);
							if (Element)
							{
								Element.focus();
							}
							return false;
						}
					}
				}
				else if (Type == "PASSWORD")
				{
					Confirm = xGetElementById(ID + "Confirm");
					if (Value === Confirm.value)
					{
						if (Force)
						{
							if (!Validate(Value, Type))
							{
								alert(Warning);
								Element.focus();
								return false;
							}
							else
							{
								PasswordValue = MD5(Value);
								PasswordElement = Element;
								//Element.value = Value;
								//Confirm.value = Value;
							}
						}
						else
						{
							if(Value === '')
							{
							}
							else
							{
								if (!Validate(Value, Type))
								{
									alert(Warning);
									Element.focus();
									return false;
								}
								else
								{
									PasswordValue = MD5(Value);
									PasswordElement = Element;
									//Element.value = Value;
									//Confirm.value = Value;
								}
							}
						}
					}
					else
					{
						Element.value = "";
						Confirm.value = "";
						alert(W_WARNING_PASSWORD_CONFIRM);
						Element.focus();
						return false;
					}
				}
				else if (trim(Value))
				{
					if(!Validate(Value, Type))
					{
						alert(Warning);
						Element.focus();
						return false;
					}
				}
				else if (Force)
				{
					alert(WarningEmpty);
					Element.focus();
					return false;
				}
			}
		}
	}
	//----------------------
	if (PasswordValue != "")
	{
		PasswordElement.value = PasswordValue;
		Confirm.value = PasswordValue;
	}
	//----------------------
	return true;
}
//------------------------------------------
function Add(Name)
{
	//window.location = "index.php?Page="+Name+"&Mode=NEW";
	document.forms[0].action = "index.php?Page=" + Name + "&Mode=NEW";
	document.forms[0].submit();
}
//------------------------------------------
function Edit(Name, Evt)
{
	var Evt = new xEvent(Evt);
	var Element = Evt.target;
	TD = xParentNode(Element, 1);
	TR = xParentNode(TD, 1);
	document.forms[0].action = "index.php?Page=" + Name + "&Mode=EDIT&UID=" + TR.id;
	document.forms[0].submit();
}
//------------------------------------------
function Edit_InOtherLanguage(Name, Evt)
{
	var Evt = new xEvent(Evt);
	var Element = Evt.target;
	TD = xParentNode(Element, 1);
	TR = xParentNode(TD, 1);

	if (Element.id == "")
	{
		document.forms[0].action = "index.php?Page=" + Name + "&Mode=NEW&ID=" + TR.categoryid + "&Language=" + TD.id;
	}
	else
	{
		document.forms[0].action = "index.php?Page=" + Name + "&Mode=EDIT&UID=" + Element.id + "&Language=" + TD.id;
	}
	document.forms[0].submit();
}
//------------------------------------------
function MoveTableRow(Direction, Evt)
{
	if(typeof Evt == 'undefined')
	{
		if (typeof Direction != 'number')
		{
			if (typeof Direction != 'undefined')
			{
				Evt = Direction;
				Direction = null;
			}
			else
			{
				Evt = null;
			}
		}
		else
		{
			Evt = null;
		}
	}

	if (Evt == null)
	{
		var Event = new xEvent();
	}
	else
	{
		var Event = new xEvent(Evt);
	}

	var Element = Event.target;

	if (typeof Direction == 'undefined' || Direction == null)
	{
		Direction = Element.direction;
	}

	TD = xParentNode(Element, 1);
	TR = xParentNode(TD, 1);
	TBody = xParentNode(TR, 1);

	if(TBody.tagName.toLowerCase() == "table")
	{
		Table = TBody;
	}
	else
	{
		Table = xParentNode(TBody, 1);
	}

	if ((NewTR = Table.rows[TR.rowIndex + Direction]) && (TR.rowIndex + Direction) > 0)
	{
		swapNodes(TR, NewTR);
		//TR.swapNode(NewTR);
	}
}
//------------------------------------------
function FormInfo()
{
	string = "  :  ( tagName ) ( type ) ( name ) ( id ) ( className ) \n";
	for (i = 0; i < document.forms[0].elements.length; i++)
	{
		string += i + " : ";
		string += " ( " + document.forms[0].elements[i].tagName + " ) ";
		string += " ( " + document.forms[0].elements[i].type + " ) ";
		string += " ( " + document.forms[0].elements[i].name + " ) ";
		string += " ( " + document.forms[0].elements[i].id + " ) ";
		string += " ( " + document.forms[0].elements[i].className + " ) ";
		string += "\n";
	}
	//alert(string);
	w = window.open();
	w.document.write("<pre>" + string + "</pre>");
}
//------------------------------------------
function FormInfoTable()
{
	W = window.open();
	Table = W.document.createElement("table");
	Table.align = "center";
	Table.border = "1";
	Table.borderColor = "#990000";
	TR = Table.insertRow(-1);
	TD = TR.insertCell();
	xInnerHtml(TD, "&nbsp;");
	TD = TR.insertCell();
	xInnerHtml(TD, "tagName");
	TD = TR.insertCell();
	xInnerHtml(TD, "type");
	TD = TR.insertCell();
	xInnerHtml(TD, "name");
	TD = TR.insertCell();
	xInnerHtml(TD, "id");
	TD = TR.insertCell();
	xInnerHtml(TD, "className");
	for (i = 0; i < document.forms[0].elements.length; i++)
	{
		TR = Table.insertRow(-1);
		TD = TR.insertCell();
		xInnerHtml(TD, i);
		TD = TR.insertCell();
		xInnerHtml(TD, document.forms[0].elements[i].tagName);
		TD = TR.insertCell();
		xInnerHtml(TD, document.forms[0].elements[i].type);
		TD = TR.insertCell();
		xInnerHtml(TD, document.forms[0].elements[i].name);
		TD = TR.insertCell();
		xInnerHtml(TD, document.forms[0].elements[i].id);
		TD = TR.insertCell();
		xInnerHtml(TD, document.forms[0].elements[i].className);
	}
	W.document.body.appendChild(Table);
}
//------------------------------------------
function ShowHide(Element)
{
//	if (Element.currentStyle.visibility == "hidden")
	if (xVisibility(Element) == "hidden")
	{
		xVisibility(Element, true);
	}
//	else if (Element.currentStyle.visibility == "visible")
	else if (xVisibility(Element) == "visible")
	{
		xVisibility(Element, false);
	}
}
//-----------------End----------------------

