function fmgetgrid(id) { return window.fmGrids.Find(id); }
function fmRefreshGrid(id) {
if (id == null) {
	var grid= fmFindFirstGridInstance();
	if (grid != null) grid.Refresh(true);
	/*
	var grids= document.all["gridBodyTable"];
	if (IsNull(grids)) return;
	if (typeof(grids.length) != "undefined") {
		for (var i= 0; i < grids.length; i++) grids[i].ParentGridControl.Refresh(true);
	} else {
		grids.ParentGridControl.Refresh(true);
	}
	*/
} else {
	var grid= fmgetgrid(id);
	if (grid != null) grid.Refresh(true);
}
}
function fmFindFirstGridInstance() {
var gc= $get("_gridHeaderContainer");
if (gc == null) return null;
return fmgetgrid(gc.parentNode.getAttribute('id'));
}

function fmHandleFind(gridID) {
var fmFindCriteria= $get(gridID + "_fmFindCriteria");
var fmFieldSelector= $get(gridID + "_fmFieldSelector");
if (fmFindCriteria.value == "") {
	fmFind("", gridID, "");
} else {
	var column= (fmFieldSelector != null) ? fmFieldSelector.returnValue : "";
	//fmFind("%" + fmFindCriteria.value, gridID, column);
	fmFind(fmFindCriteria.value, gridID, column);
}
}

function fmHandleView(o, gridID) {
var grid= fmgetgrid(gridID);
if (grid == null) return;
if (o) grid.ChangeView(o.returnValue);
fmFilterReset(grid.id);
}

function fmFilterReset(gridID) {
var fmFindCriteria= $get(gridID + "_fmFindCriteria");
if (fmFindCriteria != null) fmFindCriteria.value= "";

//var _JumpBar= $get(gridID + "_JumpBar");
//if (_JumpBar) _JumpBar.Reset();
}

function fmFind(keyword, gridID, column) {
var dg= fmgetgrid(gridID);
if (dg == null) { alert("Grid not found."); return; }
dg.SetParameter("filterValue", keyword);
dg.SetParameter("filterColumn", column);
dg.Select();
}


function fmCustomEditor(tableName, formName, id, url, params, w, h, scroll, full) {
if (url == null || url == "") url= fmDataViewerPath + "Form/DataForm.aspx";
else url= WorkspaceRoot + url;
if (url.indexOf("?") == -1) url+= "?";
else url+= "&";
url+= "t=" + tableName + "&f=" + formName;
var wndName= "Edit_" + tableName + "_" + formName;
if (id != null && id != "") { url+= "&id=" + id; wndName+= id.replace(/-/g, ""); }
if (params != null && params != "") url+= "&" + params;
if (!w) w= 800; if (!h) h= 500;
openStdWin(url, wndName, w, h, scroll, full);
}

function fmCustomEditorX(gridID, tableName, formName, id, url, params, w, h, scroll, full) {
if (url == null || url == "") url= fmDataViewerPath + "Form/DataForm.aspx";
else url= WorkspaceRoot + url;
if (url.indexOf("?") == -1) url+= "?";
else url+= "&";
url+= "t=" + tableName + "&f=" + formName + "&gridID=" + gridID;
var wndName= "Edit_" + tableName + "_" + formName;
if (id != null && id != "") { url+= "&id=" + id; wndName+= id.replace(/-/g, ""); }
if (params != null && params != "") url+= "&" + params;
if (!w) w= 800; if (!h) h= 500;
openStdWin(url, wndName, w, h, scroll, full);
}

function fmDeny() { window.status= "Access denied."; }

function fmDeleteRecords(gridID) {
var grid= fmgetgrid(gridID);
if (grid == null) return;
if (!window.confirm(window.Grid__DeleteRecord)) return;
grid.ExecCommand("DELETE");
}

function fmQuickDesignView(gridID, mode) {
var grid= fmgetgrid(gridID);
if (grid == null) return;
var table= grid.tableName;
var view= grid.viewName;
var url= fmCommonPath + "../Explorer/ViewBuilder/Designer.aspx?t=" + table + "&v=" + view + "&gridID=" + gridID + ((mode != null) ? "&mode=" + mode : "");
openStdWin(url, "ViewBuilder", 850, 500);
}

function fmOpenWorkflow(name, p, iX, iY, scroll, full) {
var url= fmDataViewerPath + "Workflow/Process.aspx?workflow=" + name;
if (p != null && p != "") url+= "&" + p;
alert(url);
openStdWin(url, "Workflow_" + name, iX, iY, scroll, full);
}
function fmResetGrid(id) {
if (id != "" && id != null) fmgetgrid(id).Reset();
}

var _fmAdditionalScripts= [];
function fmLoadScript(url) {
if (_fmAdditionalScripts[url]) return;
var scriptElement= document.createElement('SCRIPT');
scriptElement.type= 'text/javascript';
scriptElement.src= url;
document.getElementsByTagName('HEAD')[0].appendChild(scriptElement);
_fmAdditionalScripts[url]= true;
}
