var g_isIE = (document.all) ? true : false;
var g_isModalDialog = (typeof window.parent._modalDialog != "undefined");
function launchModalDialog(strUrl, strTitle, width, height, resizable)
{
var strLaunchUrl = "/" + getVirtualDir() + "/wdk/modalDialog.jsp?";
strLaunchUrl += "__dmfUrl=" + escape(strUrl);
strLaunchUrl += "&__dmfDialogTitle=" + strTitle;
var isResizable = "yes";
if (resizable == false)
{
isResizable = "no";
}
if (g_clientInfo.isBrowser(ClientInfo.MSIE) == true)
{
window.showModalDialog(strLaunchUrl, "", "dialogHeight:" + height + "px; dialogWidth:" + width + "px; center:yes; help:no; resizable:" + isResizable + ";");
}
else
{
window.open(strLaunchUrl, strTitle, "height=" + height + ",width=" + width + ",location=no,status=no,menubar=no,toolbar=no,scrollbars=yes,modal=yes,resizable=" + isResizable);
}
}
function postFormPageEvent(strFormId, strUrl, strTarget, strEventArgName, strEventArgValue)
{
var arrArgs = getArgs("postFormPageEvent", 3);
postNavigationEvent(strFormId, strUrl, "onFormPage", strTarget, arrArgs);
}
function postFormJumpEvent(strFormId, strUrl, strTarget, strEventArgName, strEventArgValue)
{
var arrArgs = getArgs("postFormJumpEvent", 3);
postNavigationEvent(strFormId, strUrl, "onFormJump", strTarget, arrArgs);
}
function postFormNestEvent(strFormId, strUrl, strTarget, strEventArgName, strEventArgValue)
{
var arrArgs = getArgs("postFormNestEvent", 3);
postNavigationEvent(strFormId, strUrl, "onFormNested", strTarget, arrArgs);
}
function postNavigationEvent(strFormId, strUrl, 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 + ", " + strFramePath + ".document.forms[0], null, null, strEvent, \"__dmfUrl\", strUrl";
if (arrArgs.length > 0)
{
strCall += ", " + convertArgsToFunctionString(arrArgs);
}
strCall += ")";
}
else
{
strCall += strFramePath + ".document.location.href = \"/" + getVirtualDir() + strUrl;
if (arrArgs.length > 0)
{
strCall += "?" + convertArgsToUrlArgString(arrArgs);
}
strCall = addBrowserIdToURL(strCall);
strCall += "\"";
}
}
else
{
//Frame doesn't exist or target is current page
if ((strTarget == null) || (typeof strTarget == "undefined"))
{
strCall += "safeCall('postServerEvent'," + strFormId + ", null, null, strEvent, \"__dmfUrl\", strUrl";
if (arrArgs.length > 0)
{
strCall += ", " + convertArgsToFunctionString(arrArgs);
}
strCall += ")";
}
else
{
strCall += "window.open(\"/" + getVirtualDir() + strUrl;
if (arrArgs.length > 0)
{
strCall += "?" + convertArgsToUrlArgString(arrArgs);
}
strCall += "\", strTarget)";
}
}
eval(strCall);
}
function getVirtualDir()
{
var strUrl = document.location.href;
//Find the third slash (e.g. http://...'/'...)
var nStart = strUrl.indexOf("/");
nStart = strUrl.indexOf("/", nStart + 2) + 1;
var nEnd = strUrl.indexOf("/", nStart + 1);
return strUrl.substring(nStart, nEnd);
}
function getArgs(strFn, nOffset)
{
var arrResult = new Array();
var nArrOffset = 0;
var functionArgs = eval(strFn).arguments;
for (var iArg = nOffset; iArg < functionArgs.length; iArg+=1)
{
var strArgument = functionArgs[iArg];
if (strArgument != null)
{
arrResult[nArrOffset] = strArgument;
}
nArrOffset += 1;
}
return arrResult;
}
function convertArgsToFunctionString(arrArgs)
{
var strResult = "";
if (arrArgs.length > 0)
{
for (var iArg = 0; iArg < arrArgs.length; iArg+=1)
{
if (strResult != "")
{
strResult += ", ";
}
strResult += '"' + escapeJsString(arrArgs[iArg]) + '"';
}
}
if (strResult == "")
{
strResult = null;
}
return strResult;
}
function convertArgsToUrlArgString(arrArgs)
{
var strResult = "";
if (arrArgs.length > 0)
{
for (var iArg = 0; iArg < arrArgs.length; iArg+=2)
{
if (strResult != "")
{
strResult += "&";
}
var strEncodedArg = escapeJsString(arrArgs[iArg]);
var strEncodedVal = escapeJsString(arrArgs[iArg + 1]);
strResult += strEncodedArg + '=' + strEncodedVal;
}
}
if (strResult == "")
{
strResult = null;
}
return strResult;
}
function escapeJsString(str)
{
var escapedStr = "";
if (str != null && typeof str != 'undefined')
{
for (var i = 0; i < str.length; i++)
{
var ch = str.charAt(i);
if (ch == '"' || ch == '\\')
{
escapedStr += '\\';
}
escapedStr += ch;
}
}
return escapedStr;
}

