function postComponentPageEvent(strFormId, strComponent, strTarget, strEventArgName, strEventArgValue)
{
var arrArgs = getArgs("postComponentPageEvent", 3);
postComponentNavigationEvent(strFormId, strComponent, "onComponentPage", strTarget, arrArgs);
}
function postComponentJumpEvent(strFormId, strComponent, strTarget, strEventArgName, strEventArgValue)
{
var arrArgs = getArgs("postComponentJumpEvent", 3);
postComponentNavigationEvent(strFormId, strComponent, "onComponentJump", strTarget, arrArgs);
}
function postComponentNestEvent(strFormId, strComponent, strTarget, strEventArgName, strEventArgValue)
{
if ((strEventArgName != null) && (strEventArgName != "") && (typeof strEventArgName != "undefined"))
{
var arrArgs = getArgs("postComponentNestEvent", 3);
postComponentNavigationEvent(strFormId, strComponent, "onComponentNested", strTarget, arrArgs);
}
else
{
var emptyArray = new Array();
postComponentNavigationEvent(strFormId, strComponent, "onComponentNested", strTarget, emptyArray);
}
}
function postComponentNavigationEvent(strFormId, strComponent, strEvent, strTarget, arrArgs)
{
var strCall = "";
var strFramePath = getAbsoluteFramePath(strTarget);
if (strFramePath != null)
{
strFramePath = walkDownFrameSet(strFramePath);
if ((eval(strFramePath).postServerEvent != null) && (typeof eval(strFramePath).postServerEvent != "undefined"))
{
strCall += strFramePath + ".safeCall('postServerEvent'," + strFormId + ", null, null, strEvent, \"__dmfTargetComponent\", strComponent";
if (arrArgs.length > 0)
{
strCall += ", " + convertArgsToFunctionString(arrArgs);
}
strCall += ")";
}
else
{
strCall += strFramePath + ".document.location.href = \"/" + getVirtualDir() + "/component/" + strComponent;
var strPage = retrievePage(arrArgs);
if (strPage != null)
{
strCall += "/" + strPage;
arrArgs = removePageFromArray(arrArgs);
}
if (arrArgs.length > 0)
{
strCall += "?" + convertArgsToUrlArgString(arrArgs);
}
strCall += "\"";
}
}
else
{
//Frame doesn't exist or target is current page
if ((strTarget == null) || (typeof strTarget == "undefined"))
{
strCall += "safeCall('postServerEvent'," + strFormId + ", null, null, strEvent, \"__dmfTargetComponent\", strComponent";
if (arrArgs.length > 0)
{
strCall += ", " + convertArgsToFunctionString(arrArgs);
}
strCall += ")";
}
else
{
strCall += "window.open(\"/" + getVirtualDir() + "/component/" + strComponent;
var strPage = retrievePage(arrArgs);
if (strPage != null)
{
strCall += "/" + strPage;
arrArgs = removePageFromArray(arrArgs);
}
if (arrArgs.length > 0)
{
strCall += "?" + convertArgsToUrlArgString(arrArgs);
}
strCall += "\", strTarget)";
}
}
eval(strCall);
}
function retrievePage(arrArgs)
{
var strResult = null;
if (arrArgs.length > 0)
{
for (var iArg = 0; iArg < arrArgs.length; iArg+=2)
{
if (arrArgs[iArg] == "__dmfPage")
{
strResult = arrArgs[iArg + 1];
break;
}
}
}
return strResult;
}
function removePageFromArray(arrArgs)
{
var arrResult = new Array();
var nArrOffset = 0;
if (arrArgs.length > 0)
{
for (var iArg = 0; iArg < arrArgs.length; iArg+=2)
{
if (arrArgs[iArg] != "__dmfPage")
{
arrResult[nArrOffset] = arrArgs[iArg];
arrResult[nArrOffset + 1] = arrArgs[iArg + 1];
}
}
}
return arrResult;
}
