/**
 *
 *	$Id: handleform.js,v 1.11 2004/02/19 00:07:22 freedev Exp $
 */
// window.onerror = null;
var undefined;
var submitFired = false;

function doNothing()
{
}

function getParentNodeByName(obj, nodeName)
{
	if (!obj.parentNode)
		return false;
	if (obj.parentNode.nodeName.toLowerCase() == nodeName.toLowerCase())
		return obj.parentNode;
	return getParentNodeByName(obj.parentNode, nodeName);
}

function getPrevSiblingNodeByName(obj, nodeName) 
{
	if (!obj.previousSibling)
		return false;
	if (obj.previousSibling.nodeName.toLowerCase() == nodeName.toLowerCase())
		return obj.previousSibling;
	return getPrevSiblingNodeByName(obj.previousSibling, nodeName);
}

function getNextSiblingNodeByName(obj, nodeName)
{
	if (!obj.nextSibling)
		return false;
	if (obj.nextSibling.nodeName.toLowerCase() == nodeName.toLowerCase())
		return obj.nextSibling;
	return getNextSiblingNodeByName(obj.nextSibling, nodeName);
}

function fireClickEvent(nodeId)
{
	if (document.getElementById)
		if (obj = document.getElementById(nodeId))
			obj.click();
}

// --------------------------------------------------------------------

function moverOnParentName(obj, nodeName, color)
{
	mover(obj, color);
	newObj = getParentNodeByName(obj, nodeName);
	if (!newObj)
		return;

	if (color == undefined)
		mover(newObj);
	else
		mover(newObj, color);
}

function moutOnParentName(obj, nodeName, color)
{
	mout(obj, color);
	newObj = getParentNodeByName(obj, nodeName);
	if (!newObj) 
		return;

	if (color == undefined)
		mout(newObj);
	else
		mout(newObj, color);
}

// --------------------------------------------------------------------

function moverOnChildName(obj, nodeName, color)
{
	var i;
	if (!obj)
		return;

	if (color == undefined)
		mover(obj);
	else
		mover(obj, color);

	var x = obj.getElementsByTagName(nodeName)
	for (i = 0; i < x.length; i++)
		mover(x[i], color);
}

function moutOnChildName(obj, nodeName, color) {
	var i;
	if (!obj)
		return;

	if (color == undefined)
		mout(obj);
	else
		mout(obj, color);

	var x = obj.getElementsByTagName(nodeName)
	for (i = 0; i < x.length; i++)
		mover(x[i], color);
}

// --------------------------------------------------------------------

function moverOnPrevSiblingName(obj, nodeName, color)
{
	newObj = getPrevSiblingNodeByName(obj, nodeName);
	if (!newObj)
		return;

	if (color == undefined)
		mover(newObj);
	else
		mover(newObj, color);
}

function moutOnPrevSiblingName(obj, nodeName, color)
{
	newObj = getPrevSiblingNodeByName(obj, nodeName);
	if (!newObj)
		return;

	if (color == undefined)
		mout(newObj);
	else
		mout(newObj, color);
}

// --------------------------------------------------------------------

function moverOnNextSiblingName(obj, nodeName, color)
{
	newObj = getNextSiblingNodeByName(obj, nodeName);
	if (!newObj)
		return;

	if (color == undefined)
		mover(newObj);
	else
		mover(newObj, color);
}

function moutOnNextSiblingName(obj, nodeName, color)
{
	newObj = getNextSiblingNodeByName(obj, nodeName);
	if (!newObj) return;

	if (color == undefined)
		mout(newObj);
	else
		mout(newObj, color);
}

function mover(obj, style) {
	if (style == undefined)
		obj.className = 'MenuLeftOver';
	else
		obj.className = style;
}

function mout(obj, style) {
	if (style == undefined)
		obj.className = 'MenuLeft';
	else
		obj.className = style;
}

function getFormElementByName(formSource, elemName)
{
	var i;
	for (i = 0; i < formSource.length; i++)
	{
		if (formSource.elements[i].name == elemName)
			return formSource.elements[i];
	}
	return null;
}

function formBuildSubmit(IdForm, Action)
{
	if (submitFired == false)
	{
		var sFormAction = "" + IdForm + "_sFormAction";
		var formname = "formBuild_" + IdForm;
		getFormElementByName(document.forms[formname], sFormAction).value = Action;
		document.forms[formname].submit();
	}
}

function formCustomSubmit(IdForm, Action)
{
	if (submitFired == false)
	{
		var sFormAction = "" + IdForm + "_sFormAction";
		var formname = "formBuild_" + IdForm;
		getFormElementByName(document.forms[formname], sFormAction).value = Action;
		document.forms[formname].submit();
	}
}

