var APPINTG_DELIM = "_,_";
var DEBUG_BROWSER_ONLY = false;
var Trace_APPINTGEVENTS = false;
var g_include_appintgevents;
if (g_include_appintgevents != true)
{
g_include_appintgevents = true;
if (typeof(Trace_CLIENTEVENTS) == "undefined")
{
Trace_CLIENTEVENTS = false;
}
function onPreSubmitClientEvent(arg1, arg2, arg3, arg4, arg5)
{
onAIEvent("event=ShowBusyCursor", arg1, arg2, arg3, arg4, arg5);
}
function onShowDialog(arg1, arg2, arg3, arg4, arg5)
{
onAIEvent("event=ShowDialog", arg1, arg2, arg3, arg4, arg5);
}
function onAIEvent()
{
if (g_ai_enabled)
{
if (Trace_CLIENTEVENTS)
{
var args = "";
for (var i = 0; i < arguments.length; i++)
{
if (i > 0)
{
args += ";";
}
args += arguments[i];
}
aievents_trace("onAIEvent(" + args + ")" );
}
var args = "";
for (var i = 0; i < arguments.length; i++)
{
// Ignore "undefined" args
if ( ! isUndefined(arguments[i]) )
{
if (i > 0)
{
args += APPINTG_DELIM;
}
if ( arguments[i].indexOf("aivar:") > -1 )
{
var varBegin = arguments[i].indexOf("aivar:");
var varEnd = arguments[i].length;
var argName = arguments[i].substring(0, varBegin);
var argValue = eval(arguments[i].substring(varBegin + 6 , varEnd ));
args = args + argName + argValue;
}
else
{
args = args + arguments[i];
}
}
}
try
{
var safeArgs = args.replace (/"/g,'\\\'');
setTimeout("fireAppIntgEvent(\"" + safeArgs + "\")", 1);
}
catch(sError)
{
throwError("AppIntgProcessEvent did not handle aiEvent(" + args + ")" );
}
}
}
function fireAppIntgEvent(strEventArgs)
{
if (g_ai_enabled)
{
try
{
if (arguments.length > 1)
{
for (var i = 1; i < arguments.length; i++)
{
strEventArgs += (APPINTG_DELIM + arguments[i]);
}
}
if (Trace_CLIENTEVENTS || Trace_APPINTGEVENTS)
{
aievents_trace("fireAppIntgEvent('" + strEventArgs + "')");
}
window.external.AppIntgProcessEvent(strEventArgs);
}
catch(sError)
{
if (!DEBUG_BROWSER_ONLY)
{
aievents_trace("AppIntgProcessEvent did not handle aiEvent(" + strEventArgs + ")" );
}
}
}
}
function isUndefined(a)
{
return typeof a == 'undefined';
}
function aievents_trace(strMsg)
{
Trace_println("appintgevents.js: " + strMsg);
}
function isWindowExternalDefined()
{
var bWindowExternalDefined = false;
try
{
// Using try/catch instead of typeof. typeof window.external returns "unknown" instead of
// "undefined" and it seemed a little fragile to base the check on this deviance from normal
if(window.external)
{
bWindowExternalDefined = true;
}
}
catch(e)
{
if (Trace_CLIENTEVENTS)
{
aievents_trace("Exception accessing window.external!");
}
bWindowExternalDefined = false;
}
return bWindowExternalDefined;
}
function isAppIntgEnvironment()
{
return (isWindowExternalDefined() && typeof window.external.AppIntgProcessEvent != 'undefined');
}
var g_ai_enabled = false;
if (isAppIntgEnvironment() || DEBUG_BROWSER_ONLY)
{
g_ai_enabled = true;
registerClientEventHandler(null, "aiEvent", "onAIEvent" );
registerClientEventHandler(null, "ShowDialog", "onShowDialog" );
reregisterPreSubmitClientEventHandler(null, postServerEvent.GENERIC_PRE_SUBMIT, "onPreSubmitClientEvent");
}
}