function UploadPopup(IdForm, Field)
{
   var popup = WAOpenPopup(window, "upload.php", "KeyField="+Field+"&IdForm="+IdForm, "_blank" , "dependent=yes,toolbar=yes,directories=no,status=yes,scrollbars=no,resizable=yes,menubar=no,width=400,height=150");
   popup.focus();
}

function ShowAttachment(sUrl)
{
   var popup = window.open(sUrl, "_blank" , "");
   popup.focus();
}

function DeleteAttachment(IdForm, Field)
{
	var textObj = "text" + Field;
	var dispObj = "disp" + Field;
	var formname = "formBuild_" + IdForm;
	getFormElementByName(document.forms[formname], textObj).value = "";
	getFormElementByName(document.forms[formname], dispObj).value = "";
}

function ShowChildForm(IdForm, IdChild, IdChildField, IdRelType)
{
	if (submitFired == false)
	{
		var formname = "formBuild_" + IdForm;
		var sFormAction = "" + IdForm + "_sFormAction";
		getFormElementByName(document.forms[formname], IdForm + "_hdnChildIdForm").value = IdChild;
		getFormElementByName(document.forms[formname], IdForm + "_hdnChildKeyField").value = IdChildField;
		getFormElementByName(document.forms[formname], IdForm + "_hdnChildRelType").value = IdRelType;
		getFormElementByName(document.forms[formname], sFormAction).value = "SC";
		document.forms[formname].submit();
	}
}

function setSubmitFired()
{
	if (submitFired == false)
	{
		submitFired = true;
		return true;
	}
//	alert("gia' sparato");
	return false;
}

function ShowParentForm(IdForm)
{
	if (submitFired == false)
	{
		var formname = "formBuild_" + IdForm;
		var sFormAction = "" + IdForm + "_sFormAction";
		getFormElementByName(document.forms[formname], IdForm + "_hdnChildIdForm").value = "";
		getFormElementByName(document.forms[formname], sFormAction).value = "SP";
		document.forms[formname].submit();
	}
}

function ShowHelpForm(IdForm, KeyValue)
{
   var popup = WAOpenPopup(window, "conhelp.php", "FormUID="+IdForm+"&KeyValue="+KeyValue, "_blank" , "dependent=yes,location=no,toolbar=no,directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no,left=600,top=300,width=400,height=260");
   popup.focus();
}

function ShowPopupForm(IdForm, KeyValue, Page)
{
   var popup = WAOpenPopup(window, Page, "FormUID="+IdForm+"&KeyValue="+KeyValue, "_blank" , "dependent=yes,location=no,toolbar=no,directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no,left=600,top=300,width=400,height=260");
   popup.focus();
}

function SelectChildForm(IdForm, IdChild, KeyField, KeyChild, AddInList)
{
	if (submitFired == false)
	{
		var formname = "formBuild_" + IdForm;
		var formnameChild = "formBuild_" + IdChild;
		var textForm = "text" + IdForm + "_" + KeyField;
		var textChild = "text" + IdChild + "_" + KeyChild;
		var sFormAction = "" + IdForm + "_sFormAction";
		getFormElementByName(document.forms[formname], IdForm + "_hdnChildIdForm").value = IdChild;
		var list = getFormElementByName(document.forms[formname], textForm);
		var value = /[0-9]+/i.exec(getFormElementByName(document.forms[formnameChild], textChild).value);
		if (AddInList == 1)
		{
			if ( (value != null) && (value != "") )
			{
				if (list.value != "")
					list.value += ", ";
				list.value += value;
			}
		}
		else
			list.value = value;
	//		getFormElementByName(document.forms[formname], textForm).value = getFormElementByName(document.forms[formnameChild], textChild).value;
		getFormElementByName(document.forms[formname], sFormAction).value = "S";
		document.forms[formname].submit();
	}
}

function DeleteListFieldElement(IdForm, KeyField, sMessage)
{
	if (submitFired == false)
	{
		var formname = "formBuild_" + IdForm;
		var sFormAction = "" + IdForm + "_sFormAction";
		var seleField = "sele" + IdForm + "_" + KeyField;
		var textField = "text" + IdForm + "_" + KeyField;
		var seleList = "";
		var length = getFormElementByName(document.forms[formname], seleField).options.length;
		if (length > 0)
		{
			for (i = 0; i < length; i++)
			{
				var selected = getFormElementByName(document.forms[formname], seleField).options[i].selected;
				if (!selected)
				{
					if (seleList != "")
						seleList += ",";
					seleList += getFormElementByName(document.forms[formname], seleField).options[i].value;
				}
			}
			getFormElementByName(document.forms[formname], textField).value = seleList;
			getFormElementByName(document.forms[formname], sFormAction).value = "SD";
			document.forms[formname].submit();
		}
		else
			alert(sMessage);
	}
}

function SelectFormField(IdForm, KeyField, Value)
{
	if (submitFired == false)
	{
		var formname = "formBuild_" + IdForm;
		var textForm = "text" + IdForm + "_" + KeyField;
		var sFormAction = "" + IdForm + "_sFormAction";
		getFormElementByName(document.forms[formname], textForm).value = Value;
		getFormElementByName(document.forms[formname], sFormAction).value = "S";
		document.forms[formname].submit();
	}
}

// Funzioni Javascript per la manipolazione dei risultati della ricerca
function PageNumber(IdForm, page, rows)
{
	if (submitFired == false)
	{
		var formname = "formBuild_" + IdForm;
		var hdnDeleteList = "" + IdForm + "_hdnDeleteList";
		var hdnPageNumber = "" + IdForm + "_hdnPageNumber";
		var hdnRowsPerPage = "" + IdForm + "_hdnRowsPerPage";
		var sFormAction = "" + IdForm + "_sFormAction";
		getFormElementByName(document.forms[formname], hdnDeleteList).value = "";
		getFormElementByName(document.forms[formname], hdnPageNumber).value = page;
		getFormElementByName(document.forms[formname], hdnRowsPerPage).value = rows;
		getFormElementByName(document.forms[formname], sFormAction).value = "F";
		document.forms[formname].submit();
	}
}

function ReorderBy(IdForm, FormAction, OrderColumn)
{
	if (submitFired == false)
	{
		var formname = "formBuild_" + IdForm;
		var hdnDeleteList = "" + IdForm + "_hdnDeleteList";
		var hdnOrderBy = "" + IdForm + "_hdnOrderBy";
		var hdnOrderAscDesc = "" + IdForm + "_hdnOrderAscDesc";
		var hdnReorderScript = "" + IdForm + "_hdnReorderScript";
		var sFormAction = "" + IdForm + "_sFormAction";
		if (getFormElementByName(document.forms[formname], hdnOrderBy).value == OrderColumn)
		{
			if (getFormElementByName(document.forms[formname], hdnOrderAscDesc).value == "desc")
				getFormElementByName(document.forms[formname], hdnOrderAscDesc).value = "asc";
			else
				getFormElementByName(document.forms[formname], hdnOrderAscDesc).value = "desc";
		}
		getFormElementByName(document.forms[formname], hdnOrderBy).value = OrderColumn;
		getFormElementByName(document.forms[formname], hdnReorderScript).value = 1;
		getFormElementByName(document.forms[formname], sFormAction).value = FormAction;
		getFormElementByName(document.forms[formname], hdnDeleteList).value = "";
	
	//	if (FormAction == "VD")
	//		DeleteRecords(IdForm);
	//	alert("ciao");
		document.forms[formname].submit();
	}
}

function ModifyRecord(IdForm, nRecord)
{
	if (submitFired == false)
	{
		var formname = "formBuild_" + IdForm;
		var formSearch = "formSearch_" + IdForm;
		var KeyField = "" + IdForm + "_KeyField";
		var KeyValue = "" + IdForm + "_KeyValue";
		var sFormAction = "" + IdForm + "_sFormAction";
		var objName = "" + IdForm + "_KeyField" + nRecord;
		var objValue = "" + IdForm + "_KeyValue" + nRecord;
		var allObjects = document.forms[formSearch];
		for (var intLoop=0; intLoop < allObjects.length; intLoop++)
		{
			if (allObjects[intLoop].name == objName)
			{
				getFormElementByName(document.forms[formname], KeyField).value = allObjects[intLoop].value;
			}
			if (allObjects[intLoop].name == objValue)
			{
				getFormElementByName(document.forms[formname], KeyValue).value = allObjects[intLoop].value;
			}
		}
		getFormElementByName(document.forms[formname], sFormAction).value = "V";
		document.forms[formname].submit();
	}
}

function SelectRecord(IdForm, IdChild, IdChildField, ChildKey, isList)
{
	if (submitFired == false)
	{
		var formname = "formBuild_" + IdForm;
		var sFormAction = "" + IdForm + "_sFormAction";
		var textField = "";
		var index = "";
		var curvalue = "";
		getFormElementByName(document.forms[formname], IdForm + "_hdnChildIdForm").value = IdChild;
		getFormElementByName(document.forms[formname], IdForm + "_hdnChildKeyField").value = IdChildField;
		if (isList == "1")
		{
			getFormElementByName(document.forms[formname], IdForm + "_hdnChildRelType").value = 3;
			textField = "sele" + IdForm + "_" + IdChildField;
			index = getFormElementByName(document.forms[formname], textField).selectedIndex;
			if (index >= 0)
				curvalue = getFormElementByName(document.forms[formname], textField).options[index].value;
		}
		else
		{
			getFormElementByName(document.forms[formname], IdForm + "_hdnChildRelType").value = 2;
			textField = "text" + IdForm + "_" + IdChildField;
			curvalue = getFormElementByName(document.forms[formname], textField).value;
		}
		var keyField = getFormElementByName(document.forms[formname], "Dummy1");
		keyField.name = "" + IdChild + "_KeyField";
		keyField.value = ChildKey;
		var keyValue = getFormElementByName(document.forms[formname], "Dummy2");
		keyValue.name = "" + IdChild + "_KeyValue";
		if (ChildKey != "")
		{
			keyValue.value = curvalue;
		}
		getFormElementByName(document.forms[formname], sFormAction).value = "SF";
		document.forms[formname].submit();
	}
}

function CheckAllDelete(IdForm)
{
	var formSearch = "formSearch_" + IdForm;
	var checkall = "" + IdForm + "_checkall";
	var allObjects = document.forms[formSearch];
	var i = 1;
	var keyField;
	for (var intLoop=0; intLoop < allObjects.length; intLoop++)
	{
		var objName = "" + IdForm + "_chkDelete" + i;
		if (allObjects[intLoop].name == objName)
		{
			getFormElementByName(allObjects, objName).checked = getFormElementByName(allObjects, checkall).checked;
			i++;
		}
	}
}

function MultiRecordsAction(IdForm, sMessage, sAction)
{
	if (submitFired == false)
	{
		var formname = "formBuild_" + IdForm;
		var formSearch = "formSearch_" + IdForm;
		var hdnDeleteList = "" + IdForm + "_hdnDeleteList";
		var sFormAction = "" + IdForm + "_sFormAction";
		var KeyField = "" + IdForm + "_KeyField";
		var allObjects = document.forms[formSearch];
		var elemList = "";
		var i = 1;
		var keyField;
		if (allObjects != null)
		{
			for (var intLoop=0; intLoop < allObjects.length; intLoop++)
			{
				var objName = "" + IdForm + "_chkDelete" + i;
				var objField = "" + IdForm + "_KeyField" + i;
				if (allObjects[intLoop].name == objName)
				{
					if (getFormElementByName(allObjects, objName).checked)
					{
						if (elemList.length > 0)
							elemList += ",";
						elemList += getFormElementByName(allObjects, objName).value;
						keyField = getFormElementByName(allObjects, objField).value;
					}
					i++;
				}
			}
			if (elemList.length > 0)
			{
				getFormElementByName(document.forms[formname], hdnDeleteList).value = elemList;
				getFormElementByName(document.forms[formname], sFormAction).value = sAction;
				getFormElementByName(document.forms[formname], KeyField).value = keyField;
				document.forms[formname].submit();
			}
			else
				alert(sMessage);
		}
	}
}

function ChooseDate(IdForm, curField)
{
	gIdForm = IdForm;
	gcurField = curField;
	var formname = "formBuild_" + IdForm;
	var seleYear = "seleYear" + curField;
	var seleMonth = "seleMonth" + curField;
	var seleDay = "seleDay" + curField;
	var optMese = getFormElementByName(document.forms[formname], seleMonth);
	var optGiorno = getFormElementByName(document.forms[formname], seleDay);
	var dd_date;
	var mm_date;
	var yy_date;
	yy_date = getFormElementByName(document.forms[formname], seleYear).value;
	for (i = 0; i < optMese.length; i++)
	{
		if (optMese[i].selected)
		{
			mm_date = i;
			break;
		}
	}
	for (i = 0; i < optGiorno.length; i++)
	{
		if (optGiorno[i].selected)
		{
			dd_date = i;
			break;
		}
	}

	var sUrl = "KeyField="+curField+"&KeyForm="+IdForm;
	var myDate;
	if ((yy_date > 0) && (mm_date > 0) && (dd_date > 0))
	{
		sUrl += "&wayear=" + yy_date + "&wamonth=" + mm_date + "&waday=" + dd_date;
	}
	else
	{
		myDate = new Date();
		sUrl += "&wayear=" + myDate.getFullYear() + "&wamonth=" + (myDate.getMonth()+1) + "&waday=" + (myDate.getDay() -1);
	}

//	window.open(sUrl, "_blank" , "dependent=yes,location=no,toolbar=no,directories=no,status=no,scrollbars=no,resizable=yes,menubar=no,width=240,height=280");
	WAOpenPopup(window, "calendar.php", sUrl, "_blank" , "dependent=1,location=0,toolbar=0,directories=0,status=0,scrollbars=1,resizable=1,menubar=0,width=250,height=280");
//	showCalendarByValue(document.forms[formname], myDate);

}
